记得以前用JDE ERP的时候,通过过设置参数自动跑报表。
我现在两个设想:第一,邮件预警也可以采取附件形式,有些情况配合附件 第二,单据审批完后自动保存当时的一份PDF文档。
方法:搭载水晶报表实现
private void Print(string pricingcode) { SqlParameter[] parms = new SqlParameter[1]; parms[0] = new SqlParameter("@PricingCode", SqlDbType.NVarChar, 20); parms[0].Value = pricingcode; DataSet ds = new DataSet(); DABaseAccess db = new DABaseAccess(); ds = db.GetTableByStore("UP_GetQuo", parms).DataSet; if (ds != null) { CrystalDecisions.CrystalReports.Engine.ReportDocument doc = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); string reportPath = Server.MapPath("..\\..\\ERP\\Reports\\Quotation.rpt"); doc.Load(reportPath); doc.SetDataSource(ds.Tables[0]); CrystalReportViewer1.ReportSource = doc; CrystalReportViewer1.DataBind(); string filetype = ""; filetype = "PDF"; string contenttype = ""; //string myfilename = Request.MapPath(".\\") + Session.SessionID + "." + filetype;//目录地址 注意反义字符 string myfilename = "E:\\OA\\uploads\\quotation\\"+System .DateTime.Now .Year +"\\"+ pricingcode + "报价单" + Baseclass.getLongData().ToString() + "." + filetype; CrystalDecisions.Shared.DiskFileDestinationOptions mydiskoptions = new CrystalDecisions.Shared.DiskFileDestinationOptions(); mydiskoptions.DiskFileName = myfilename; CrystalDecisions.Shared.ExportOptions myExportOptions = new ExportOptions();//oCR.ExportOptions; myExportOptions.DestinationOptions = mydiskoptions; myExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile; contenttype = "application/pdf"; myExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat; doc.Export(myExportOptions); //输出报表 到服务器端的制定路径 //Response.ClearContent(); //清空页面 //Response.ClearHeaders(); //Response.ContentType = contenttype; //Response.WriteFile(myfilename);//直接写入页面,页面平铺 可实现在线阅读功能 //Response.Flush(); //Response.Close(); } else { JScript.Alert("没有找到记录", this.Page); } }