From 53c9b6ebb6ed790f4c62150c499e9da74aaa16d2 Mon Sep 17 00:00:00 2001
From: lu <123456>
Date: 星期二, 28 十月 2025 08:14:04 +0800
Subject: [PATCH] 全部打印

---
 DevApp/Gs.DevApp/UserControl/UcBtnPrintAll.Designer.cs          |   59 +++++++
 DevApp/Gs.DevApp/DevFrm/Sales/Frm_SalesReturnNotice.cs          |   44 +++++
 DevApp/Gs.DevApp/UserControl/UcBtnPrintAll.resx                 |  120 +++++++++++++++
 DevApp/Gs.DevApp/DevFrm/Sales/Frm_SalesReturnNotice.Designer.cs |   58 +++++-
 DevApp/Gs.DevApp/UserControl/UcBtnPrintAll.cs                   |  133 ++++++++++++++++
 DevApp/Gs.DevApp/Gs.DevApp.csproj                               |    9 +
 DevApp/Gs.DevApp/App.config                                     |    4 
 DevApp/Gs.DevApp/UserControl/UcBtnPrint.cs                      |    4 
 8 files changed, 414 insertions(+), 17 deletions(-)

diff --git a/DevApp/Gs.DevApp/App.config b/DevApp/Gs.DevApp/App.config
index 432ab84..8cf35bf 100644
--- a/DevApp/Gs.DevApp/App.config
+++ b/DevApp/Gs.DevApp/App.config
@@ -37,8 +37,8 @@
 
 	<appSettings>
 		<!--<add key="webapiurl" value="http://localhost:5263/" />-->
-		<!--<add key="WebApiUrl" value="http://192.168.1.145:8081/" />-->
-		<add key="WebApiUrl" value="http://192.168.1.145:81/" />
+		<add key="WebApiUrl" value="http://192.168.1.145:8081/" />
+		<!--<add key="WebApiUrl" value="http://192.168.1.145:81/" />-->
 		<add key="LogPath" value="logs" />
 		<add key="ProductName" value="G-MES V2.0" />
 		<add key="PageSize" value="50" />
diff --git a/DevApp/Gs.DevApp/DevFrm/Sales/Frm_SalesReturnNotice.Designer.cs b/DevApp/Gs.DevApp/DevFrm/Sales/Frm_SalesReturnNotice.Designer.cs
index bb00cac..01bae6a 100644
--- a/DevApp/Gs.DevApp/DevFrm/Sales/Frm_SalesReturnNotice.Designer.cs
+++ b/DevApp/Gs.DevApp/DevFrm/Sales/Frm_SalesReturnNotice.Designer.cs
@@ -86,6 +86,7 @@
             this.xtraTabPage2 = new DevExpress.XtraTab.XtraTabPage();
             this.splitMx1 = new DevExpress.XtraEditors.SplitContainerControl();
             this.layoutMx1 = new DevExpress.XtraLayout.LayoutControl();
+            this.ucBtnPrintAll1 = new Gs.DevApp.UserControl.UcBtnPrintAll();
             this.btnSelect = new DevExpress.XtraEditors.SimpleButton();
             this.txt_returnCustomer = new Gs.DevApp.UserControl.UcLookCustomer();
             this.txt_salesDept = new Gs.DevApp.UserControl.UcLookDepartment();
@@ -135,6 +136,7 @@
             this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
             this.layItem101 = new DevExpress.XtraLayout.LayoutControlItem();
+            this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             this.tabMx = new DevExpress.XtraTab.XtraTabControl();
             this.tabMxPage1 = new DevExpress.XtraTab.XtraTabPage();
             this.split99 = new DevExpress.XtraEditors.SplitContainerControl();
@@ -268,6 +270,7 @@
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.layItem101)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.tabMx)).BeginInit();
             this.tabMx.SuspendLayout();
             this.tabMxPage1.SuspendLayout();
@@ -706,11 +709,12 @@
             this.splitMx1.Panel2.Text = "Panel2";
             this.splitMx1.ShowSplitGlyph = DevExpress.Utils.DefaultBoolean.True;
             this.splitMx1.Size = new System.Drawing.Size(1437, 570);
-            this.splitMx1.SplitterPosition = 174;
+            this.splitMx1.SplitterPosition = 182;
             this.splitMx1.TabIndex = 0;
             // 
             // layoutMx1
             // 
+            this.layoutMx1.Controls.Add(this.ucBtnPrintAll1);
             this.layoutMx1.Controls.Add(this.btnSelect);
             this.layoutMx1.Controls.Add(this.txt_returnCustomer);
             this.layoutMx1.Controls.Add(this.txt_salesDept);
@@ -745,11 +749,20 @@
             this.layoutControlItem6});
             this.layoutMx1.Location = new System.Drawing.Point(0, 0);
             this.layoutMx1.Name = "layoutMx1";
-            this.layoutMx1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(637, 414, 812, 500);
+            this.layoutMx1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(575, 496, 812, 534);
             this.layoutMx1.Root = this.Root;
-            this.layoutMx1.Size = new System.Drawing.Size(1437, 174);
+            this.layoutMx1.Size = new System.Drawing.Size(1437, 182);
             this.layoutMx1.TabIndex = 0;
             this.layoutMx1.Text = "layoutControl1";
+            // 
+            // ucBtnPrintAll1
+            // 
+            this.ucBtnPrintAll1.Location = new System.Drawing.Point(1074, 140);
+            this.ucBtnPrintAll1.mxList = null;
+            this.ucBtnPrintAll1.Name = "ucBtnPrintAll1";
+            this.ucBtnPrintAll1.rptType = null;
+            this.ucBtnPrintAll1.Size = new System.Drawing.Size(196, 27);
+            this.ucBtnPrintAll1.TabIndex = 546;
             // 
             // btnSelect
             // 
@@ -1088,7 +1101,8 @@
             this.layoutControlItem14,
             this.layoutControlItem9,
             this.layoutControlItem3,
-            this.layItem101});
+            this.layItem101,
+            this.layoutControlItem2});
             this.Root.LayoutMode = DevExpress.XtraLayout.Utils.LayoutMode.Table;
             this.Root.Name = "Root";
             columnDefinition1.SizeType = System.Windows.Forms.SizeType.Percent;
@@ -1120,7 +1134,7 @@
             rowDefinition3,
             rowDefinition4,
             rowDefinition5});
-            this.Root.Size = new System.Drawing.Size(1437, 180);
+            this.Root.Size = new System.Drawing.Size(1437, 182);
             this.Root.TextVisible = false;
             // 
             // layoutControlItem4
@@ -1267,7 +1281,7 @@
             this.layItem100.Name = "layItem100";
             this.layItem100.OptionsTableLayoutItem.ColumnIndex = 1;
             this.layItem100.OptionsTableLayoutItem.RowIndex = 4;
-            this.layItem100.Size = new System.Drawing.Size(354, 32);
+            this.layItem100.Size = new System.Drawing.Size(354, 34);
             this.layItem100.Text = "鏁版嵁鏉ユ簮";
             this.layItem100.TextSize = new System.Drawing.Size(60, 18);
             // 
@@ -1327,9 +1341,24 @@
             this.layItem101.Name = "layItem101";
             this.layItem101.OptionsTableLayoutItem.ColumnIndex = 2;
             this.layItem101.OptionsTableLayoutItem.RowIndex = 4;
-            this.layItem101.Size = new System.Drawing.Size(354, 32);
+            this.layItem101.Size = new System.Drawing.Size(354, 34);
             this.layItem101.Text = "閿�鍞ā寮�";
             this.layItem101.TextSize = new System.Drawing.Size(60, 18);
+            // 
+            // layoutControlItem2
+            // 
+            this.layoutControlItem2.Control = this.ucBtnPrintAll1;
+            this.layoutControlItem2.Location = new System.Drawing.Point(1062, 128);
+            this.layoutControlItem2.MaxSize = new System.Drawing.Size(200, 31);
+            this.layoutControlItem2.MinSize = new System.Drawing.Size(101, 31);
+            this.layoutControlItem2.Name = "layoutControlItem2";
+            this.layoutControlItem2.OptionsTableLayoutItem.ColumnIndex = 3;
+            this.layoutControlItem2.OptionsTableLayoutItem.RowIndex = 4;
+            this.layoutControlItem2.Size = new System.Drawing.Size(355, 34);
+            this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            this.layoutControlItem2.Text = "鎵撳嵃鎵�鏈夋槑缁�";
+            this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0);
+            this.layoutControlItem2.TextVisible = false;
             // 
             // tabMx
             // 
@@ -1337,7 +1366,7 @@
             this.tabMx.Location = new System.Drawing.Point(0, 0);
             this.tabMx.Name = "tabMx";
             this.tabMx.SelectedTabPage = this.tabMxPage1;
-            this.tabMx.Size = new System.Drawing.Size(1437, 384);
+            this.tabMx.Size = new System.Drawing.Size(1437, 376);
             this.tabMx.TabIndex = 3;
             this.tabMx.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] {
             this.tabMxPage1,
@@ -1347,7 +1376,7 @@
             // 
             this.tabMxPage1.Controls.Add(this.split99);
             this.tabMxPage1.Name = "tabMxPage1";
-            this.tabMxPage1.Size = new System.Drawing.Size(1435, 352);
+            this.tabMxPage1.Size = new System.Drawing.Size(1435, 344);
             this.tabMxPage1.Text = "鐢宠鏄庣粏";
             // 
             // split99
@@ -1367,7 +1396,7 @@
             this.split99.Panel2.Controls.Add(this.gcMx1);
             this.split99.Panel2.Text = "Panel2";
             this.split99.ShowSplitGlyph = DevExpress.Utils.DefaultBoolean.True;
-            this.split99.Size = new System.Drawing.Size(1435, 352);
+            this.split99.Size = new System.Drawing.Size(1435, 344);
             this.split99.SplitterPosition = 132;
             this.split99.TabIndex = 4;
             // 
@@ -1749,7 +1778,7 @@
             this.repositoryItemButtonEdit1,
             this.repositoryItemComboBox1,
             this.repositoryItemDateEdit1});
-            this.gcMx1.Size = new System.Drawing.Size(1435, 208);
+            this.gcMx1.Size = new System.Drawing.Size(1435, 200);
             this.gcMx1.TabIndex = 0;
             this.gcMx1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
             this.gvMx1});
@@ -2021,7 +2050,7 @@
             // 
             this.tabMxPage2.Controls.Add(this.gcMx2);
             this.tabMxPage2.Name = "tabMxPage2";
-            this.tabMxPage2.Size = new System.Drawing.Size(1435, 352);
+            this.tabMxPage2.Size = new System.Drawing.Size(1435, 344);
             this.tabMxPage2.Text = "宸叉墦鍗版潯鐮佹槑缁�";
             // 
             // gcMx2
@@ -2030,7 +2059,7 @@
             this.gcMx2.Location = new System.Drawing.Point(0, 0);
             this.gcMx2.MainView = this.gvMx2;
             this.gcMx2.Name = "gcMx2";
-            this.gcMx2.Size = new System.Drawing.Size(1435, 352);
+            this.gcMx2.Size = new System.Drawing.Size(1435, 344);
             this.gcMx2.TabIndex = 3;
             this.gcMx2.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
             this.gvMx2});
@@ -2278,6 +2307,7 @@
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.layItem101)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.tabMx)).EndInit();
             this.tabMx.ResumeLayout(false);
             this.tabMxPage1.ResumeLayout(false);
@@ -2483,5 +2513,7 @@
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
         private DevExpress.XtraEditors.ComboBoxEdit txt_xsms;
         private DevExpress.XtraLayout.LayoutControlItem layItem101;
+        private UserControl.UcBtnPrintAll ucBtnPrintAll1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
     }
 }
\ No newline at end of file
diff --git a/DevApp/Gs.DevApp/DevFrm/Sales/Frm_SalesReturnNotice.cs b/DevApp/Gs.DevApp/DevFrm/Sales/Frm_SalesReturnNotice.cs
index 0601e7b..a71254b 100644
--- a/DevApp/Gs.DevApp/DevFrm/Sales/Frm_SalesReturnNotice.cs
+++ b/DevApp/Gs.DevApp/DevFrm/Sales/Frm_SalesReturnNotice.cs
@@ -1,3 +1,4 @@
+using DevExpress.Utils.VisualEffects;
 using DevExpress.XtraEditors;
 using Gs.DevApp.DevFrm.Rpt;
 using Gs.DevApp.DevFrm.Sales;
@@ -9,6 +10,8 @@
 using System;
 using System.Collections.Generic;
 using System.Data;
+using System.IO;
+using System.Threading;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 
@@ -109,6 +112,45 @@
             radOut.SelectedIndexChanged += (s, e) =>
             {
                 Gs.DevApp.ToolBox.UtilityHelper.PrintAuto(txt_psnQty_1, txt_iCount_1, radOut, txt_yuliang_1);
+            };
+            //鍏ㄩ儴鎵撳嵃
+            ucBtnPrintAll1.btnPrintClick += (s, e) =>
+            {
+                this.ucBtnPrintAll1.rptType = "";
+                this.ucBtnPrintAll1.mxList = null;
+                if (string.IsNullOrEmpty(lbGuid.Text.Trim()))
+                {
+                    MsgHelper.ShowError("鎻愮ず锛氭墦鍗板墠璇峰厛淇濆瓨鍗曟嵁锛�");
+                    return;
+                }
+                getModel(lbGuid.Text.Trim());
+                List<dynamic> lst = new List<dynamic>();
+                DataTable dt = (DataTable)gcMx1.DataSource;
+                foreach (DataRow row in dt.Rows)
+                {
+                    string guid = row["guid"].ToString();
+                    string psnQty = row["kdy"].ToString();
+                    if (string.IsNullOrEmpty(psnQty))
+                    {
+                        continue;
+                    }
+                    if (psnQty == "0")
+                    {
+                        continue;
+                    }
+                    lst.Add(new
+                    {
+                        guid = guid,
+                        kdy = psnQty,
+                    });
+                }
+                if (lst.Count <= 0)
+                {
+                    MsgHelper.ShowError("鎻愮ず锛氭殏鏃犲彲鎵撳嵃鐨勭墿鏂欙紒");
+                    return;
+                }
+                this.ucBtnPrintAll1.rptType = "rpt_Xsth";
+                this.ucBtnPrintAll1.mxList = lst;
             };
             #endregion
 
@@ -283,6 +325,8 @@
                 setSrm();
             };
         }
+
+
         /// <summary>
         /// 鎵撳嵃
         /// </summary>
diff --git a/DevApp/Gs.DevApp/Gs.DevApp.csproj b/DevApp/Gs.DevApp/Gs.DevApp.csproj
index c11f9cc..cf2cd75 100644
--- a/DevApp/Gs.DevApp/Gs.DevApp.csproj
+++ b/DevApp/Gs.DevApp/Gs.DevApp.csproj
@@ -1274,6 +1274,12 @@
     <Compile Include="UserControl\SelectSrm.Designer.cs">
       <DependentUpon>SelectSrm.cs</DependentUpon>
     </Compile>
+    <Compile Include="UserControl\UcBtnPrintAll.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="UserControl\UcBtnPrintAll.Designer.cs">
+      <DependentUpon>UcBtnPrintAll.cs</DependentUpon>
+    </Compile>
     <Compile Include="UserControl\UcCheckFlow.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -2171,6 +2177,9 @@
     <EmbeddedResource Include="UserControl\SelectSrm.resx">
       <DependentUpon>SelectSrm.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="UserControl\UcBtnPrintAll.resx">
+      <DependentUpon>UcBtnPrintAll.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="UserControl\UcCheckFlow.resx">
       <DependentUpon>UcCheckFlow.cs</DependentUpon>
     </EmbeddedResource>
diff --git a/DevApp/Gs.DevApp/UserControl/UcBtnPrint.cs b/DevApp/Gs.DevApp/UserControl/UcBtnPrint.cs
index ab97abb..4301f3d 100644
--- a/DevApp/Gs.DevApp/UserControl/UcBtnPrint.cs
+++ b/DevApp/Gs.DevApp/UserControl/UcBtnPrint.cs
@@ -292,8 +292,8 @@
                     report.RegisterData(ds);
                     report.Print();
                     //2025-10-20鍔犱笂閲婃斁
-                    // report.Dispose();
-                    // report.ShowPrepared();
+                    //report.Dispose();
+                    //report.ShowPrepared();
                 }
                 else
                 {
diff --git a/DevApp/Gs.DevApp/UserControl/UcBtnPrintAll.Designer.cs b/DevApp/Gs.DevApp/UserControl/UcBtnPrintAll.Designer.cs
new file mode 100644
index 0000000..072d28a
--- /dev/null
+++ b/DevApp/Gs.DevApp/UserControl/UcBtnPrintAll.Designer.cs
@@ -0,0 +1,59 @@
+锘縩amespace Gs.DevApp.UserControl
+{
+    partial class UcBtnPrintAll
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.simpleButton1 = new DevExpress.XtraEditors.SimpleButton();
+            this.SuspendLayout();
+            // 
+            // simpleButton1
+            // 
+            this.simpleButton1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.simpleButton1.Location = new System.Drawing.Point(0, 0);
+            this.simpleButton1.Name = "simpleButton1";
+            this.simpleButton1.Size = new System.Drawing.Size(150, 39);
+            this.simpleButton1.TabIndex = 0;
+            this.simpleButton1.Text = "鎵撳嵃鎵�鏈夋槑缁�";
+            this.simpleButton1.Click += new System.EventHandler(this.simpleButton1_Click);
+            // 
+            // UcBtnPrintAll
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 18F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.simpleButton1);
+            this.Name = "UcBtnPrintAll";
+            this.Size = new System.Drawing.Size(150, 39);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private DevExpress.XtraEditors.SimpleButton simpleButton1;
+    }
+}
diff --git a/DevApp/Gs.DevApp/UserControl/UcBtnPrintAll.cs b/DevApp/Gs.DevApp/UserControl/UcBtnPrintAll.cs
new file mode 100644
index 0000000..cc018bc
--- /dev/null
+++ b/DevApp/Gs.DevApp/UserControl/UcBtnPrintAll.cs
@@ -0,0 +1,133 @@
+锘縰sing DevExpress.Utils.DirectXPaint;
+using DevExpress.XtraEditors;
+using Gs.DevApp.ToolBox;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Gs.DevApp.UserControl
+{
+    public partial class UcBtnPrintAll : DevExpress.XtraEditors.XtraUserControl
+    {
+        public UcBtnPrintAll()
+        {
+            InitializeComponent();
+        }
+        /// <summary>
+        /// 鎵撳嵃
+        /// </summary>
+        public event EventHandler btnPrintClick;
+
+        public string rptType { get; set; }
+        public List<dynamic> mxList { get; set; }
+        private void simpleButton1_Click(object sender, EventArgs e)
+        {
+            if (btnPrintClick != null)
+                btnPrintClick(this, e);
+            else
+                return;
+
+            if (string.IsNullOrEmpty(rptType))
+            {
+                return;
+            }
+            if (mxList.Count<=0)
+            {
+                return;
+            }
+            int rowsCount = 0;
+            foreach (dynamic obj in mxList)
+            {
+                string guid = obj.guid.ToString();
+                string psnQty = obj.kdy.ToString();
+                if (string.IsNullOrEmpty(psnQty))
+                {
+                    continue;
+                }
+                if (psnQty == "0")
+                {
+                    continue;
+                }
+                string rptParameter = rptType + "{"
+                  + guid//鍏宠仈涓婚敭
+                  + "," + ""
+                  + "," + 0//浣欐暟
+                  + "," + 1//寮犳暟
+                  + "," + psnQty//姣忓紶鏉$爜鏁伴噺锛岀洰鍓嶇瓑浜庣敵璇烽噺
+                  + "}";
+                var _obj = new
+                {
+                    rptParameter = rptParameter,
+                    guid = guid,
+                    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.PrintSettings.ShowDialog = false;
+                        report.Print();
+                        report.PrintSettings.ShowDialog = false;
+                        report.Dispose();
+                        rowsCount++;
+                    }
+                    else
+                    {
+
+                    }
+                }
+                catch (Exception ex)
+                {
+
+                }
+                Thread.Sleep(50);
+            }
+            if (rowsCount > 0)
+                MsgHelper.ShowInformation("鎻愮ず锛氭搷浣滄垚鍔燂紝鍏辨墦鍗�" + rowsCount.ToString() + "寮狅紒");
+            else
+                MsgHelper.ShowError("鎻愮ず锛氭殏鏃犲彲鎵撳嵃鐗╂枡锛�");
+        }
+    }
+}
diff --git a/DevApp/Gs.DevApp/UserControl/UcBtnPrintAll.resx b/DevApp/Gs.DevApp/UserControl/UcBtnPrintAll.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/DevApp/Gs.DevApp/UserControl/UcBtnPrintAll.resx
@@ -0,0 +1,120 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file

--
Gitblit v1.9.3