PDA

View Full Version : سوال: چگونه می توان اطلاعات gridviewرو به چاپگر ارسال کرد؟



mohsen_namad
سه شنبه 31 فروردین 1389, 18:33 عصر
سلام من نمیدونم چطوری میشه اطلاعات gridview رو پرینت گرفت ؟ چه کدی باید نوشته بشه؟

amirjalili
چهارشنبه 01 اردیبهشت 1389, 09:41 صبح
برای این کار کامپوننت هایی هست که به خوبی این کار رو انجام میده.
یعنی شما میخواین از گرید پرینت بگیرید.
از خود کلاس های دات نت میشه استفاده کرد. اما خوب یه سری کاستی ها داره که باید خودتون رفعش کنید.
ببینید اینجا یه نمونه توضیح داده : http://www.codeproject.com/KB/custom-controls/GridViewPrinting.aspx

ضمنا اگه بخوای میتونی از خود جاوااسکریپت برای پرینت صفحه استفاده کنی
از کریستال ریپورت هم میشه برای نمایش و پرینت اطلاعات استفاده کنی.

این هم یه نمونه دیگه که واست میذارم.. آدرس سایت رو هم میذارم تا اگه بخوای کاملتر بخونی.



<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Test</title>
<script type="text/javascript" >

function CallPrint(strid)
{
var prtContent = document.getElementById(strid);
var WinPrint = window.open('print.htm','PrintWindow','letf=0,top= 0,width=800%,height=600,toolbar=1,scrollbars=1,sta tus=1');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
}

</script>
</head>
<body>
<form id="form1" runat="server">

<div id="divPrint">
<asp:GridView ID="GridView1" runat="server" BorderColor="#6600CC" BorderStyle="Solid" BorderWidth="1px" CellPadding="1" ForeColor="#333333"
Width="825px" EmptyDataText="No record found" Height="137px" Visible="False" AllowSorting="True" ShowFooter="True" >

</asp:GridView>
</div>
<asp:Button ID="Button1" runat="server" Text="Print" Visible="False" Width="159px" />
</form>
</body>
</html>


http://forums.ASP.NET/p/880978/3207465.aspx#3207465

Hossein Bazyan
چهارشنبه 01 اردیبهشت 1389, 12:30 عصر
سلام
من در گزارشاتم اطلاعات رو به شکل HTML با فرمت و قالب بندی و صفحه بندی و استایل دلخواه نوشته و سپس در یک فایل ذخیره میکنم و آنرا روی سرور ذخیره و سپس نمایش میدهم .
چون نام این فایل همیشه ثابت میباشد ساخت فایل جدید روی قبلی انجام میشود و جای زیادی رو در سرور اشغل نمیکنه و همچنین دست برنامه نویس برای تهیه گزارشی زیبا و دلخواه کاملا بازه چون با کدهای HTML نوشته میشه و در ضمن خیلی هم سریع میباشد.
نمونه برنامه هم در همین سایت گذاشتم لازم بود میتوانید پیدا کرده و استفاده کنید.

amirjalili
چهارشنبه 01 اردیبهشت 1389, 13:31 عصر
من در گزارشاتم اطلاعات رو به شکل HTML با فرمت و قالب بندی و صفحه بندی و استایل دلخواه نوشته و سپس در یک فایل ذخیره میکنم و آنرا روی سرور ذخیره و سپس نمایش میدهم .
چون نام این فایل همیشه ثابت میباشد ساخت فایل جدید روی قبلی انجام میشود و جای زیادی رو در سرور اشغل نمیکنه و همچنین دست برنامه نویس برای تهیه گزارشی زیبا و دلخواه کاملا بازه چون با کدهای HTML نوشته میشه و در ضمن خیلی هم سریع میباشد.
نمونه برنامه هم در همین سایت گذاشتم لازم بود میتوانید پیدا کرده و استفاده کنید.

همه این بالایی ها چه ربطی به این پایینی داشت؟


سلام من نمیدونم چطوری میشه اطلاعات gridview رو پرینت گرفت ؟ چه کدی باید نوشته بشه؟

Hossein Bazyan
چهارشنبه 01 اردیبهشت 1389, 13:56 عصر
همه این بالایی ها چه ربطی به این پایینی داشت؟
سلام
اگر خوب میخوندیش ربطشو پیدا میکردی
من گفتم ردیف به ردیف گرید رو بخون و در در فایل HTML ذخیره کن و با استفاده از امکانات براوزر آنرا چاپ کن و یا نمایش بده
محسناتش هم بغیر از موارد ذکر شده یکیش اینه که میتوان از امکانات براوزر برای چاپ و پیش نمایش چاپ و غیره استفاده کرد.

amirjalili
چهارشنبه 01 اردیبهشت 1389, 14:03 عصر
بدون این ها هم خیلی راحت میشه از امکانات چاپ Browser و پیش نمایش استفاده کرد.
جاوااسکریپت

mohsen_namad
چهارشنبه 01 اردیبهشت 1389, 15:33 عصر
میشه کمی بیشتر اون کد رو توضیح بدی (باید توقسمت html بنویسمش )
من میخوام وقتی روی دکمه چاپ کلید کنم بصورت خود کار از gridview پرینت گرفته بشه.
خواهش میکنم کسی کمکم کنه .

Hossein Bazyan
چهارشنبه 01 اردیبهشت 1389, 16:04 عصر
میشه کمی بیشتر اون کد رو توضیح بدی (باید توقسمت html بنویسمش )
من میخوام وقتی روی دکمه چاپ کلید کنم بصورت خود کار از gridview پرینت گرفته بشه.
خواهش میکنم کسی کمکم کنه .
سلام
کمک از مثال جناب amirjalili بهتر؟
کدها رو بنویس حال با کلیک روی دکمه گرید چاپ میشود یا اینکه از روشی که من گفتم استفاده کن البته یه مقدار کدنویسی داره اما گزارشات زیبا و کاربرپسندی رو میشه باهاش ساخت .

mohsen_namad
چهارشنبه 01 اردیبهشت 1389, 16:05 عصر
این کد جواب نمی ده چیکار کنم؟

mohsen_namad
چهارشنبه 01 اردیبهشت 1389, 16:32 عصر
ببخشید درست شد فقط میشه قسمت جاوا اسکریپتشو توضیح بدین ؟

mohsen_namad
چهارشنبه 01 اردیبهشت 1389, 16:46 عصر
راستی چرا باید دوبا رو دکمه مورد نظر کلید کنیم تا صفحه مربوط به چاپ بیاد:متفکر:

mbm124
پنج شنبه 02 اردیبهشت 1389, 05:21 صبح
سلام من كريستال ريپورت را پيشنهاد ميكنم
آموزش آن را برايتان گذاشتم ياعلي

zhr.rezae66i
شنبه 28 اردیبهشت 1392, 09:44 صبح
برای این کار کامپوننت هایی هست که به خوبی این کار رو انجام میده.
یعنی شما میخواین از گرید پرینت بگیرید.
از خود کلاس های دات نت میشه استفاده کرد. اما خوب یه سری کاستی ها داره که باید خودتون رفعش کنید.
ببینید اینجا یه نمونه توضیح داده : http://www.codeproject.com/KB/custom-controls/GridViewPrinting.aspx

ضمنا اگه بخوای میتونی از خود جاوااسکریپت برای پرینت صفحه استفاده کنی
از کریستال ریپورت هم میشه برای نمایش و پرینت اطلاعات استفاده کنی.

این هم یه نمونه دیگه که واست میذارم.. آدرس سایت رو هم میذارم تا اگه بخوای کاملتر بخونی.



<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Test</title>
<script type="text/javascript" >

function CallPrint(strid)
{
var prtContent = document.getElementById(strid);
var WinPrint = window.open('print.htm','PrintWindow','letf=0,top= 0,width=800%,height=600,toolbar=1,scrollbars=1,sta tus=1');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
}

</script>
</head>
<body>
<form id="form1" runat="server">

<div id="divPrint">
<asp:GridView ID="GridView1" runat="server" BorderColor="#6600CC" BorderStyle="Solid" BorderWidth="1px" CellPadding="1" ForeColor="#333333"
Width="825px" EmptyDataText="No record found" Height="137px" Visible="False" AllowSorting="True" ShowFooter="True" >

</asp:GridView>
</div>
<asp:Button ID="Button1" runat="server" Text="Print" Visible="False" Width="159px" />
</form>
</body>
</html>


http://forums.ASP.NET/p/880978/3207465.aspx#3207465


این کد برای من راحت قابل استفادس اما مشکل اینه که در صفحات 1 به بعد دیگه عنوان گیرید نمیاد. چطوری ی هدر به صفحات بعدی اضافه کنم؟