using Gs.DevApp.ToolBox;
using Newtonsoft.Json;
using System;
using System.Data;
using Newtonsoft.Json.Linq;
using System.IO;
namespace Gs.DevApp.DevFrm.Rpt
{
public partial class RptPreview : DevExpress.XtraEditors.XtraForm
{
private string _rptParameter;
public RptPreview(string rptParameter)
{
_rptParameter = rptParameter;
InitializeComponent();
this.Text = _rptParameter + "报表查看:";
getRptData();
}
///
/// 读取报表数据
///
private void getRptData()
{
var _obj = new
{
rptParameter = this._rptParameter,
};
try
{
string strJson = UtilityHelper.HttpPost("", "Report/GetRptData", JsonConvert.SerializeObject(_obj));
JObject _job = JObject.Parse(strJson);
string rtnCode = _job["rtnCode"].ToString();
if (int.Parse(rtnCode) > 0)
{
//模板
FastReport.Report report = new FastReport.Report();
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(array.ToString());
_zb.TableName = "zb";
//明细表1
JArray array1 = new JArray();
foreach (var a in _job["rtnData"]["mx1"])
{
array1.Add(a);
}
DataTable _mx1 = JsonConvert.DeserializeObject(array1.ToString());
_mx1.TableName = "mx1";
//明细表2
JArray array2 = new JArray();
foreach (var a in _job["rtnData"]["mx2"])
{
array1.Add(a);
}
DataTable _mx2 = JsonConvert.DeserializeObject(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();
report.ShowPrepared();
}
else
{
ToolBox.MsgHelper.Warning("提示:" + _job["rtnMsg"].ToString());
}
}
catch (Exception ex)
{
ToolBox.MsgHelper.Warning("提示:" + ex.Message);
}
}
}
}