直接打印datagrid里的数据的问题( winform) _ 有用过打印datagrid的朋友吗。winform 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://community.csdn.net/Expert/topic/3204/3204925.xml?temp=.5819818 我那个组件就是专门为打印DataGrid,DataTable等动态数据源写的,非常好用啊. 不能直接用print preview中的打印按钮。要用程式中的打印按钮。具体原因要考究vs.net printpreviewdialog的工作机制了。 直接使用CrystalReportView来显示就有这个问题,后来我把水晶报表导出为pdf格式,再用ie打开该pdf文件就正常了,而且还解决了打印问题,水晶报表的打印方法是用于服务器的,在客户端不行。下面函数实现了导出pdf或word文件并在ie中显示,其中CryReport是我做的水晶报表文件名,string OptionStr是操作字符,可选"Portable Document (PDF)"和"MS Word (DOC)"调用方式为ExportReport(水晶报表实例,操作字符)private void ExportReport(CryReport Report,string OptionStr) { string ExportPath; ExportPath = Request.PhysicalApplicationPath + "Exported\\"; if (Directory.Exists(ExportPath) == false) Directory.CreateDirectory(Request.PhysicalApplicationPath + "Exported\\"); ReportDocument crReportDocument = (ReportDocument)Report; DiskFileDestinationOptions crDiskFileDestinationOptions = new DiskFileDestinationOptions(); ExportOptions crExportOptions = crReportDocument.ExportOptions; switch(OptionStr) { case "Portable Document (PDF)":crDiskFileDestinationOptions.DiskFileName = ExportPath + "PortableDoc.pdf";crExportOptions.DestinationOptions = crDiskFileDestinationOptions; crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile; crExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat; break; case "MS Word (DOC)": crDiskFileDestinationOptions.DiskFileName = ExportPath + "Word.doc"; crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;crExportOptions.ExportFormatType = ExportFormatType.WordForWindows;crExportOptions.DestinationOptions = crDiskFileDestinationOptions; break; } try { // Export the report crReportDocument.Export(); crReportDocument.Close(); Response.ClearContent(); Response.ClearHeaders(); switch(OptionStr) { case "Portable Document (PDF)": Response.ContentType="application/pdf"; Response.WriteFile(ExportPath + "PortableDoc.pdf"); break; case "MS Word (DOC)": Response.ContentType="application/msword"; Response.WriteFile(ExportPath + "Word.doc"); break; } Response.Flush(); Response.Close(); } catch (Exception err) { Response.Write("<BR>"); Response.Write(err.Message.ToString()); }} 没办法,只能先导到excel啦,问题解决 如何更快完成软件开发 C#里如何实现在messagbox中加入文本框? 菜鸟求救 如何调用本地收藏夹收藏的网址前面的那个小图标? 求助C#获取字符串方法 我用的PDA带有红外,但不知道能不能用它当作串口来发送数据(485通讯)(寻找 欺世盗名来灌水 yangyzqo) VC++.NET 2003托管MDI程序中子窗体如何访问父窗体? winForm中DataGrid中cell和header显示图片 一个服务端如何向多个客户端发送消息,也能接收多个客户端发来的消息 用wmi怎么关机啊? foxpro和sqlserver之间导数据的问题 GDI+
{
string ExportPath;
ExportPath = Request.PhysicalApplicationPath + "Exported\\";
if (Directory.Exists(ExportPath) == false) Directory.CreateDirectory(Request.PhysicalApplicationPath + "Exported\\");
ReportDocument crReportDocument = (ReportDocument)Report;
DiskFileDestinationOptions crDiskFileDestinationOptions = new DiskFileDestinationOptions();
ExportOptions crExportOptions = crReportDocument.ExportOptions; switch(OptionStr)
{
case "Portable Document (PDF)":
crDiskFileDestinationOptions.DiskFileName = ExportPath + "PortableDoc.pdf";
crExportOptions.DestinationOptions = crDiskFileDestinationOptions;
crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
crExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
break;
case "MS Word (DOC)":
crDiskFileDestinationOptions.DiskFileName = ExportPath + "Word.doc";
crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
crExportOptions.ExportFormatType = ExportFormatType.WordForWindows;
crExportOptions.DestinationOptions = crDiskFileDestinationOptions;
break;
}
try
{
// Export the report
crReportDocument.Export();
crReportDocument.Close();
Response.ClearContent();
Response.ClearHeaders();
switch(OptionStr)
{
case "Portable Document (PDF)":
Response.ContentType="application/pdf";
Response.WriteFile(ExportPath + "PortableDoc.pdf");
break;
case "MS Word (DOC)": Response.ContentType="application/msword";
Response.WriteFile(ExportPath + "Word.doc");
break;
} Response.Flush();
Response.Close();
}
catch (Exception err)
{
Response.Write("<BR>");
Response.Write(err.Message.ToString());
}
}