پرینت گرفتن از DataGrid

ARAsoftware

Member
سلام دوستان
چطوری میشه از اطلاعات داخل DataGrid پرینت گرفت؟؟؟ به طوری که به طور مرتب و جدول بندی شده و در سایز مشخص ( مثلا A4 ) باشه ؟؟؟!!!
 

the_king

مدیرکل انجمن
سلام دوستان
چطوری میشه از اطلاعات داخل DataGrid پرینت گرفت؟؟؟ به طوری که به طور مرتب و جدول بندی شده و در سایز مشخص ( مثلا A4 ) باشه ؟؟؟!!!

لطفا همیشه زبان برنامه نویسی رو در عنوان سوال مشخص کنید.

کنترل DataGridView برای نمایش و ویرایش داخل فرم طراحی شده و برای چاپ روی کاغذ کیفیت و امکانات مناسبی
نداره، می توانید چاپ اش کنید، اما کیفیت مناسبی نخواهد داشت :

کد:
[COLOR="Gray"]        private void Form1_Load(object sender, EventArgs e)
        {[/COLOR]
            System.Drawing.Printing.PrintDocument doc = new System.Drawing.Printing.PrintDocument();
            doc.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(doc_PrintPage);
            doc.Print();
[COLOR="Gray"]        }[/COLOR]

        void doc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            DataGridView grd = [B][COLOR="Blue"]dataGridView1[/COLOR][/B];
            Bitmap bmp = new Bitmap(grd.Width, grd.Height, grd.CreateGraphics());
            grd.DrawToBitmap(bmp, new Rectangle(0, 0, grd.Width, grd.Height));
            RectangleF bounds = e.PageSettings.PrintableArea;
            float factor = ((float)bmp.Height / (float)bmp.Width);
            e.Graphics.DrawImage(bmp, bounds.Left, bounds.Top, bounds.Width, factor * bounds.Width);
        }

بهتر است که از MicrosoftReportViewer استفاده کنید و یک Report مشابه جدول DataGridView بسازید
و بجای DataGridView آنرا چاپ کنید.
 

the_king

مدیرکل انجمن
مرسی
زبان کار #C هستش
میشه یه کم در مورد MicrosoftReportViewer توضیح بدید؟!

پیچیدگی زیادی نداره، یک نمونه اش رو روی فرم قرار می دهید و انتخاب اش می کنید، روی اون فلش کوچیک سمت
راست بالای کنترل کلیک می کنید تا پنجره Tasks اش باز بشه. از گزینه Design a new report استفاده خواهید کرد
که بصورت Wizard در چند مرحله بانک اطلاعاتی و فیلد هایی که باید در گزارشون باشه رو انتخاب خواهید کرد.
یکسری قالب نمایشی آماده هم داره که از بین شون مورد دلخواه تون رو انتخاب می کنید.
چند خط کد بصورت خودکار به کد های فرم اضافه میشه که محتویات گزارش رو در ReportViewer نمایش بده.

زمانی هم که محتویات گزارش نمایش داده شد، با استفاده از ()ReportViewer1.PrintDialog گزارش رو برای چاپ
به پنجره انتخاب چاپگر ارائه می کنید.
 

ARAsoftware

Member
خیلی ممنون
من همیه این کارارو کردم و جواب هم گرفتم فقط یه چیزی رو نتونستم ژیدا کنم اونم اینکه چطور میشه این report‌رو به دیتابیس برنامه مون وصل کنیم تا اطلاعاتمون رو نشون بده
یه چیزی مثل این رو چجوری میشه نوشت؟ datagridview1.datasource= xxx
 

the_king

مدیرکل انجمن
خیلی ممنون
من همیه این کارارو کردم و جواب هم گرفتم فقط یه چیزی رو نتونستم ژیدا کنم اونم اینکه چطور میشه این report‌رو به دیتابیس برنامه مون وصل کنیم تا اطلاعاتمون رو نشون بده
یه چیزی مثل این رو چجوری میشه نوشت؟ datagridview1.datasource= xxx
یا روی خود کنترل از گزینه Choose Data Sources استفاده کنید و یا باید از یک کنترل BindingSource کمک بگیرید :
کد:
            bindingSource1.DataSource = [COLOR="Blue"]YourDataSet[/COLOR];
            bindingSource1.DataMember = "[COLOR="Blue"]YourTableName[/COLOR]";
            Microsoft.Reporting.WinForms.ReportDataSource source
                = new Microsoft.Reporting.WinForms.ReportDataSource("[COLOR="Blue"]YourDataSet_YourTableName[/COLOR]", bindingSource1);
            reportViewer1.LocalReport.DataSources.Add(source);
 

جدیدترین ارسال ها

بالا