PDA

View Full Version : مشکل با printDocument1_PrintPage



ghasemloo
پنج شنبه 26 اردیبهشت 1392, 21:20 عصر
سلام بچه ها این برنامه رو من برای برای پرینت از دیتا گرید ویوم نوشتم اما یه زمانی هست که دیتا گرید ویو شما
دیگه اطلاعات داخلش زیاد میشه و همه اطلاعات شما داخل یه صفحه جا نمیشه و من ننمیتونم برم صفحه دیگه وکدش رو نمیدونم که برم صفحه دیگه....................






privatevoid printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)

{







try

{

e.Graphics.PageScale = 1;










string io = "|";





int w = 0;





int h = 100;





Font fo12 = new System.Drawing.Font("A Afsaneh", 20, FontStyle.Bold);





Font fo13 = new System.Drawing.Font("A Afsaneh", 14, FontStyle.Bold);





DataGridViewRow drp = newDataGridViewRow();

drp.CreateCells(dataGridView1);

System.Drawing.Printing.








PrintDocument pd = new System.Drawing.Printing.PrintDocument();





for (int g1 = 0; g1 < dataGridView1.RowCount; g1++)

{





w = 0;










for (int k = 0; k < drp.Cells.Count; k++)

{







e.Graphics.DrawString(








" " + io + dataGridView1.Rows[g1].Cells[k].Value + io, fo13, Brushes.Black, w, h);

 

e.Graphics.DrawLine(








Pens.Green, 10, h, 840, h);

w += 60;

}

h += 30;










if (h <= 1000)

{ e.HasMorePages =





false; }





if (h >= 1000)
خب حالا باید برم صفحه بعد شرط حاضره وفقط منتظر رفتن به صفحه
بعدم
{ e.HasMorePages =





true;

h = 0;



}



}



}

 












catch

{

}

ghasemloo
پنج شنبه 26 اردیبهشت 1392, 23:57 عصر
کسی نیست یه جوابی به ما بده

ghasemloo
جمعه 27 اردیبهشت 1392, 00:04 صبح
کد خاصی نداره خودش میره اینم یه نمونه کد برا پرینت
DataSet Myds = new DataSet();
string sql = "Select * from report where ID = " + txtID.Text + "";
SqlDataAdapter MydataAdpter = new SqlDataAdapter();
MydataAdpter.SelectCommand = new SqlCommand();
MydataAdpter.SelectCommand.Connection = connection;
MydataAdpter.SelectCommand.CommandText = sql;


if (connection.State == ConnectionState.Closed)
connection.Open();
MydataAdpter.Fill(Myds, "table1");
connection.Close();

Crystalname report = new Crystalname ();

report.SetDataSource(Myds.Tables["table1"]);

FrmPrintPreview FrmPrintPreview = new FrmPrintPreview();
FrmPrintPreview.MyReportDocumnet = report;
FrmPrintPreview.Show();
ببخشید این روش شما از microsoft report استفاده میکنه
اما واسه من از3 یا 4شی printdialog,printdocument,print preview control,استفاده میکنه

ghasemloo
جمعه 27 اردیبهشت 1392, 12:56 عصر
یعنی هیچ کدمتون نمی دونید!!!!!!!!!!!!!!
یا اگه متوجه نمیشید بیشتر توضیح بدم@@@@@@@@@

khokhan
جمعه 27 اردیبهشت 1392, 19:57 عصر
یعنی هیچ کدمتون نمی دونید!!!!!!!!!!!!!!
یا اگه متوجه نمیشید بیشتر توضیح بدم@@@@@@@@@
سلام
چرا از کلاس آماده مخصوص این کار استفاده نمی کنی ؟

اگه خواستی نمونه با مثال براتون می ذارم

ghasemloo
جمعه 27 اردیبهشت 1392, 20:04 عصر
ممنون میشم اگه بزاری
ونحوه استفادش رو بگی

khokhan
جمعه 27 اردیبهشت 1392, 20:26 عصر
ممنون میشم اگه بزاری
ونحوه استفادش رو بگی

سلام
این کلاس رو داخل پوشه پروژه ات کنار سایر فرمهات کپی می کنی بعد از solution explurer به پروژه اضافه می کنی و
دستورات مربوط به دکمه چاپ رو هم در فایل متنی کنار کلاس گذاشتم کپی می کنی وهر کجا لازم بود تغییرات لازم رو می دی

ghasemloo
جمعه 27 اردیبهشت 1392, 20:32 عصر
دمت گرم
ببینم می تونم

khokhan
جمعه 27 اردیبهشت 1392, 23:37 عصر
دمت گرم
ببینم می تونم


سلام احتیاجی به using یا چیز دیگری نیست

شما از قسمت solution explurer کلاس DGVPrinter.cs رو به پروژه اضافه نکردین به همین خاطر اون ارور رو می ده

ببینین نام کلاس بایستی در پروژه مانند شکل زیردر solution explurerظاهر بشه نحوه اضافه کردنش رو چه بلدین مگه نه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

khokhan
جمعه 27 اردیبهشت 1392, 23:41 عصر
بفرما این هم نمونه عملی با همون کلاسی که براتون ارسال کردم :لبخند::لبخند::لبخند:

ghasemloo
شنبه 28 اردیبهشت 1392, 10:51 صبح
آقا دمت گرم
من دیشب خودم به این موضوع پی بردم که آره من اون رو به عنوان کلاس معرفی نکرده بودم بازم ممنون
شما من رو بنده ی خودت کردی!

h.gheidrlou
چهارشنبه 22 مهر 1394, 20:17 عصر
دوستان این کلاس خیلی عالیه و واقعا براش زحمت کشیده شده است
ولی مشکلی که داره اینه که توضیحاتش فارسی نیست و اگه بخواهیم تنظیماتش را تغییر بدیم مقدور نیست و باعث بروز خطا در برنامه میشه
مثلا اگه بخواهیم ارتفاع سطرها را زیادتر کنیم یا رنگ های زمینه را تغییر بدیم نمی تونیم چون دستکاری در متدها کلاس باعث خطا میشه
اگر از دوستان کسی هست که بتونه بخشهای مختلف کلاس را توضیح بده و توابع را توضیح بدهد ممنون دار میشم