/// <summary> /// 处理报表打印 /// </summary> /// <param name="tableNameStr">数据表名</param> /// <param name="bindingDataSet">绑定的DataSet</param> /// <param name="paraList">参数列表</param> /// <param name="handleType">处理类型:1 预览 2 打印 3 设计</param> public void XtraReport_Handle(string tableNameStr, DataSet bindingDataSet, List <Parameter> paraList, int handleType) { FrmDocumentTempletDAO docDAO = new FrmDocumentTempletDAO(); DataTable docTempletTable = docDAO.QueryDocTemplet(tableNameStr); if (docTempletTable.Rows.Count == 0) { //MessageHandler.ShowMessageBox("未查询到当前单据模板的信息记录,操作错误。"); MessageHandler.ShowMessageBox(f.tsmiWcxddq.Text); return; } string path = DataTypeConvert.GetString(docTempletTable.Rows[0]["DocPath"]) + DataTypeConvert.GetString(docTempletTable.Rows[0]["DocFileName"]); string docVerStr = DataTypeConvert.GetString(docTempletTable.Rows[0]["DocVersion"]); string iniPath = System.Windows.Forms.Application.StartupPath + "\\Report\\DocTemplet.ini"; string sectionStr = "DocTemplet"; FileHandler fileHandler = new FileHandler(); if (File.Exists(path)) { if (File.Exists(iniPath)) { string localVerStr = fileHandler.IniReadValue(iniPath, sectionStr, tableNameStr); if (localVerStr != docVerStr && handleType != 3) { Byte[] fileByte = docDAO.QueryDocTemplet_FileByte(tableNameStr); fileHandler.ByteArrayToFile(fileByte, path); fileHandler.IniWriteValue(iniPath, sectionStr, tableNameStr, docVerStr); } } else { Byte[] fileByte = docDAO.QueryDocTemplet_FileByte(tableNameStr); fileHandler.ByteArrayToFile(fileByte, path); fileHandler.IniWriteValue(iniPath, sectionStr, tableNameStr, docVerStr); } } else { Byte[] fileByte = docDAO.QueryDocTemplet_FileByte(tableNameStr); fileHandler.ByteArrayToFile(fileByte, path); fileHandler.IniWriteValue(iniPath, sectionStr, tableNameStr, docVerStr); } XtraReport report = new XtraReport(); report.LoadLayout(path); report.DataSource = bindingDataSet; if (paraList != null) { foreach (Parameter para in paraList) { try { report.Parameters[para.Name].Value = para.Value; } catch { report.Parameters.Add(para); } } } report.RequestParameters = false; report.CreateDocument(); ReportPrintTool rptPrintTool = new ReportPrintTool(report); PrintingSystemBase prtSysBase = rptPrintTool.PrintingSystem; prtSysBase.SetCommandVisibility(new PrintingSystemCommand[] { //PrintingSystemCommand.Background, //PrintingSystemCommand.ClosePreview, //PrintingSystemCommand.Customize, //PrintingSystemCommand.DocumentMap, //PrintingSystemCommand.EditPageHF, //PrintingSystemCommand.ExportCsv, //PrintingSystemCommand.ExportFile, //PrintingSystemCommand.ExportGraphic, //PrintingSystemCommand.ExportHtm, //PrintingSystemCommand.ExportMht, //PrintingSystemCommand.ExportPdf, //PrintingSystemCommand.ExportRtf, //PrintingSystemCommand.ExportTxt, //PrintingSystemCommand.ExportXls, //PrintingSystemCommand.ExportXlsx, //PrintingSystemCommand.ExportXps, //PrintingSystemCommand.File, //PrintingSystemCommand.FillBackground , //PrintingSystemCommand.Find, //PrintingSystemCommand.HandTool, //PrintingSystemCommand.Magnifier, //PrintingSystemCommand.MultiplePages, //PrintingSystemCommand.Open, //PrintingSystemCommand.PageLayout, //PrintingSystemCommand.PageLayoutContinuous, //PrintingSystemCommand.PageMargins, //PrintingSystemCommand.PageOrientation, //PrintingSystemCommand.PageSetup, //PrintingSystemCommand.PaperSize, PrintingSystemCommand.Parameters, //PrintingSystemCommand.Pointer, //PrintingSystemCommand.Print, //PrintingSystemCommand.PrintDirect , //PrintingSystemCommand.Save, //PrintingSystemCommand.SendCsv, //PrintingSystemCommand.SendFile, //PrintingSystemCommand.SendGraphic, //PrintingSystemCommand.SendMht, //PrintingSystemCommand.SendPdf, //PrintingSystemCommand.SendRtf, //PrintingSystemCommand.SendTxt, //PrintingSystemCommand.SendXls, //PrintingSystemCommand.SendXlsx, //PrintingSystemCommand.SendXps, PrintingSystemCommand.SubmitParameters, //PrintingSystemCommand.View, //PrintingSystemCommand.Watermark }, DevExpress.XtraPrinting.CommandVisibility.None); switch (handleType) { case 1: XtraReport_Preview(report); break; case 2: XtraReport_Print(report); break; case 3: XtraReport_Designer(report, path); break; } }