PDA

View Full Version : نحوه ی چاپ این نوع گزارش.



hdv212
چهارشنبه 07 آذر 1386, 11:31 صبح
سلام و خسته نباشید
این برنامه ی کشوری سازمان بهزیستیه، میخواستم ببینم چطوری به این شکل اطلاعات یه رکورد رو چاپ میکنه ؟ اینم بگم که توی پوشه ی برنامه یه فولدر هست به نام Reports که یه فایل ساده ی html هست که من فکر میکنم template این گزارش هست، یه نگاهی به شکل و شمایل پیش نمایش گزارش (http://i3.tinypic.com/7y70jgz.jpg) بندازید، اینم تصویر همون فایل (http://i16.tinypic.com/8g8yb7o.jpg) html ساده که من فکر کنم template اون پیش نمایش باشه،دوستان اگه اطلاعی در مورد نحوه ی گزارشگیری به این شکل دارن به ما هم بگن، در ضمن در برنامه ی کشوری مخابرات هم از چنین تکنیکی استفاده شده.
مرسی.

manitack
چهارشنبه 07 آذر 1386, 18:52 عصر
البته با کنترلهای جانوس به راحتی امکان طراحی و چاپ هست اما در مورد فوق میشه از XML و کنترل Browser استفاده کرد.

hdv212
چهارشنبه 07 آذر 1386, 21:47 عصر
آره درسته، از کنترل WebBrowser استفاده کرده، و برای گزارش گیری هم، اون template رو که یه فایل html ساده است در یه متغیر string لود میکنیم، داده ها رو با دستور string.Replace(); وارد فایل میکنیم، و بعد به کنترل WebBrowser پاس میکنیم :

private void button1_Click(object sender, EventArgs e)
{
string html = System.IO.File.ReadAllText("report.htm");
html = html.Replace("[title]", "تست چاپ");
html = html.Replace("[name]", this.Style(this.txtName.Text));
html = html.Replace("[family]", this.Style(this.txtFamily.Text));

this.webBrowser1.DocumentText = html;
}

private string Style(string s)
{
return ("<Font style='font-weight:600'>" + s + "</Font>");
}
برای پیش نمایش چاپ هم از تابع زیر که در WebBrowser Control وجود داره استفاده میکنیم :

private void button2_Click(object sender, EventArgs e)
{
this.webBrowser1.ShowPrintPreviewDialog();
}