请有相关Crystal Report开发经验的朋友指点一下关于Web方式下的水晶报表打印以及导出问题,先谢过了。。
解决方案 »
- webserver的“text/html;charset=utf-8”,但应为“text/xml”错误
- 求高手看下这段正则表达式
- 熟悉DataGrid的朋友进来瞅瞅
- VS2008的项目怎么转到VS2005里面呢?
- 菜鸟求教:页面上改变TextBox内容后为何无法保存?
- 求自动运行程序的方法
- vs2005中控件的随意拖放
- ADO.net 初级问题!急
- 母版页应用中 我在内容页上添加了gridview控件,在内容页的load事件中 绑定后缺获取不到列数
- ajax 问题求大神帮我看看。
- **********关于把普通音乐格式转换成彩铃供下载问题******************
- 谁帮我用正则表达式替换一下???
http://www.yesky.com/20020618/1616443.shtml
http://www.yesky.com/20020618/1616438.shtml
自写编码:
在页面添加html的button控件,onclick事件执行下面的函数:
function print()
{
__doPostBack('crptv:_ctl2:_ctl3',''); //这个放心使用,可以用的(reportViewer是你的报表的名称,根据实际情况改之;
}
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
using System.Web;
namespace GESoft.FDJ.BusModules.Common.Business
{
/// <summary>
///------------------------------------------------------------------------
///CrystalPrint is used to Export Print and Server Print.It has Static method
///ExportPrint and ServerPrint.
///[email protected]
///----------------------------write by b0b0 2004-9-14----------------------
/// </summary>
//Export Format Enumerator
public enum ExportFormat
{
Word=0,
PDF=1,
Excel=2 }
public class CrystalPrint
{
//Export Print
/// <summary>
/// Export word or PDF to print.
/// </summary>
/// <param name="reports">what u used ReportsDocument</param>
/// <param name="page">what u user web form </param>
/// <param name="exportFormat">what u want export format </param>
static public void ExportPrint(ref ReportDocument reports,System.Web.UI.Page page,ExportFormat format)
{
string strTempDirectory=System.Configuration.ConfigurationSettings.AppSettings["TempDirectory"];
CrystalDecisions.Shared.ExportOptions myExportsOptions;
//reports.Load(@"C:\Inetpub\wwwroot\zhxt\PreSellLinence\CRGrantCertificatePrint.rpt");
myExportsOptions=reports.ExportOptions;
CrystalDecisions.Shared.DiskFileDestinationOptions myDiskFileOptions;
myDiskFileOptions=new CrystalDecisions.Shared.DiskFileDestinationOptions();
string myExportFileName="";
if(format==ExportFormat.Word)
{
myExportsOptions.ExportFormatType=ExportFormatType.WordForWindows;
myExportFileName=strTempDirectory.Trim()+ page.Session.SessionID.ToString() +".doc" ;
myDiskFileOptions.DiskFileName=myExportFileName;
myExportsOptions.DestinationOptions=myDiskFileOptions;
myExportsOptions.ExportDestinationType=CrystalDecisions.Shared.ExportDestinationType.DiskFile;
reports.Export();
page.Response.ClearContent();
page.Response.ClearHeaders();
page.Response.ContentType="application/msword";
}
//Rewrite a bug that Print PDF Invalible
//-----b0b0----2004-9-16---------------
else if(format==ExportFormat.PDF)
{
myExportsOptions.ExportFormatType=ExportFormatType.PortableDocFormat;
myExportFileName=strTempDirectory.Trim()+ page.Session.SessionID.ToString() +".pdf" ;
myDiskFileOptions.DiskFileName=myExportFileName;
myExportsOptions.DestinationOptions=myDiskFileOptions;
myExportsOptions.ExportDestinationType=CrystalDecisions.Shared.ExportDestinationType.DiskFile;
reports.Export();
page.Response.ClearContent();
page.Response.ClearHeaders();
page.Response.ContentType="application/pdf";
}
else if(format==ExportFormat.Excel)
{
myExportsOptions.ExportFormatType=ExportFormatType.Excel;
myExportFileName=strTempDirectory.Trim()+ page.Session.SessionID.ToString() +".xls" ;
myDiskFileOptions.DiskFileName=myExportFileName;
myExportsOptions.DestinationOptions=myDiskFileOptions;
myExportsOptions.ExportDestinationType=CrystalDecisions.Shared.ExportDestinationType.DiskFile;
reports.Export();
page.Response.ClearContent();
page.Response.ClearHeaders();
page.Response.ContentType="application/msexcel"; } page.Response.WriteFile(myExportFileName);
page.Response.Flush();
page.Response.Close();
System.IO.File.Delete(myExportFileName);
} /// <summary>
/// Server Print
/// </summary>
/// <param name="reports">What you used ReportDocument</param>
static public void ServerPrint(ref ReportDocument reports)
{ string strPrinterName=System.Configuration.ConfigurationSettings.AppSettings["ServerPrinter"];
reports.PrintOptions.PrinterName=strPrinterName.Trim();
reports.PrintToPrinter(1,true,1,1); } }}
在javascript中写:
window.print()