using Gs.DevApp.DevFrm.Rpt;
using Gs.DevApp.DevFrm.Sys;
using Gs.DevApp.ToolBox;
using Newtonsoft.Json;
using System;
using System.Windows.Forms;
namespace Gs.DevApp.UserControl
{
public partial class UcBtnPrint : DevExpress.XtraEditors.XtraUserControl
{
public UcBtnPrint()
{
InitializeComponent();
btnReport.Click += BtnReport_ItemClick;
btnDesign.Click += BtnDesign_ItemClick;
}
///
/// 关键字,一般是主键
///
public string guidKey { get; set; }
///
/// 报表,在数据库中要唯一,如:存储过程名{入参1名|入参值,入参2名|入参值}
///
public string rptParameter { get; set; }
///
/// 设置报表
///
public event EventHandler btnDesignClick;
///
/// 报表
///
public event EventHandler btnReportClick;
private void BtnReport_ItemClick(object sender, EventArgs e)
{
if (btnReportClick != null)
btnReportClick(this, e);
else
return;
if (rptParameter == "return false")
return;
if (string.IsNullOrEmpty(rptParameter))
{
MsgHelper.ShowError("没有指定报表参数,请联系技术开发人员!");
return;
}
var _bl = false;
_bl = _ckRptService();
if (_bl)
{
try
{
using (Form frm = new RptPreview(guidKey, rptParameter))
{
frm.ShowDialog();
}
}
catch (Exception)
{
}
return;
}
MsgHelper.ShowError("没有设计模板,请先设计模板!");
}
private void BtnDesign_ItemClick(object sender, EventArgs e)
{
if (btnDesignClick != null)
btnDesignClick(this, e);
else
return;
if (string.IsNullOrEmpty(rptParameter))
{
MsgHelper.ShowError("没有指定报表参数,请联系技术开发人员!");
return;
}
var _bl = false;
_bl = _ckRptService();
//如果已经有模板了,直接打开设置模板
if (_bl)
{
var frm = new EasyRptDesign(guidKey, rptParameter);
frm.ShowDialog();
return;
}
//否则向导设计模板
var rptWizard = new ShowRptWizard(guidKey, rptParameter);
rptWizard.ShowDialog();
}
private bool _ckRptService()
{
try
{
var _obj = new
{
guid = guidKey,
rptParameter,
isDesign = 1
};
var strJson = UtilityHelper.HttpPost("", "Report/GetRptData",
JsonConvert.SerializeObject(_obj));
var _rtn = UtilityHelper.ReturnToDynamic(strJson);
if (_rtn.rtnCode > 0) return true;
return false;
}
catch (Exception ex)
{
MsgHelper.Warning("提示:" + ex.Message);
return true;
}
return false;
}
}
}