using FastReport; using FastReport.Design.StandardDesigner; using Gs.DevApp.Entity; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Windows.Forms; namespace Gs.DevApp.DevFrm.Sys { public partial class EasyRptDesign : DevExpress.XtraEditors.XtraForm { private string _rptParameter; public EasyRptDesign(string rptParameter) { _rptParameter = rptParameter; InitializeComponent(); this.Text = (_rptParameter + "报表设计:设计时请参考字段说明,建议z开头为主表,m开头为明细表"); Report report = new Report(); DataTable RptRow = new DataTable(); var _obj = new { rptParameter = _rptParameter, }; try { string strJson = UtilityHelper.HttpPost("", "Report/GetTemplate", JsonConvert.SerializeObject(_obj)); ReturnModel _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson); if (_rtn.rtnCode > 0) { dynamic dy = _rtn.rtnData; if (dy.reportData.ToString().Length > 0) { byte[] buffer = (byte[])dy.reportData; using (MemoryStream Stream = new MemoryStream(buffer)) { report.Load(Stream); } var d = dy.reportCol; foreach (var a in d) { listBox1.Items.Add(a); } } } else ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg); } catch (Exception ex) { ToolBox.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, FastReport.Design.OpenSaveDialogEventArgs e) { } private void EnvironmentSettings1_CustomSaveReport(object sender, FastReport.Design.OpenSaveReportEventArgs e) { using (MemoryStream ms = new MemoryStream()) { e.Report.Save(ms); byte[] dddd = ms.ToArray(); var _obj = new { rptParameter = _rptParameter, rptData = dddd, }; try { string strJson = UtilityHelper.HttpPost("", "Report/EdtTemplate", JsonConvert.SerializeObject(_obj)); ReturnModel _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson); ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnData.outMsg); } catch (Exception ex) { ToolBox.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; } } }