1
lu
2024-10-24 ada663bd38bc0c46d10d3a5955289a5ede463a2d
DevApp/Gs.DevApp/DevFrm/Rpt/RptPreview.cs
@@ -10,49 +10,67 @@
{
    public partial class RptPreview : DevExpress.XtraEditors.XtraForm
    {
        private string _rptService;
        public RptPreview(string rptService)
        private string _rptParameter;
        public RptPreview(string rptParameter)
        {
            _rptService = rptService;
            _rptParameter = rptParameter;
            InitializeComponent();
            this.Text = _rptService + "报表查看:";
            this.Text = _rptParameter + "报表查看:";
            getRptData();
        }
        /// <summary>
        /// 读取报表数据列表
        /// 读取报表数据
        /// </summary>
        private void getRptData()
        {
            var _obj = new
            {
                reportType = this._rptService,
                sortName = "a.userName asc,a.roleName asc,menuActionPath ",
                sortOrder = "asc",
                keyWhere = ""
                rptParameter = this._rptParameter,
            };
            try
            {
                string strJson = UtilityHelper.HttpPost("", "Report/" + _rptService, JsonConvert.SerializeObject(_obj));
                string strJson = UtilityHelper.HttpPost("", "Report/GetRptData", JsonConvert.SerializeObject(_obj));
                JObject _job = JObject.Parse(strJson);
                string rtnCode = _job["rtnCode"].ToString();
                if (int.Parse(rtnCode) > 0)
                {
                    JArray array = new JArray();
                    foreach (var a in _job["rtnData"]["listM1"])
                    {
                        array.Add(a);
                    }
                    DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
                    DataSet ds = new DataSet();
                    dt.TableName = "Table2";
                    ds.Tables.Add(dt);
                    //模板
                    FastReport.Report report = new FastReport.Report();
                    byte[] buffer = (byte[])_job["rtnData"]["reportData"];
                    byte[] buffer = (byte[])_job["rtnData"]["reportTemplateData"];
                    using (MemoryStream Stream = new MemoryStream(buffer))
                    {
                        report.Load(Stream);
                    }
                    //主表
                    JArray array = new JArray();
                    foreach (var a in _job["rtnData"]["zb"])
                    {
                        array.Add(a);
                    }
                    DataTable _zb = JsonConvert.DeserializeObject<DataTable>(array.ToString());
                    _zb.TableName = "zb";
                    //明细表1
                    JArray array1 = new JArray();
                    foreach (var a in _job["rtnData"]["mx1"])
                    {
                        array1.Add(a);
                    }
                    DataTable _mx1 = JsonConvert.DeserializeObject<DataTable>(array1.ToString());
                    _mx1.TableName = "mx1";
                    //明细表2
                    JArray array2 = new JArray();
                    foreach (var a in _job["rtnData"]["mx2"])
                    {
                        array1.Add(a);
                    }
                    DataTable _mx2 = JsonConvert.DeserializeObject<DataTable>(array2.ToString());
                    _mx2.TableName = "mx2";
                    //加到数据集中
                    DataSet ds = new DataSet();
                    ds.Tables.Add(_zb);
                    ds.Tables.Add(_mx1);
                    ds.Tables.Add(_mx2);
                    report.RegisterData(ds);
                    report.Preview = previewControl1;
                    report.Prepare();