private void btnSaveReport_Click(object sender, EventArgs e) { try { #region -- 保存报表 -- if (mReportArgs.ReportTemplateID == 0) { ReportRequestArgs args = new ReportRequestArgs(0, mReportArgs.ReportTypeID, mReportArgs.DSDataSource, mReportArgs.RecordDR); this.txtReportPath.Text = ReportHelper.AddNewReport(args, this.txtReportTemplateName.Text); if (!File.Exists(this.txtReportPath.Text)) { throw new Exception("报表文件不存在,无法保存!"); } byte[] bReport = ReportHelper.ConvertToByte(this.txtReportPath.Text); LBDbParameterCollection parms = new LBDbParameterCollection(); parms.Add(new LBParameter("ReportTemplateID", enLBDbType.Int64, 0)); parms.Add(new LBParameter("ReportTemplateName", enLBDbType.String, this.txtReportTemplateName.Text)); parms.Add(new LBParameter("TemplateFileTime", enLBDbType.DateTime, DateTime.Now)); parms.Add(new LBParameter("TemplateSeq", enLBDbType.Int32, 0)); parms.Add(new LBParameter("Description", enLBDbType.String, this.txtDescription.Text)); parms.Add(new LBParameter("TemplateData", enLBDbType.Object, bReport)); parms.Add(new LBParameter("ReportTypeID", enLBDbType.Int64, mReportArgs.ReportTypeID)); parms.Add(new LBParameter("PrinterName", enLBDbType.String, this.txtPrinterName.Text)); parms.Add(new LBParameter("MachineName", enLBDbType.String, LoginInfo.MachineName)); parms.Add(new LBParameter("IsManualPaperType", enLBDbType.Boolean, rbManualPaperType.Checked)); parms.Add(new LBParameter("PaperType", enLBDbType.String, this.txtPaperType.Text)); parms.Add(new LBParameter("IsManualPaperSize", enLBDbType.Boolean, rbManualPaperSize.Checked)); if (this.txtPaperSizeHeight.Text != "") { parms.Add(new LBParameter("PaperSizeHeight", enLBDbType.Int32, this.txtPaperSizeHeight.Text)); } if (this.txtPaperSizeWidth.Text != "") { parms.Add(new LBParameter("PaperSizeWidth", enLBDbType.Int32, this.txtPaperSizeWidth.Text)); } parms.Add(new LBParameter("IsPaperTransverse", enLBDbType.Boolean, rbPaperTransverse.Checked)); DataSet dsReturn; Dictionary <string, object> dictResult; ExecuteSQL.CallSP(12000, parms, out dsReturn, out dictResult); if (dictResult.ContainsKey("ReportTemplateID")) { if (dictResult["ReportTemplateID"] != null) { mReportArgs.ReportTemplateID = Convert.ToInt64(dictResult["ReportTemplateID"]); } } } else { string strReportFile; bool bolExists = ReportHelper.RefleshClientReport(mReportArgs.ReportTemplateID, out strReportFile); byte[] bReport = null; DateTime dtTemplateFileTime = DateTime.Now; if (bolExists) { bReport = ReportHelper.ConvertToByte(strReportFile); dtTemplateFileTime = File.GetLastWriteTime(strReportFile); } else { throw new Exception("报表文件不存在,无法保存!"); } LBDbParameterCollection parms = new LBDbParameterCollection(); parms.Add(new LBParameter("ReportTemplateID", enLBDbType.Int64, mReportArgs.ReportTemplateID)); parms.Add(new LBParameter("ReportTemplateName", enLBDbType.String, this.txtReportTemplateName.Text)); parms.Add(new LBParameter("TemplateFileTime", enLBDbType.DateTime, dtTemplateFileTime)); parms.Add(new LBParameter("TemplateSeq", enLBDbType.Int32, 0)); parms.Add(new LBParameter("Description", enLBDbType.String, this.txtDescription.Text)); parms.Add(new LBParameter("TemplateData", enLBDbType.Object, bReport)); parms.Add(new LBParameter("ReportTypeID", enLBDbType.Int64, mReportArgs.ReportTypeID)); parms.Add(new LBParameter("PrinterName", enLBDbType.String, this.txtPrinterName.Text)); parms.Add(new LBParameter("MachineName", enLBDbType.String, LoginInfo.MachineName)); parms.Add(new LBParameter("IsManualPaperType", enLBDbType.Boolean, rbManualPaperType.Checked)); parms.Add(new LBParameter("PaperType", enLBDbType.String, this.txtPaperType.Text)); parms.Add(new LBParameter("IsManualPaperSize", enLBDbType.Boolean, rbManualPaperSize.Checked)); if (this.txtPaperSizeHeight.Text != "") { parms.Add(new LBParameter("PaperSizeHeight", enLBDbType.Int32, this.txtPaperSizeHeight.Text)); } if (this.txtPaperSizeWidth.Text != "") { parms.Add(new LBParameter("PaperSizeWidth", enLBDbType.Int32, this.txtPaperSizeWidth.Text)); } parms.Add(new LBParameter("IsPaperTransverse", enLBDbType.Boolean, rbPaperTransverse.Checked)); DataSet dsReturn; Dictionary <string, object> dictResult; ExecuteSQL.CallSP(12001, parms, out dsReturn, out dictResult); } #endregion -- 保存报表 -- LB.WinFunction.LBCommonHelper.ShowCommonMessage("保存成功!"); } catch (Exception ex) { LB.WinFunction.LBCommonHelper.DealWithErrorMessage(ex); } }