using DevExpress.XtraEditors; using FastReport.Design; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using System; using System.Data; using System.IO; using System.Windows.Forms; namespace Gs.DevApp.DevFrm.Sys { public partial class EasyRptDesign : XtraForm { private readonly string _rptParameter; private readonly string _rptGuid; public EasyRptDesign(string strGuid, string rptParameter) { _rptGuid = strGuid; _rptParameter = rptParameter; InitializeComponent(); Text = _rptParameter + "报表设计:zb为主表,mx1明细表1,mx2为明细表2"; var report = new FastReport.Report(); var RptRow = new DataTable(); var _obj = new { rptParameter = _rptParameter, guid = _rptGuid, isDesign = 1 }; try { var strJson = UtilityHelper.HttpPost("", "Report/GetRptData", JsonConvert.SerializeObject(_obj)); var _rtn = UtilityHelper.ReturnToDynamic(strJson); if (_rtn.rtnCode > 0) { var dy = _rtn.rtnData; if (dy.reportTemplateData.ToString().Length > 0) { var buffer = (byte[])dy.reportTemplateData; using (var Stream = new MemoryStream(buffer)) { report.Load(Stream); } } } else { MsgHelper.Warning("提示:" + _rtn.rtnMsg); } } catch (Exception ex) { MsgHelper.Warning("提示:" + ex.Message); } designerControl1.Report = report; designerControl1.RefreshLayout(); sidePanel2.Controls.Add(designerControl1); designerControl1.Dock = DockStyle.Fill; designerControl1.UIStateChanged += designerControl1_UIStateChanged; environmentSettings1.CustomSaveReport += EnvironmentSettings1_CustomSaveReport; environmentSettings1.CustomSaveDialog += EnvironmentSettings1_CustomSaveDialog; } private void EnvironmentSettings1_CustomSaveDialog(object sender, OpenSaveDialogEventArgs e) { } private void EnvironmentSettings1_CustomSaveReport(object sender, OpenSaveReportEventArgs e) { using (var ms = new MemoryStream()) { e.Report.Save(ms); var dddd = ms.ToArray(); var _obj = new { rptParameter = _rptParameter, rptData = dddd }; try { var strJson = UtilityHelper.HttpPost("", "Report/EdtTemplate", JsonConvert.SerializeObject(_obj)); var _rtn = UtilityHelper.ReturnToDynamic(strJson); MsgHelper.Warning("提示:" + _rtn.rtnData.outMsg); } catch (Exception ex) { MsgHelper.Warning("提示:" + ex.Message); } // designerControl1.Report.Dispose(); } } // 设计器ui改变事件 private void designerControl1_UIStateChanged(object sender, EventArgs e) { // btnSave.Enabled = designerControl1.cmdSave.Enabled; // btnUndo.Enabled = designerControl1.cmdUndo.Enabled; // btnRedo.Enabled = designerControl1.cmdRedo.Enabled; } } }