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 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; }; } /// /// 关键字,一般是主键 /// public string guidKey { get; set; } /// /// 批量操作时的关键字:托板码 /// public string allClickKey { get; set; } /// /// 报表,在数据库中要唯一,如:存储过程名{入参1名|入参值,入参2名|入参值} /// public string rptParameter { get; set; } /// /// 打印 /// public event EventHandler btnPrintClick; /// /// 批量操作 /// 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; } /// /// /// 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("没有设计模板,请先设计模板!"); } } }