سلام به همه.
دوستان،من یه دکمه ای دارم که میخوام با زدن اون،بتونم از لیستم،پرینت بگیرم.
میشه دقیق راهنماییم کنید.
ممنون.
سلام به همه.
دوستان،من یه دکمه ای دارم که میخوام با زدن اون،بتونم از لیستم،پرینت بگیرم.
میشه دقیق راهنماییم کنید.
ممنون.
شما از کلیک روی button در فرم راهنمایی و شرح دقیق میخواین!
خیلی طولانیه که
هر کسی یک ابزاری استفاده میکنه مثلاً من خودم از استیمول استفاده میکنم شما توی همین انجمن سرچ کنی کلی جواب برای مراحل مختلف پیدا میکنی
ساده ترین و در دسترس ترینش خود rdlc ویژوال استودیو هست که اینم توی انجمن سرچ کنی جواب زیاده منم دوتا لینک تصویری کامل و ساده که راحت باشه رو میزارم
شما شروع به کار کن اگر جاییش مشکل داشتی همون قسمتو بپرس بالاخره یکی جواب میده من هم اگر بتونم با کمال میل کمک میکنم
http://tech.just4sharing.com/Pages/A...al-Studio.aspx
https://www.packtpub.com/books/conte...al-studio-2008
من از طریق ابزار print Document خود ویژوال میخوام این کارو بکنم.
این دستورات کافیه:؟
برای دکمم این رو تعریف میکنم:و برای خود ابزار print Document هم این کدها رو:printDocument1.Print();
حالا اینا اصلا درست هستن؟Bitmap bm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);
dataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height));
e.Graphics.DrawImage(bm, 0, 0);
ممنون
یعنی شما داری کنترل رو تبدیل به گرافیک میکنی بعد چاپ میکنی
اون قسمت کدت که گرید رو تبدیل به گرافیک میکنی درسته اما اگر گریدت اسکرول بخوره چی؟
این لینکی که میزارم دقیقاً همون چیزی هست که شما میخوای اما من پیشنهاد میکنم اگر دلیل و محدودیت خاصی نداری از همون ابزارهای گزارش استفاده کن ترو تمیز تره البته نظر شخصیه
بفرمایین اینم لینک
http://www.codeproject.com/Articles/...f-DataGridView
دوستان،من یه تکه کد پیدا کردم،ممنون میشم در خطا گیریش کمکم کنید:
من این دستورات رو برای دکمه ی پرینم تعریف میکنم:در ادامه این دستورات رو برای ابزار PrintDocument تعریف میکنم:printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.ShowDialog();
و یک ابزار هم به نام printPreviewDialog1 به فرمم اضافه میکنم که هیچ کدی هم داخلش نمینویسم.Bitmap bm = new Bitmap(Width, Height);
this.DrawToBitmap(bm, new Rectangle(0, 0, this.Width, this.Height));
e.Graphics.DrawImage(bm, 20, 20);
حالا وقتی دکمه رو میزنم،صفحه پرینت باز میشه و اطلاعات رو برای پرینتر میفرسته:
perr.jpg
اما این مشکلو داره.
کل صفحه رو پیرینت نمیگیره.
ممنون میشم دوستان کمک کنن.
عرض صفحه شما بیشتر از عرض کاغذه یا تصویرتو کوچیک کن یا کاغذو بچرخون
پرینت گرفتن کنترل این داستان هارو داره
عزیز،چه جوری عرض و طولش رو تغییر بدم؟
کاغذ رو اگه از عرض بذارم که نمیشه.باید نمایشش درست باشه.
راستی،یه تکه کد دیگه هم پیدا کردم.
به نظرتون کدوماش بهترن؟
راستی،من یه برنامه ضبط از صفحه نمایش دارم،به اسم snagit ،وقتی دکمه پرینت رو میزنم،اطلاعات رو واسه پرینتر میفرسته،اما این برنامه اجرا میشه.
و حالا کدها:اینا خوبن؟public partial class Form1 : Form
{
[System.Runtime.InteropServices.DllImport("gdi32.dl l")]
public static extern long BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
private Bitmap memoryImage;
{
private void CaptureScreen()
{
Graphics mygraphics = this.CreateGraphics();
Size s = this.Size;
memoryImage = new Bitmap(s.Width, s.Height, mygraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
IntPtr dc1 = mygraphics.GetHdc();
IntPtr dc2 = memoryGraphics.GetHdc();
BitBlt(dc2, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, 0, 0, 13369376);
mygraphics.ReleaseHdc(dc1);
memoryGraphics.ReleaseHdc(dc2);
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
}
private void button1_Click(object sender, EventArgs e)
{
CaptureScreen();
printDocument1.Print();
}
ممنون میشم از دوستان،یکی جواب منو بده.
خیلی به این دستورات نیاز دارم.
توی همون آبجک PrintDocument نگاه کن آدرس خصوصیتش میشه این
printDocument1.DefaultPageSettings
بعد از DefaultPageSettings یک نقطه بزن کل خصوصیتهاشو لیست میکنه منجمله اندازه کاغذ حاشیه ها و غیره
یک خصوصیت داره به اسم Landscape که True و False میشه تعیین میکنه کاغذ عمودی باشه یا افقی منظورم این بود از عرض کاغد که بیشتره استفاده کنی یعنی کاغد a4 اگر داری 90 درجه بچرخونی
خب حالا اگه دیتاگریدم اسکورل افقی خرده بود چی؟
میگم برای پرینت کنترل بطور مستقیم داستان داری
برای اسکرول خوردن افقی هم شما میتونی اون آبجکت گرافیکی که درست کردی رو کوچیکش کنی اما اگر زیادی اسکرول بخوره مجبوری زیادی کوچیک کنی
اون لینکی که توی پست چهارم گذاشتم اسکرول عمودی رو پشتیبانی میکرد اما افقیشو نمیدونم
اینهمه ابزار گزارشگیری واقعاً سوال شده برام چرا استفاده نمیکنی؟
شما با ابزار report wiever بلدی کار کنی؟
اون خوبه؟
راستش این تکه کد رو خودم ننوشتم و فقط از جایی کپیش کردم،به همین دلیل ازش خیلی سردر نمیارم!!
اگه شما سر در میاری،میشه لطف کنید و یه توضیح کوچولو بدید؟
ممنون.