using System;
|
using System.Data;
|
using System.IO;
|
using DevExpress.Utils.VisualEffects;
|
using DevExpress.XtraEditors;
|
using FastReport;
|
using Gs.DevApp.ToolBox;
|
using Newtonsoft.Json;
|
using Newtonsoft.Json.Linq;
|
|
namespace Gs.DevApp.DevFrm.Rpt
|
{
|
public partial class RptPreview : XtraForm
|
{
|
private readonly string _rptParameter;
|
private readonly string _rptGuid;
|
public RptPreview(string strGuid, string rptParameter)
|
{
|
_rptParameter = rptParameter;
|
_rptGuid = strGuid;
|
InitializeComponent();
|
Text = _rptParameter + "报表查看:";
|
getRptData();
|
}
|
|
/// <summary>
|
/// 读取报表数据
|
/// </summary>
|
private void getRptData()
|
{
|
var _obj = new
|
{
|
rptParameter = _rptParameter,
|
guid = _rptGuid,
|
isDesign = 0
|
};
|
try
|
{
|
var strJson = UtilityHelper.HttpPost("", "Report/GetRptData",
|
JsonConvert.SerializeObject(_obj));
|
var _job = JObject.Parse(strJson);
|
var rtnCode = _job["rtnCode"].ToString();
|
if (int.Parse(rtnCode) > 0)
|
{
|
//模板
|
var report = new 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"]) array1.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"]);
|
}
|
}
|
catch (Exception ex)
|
{
|
MsgHelper.Warning("提示:" + ex.Message);
|
}
|
}
|
}
|
}
|