| | |
| | | |
| | | using DevExpress.XtraEditors; |
| | | using Gs.DevApp.Entity; |
| | | using DevExpress.XtraEditors; |
| | | using Gs.DevApp.ToolBox; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Drawing; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Windows.Forms; |
| | | using DevExpress.XtraBars.Navigation; |
| | | using DevExpress.XtraTab; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Data; |
| | | using System.Drawing; |
| | | using System.Reflection; |
| | | using System.Windows.Forms; |
| | | using Gs.DevApp.ToolBox; |
| | | using Newtonsoft.Json; |
| | | using Gs.DevApp.Entity; |
| | | using Newtonsoft.Json.Linq; |
| | | using System; |
| | | using System.Data; |
| | | using System.IO; |
| | | |
| | | namespace Gs.DevApp.DevFrm.Rpt |
| | | { |
| | | public partial class RptPreview : DevExpress.XtraEditors.XtraForm |
| | | public partial class RptPreview : XtraForm |
| | | { |
| | | private string _reportType; |
| | | public RptPreview(string reportType) |
| | | private readonly string _rptParameter; |
| | | private readonly string _rptGuid; |
| | | public RptPreview(string strGuid, string rptParameter) |
| | | { |
| | | _reportType = reportType; |
| | | _rptParameter = rptParameter; |
| | | _rptGuid = strGuid; |
| | | InitializeComponent(); |
| | | getPageList(); |
| | | Text = _rptParameter + "报表查看:"; |
| | | getRptData(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读取报表数据列表 |
| | | /// 读取报表数据 |
| | | /// </summary> |
| | | private void getPageList() |
| | | private void getRptData() |
| | | { |
| | | var _obj = new |
| | | { |
| | | reportType = _reportType, |
| | | sortName = "a.userName", |
| | | sortOrder = "asc", |
| | | keyWhere = "" |
| | | rptParameter = _rptParameter, |
| | | guid = _rptGuid, |
| | | isDesign = 0 |
| | | }; |
| | | try |
| | | { |
| | | string strJson = UtilityHelper.HttpPost("", "Report/GetReportList", JsonConvert.SerializeObject(_obj)); |
| | | JObject _job = JObject.Parse(strJson); |
| | | string rtnCode = _job["rtnCode"].ToString(); |
| | | var strJson = UtilityHelper.HttpPost("", "Report/GetRptData", |
| | | JsonConvert.SerializeObject(_obj)); |
| | | var _job = JObject.Parse(strJson); |
| | | var rtnCode = _job["rtnCode"].ToString(); |
| | | if (int.Parse(rtnCode) > 0) |
| | | { |
| | | JArray array = new JArray(); |
| | | foreach (var a in _job["rtnData"]["list"]) |
| | | { |
| | | array.Add(a); |
| | | } |
| | | DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString()); |
| | | DataSet ds = new DataSet(); |
| | | dt.TableName = "Table1"; |
| | | ds.Tables.Add(dt); |
| | | FastReport.Report report = new FastReport.Report(); |
| | | byte[] buffer = (byte[])_job["rtnData"]["reportData"]; |
| | | using (MemoryStream Stream = new MemoryStream(buffer)) |
| | | //模板 |
| | | var report = new FastReport.Report(); |
| | | var buffer = (byte[])_job["rtnData"]["reportTemplateData"]; |
| | | using (var Stream = new MemoryStream(buffer)) |
| | | { |
| | | report.Load(Stream); |
| | | } |
| | | //主表 |
| | | var array = new JArray(); |
| | | foreach (var a in _job["rtnData"]["zb"]) array.Add(a); |
| | | var _zb = JsonConvert.DeserializeObject<DataTable>(array.ToString()); |
| | | _zb.TableName = "zb"; |
| | | //明细表1 |
| | | var array1 = new JArray(); |
| | | foreach (var a in _job["rtnData"]["mx1"]) array1.Add(a); |
| | | var _mx1 = JsonConvert.DeserializeObject<DataTable>(array1.ToString()); |
| | | _mx1.TableName = "mx1"; |
| | | //明细表2 |
| | | var array2 = new JArray(); |
| | | foreach (var a in _job["rtnData"]["mx2"]) array2.Add(a); |
| | | var _mx2 = JsonConvert.DeserializeObject<DataTable>(array2.ToString()); |
| | | _mx2.TableName = "mx2"; |
| | | //加到数据集中 |
| | | var ds = new DataSet(); |
| | | ds.Tables.Add(_zb); |
| | | ds.Tables.Add(_mx1); |
| | | ds.Tables.Add(_mx2); |
| | | report.RegisterData(ds); |
| | | report.Preview = previewControl1; |
| | | report.Prepare(); |
| | | report.ShowPrepared(); |
| | | } |
| | | else |
| | | { |
| | | MsgHelper.Warning("提示:" + _job["rtnMsg"]); |
| | | this.Close(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | ToolBox.MsgHelper.Warning("提示:" + ex.Message); |
| | | MsgHelper.Warning("提示:" + ex.Message); |
| | | } |
| | | } |
| | | } |