using Gs.DevApp.DevFrm.Rpt;
|
using Gs.DevApp.Entity;
|
using Gs.DevApp.ToolBox;
|
using Newtonsoft.Json;
|
using System;
|
using System.Data;
|
using System.Drawing;
|
using System.Windows.Forms;
|
|
|
namespace Gs.DevApp.UserControl
|
{
|
public partial class UcBtnPrint : DevExpress.XtraEditors.XtraUserControl
|
{
|
public UcBtnPrint()
|
{
|
InitializeComponent();
|
this.btnPrint.Click += (s, e) =>
|
{
|
if (btnPrintClick != null)
|
btnPrintClick(this, e);
|
else
|
return;
|
if (rptParameter == "return false")
|
return;
|
if (string.IsNullOrEmpty(rptParameter))
|
{
|
MsgHelper.ShowError("没有指定报表参数,请联系技术开发人员!");
|
return;
|
}
|
#region 如果是客户的
|
if (rptParameter.Contains("rpt_hgm"))
|
{
|
var _obj = new
|
{
|
keyType = "客户模板"
|
};
|
var json = JsonConvert.SerializeObject(_obj);
|
try
|
{
|
var strReturn =
|
UtilityHelper.HttpPost("", "Report/GetTemplateList", json);
|
ReturnModel<DataTable> dd = UtilityHelper.ReturnToList(strReturn);
|
DataTable dt = dd.rtnData;
|
if (dd.rtnCode > 0)
|
{
|
// 创建或获取一个ContextMenu对象(例如使用ContextMenuStrip)
|
ContextMenu contextMenu = new ContextMenu();
|
foreach (DataRow dr in dt.Rows)
|
{
|
MenuItem menuItem1 = new MenuItem(dr["reportType"].ToString() + "【" + dr["reportName"].ToString() + "】");
|
menuItem1.Click += (ss, ee) =>
|
{
|
rptParameter = rptParameter.Replace("rpt_hgm", dr["reportType"].ToString());
|
_print();
|
};
|
contextMenu.MenuItems.Add(menuItem1);
|
}
|
// 显示菜单在按钮的位置
|
contextMenu.Show(btnPrint, new Point(0, btnPrint.Height)); // 调整第二个参数以调整菜单的显示位置
|
return;
|
}
|
}
|
catch (Exception ex)
|
{ }
|
}
|
#endregion
|
|
_print();
|
|
};
|
this.btnAll.Click += (s, e) =>
|
{
|
if (btnAllClick != null)
|
btnAllClick(this, e);
|
else
|
return;
|
};
|
}
|
/// <summary>
|
/// 关键字,一般是主键
|
/// </summary>
|
public string guidKey { get; set; }
|
|
|
/// <summary>
|
/// 批量操作时的关键字:托板码
|
/// </summary>
|
public string allClickKey { get; set; }
|
|
|
/// <summary>
|
/// 报表,在数据库中要唯一,如:存储过程名{入参1名|入参值,入参2名|入参值}
|
/// </summary>
|
public string rptParameter { get; set; }
|
|
/// <summary>
|
/// 打印
|
/// </summary>
|
public event EventHandler btnPrintClick;
|
|
/// <summary>
|
/// 批量操作
|
/// </summary>
|
public event EventHandler btnAllClick;
|
|
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;
|
}
|
|
public void SetPlButton(bool blPiLiang)
|
{
|
if (blPiLiang == true)
|
this.lay3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
|
else
|
this.lay3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
private void _print() {
|
var _bl = false;
|
_bl = _ckRptService();
|
if (_bl)
|
{
|
try
|
{
|
using (Form frm = new RptPreview(guidKey, rptParameter))
|
{
|
frm.ShowDialog();
|
}
|
}
|
catch (Exception)
|
{
|
}
|
return;
|
}
|
MsgHelper.ShowError("没有设计模板,请先设计模板!");
|
}
|
}
|
}
|