View Full Version : چگونگی چاپ اطلاعات موجود در دیتا گرید(فوری)
iranigirl1364
شنبه 23 خرداد 1388, 09:20 صبح
با سلام:
بعد از انتخاب کد کالا و زدن یک دکمه تمامی فاکتور ها برای یک کالا در دیتا گرید نمایان می شود.چگونه می توان بعد از زدن دکمه چاپ ,اطلاعات موجود در دیتا گرید چاپ شوند؟(نمی خواهم از کریستال ریپورت استفاده کنم)
لطفا مرا راهنمایی کنید.
با تشکر و احترام فراوان
asd_moghadas
شنبه 23 خرداد 1388, 09:26 صبح
سلام
از رپورت به جای کریستال رپورت استفاده کن وبعد از گرفتن idهررکورد ان رکورد را چاپ کن البته اگه منظورت چاپ تک تک رکورد ها باشه
موفق باشی
NewFoxStudent
شنبه 23 خرداد 1388, 09:33 صبح
ببین این بدردت میخوره
منبعش هم سایت CodeProject
31907
iranigirl1364
شنبه 23 خرداد 1388, 13:56 عصر
با سلام مجدد:
دوست گرامی من وقت زیادی ندارم تا روی کلاس DGVPrinter پیشنهادی شما کار کنم.لطفا در مورد این کلاس به سوالات من توضیح دهید و مرا راهنمایی کنید:
1- این کلاس چه کاربردی دارد؟
2-از این کلاس چگونه و در کجا باید استفاده کنم تا تمام اطلاعات موجود در دیتا گرید چاپ شوند؟
3-اطلاعات موجود در دیتا گرید در این کلاس در چه ابزاری چاپ می شود؟
با تشکر و احترام فراوان
NewFoxStudent
شنبه 23 خرداد 1388, 14:15 عصر
1- برای چاپ اطلاعات یک DataGridView به کار میره
2-توی فرمی که گریدت هست یه دکمه چاپ میزاری و کد به صورت زیر ازش استفاده میکنی
3-در PrintPreviewControl
DGVPrinterHelper.DGVPrinter clsPrint = new DGVPrinterHelper.DGVPrinter();
clsPrint.PrintDataGridView(DataGridView)
برای تنظیمات هم یه سری پروپرتی هست که از اسمشون پیداست چه کاری میکنن
NewFoxStudent
شنبه 23 خرداد 1388, 14:17 عصر
31914
این کلاس هم بد نیست
امکانات بیشتری داره
اینم منبعش CodeProject ولی لینکش رو پیدا نکردم
iranigirl1364
شنبه 23 خرداد 1388, 15:14 عصر
با سلام:
من این کلاس را به پروژه ام اضافه کردم و کنترل PrintPreviewControl و یک دکمه هم به فرم مورد نظر اضافه کردم و در رویداد کلیک دکمه هم, کد مورد نظر را به صورت زیر نوسشتم:
(private void button1_Click_1(object sender, EventArgs e
}
;()DGVPrinterHelper.DGVPrinter clsPrint = new DGVPrinterHelper.DGVPrinter
;(clsPrint.PrintDataGridView(dataGridView1
{
اما در دو تابع کلاس به صورت زیر ERROR وجود دارد روی قسمت get هر دو تابع:
publicForm Owner
}
{}set
{}get
{
publicDouble PrintPreviewZoom
}
{}set
{}get
{
این دو ERROR را میدهد:
Error 1 'DGVPrinterHelper.DGVPrinter.Owner.get': not all code paths return a value E:\diba-store\SOURCE\DIBA3\DIBA3\Class\DGVPrinter.cs 109 12 DIBA3
Error 2 'DGVPrinterHelper.DGVPrinter.PrintPreviewZoom.get' : not all code paths return a value E:\diba-store\SOURCE\DIBA3\DIBA3\Class\DGVPrinter.cs 120 13 DIBA3
لطفا مرا راهنمایی کنید
با تشکر و احترام فراوان
NewFoxStudent
شنبه 23 خرداد 1388, 16:44 عصر
نیازی به اضافه کردن PrintPreviewControl نیست
این کنترل رو حذف کنید و دوباره تست کنید
لطفا نمونه کدهاتون رو هم داخل تگ کد بنویسید تا خوندنش راحت باشه
این تگ کد
iranigirl1364
شنبه 23 خرداد 1388, 22:10 عصر
با سلام مجدد:
من کنترل PrintPreviewControl را از روی فرم مورد نظر برداشتم و مجددا تست کردم و باز هم در قسمت get دو تابع Owner و PrintPreviewZoom در کلاس DGVPrinterHelper همان ERROR هایی که در پست قبل بیان کردم ,مواجه شدم.
لطفا مرا راهنمایی کنید.
با تشکر و احترام فراوان
NewFoxStudent
یک شنبه 24 خرداد 1388, 09:39 صبح
با سلام مجدد:
من کنترل PrintPreviewControl را از روی فرم مورد نظر برداشتم و مجددا تست کردم و باز هم در قسمت get دو تابع Owner و PrintPreviewZoom در کلاس DGVPrinterHelper همان ERROR هایی که در پست قبل بیان کردم ,مواجه شدم.
لطفا مرا راهنمایی کنید.
با تشکر و احترام فراوان
این دو پروپرتی رو به صورت زیر تغییر بدید
public Form Owner
{ get; set; }
public Double PrintPreviewZoom
{ get; set; }
احتمالا درست بشه
asefy2008
یک شنبه 24 خرداد 1388, 10:16 صبح
سلام NewFoxStudent این کلاس هایی که معرفی کردین در قیاس با کریستال چه طوره ؟( کدومشون بهتره .)
NewFoxStudent
یک شنبه 24 خرداد 1388, 10:40 صبح
سلام دوست عزیز
استفاده از کریستال ریپورت برای چاپ اطلاعات ( و نه گزارشگیری) از لحاظ زمانی هزینه بیشتری میبره در حالی که نتیجش در قیاس با این کلاسها چندان تفاوتی نداره
بنابراین من همیشه برای چاپ اطلاعات به صورت سریع از این کلاسها استفاده میکنم ولی برای ایجاد گزارشهای شرطی و پیچیده تر از همون کریستال ریپورت استفاده میکنم
به عنوان مثال من توی فرمهایی که رکوردهای بانک رو نمایش میدن همیشه دکمه چاپ میزارم و کاربر میتونه با استفاده از اون تمام رکوردهای در حال نمایش رو چاپ کنه برای این کار از همین کلاسها استفاده میکنم
iranigirl1364
یک شنبه 24 خرداد 1388, 13:38 عصر
با سلام مجدد و تشکر از راهنمایی شما دوست گرامی با آی دی NewFoxStudent:
مشکل تابع get را با برگرداندن یک مقدار حل کردم و اطلاعات موجود در دیتا گرید نیز چاپ شدند و به جواب رسید.
اما یک سوال مهم دیگر دارم در مورد این کلاس, لطفا مرا راهنمایی کنید:
من در 4 تا Textbox چهار مقدار دارم که به ترتیب عبارتند از کد کالا ,نام کالا, موجودی اولیه کالا و موجودی فعلی کالا , که این مقادیر در زمان اجرا با توجه به انتخاب کالای مورد نظر توسط انتخاب کاربر در 4 Textbox پر می شوند و در زیر آن هم همان دیتا گرید که قبلا بیان کردم وجود دارد و من می خواهم این 4 مقدار هم در بالای گزارش چاپ شده از دیتا گرید نمایش داده شود, چگونه می توانم این 4 مقادیر را هم بالای گزارشم نمایش دهم و چاپ کنم؟
با تشکر و احترام فراوان
NewFoxStudent
یک شنبه 24 خرداد 1388, 14:54 عصر
باید توی تابعی که کار چاپ رو انجام میده این کار رو انجام بدید
توی کد کلاس تابع مربوطه رو پیدا کنید و کدش رو به صورتی تغییر بدید که این چهار تا فیلد رو هم به ReportViewer پاس بده
متاسفانه الان فرصت نمیکنم اما میتونم برای آخر هفته این تغییرات رو براتون انجام بدم
iranigirl1364
یک شنبه 24 خرداد 1388, 21:38 عصر
با سلام مجدد:
من خودم هم روی این کلاس کار میکنم ,اما لطفا در مورد سوالم در پست قبلی (4 متغیر در 4 Textbox) مرا راهنمایی کنید.
منتظر راهنمایی شما هستم
با تشکر و احترام فراوان
iranigirl1364
دوشنبه 25 خرداد 1388, 12:09 عصر
با سلام مجدد :
در این کلاس تابعی به نام Tilte به صورت زیر وجود دارد:
///<summary>
/// Title for this report. Default is empty.
///</summary>
private String title;
public String Title
{
get { return title; }
set
{
title = value;
if (docName == null)
{
printDoc.DocumentName = value;
}
}
}
که فقط می توان مقدار آن را درکلاس DGVPrinter تعریف کرد و به آن یک مقدار String داد برای مثال :
public DGVPrinter ()
{
title = "به نا م خدا"
{
اما اگر من بخواهم مقادیر موجور در 4 تا TextBox را به صورت زیر به عنوان Title چاپ کنم با روش های متفاوت امتحان کردم اما به نتیجه نرسید:
public DGVPrinter ()
{
title = "کد کالا" + textBox1.Text + " " + "نام کالا" + textBox2.Text + " " + "موجودی اولیه" + textBox3.Text + " " + "موجودی فعلی" + textBox4.Text;
}
برای مثال در تابع Tilte مقدار متغیر title را public به صورت زیر قرار دادم :
/// <summary>
/// Title for this report. Default is empty.
/// </summary>
public String title;
public String Title
{
get { return title; }
set
{
title = value;
if (docName == null)
{
printDoc.DocumentName = value;
}
}
}
و سپس در فرم نمایش اطلاعات در رویداد کلیک دکمه به صورت زیر کد را تغییر دادم:
private void button1_Click_1(object sender, EventArgs e)
{
DGVPrinterHelper.DGVPrinter clsPrint = new DGVPrinterHelper.DGVPrinter();
clsPrint.PrintDataGridView(dataGridView1);
clsPrint.title = "کد کالا" + textBox1.Text + " " + "نام کالا" + textBox2.Text; + " " + "موجودی اولیه" + textBox3.Text + " " + "موجودی فعلی" + textBox4.Text;
}
اما جواب نمی دهد.
و هزاران روش دیگر که باز جواب نداد.
لطفا مرا ارهنمایی کنید
هر چه سریعتر مرا راهنمایی کنید.
با تشکر و احترام فراوان
system32
دوشنبه 25 خرداد 1388, 12:40 عصر
سلام.
به نظر من با اینکه کدهایی که دوستان دادند خیلی عالیه ولی زیاد خودت را درگیر این کدها نکن و فقط از کد ساده زیر استفاده کن:
یک کنترل PrintPreviewDialog و یک کنترل PrintDocument به فرمت اضافه کن و یک Button حالا در باتن کد زیر را وارد کن:
printPreviewDialog1.ShowDialog();
و در رویداد printpage مربوط به printdocument کد زیر را وارد کن.
Bitmap bm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);
this.dataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height));
e.Graphics.DrawImage(bm, 0, 0);
حالا مقدار document مربوط به کنترل printpreviewdialog را به printdocument تغییر بدهید. و برنامه را اجرا کنید و ازش لذت ببرید.
امیدوارم موفق باشید.
iranigirl1364
دوشنبه 25 خرداد 1388, 13:55 عصر
با سلام مجدد به همه:
دوست گرامی پیشنهاد شما را هم به ترتیب و با دقت انجام دادم اما فقط یک PrintpriviewDocument نمایش داده می شود که در آن مقادیر دیتا گرید وجود دارد اما پرینتی گرفته نمی شود.
لطفا یک نفر به من کمک کنه
هر چه سریعتر به من کمک کنید.
با تشکر و احترام فراوان
system32
دوشنبه 25 خرداد 1388, 15:26 عصر
دوست عزیز این پیش نمایش چاپه. بعد از دیدن پیش نمایش برای چاپ از بالای پنجره سمت چپ روی شکل چاپگر یا print کلیک کن حتما چاپ می شه.
یا اگه نخواستی دستور زیر را اجرا کن.
printDocument1.Print();
iranigirl1364
دوشنبه 25 خرداد 1388, 17:14 عصر
با سلام:گریه::
تمامی مراحل را بارها و بارها انجام دادم ولی پرینت گرفته نمی شود.
به من کمک کنید:ناراحت:
با تشکر و احترام فراوان
Afshin160
دوشنبه 25 خرداد 1388, 17:51 عصر
فایل زیر خیلی می تونه کمک بکنه ....
شما براحتی می تونید از datagridview پرینت بگیرید...
به راحتي ازش جواب گرفتم .
http://barnamenevis.org/forum/attachment.php?attachmentid=16281&d=1208239430
http://barnamenevis.org/forum/attachment.php?attachmentid=16281&d=1208239430
system32
دوشنبه 25 خرداد 1388, 17:51 عصر
سلام. من حتی یک برگه هم پرینت گرفتم و شد. اگه محتویات دیتاگیرید در پرینت پریویو نمایش داده می شه که حتما باید چاپ بشه. ولی اگه نمایش داده نمی شه بحث یه چیز دیگه است. حالا کدوم یک از موارد بالا رخ داده؟
iranigirl1364
دوشنبه 25 خرداد 1388, 22:09 عصر
با سلام مجدد :ناراحت: :
بگذارید من مشکلم رو یک بار دیگه مطرح کنم
من با کلاسی که دوست گرامی با آی دی NewFoxStudent مطرح کردند توانستم از محتویات دیتا گرید پرینت بگیرم ,مشکل دیگری که دارم این است که در من در بالای فرم مورد نظر 4 تا مقدار هم در 4 تا TextBox وجود دارد و در زیر این 4 مقدار دیتا گرید وجود دارد و می خواهم علاوه بر محتویات دیتا گرید , این 4 مقدار که به ترتیب عبارتند از : کد کالا, نام کالا ,موجودی, اولیه موجودی فعلی به همراه مقادیرشان در بالای گزارشم چاپ شوند .
دوست گرامی با آی دی Afshin160 فایل شما مطمئنا خیلی مفید است اما من با VB کار نکردم و نیاز به #C دارم.
در مورد راهنمایی شما دوست گرامی با آی دی system32 در مورد PrintPreviewDialog و PrintDocument محتویات دیتا گرید در
PrintDocument نمایش داده می شود اما چاپ نمی شود به علاوه من نیاز دارم علاوه بر محتویات دیتا گرید 4 تا متغیر در 4 تا TextBox هم بالای گزارش چاپ شود.
لطفا مرا هر چه سریعتر راهنمایی کنید.:ناراحت:
با تشکر و احترام فراوان
iranigirl1364
سه شنبه 26 خرداد 1388, 17:55 عصر
با سلام:
کسی به سوال من جواب نمی ده؟:ناراحت::ناراحت:
لطفا کمک کنید:ناراحت:
با تشکر ا احترام فراوان
iranigirl1364
چهارشنبه 27 خرداد 1388, 15:06 عصر
با سلام:
از دوستا ن گرامی تقاضا دارم یم نفر به سوالم جواب بده:ناراحت::ناراحت::ناراحت:: اراحت::ناراحت::ناراحت:.
با تشکر و احترام فراوان
system32
چهارشنبه 27 خرداد 1388, 15:29 عصر
سلام
یه نمونه از سورس را با مراحلی که گفتم تهیه کنید و برام بزارید ببینم مشکلش کجاست آیا از سیستمتونه یا نه.
iranigirl1364
چهارشنبه 27 خرداد 1388, 16:03 عصر
با سلام:
من یک نمونه برنامه آماده کردم تا در این قسمت ضمیمه کنم اما با خطا مواجه می شوم و برنامه با وجود اینکه حجم آن کم است ضمیمه نمی شود.من قبلا خدمتتون مشکل رو عرض کردم.
لطفا به من کمک کنید:ناراحت:
بگذارید من مشکلم رو یک بار دیگه مطرح کنم
من با کلاسی که دوست گرامی با آی دی NewFoxStudent مطرح کردند توانستم از محتویات دیتا گرید پرینت بگیرم ,مشکل دیگری که دارم این است که در من در بالای فرم مورد نظر 4 تا مقدار هم در 4 تا TextBox وجود دارد و در زیر این 4 مقدار دیتا گرید وجود دارد و می خواهم علاوه بر محتویات دیتا گرید , این 4 مقدار که به ترتیب عبارتند از : کد کالا, نام کالا ,موجودی, اولیه موجودی فعلی به همراه مقادیرشان در بالای گزارشم چاپ شوند .
در مورد راهنمایی شما دوست گرامی با آی دی system32 در مورد PrintPreviewDialog و PrintDocument محتویات دیتا گرید در
PrintDocument نمایش داده می شود اما چیزی چاپ نمی شود.
به علاوه من نیاز دارم علاوه بر محتویات دیتا گرید 4 تا متغیر در 4 تا TextBox هم بالای گزارش چاپ شود.
لطفا مرا هر چه سریعتر راهنمایی کنید.:ناراحت::ناراحت::ناراحت ::ناراحت:
با تشکر و احترام فراوان
system32
چهارشنبه 27 خرداد 1388, 17:40 عصر
چطور ضمیمه نمیشه شما باید چندتا شرط زیر را رعایت کنید:
1- مسیر اصلی را فشرده کنید (RAR یا ZIP)
2- حجمشون کمتر از 488 کیلو باشه.
3- تمومه.
abi_sarab
پنج شنبه 28 خرداد 1388, 10:05 صبح
سلام!
آقا این که Right to left پرینت نمی کنه که!
ای بابا....
iranigirl1364
پنج شنبه 28 خرداد 1388, 10:08 صبح
با سلام:
دوست گرامی من تمامی 3 مرحله برای ضمیمه انجام دادم اما با خطا مواجه شدم.
system32
پنج شنبه 28 خرداد 1388, 12:37 عصر
برای تغییر موقعیتش در صفحه دو مقدار صفر را در متد زیر تغییر بده مثلا 100 بزار.
e.Graphics.DrawImage(bm, 0, 0);
iranigirl1364
شنبه 30 خرداد 1388, 14:12 عصر
با سلام:ناراحت::
کسی به سوال من جواب نمی ده؟
4 تا متغیر توی 4 تا TextBox دارم و در زیر آن یک دیتا گرید دارم
چگونه این 4 تا متغیر و محتویات دیتا گرید را چاپ کنم؟؟؟؟؟؟؟؟؟؟؟؟؟
با تشکر و احترام فراوان
iranigirl1364
یک شنبه 31 خرداد 1388, 12:00 عصر
با سلام:
دوستان گرامی آیا هیچ راهی برای سوال من وجود ندارد؟
آیا هیچ راهی برای چاپ مقدار 4 متغیر در 4 TextBox و محتویات دیتا گرید موجود در یک فرم وجود ندارد؟:ناراحت:
با تشکر و احترام فراوان
mehrzad_ali
یک شنبه 31 خرداد 1388, 20:32 عصر
اول يه كنترل print document ميندازي رو صفحه بعد اين كد رو توي اون مينويسي
PaintEventArgs myPaintArgs = new PaintEventArgs(e.Graphics, new Rectangle(new Point(0, 0), this.Size));
this.InvokePaint(dataGrid1, myPaintArgs);
اين كد رو هم توي دكمه مينويسي
printDocument1.Print();
Afshin160
دوشنبه 01 تیر 1388, 09:13 صبح
سلام ...
دوست عزيز شما نبايد در رابطه با تبديل كد مشكلي داشته باشيد چون الان ديگه كلي سايت هستند كه كد C# را بهvb تبديل ميكنند .!!!
مثلا": http://www.developerfusion.com/tools/convert/csharp-to-vb/
iranigirl1364
سه شنبه 02 تیر 1388, 12:30 عصر
با سلام:
دوست گرامی با آی دی Afshin160 از راهنمایی شما بابت سایت برای تبدیل Vb به #C ممنونم
روی کلاس فرستاده شده توسط شما هم کار می کنم
امیدوارم جواب شواله منو بده و 4 تا متغیر در 4 تا TextBox و محتویات دیتا گرید موجود در یک فرم را چاپ کند
با تشکر و احترام فراوان
iranigirl1364
چهارشنبه 03 تیر 1388, 16:25 عصر
باسلام:
متاسفانه با وجود اینکه روی کلاس جدید هم کار کردم به جواب سوالم نرسیدم
لطفا یک نفر توی این سایت به سوال من جواب بده:ناراحت:
من چه طوری مقدار 4 تا متغیر در 4 تا TextBox و محتویات دیتا گرید در یک فرم را چاپ کنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟
باتشکر و احترام فراوان
farhud
چهارشنبه 03 تیر 1388, 17:11 عصر
جناب NewFoxStudent
ظاهرا اين كلاس با چاپ حروف فارسي مشكل داره. اما شما توانستهايد از آن استفاده كنيد.
ممكنه راه حل رفع مشكل فارسي را هم بنويسيد؟
iranigirl1364
چهارشنبه 03 تیر 1388, 17:25 عصر
باسلام:
ممکنه لطفا یک نفر به سوال من پاسخ بده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
با تشکر و احترام فراوان
iranigirl1364
پنج شنبه 04 تیر 1388, 08:26 صبح
با سلام:
لطفا یک نفر به سوالم جواب بده
باتشکر واحترام فراوان
hana2064
پنج شنبه 04 تیر 1388, 11:07 صبح
اگه از کریستال ریپورت استفاده میکردید مطمینا راحت و سریع به جواب میرسید
من قبلا دنبال چنین کلاسهای بودم چند تایی که توی codeproject هست مشکل right toleft دارن و همینطور مشکل فرستادن پارامترهای مورد نظر کاربر(همون 4تا Textbox مورد نظر)
من با کلاسهایی که بچه ها فرستادن قبلا کار کردم مشکل دیگه شون هم اینه که وقتی محتویات سلولها زیاد باشه توی کاغذ جا نمیشه و کل پرینت به هم میریزه
با کریستال راحت میتونین پارامترها رو پاس بدید و مشکل جا نشدن متن و راست به چپ رو ندارین. یه کامپوننت استاندارد که امکانات زیادی هم داره.
mehrzad_ali
پنج شنبه 04 تیر 1388, 15:22 عصر
اول text box هاتو بذار تويه يه groupbox بهد از group box پرينت بگير
بعد يه print document به فرم اضافه كن و اين كد رو توش بنويس
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Bitmap bm = new Bitmap(this.groupbox1.Width, this.groupbox1.Height);
this.groupbox1.DrawToBitmap(bm, new Rectangle(0, 0, this.groupbox1.Width, this.groupbox1.Height));
e.Graphics.DrawImage(bm, 0, 0);
}
اين كد رو هم تويه دكمه پرينت بنويس
prindocument1.print();
حالا براي ديتا گريد هم همون كارارو بكن فقط به جاي group box بزار datagriedview
iranigirl1364
جمعه 05 تیر 1388, 09:47 صبح
با سلام:
دوست گرامی با آی د ی hana2064 من نمی توانم از کریستال رییپورت استفاده کنم در واقع از من خواسته شده که از کریستال ریپورت استفاده نکنم.
دوست گرامی با آی د یmehrzad_aliمن دقیقا مراحل گفته شده توسط شما را انجام دادم ولی هیچ پرینتی گرفته نمی شود.
ممکنه مرا راهنمایی کنید؟
چرا پرینت گرفته نمی شود؟:ناراحت:
لطفا مرا راهنمایی کند
با تشکر و احترام فراوان
mehrzad_ali
یک شنبه 07 تیر 1388, 11:51 صبح
اگه error ميده بنويس تا راهنماييت كنم
شايد مربوط به پرينتره
mehredin_1360
سه شنبه 30 تیر 1388, 22:34 عصر
سلام به دوستان عزیز از دوستان اگه سورس چاپ از datagridview را لطف کنند ممنون میشم اخه من هر چه گشتم به زبان #c پیدا نکردم لطفا در صورت جواب دادن بصورت خیلی ساده بیان کنید من اولین بارم میخواهم از دیتاگریدویو پرینت بگیرم
منتظر راهنمایی شما عزیزانه هستم
b.mahsa
یک شنبه 25 مرداد 1388, 11:42 صبح
من از این کد استفاده کردم اما قبل از print گرفتن پنجره ی save dialog را باز می کند .:گریه:
moferferi
دوشنبه 16 شهریور 1388, 10:05 صبح
سلام.
کسی هنوز نتونسته مشکل right to left را حل کنه؟
فاطی.جدا
جمعه 20 شهریور 1388, 22:44 عصر
سلام
من هم از این کد استفاده کردم اماتو این قسمت ارور میده
public Double PrintPreviewZoom
{ get; set; }
البته قبلا و در ابتدای این تاپیک این سوال مطرح شده بود اما من نتونستم حلش کنم
فاطی.جدا
جمعه 20 شهریور 1388, 22:50 عصر
iranigirl1364 (http://barnamenevis.org/forum/member.php?u=51429) عزیز ، منظورتون از این که مشکل رو با برگردون یه مقدار برای get حل کردید چیه ؟میشه بفرمایید چون کار من هم گیر این تیکه کد هست.
5mmmmm
شنبه 04 مهر 1388, 14:45 عصر
سلام.
به نظر من با اینکه کدهایی که دوستان دادند خیلی عالیه ولی زیاد خودت را درگیر این کدها نکن و فقط از کد ساده زیر استفاده کن:
یک کنترل PrintPreviewDialog و یک کنترل PrintDocument به فرمت اضافه کن و یک Button حالا در باتن کد زیر را وارد کن:
printPreviewDialog1.ShowDialog();
و در رویداد printpage مربوط به printdocument کد زیر را وارد کن.
Bitmap bm = newBitmap(this.dataGridView1.Width, this.dataGridView1.Height);
this.dataGridView1.DrawToBitmap(bm, newRectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height));
e.Graphics.DrawImage(bm, 0, 0);
حالا مقدار document مربوط به کنترل printpreviewdialog را به printdocument تغییر بدهید. و برنامه را اجرا کنید و ازش لذت ببرید.
امیدوارم موفق باشید.
ولی این فقط یه عکس از دیتاگرید ویو میگیره و اگر دیتا گرید بزرگتر از اندازه صفحه باشه بقیش میپره!
ولی در کل روش جالبی بود.
تشکر
5mmmmm
شنبه 04 مهر 1388, 14:57 عصر
با سلام:ناراحت::
کسی به سوال من جواب نمی ده؟
4 تا متغیر توی 4 تا TextBox دارم و در زیر آن یک دیتا گرید دارم
چگونه این 4 تا متغیر و محتویات دیتا گرید را چاپ کنم؟؟؟؟؟؟؟؟؟؟؟؟؟
با تشکر و احترام فراوان
چرا از کریستال ریپورت استفاده نمی کنی؟
یک گزارش کریستال بساز.چهار تا تکست باکس را بصورت پارامتر به اون ارجاع بده و هنگامی که می خوای چاپ کنی پارامترها را مقدار دهی کن با تکست باکس ها.
فقط می مونه طراحی کریستال!
top7news
پنج شنبه 09 مهر 1388, 18:42 عصر
سلام
ميشه اين روشي كه گفتي رو با يه مثال عملي كامل توضيح بدين
جز به جز
مرسي
mary3541
سه شنبه 28 مهر 1388, 16:35 عصر
ببین این بدردت میخوره
منبعش هم سایت CodeProject
31907
سلام
من از این کلاس تو پروژم استفاده کردم error ی هم نداد ولی نمیدونم چرا وقتی دکمه چاپ رو میزنم dgv رو خالی میاره و فقط header اون رو میاره
mary3541
چهارشنبه 29 مهر 1388, 09:56 صبح
31914
این کلاس هم بد نیست
امکانات بیشتری داره
اینم منبعش CodeProject ولی لینکش رو پیدا نکردم
کسی میتونه در مورد کدهای این پروژه توضیح بده؟
navid1n2000
شنبه 09 آبان 1388, 19:51 عصر
چرا از کریستال ریپورت استفاده نمی کنی؟
یک گزارش کریستال بساز.چهار تا تکست باکس را بصورت پارامتر به اون ارجاع بده و هنگامی که می خوای چاپ کنی پارامترها را مقدار دهی کن با تکست باکس ها.
فقط می مونه طراحی کریستال!
اين مورد چاپ اطلاعات ديتاگريدويو مشكل خيلياست
خواهش ميكنم يهمثال عملياز چاپ با كريستال بذارين اينجا
خيليا استفاده مي برن
يكيش خودم كه 4 ماه موندم رو همين مشكل
Exception
شنبه 09 آبان 1388, 20:24 عصر
من معمولا بجای چاپ اطلاعات، خروجی PDF رو ترجیح میدم. اگر فکر میکنید به درد شما هم میخوره، این رو ببینید: http://hasheminezhad.com/gridtopdf
javad_mjt
یک شنبه 17 آبان 1388, 22:12 عصر
سلام
مشکل right to left چاپ گرید ویو به راحتی حل میشه.
باید توی کلاسی که برای چاپ استفاده می کنین دنبال دو تا حلقه for یا while بگریدین که عمل درج header و متن گریدتون و انجام میده و اون حلقه رو معکوسش کنین. تا عمل درج از چپ به راست به راست به چپ تبدیل بشه.
javad_mjt
پنج شنبه 21 آبان 1388, 21:51 عصر
سلام
یه کامپوننت هم به نام janus هست که این امکان و با دیتا گریدی که داره فراهم می کنه
مشکل righ to left هم نداره فقط یه مشکل کوچیک داره که فکر کنم دوستان بتونن حلش کنن
زمانی که متن یه سلول زیاده متن تا همون جایی چاپ می کنه که نشون داده میشه.
یعنی دقیقا دیتا گرید و چاپ می کنه باید کاری کنیم که زمانی متن از اندازه سلول بیشتر شد بره خط بد یا اینکه تو تنظیمات پرینتش دست برد من که تنونستم این مشکل و حل کنم
ho_612
یک شنبه 24 آبان 1388, 17:50 عصر
سلام
مشکل right to left چاپ گرید ویو به راحتی حل میشه.
باید توی کلاسی که برای چاپ استفاده می کنین دنبال دو تا حلقه for یا while بگریدین که عمل درج header و متن گریدتون و انجام میده و اون حلقه رو معکوسش کنین. تا عمل درج از چپ به راست به راست به چپ تبدیل بشه.
اگه امکان داره اصلاح شده اش رو برا دانلود بگذارید.ممنون میشم.....
ho_612
سه شنبه 26 آبان 1388, 14:40 عصر
آقا کسی میتونه راست به چپ کنه؟؟؟؟
ho_612
پنج شنبه 28 آبان 1388, 17:36 عصر
کسی نیست نمایش این رو راست به چپ کنه؟
bahar.barekat
دوشنبه 02 خرداد 1390, 13:09 عصر
قربون دستت
ali_a1354
دوشنبه 09 خرداد 1390, 23:09 عصر
دوست عزیز این پیش نمایش چاپه. بعد از دیدن پیش نمایش برای چاپ از بالای پنجره سمت چپ روی شکل چاپگر یا print کلیک کن حتما چاپ می شه.
یا اگه نخواستی دستور زیر را اجرا کن.
printDocument1.Print();
دستت درد نکنه عالی بود نجاتم داد.
ali_a1354
دوشنبه 09 خرداد 1390, 23:15 عصر
دوست عزیز امکانش هست که تبدیل شده این کلاس به وی بی دات نت لود کنی? اگه بشه ممنونت میشم من نتونستم تبدیلش کنم.
ali_a1354
چهارشنبه 11 خرداد 1390, 11:59 صبح
دوست عزیز امکانش هست که تبدیل شده این کلاس به وی بی دات نت لود کنی? اگه بشه ممنونت میشم من نتونستم تبدیلش کنم.
سلام مشکلم حل شد کلاس وی بی رو داخل پست قبل پیدا کردم و به برنامه خودم اضافه کردم و به خوبی جواب داد فقط مشکل righ to left داره ؟ با تشکر از دوست عزیزی که این کلاس رو ارائه کردند.
piazche
یک شنبه 06 مرداد 1392, 15:55 عصر
با سلام .من یه نرم افزار برای یه شرکت نوشتم ،توی این نرم افزار دکمه ای برای چاپ اطلاعات datagridview گذاشتم و برای چاپ از printdocument ویک کلاس استفاده کردم ولی مشکل اینجاست که من هنگامی که نمونه چاپ اطلاعات رو در onenote می بینم متوجه این شدم که تمام ستون های جدولم به طور کامل چاپ نشده مثلاً 4 ستون آخر جدول چاپ نشده .لطفاًراهنمایی بفر مایید. در ضمن من کدهای کلاس و printdocument و بقیه کد های مربوط به چاپ رو براتون میزارم.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.