From fbe33a615f1c4e798a0f8e58163e68c3ce789614 Mon Sep 17 00:00:00 2001
From: lg <123456>
Date: 星期四, 20 十一月 2025 10:17:49 +0800
Subject: [PATCH] 初始化标准版
---
DevApp/Gs.DevApp/UserControl/UcBtnPrint.cs | 226 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 214 insertions(+), 12 deletions(-)
diff --git a/DevApp/Gs.DevApp/UserControl/UcBtnPrint.cs b/DevApp/Gs.DevApp/UserControl/UcBtnPrint.cs
index 3c712ab..4301f3d 100644
--- a/DevApp/Gs.DevApp/UserControl/UcBtnPrint.cs
+++ b/DevApp/Gs.DevApp/UserControl/UcBtnPrint.cs
@@ -1,8 +1,14 @@
锘縰sing Gs.DevApp.DevFrm.Rpt;
+using Gs.DevApp.Entity;
using Gs.DevApp.ToolBox;
using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
using System;
+using System.Data;
+using System.Drawing;
+using System.IO;
using System.Windows.Forms;
+
namespace Gs.DevApp.UserControl
{
@@ -11,13 +17,13 @@
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))
@@ -25,31 +31,105 @@
MsgHelper.ShowError("娌℃湁鎸囧畾鎶ヨ〃鍙傛暟锛岃鑱旂郴鎶�鏈紑鍙戜汉鍛橈紒");
return;
}
- var _bl = false;
- _bl = _ckRptService();
- if (_bl)
+ #region 濡傛灉鏄鎴风殑鍚庣洊鐮�
+ if (rptParameter.Contains("rpt_hgm"))
{
+ var _obj = new
+ {
+ keyType = "瀹㈡埛妯℃澘"
+ };
+ var json = JsonConvert.SerializeObject(_obj);
try
{
- using (Form frm = new RptPreview(guidKey, rptParameter))
+ var strReturn =
+ UtilityHelper.HttpPost("", "Report/GetTemplateList", json);
+ ReturnModel<DataTable> dd = UtilityHelper.ReturnToList(strReturn);
+ DataTable dt = dd.rtnData;
+ if (dd.rtnCode > 0)
{
- frm.ShowDialog();
+ // 鍒涘缓鎴栬幏鍙栦竴涓狢ontextMenu瀵硅薄锛堜緥濡備娇鐢–ontextMenuStrip锛�
+ 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)
- {
- }
- return;
+ catch (Exception ex)
+ { }
}
-
- MsgHelper.ShowError("娌℃湁璁捐妯℃澘锛岃鍏堣璁℃ā鏉匡紒");
+ #endregion
+ _print();
};
+ //鎵归噺鎿嶄綔
this.btnAll.Click += (s, e) =>
{
if (btnAllClick != null)
btnAllClick(this, e);
else
return;
+ };
+ //鐩存帴鎵撳嵃
+ this.btnZhiJie.Click += (s, e) =>
+ {
+ if (btnZhiJieClick != null)
+ btnZhiJieClick(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)
+ {
+ // 鍒涘缓鎴栬幏鍙栦竴涓狢ontextMenu瀵硅薄锛堜緥濡備娇鐢–ontextMenuStrip锛�
+ 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());
+ _printZhiJie();
+ };
+ contextMenu.MenuItems.Add(menuItem1);
+ }
+ // 鏄剧ず鑿滃崟鍦ㄦ寜閽殑浣嶇疆
+ contextMenu.Show(btnPrint, new Point(0, btnPrint.Height)); // 璋冩暣绗簩涓弬鏁颁互璋冩暣鑿滃崟鐨勬樉绀轰綅缃�
+ return;
+ }
+ }
+ catch (Exception ex)
+ { }
+ }
+ #endregion
+ _printZhiJie();
};
}
/// <summary>
@@ -79,6 +159,12 @@
/// </summary>
public event EventHandler btnAllClick;
+ /// <summary>
+ /// 鐩存帴鎵撳嵃
+ /// </summary>
+ public event EventHandler btnZhiJieClick;
+
+
private bool _ckRptService()
{
try
@@ -103,5 +189,121 @@
return false;
}
+
+ /// <summary>
+ /// 璁剧疆鎵归噺鎸夐挳鍙鎬�
+ /// </summary>
+ /// <param name="blPiLiang"></param>
+ 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>
+ /// <param name="blPiLiang"></param>
+ public void SetPrintButton(bool blPiLiang)
+ {
+ if (blPiLiang == true)
+ {
+ this.lay1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
+ this.lay2.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
+ }
+ else
+ {
+ this.lay1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
+ this.lay2.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("娌℃湁璁捐妯℃澘锛岃鍏堣璁℃ā鏉匡紒");
+ }
+ /// <summary>
+ /// 鐩存帴鎵撳嵃
+ /// </summary>
+ private void _printZhiJie()
+ {
+ var _obj = new
+ {
+ rptParameter = rptParameter,
+ guid = guidKey,
+ 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 FastReport.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"]) array2.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.Print();
+ //2025-10-20鍔犱笂閲婃斁
+ //report.Dispose();
+ //report.ShowPrepared();
+ }
+ else
+ {
+ MsgHelper.ShowError("鎻愮ず锛�" + _job["rtnMsg"]);
+ }
+ }
+ catch (Exception ex)
+ {
+ MsgHelper.ShowError("鎻愮ず锛�" + ex.Message);
+ }
+ }
}
}
--
Gitblit v1.9.3