using DevExpress.XtraEditors; using FastReport; using Gs.DevApp.Entity; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Gs.DevApp.DevFrm.Sys { public partial class EasyRpt : DevExpress.XtraEditors.XtraForm { private string _reportType; public EasyRpt(string reportType) { _reportType = reportType; InitializeComponent(); Report report = new Report(); DataTable RptRow = new DataTable(); var _obj = new { reportType = _reportType, }; try { string strJson = UtilityHelper.HttpPost("", "Report/GetTemplate", JsonConvert.SerializeObject(_obj)); ReturnModel _rtn = ToolBox.UtilityHelper.GetDataByJson(strJson); if (_rtn.rtnCode > 0) { dynamic dy = _rtn.rtnData; byte[] buffer = (byte[])dy.reportData; using (MemoryStream Stream = new MemoryStream(buffer)) { report.Load(Stream); } } else ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg); } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } designerControl1.Report = report; designerControl1.RefreshLayout(); panel2.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) { MemoryStream ms = new MemoryStream(); designerControl1.Report.Save(ms); byte[] dddd = ms.ToArray(); var _obj = new { rptType = _reportType, rptData = dddd, }; try { string strJson = UtilityHelper.HttpPost("", "Report/EdtTemplate", JsonConvert.SerializeObject(_obj)); ReturnModel _rtn = ToolBox.UtilityHelper.GetDataByJson(strJson); ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnData.outMsg); } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } ms.Dispose(); 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; } } }