From 2de65e7ad262da695494122b547db604ca53b01a Mon Sep 17 00:00:00 2001
From: kyy <3283105747@qq.com>
Date: 星期五, 15 八月 2025 17:40:09 +0800
Subject: [PATCH] 1、UtilityHelper通用类 (1、底部汇总新增选择时汇总 2、颜色设置) 2、到货条码打印设置检验结果颜色 3、采购到货(1、为GridView的鼠标抬起事件添加处理方法,实现自定义交互2、条件汇总:只对选中(打勾)的行进行汇总)

---
 DevApp/Gs.DevApp/DevFrm/Warehouse/Frm_ArrivalBarcode.cs |  355 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 318 insertions(+), 37 deletions(-)

diff --git a/DevApp/Gs.DevApp/DevFrm/Warehouse/Frm_ArrivalBarcode.cs b/DevApp/Gs.DevApp/DevFrm/Warehouse/Frm_ArrivalBarcode.cs
index a05afb3..8d614d7 100644
--- a/DevApp/Gs.DevApp/DevFrm/Warehouse/Frm_ArrivalBarcode.cs
+++ b/DevApp/Gs.DevApp/DevFrm/Warehouse/Frm_ArrivalBarcode.cs
@@ -1,3 +1,4 @@
+using Gs.DevApp.DevFrm.Rpt;
 using Gs.DevApp.Entity;
 using Gs.DevApp.ToolBox;
 using Gs.DevApp.UserControl;
@@ -6,6 +7,7 @@
 using System;
 using System.Collections.Generic;
 using System.Data;
+using System.Drawing;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 
@@ -23,10 +25,13 @@
             this.toolBarMenu1.getXmlConfig();
             Gs.DevApp.ToolBox.UtilityHelper.SetGridViewParameterMx(gvMx1);
             Gs.DevApp.ToolBox.UtilityHelper.SetGridViewParameterMx(gvMx2);
+            Gs.DevApp.ToolBox.UtilityHelper.SetGridViewParameterMx(gvMx3);
             Gs.DevApp.ToolBox.UtilityHelper.SetGridViewParameter(gridView1, null, null, "", "", (value) =>
             {
                 Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 0);
-            }, tips);
+            }, tips, true, (strGuid) => {
+                getModelList(strGuid);
+            });
             Gs.DevApp.ToolBox.UtilityHelper.SetTabParameter(gridView1, xtraTabControl1, pageBar1, (value) =>
             {
                 getModel(value);
@@ -36,6 +41,7 @@
             }, lbGuid);
             getPageList(1);
             pageBar1.PagerEvent += PageBar1_PagerEvent;
+            //鎵撳嵃浜嬩欢
             this.ucBtnPrint1.btnPrintClick += (s, e) =>
             {
                 string rowGuid = lbMxGuid.Text.Trim();
@@ -60,17 +66,133 @@
                     this.ucBtnPrint1.rptParameter = "return false";
                     return;
                 }
-                this.ucBtnPrint1.rptParameter = "rpt_Arrival{" + lbMxGuid.Text.Trim()
+                this.ucBtnPrint1.rptParameter = "rpt_Arrival{"
+                       + lbMxGuid.Text.Trim()//鍏宠仈涓婚敭
                        + "," + ""
-                        + "," + Gs.DevApp.ToolBox.UtilityHelper.ToDecimal(txt_yuliang_1.Text.Trim())
-                       + "," + txt_iCount_1.Text.Trim()
-                       + "," + txt_psnQty_1.Text.Trim()
+                       + "," + Gs.DevApp.ToolBox.UtilityHelper.ToDecimal(txt_yuliang_1.Text.Trim())//浣欐暟
+                       + "," + txt_iCount_1.Text.Trim()//寮犳暟
+                       + "," + txt_psnQty_1.Text.Trim()//姣忓紶鏉$爜鏁伴噺
                        + "}";
                 txt_iCount_1.Text = "";
                 txt_psnQty_1.Text = "";
             };
+            //鎵撳嵃鎵归噺鎿嶄綔浜嬩欢
+            this.ucBtnPrint1.btnAllClick += (s, e) =>
+            {
+                string rowGuid = lbMxGuid.Text.Trim();
+                SelectDeleteBar frm = new SelectDeleteBar(rowGuid, "閲囪喘鍏ュ簱");
+                string strCodeList = "";
+                frm.UpdateParent += (ss, ee) =>
+                {
+                    strCodeList = ee.StringSingle;
+                };
+                frm.ShowDialog();
+                if (string.IsNullOrEmpty(strCodeList))
+                    return;
+                try
+                {
+                    string rptParameter = "rpt_Arrival{"
+                    + "100"//閲嶆墦閮芥槸浼�100锛�
+                    + "," + ""
+                    + "," + ""
+                    + "," + ""
+                    + "," + ""
+                    + "," + strCodeList
+                    + "}";
+                    using (Form rpt = new RptPreview(rowGuid, rptParameter))
+                    {
+                        rpt.ShowDialog();
+                    }
+                    frm.Close();
+                }
+                catch (Exception ex)
+                {
+                    MsgHelper.ShowError(ex.Message);
+                }
+            };
+
+            // -------------------- gvMx3 鎵撳嵃浜嬩欢 --------------------
+           
+            this.ucBtnPrint2.btnPrintClick += (s, e) =>
+            {
+                string rowGuid = txt_releaseNo.Text.Trim(); // 鏂板lbMxGuid3鐢ㄤ簬瀛樺偍gvMx3鐨勯�変腑琛孏UID
+                ucBtnPrint2.guidKey = rowGuid;
+
+                // 楠岃瘉杈撳叆锛堜娇鐢╣vMx3瀵瑰簲鐨勮緭鍏ユ帶浠讹級
+                if (!Gs.DevApp.ToolBox.UtilityHelper.IsNumeric3(txt_iCount_2.Text.Trim(), txt_yuliang_2.Text.Trim()))
+                {
+                    Gs.DevApp.ToolBox.MsgHelper.ShowError("璇疯緭鍏ユ纭殑鏉$爜鏁伴噺锛�");
+                    txt_iCount_2.Focus();
+                    this.ucBtnPrint2.rptParameter = "return false";
+                    return;
+                }
+                if (!Gs.DevApp.ToolBox.UtilityHelper.IsNumeric3(txt_psnQty_2.Text.Trim()))
+                {
+                    Gs.DevApp.ToolBox.MsgHelper.ShowError("璇烽�夋嫨鎵撳嵃鏉$爜鏁伴噺锛�");
+                    txt_psnQty_2.Focus();
+                    this.ucBtnPrint2.rptParameter = "return false";
+                    return;
+                }
+                if (rowGuid.Length < 10)
+                {
+                    Gs.DevApp.ToolBox.MsgHelper.ShowError("璇烽�夋嫨鎵撳嵃鐨勮锛�");
+                    this.ucBtnPrint2.rptParameter = "return false";
+                    return;
+                }
+
+                // 缁勮鎵撳嵃鍙傛暟锛堜娇鐢╣vMx3鐨勬帶浠跺�硷級
+                this.ucBtnPrint2.rptParameter = "rpt_Arrival_Hb{"
+                       + rowGuid//鍏宠仈涓婚敭锛坓vMx3鐨凣UID锛�
+                       + "," + ""
+                       + "," + Gs.DevApp.ToolBox.UtilityHelper.ToDecimal(txt_yuliang_2.Text.Trim())//浣欐暟
+                       + "," + txt_iCount_2.Text.Trim()//寮犳暟
+                       + "," + txt_psnQty_2.Text.Trim()//姣忓紶鏉$爜鏁伴噺
+                       + "}";
+
+                // 娓呯┖杈撳叆妗�
+                txt_iCount_2.Text = "";
+                txt_psnQty_2.Text = "";
+            };
+            // gvMx3 鎵归噺鎵撳嵃浜嬩欢
+            this.ucBtnPrint2.btnAllClick += (s, e) =>
+            {
+                // string rowGuid = lbMxGuid3.Text.Trim(); // 浣跨敤gvMx3鐨凣UID
+                string rowGuid = txt_releaseNo.Text.Trim();
+                SelectDeleteBar frm = new SelectDeleteBar(rowGuid, "鍒拌揣鏉$爜锛堝悎骞讹級鐮�"); // 鏍囬鍖哄垎鏉ユ簮
+                string strCodeList = "";
+                frm.UpdateParent += (ss, ee) =>
+                {
+                    strCodeList = ee.StringSingle;
+                };
+                frm.ShowDialog();
+                if (string.IsNullOrEmpty(strCodeList))
+                    return;
+                try
+                {
+                    string rptParameter = "rpt_Arrival_Hb{"
+                    + "100"//閲嶆墦鏍囪瘑
+                    + "," + ""
+                    + "," + ""
+                    + "," + ""
+                    + "," + ""
+                    + "," + strCodeList
+                    + "}";
+                    using (Form rpt = new RptPreview(rowGuid, rptParameter))
+                    {
+                        rpt.ShowDialog();
+                    }
+                    frm.Close();
+                }
+                catch (Exception ex)
+                {
+                    MsgHelper.ShowError(ex.Message);
+                }
+            };
+            //鏄庣粏琛屽垏鎹簨浠�
+            // 鍏抽敭锛氱粦瀹歡vMx1鍜実vMx3鐨勭劍鐐硅鍙樺寲浜嬩欢
             gvMx1.FocusedRowChanged += GvMx1_FocusedRowChanged;
-            //鑷姩璁$畻鎵撳嵃閲�
+            gvMx3.FocusedRowChanged += GvMx3_FocusedRowChanged; // 鍙栨秷娉ㄩ噴骞剁粦瀹氫簨浠�
+            //gvMx3鎵撳嵃鑷姩璁$畻
             txt_psnQty_1.TextChanged += (s, e) =>
             {
                 Gs.DevApp.ToolBox.UtilityHelper.PrintJiSuan(txt_psnQty_1, txt_iCount_1, txt_kQty.Text.Trim(), radOut, txt_yuliang_1);
@@ -79,6 +201,61 @@
             {
                 Gs.DevApp.ToolBox.UtilityHelper.PrintAuto(txt_psnQty_1, txt_iCount_1, radOut, txt_yuliang_1);
             };
+            // gvMx3鐨勮嚜鍔ㄨ绠�
+            txt_psnQty_2.TextChanged += (s, e) =>
+            {
+                Gs.DevApp.ToolBox.UtilityHelper.PrintJiSuan(txt_psnQty_2, txt_iCount_2, txt_kQtyHb.Text.Trim(), radOut2, txt_yuliang_2);
+            };
+            radOut2.SelectedIndexChanged += (s, e) =>
+            {
+                Gs.DevApp.ToolBox.UtilityHelper.PrintAuto(txt_psnQty_2, txt_iCount_2, radOut2, txt_yuliang_2);
+            };
+
+
+            ////搴曢儴姹囨�诲惎鐢�
+            //gvMx1.OptionsView.ShowFooter = true;
+            //// 涓烘煇涓�鍒楄缃眰鍜屾眹鎬�
+            //gvMx1.Columns["quantity"].SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum;
+            //gvMx1.Columns["quantity"].SummaryItem.DisplayFormat = "鍚堣: {0}";
+
+            // 涓轰簡鏂逛究浣跨敤鏁村悎鍒�  UtilityHelper 绫讳腑鐨� SetupGridSummary 鏂规硶
+            UtilityHelper.SetupGridSummary(gvMx1, "quantity", "okRkqty");
+            UtilityHelper.SetupGridSummary(gvMxL1, "quantity", "okRkqty");
+
+            // 妫�鏌ユ暟鎹姞杞藉悗鍐嶈缃鑹�
+            this.Load += (s, e) => {
+                System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
+                timer.Interval = 1000; // 1绉掑悗鎵ц锛岀‘淇濇暟鎹凡鍔犺浇
+                timer.Tick += (sender, args) => {
+                    timer.Stop();
+                    timer.Dispose();
+                    
+                    // 浣跨敤鏂扮殑绠�鍖栨牸寮忚缃楠岀粨鏋滈鑹�
+                    UtilityHelper.SetSimpleGridColor(gvMxL1, "jyjg", "contains涓嶅悎鏍�", "Cell", Color.Red);
+                    UtilityHelper.SetSimpleGridColor(gvMxL1, "jyjg", "contains鍚堟牸", "Cell", Color.Green);
+                    UtilityHelper.SetSimpleGridColor(gvMxL1, "jyjg", "contains鍏嶆", "Cell", Color.Green);
+                    
+                    UtilityHelper.SetSimpleGridColor(gvMxL2, "jyjg", "contains涓嶅悎鏍�", "Cell", Color.Red);
+                    UtilityHelper.SetSimpleGridColor(gvMxL2, "jyjg", "contains鍚堟牸", "Cell", Color.Green);
+                    UtilityHelper.SetSimpleGridColor(gvMxL2, "jyjg", "contains鍏嶆", "Cell", Color.Green);
+                    
+                    UtilityHelper.SetSimpleGridColor(gvMx1, "jyjg", "contains涓嶅悎鏍�", "Cell", Color.Red);
+                    UtilityHelper.SetSimpleGridColor(gvMx1, "jyjg", "contains鍚堟牸", "Cell", Color.Green);
+                    UtilityHelper.SetSimpleGridColor(gvMx1, "jyjg", "contains鍏嶆", "Cell", Color.Green);
+                    
+                    UtilityHelper.SetSimpleGridColor(gvMx3, "jyjg", "contains涓嶅悎鏍�", "Cell", Color.Red);
+                    UtilityHelper.SetSimpleGridColor(gvMx3, "jyjg", "contains鍚堟牸", "Cell", Color.Green);
+                    UtilityHelper.SetSimpleGridColor(gvMx3, "jyjg", "contains鍏嶆", "Cell", Color.Green);
+                    
+                    // 瀛楁杩愮畻绀轰緥锛氬綋鏀惰揣鏁伴噺(quantity)澶т簬宸插叆搴撴暟閲�(okRkqty)鏃讹紝鏁磋鏄剧ず姗欒壊
+                    UtilityHelper.SetSimpleGridColor(gvMx1, "", "quantity-okRkqty>0", "Row", Color.Orange);
+                    
+                    // 瀛楁杩愮畻绀轰緥锛氬綋鍙墦鍗版暟閲�(kQty)灏忎簬绛変簬0鏃讹紝鏁磋鏄剧ず鐏拌壊
+                    UtilityHelper.SetSimpleGridColor(gvMx1, "", "kQty<=0", "Row", Color.Gray);
+                };
+                timer.Start();
+            };
+
         }
         private void GridView1_ColumnFilterChanged(object sender, EventArgs e)
         {
@@ -86,6 +263,9 @@
             Task.Delay(100);
             getPageList(1);
         }
+
+
+
         private void GvMx1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
         {
             if (e.FocusedRowHandle >= 0)
@@ -114,6 +294,39 @@
                 txt_iCount_1.Text = "";
             }
         }
+
+        //鏄庣粏琛屽垏鎹簨浠�
+         
+        private void GvMx3_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
+        {
+            if (e.FocusedRowHandle >= 0)
+            {
+                DataRow row = gvMx3.GetDataRow(e.FocusedRowHandle);
+                //lbMxGuid.Text = row["guid"].ToString();
+                txtItemNo.Text = row["itemNo"].ToString();
+                txtItemModel.Text = row["itemModel"].ToString();
+                txtItemName.Text = row["itemName"].ToString();
+                txtQuantityHb.Text = row["quantity"].ToString();//鏈鏀惰揣鎬婚噺
+                txt_yQtyHb.Text = row["yQty"].ToString();//宸叉墦鍗版�婚噺
+                txt_kQtyHb.Text = row["kQty"].ToString(); //鍙墦鍗版�婚噺
+                txt_psnQty_2.Text = row["mrtmsl"].ToString(); //榛樿姣忓紶鏉$爜鏁伴噺
+                txt_releaseNo.Text = row["releaseNo"].ToString(); //鍙墦鍗版�婚噺
+            }
+            else
+            {
+                lbMxGuid.Text = "";
+                ucBtnPrint1.guidKey = "";
+                txtItemNo.Text = "";
+                txtItemModel.Text = "";
+                txtItemName.Text = "";
+                txtQuantityHb.Text = "";
+                txt_yQtyHb.Text = "";
+                txt_kQtyHb.Text = "";
+                txt_psnQty_2.Text = "";
+                txt_iCount_2.Text = "";
+            }
+        }
+
         /// <summary>
         /// 鍒嗛〉浜嬩欢
         /// </summary>
@@ -217,6 +430,8 @@
         private void getModel(string strGuid)
         {
             gcMx1.DataSource = null;
+            gcMx2.DataSource = null;
+            gcMx3.DataSource = null;
             bool isEdit = false;
             if (toolBarMenu1.currentAction == "add") return;
             if (toolBarMenu1.currentAction == "edit") isEdit = true;
@@ -240,7 +455,9 @@
                     List<DevExpress.XtraGrid.Views.Grid.GridView> gvList = new List<DevExpress.XtraGrid.Views.Grid.GridView>();
                     gvList.Add(gvMx1);
                     gvList.Add(gvMx2);
+                    gvList.Add(gvMx3);
                     UtilityHelper.SetValueByObj(this.layoutMx1.Controls, dy, isEdit, gvList);
+                    
                     JArray array1 = new JArray();
                     foreach (var a in dy["list1"])
                     {
@@ -278,6 +495,24 @@
                     {
                         Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMx2, gvMx2);
                     }
+                    JArray array3 = new JArray();
+                    foreach (var a in dy["list3"])
+                    {
+                        array3.Add(a);
+                    }
+                    DataTable dt3 = JsonConvert.DeserializeObject<DataTable>(array3.ToString());
+                    if (dt3.Rows.Count > 0)
+                    {
+                        gcMx3.BindingContext = new BindingContext();
+                        gcMx3.DataSource = dt3;
+                        gcMx3.ForceInitialize();
+                        gvMx3.BestFitColumns();
+                        Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMx3);
+                    }
+                    else
+                    {
+                        Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMx3, gvMx3);
+                    }
                 }
                 else
                     ToolBox.MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg);
@@ -288,45 +523,91 @@
             }
         }
         /// <summary>
-        /// 閲嶆墦
+        ///  鏂板鏂规硶锛氬垪琛ㄦ樉绀�   
         /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void repositoryItemButtonEdit1_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
+        /// <param name="strGuid">涓昏〃id</param>
+         
+        private void getModelList(string strGuid)
         {
-            MsgHelper.ShowInformation("鍔熻兘寮�鍙戜腑锛�");
-            return;
-            var rowhandle = gvMx2.FocusedRowHandle;
-            if (rowhandle < 0)
-                return;
-            if (e.Button.Index == 0)
+            gcMxL1.DataSource = null;
+            gcMxL2.DataSource = null;
+            gcMxL3.DataSource = null;
+            var _obj = new
             {
-                var dr = gvMx2.GetDataRow(rowhandle);
-                var mxGuid = dr["guid"].ToString();
-                if (!MsgHelper.AskQuestion("浣犻�夋嫨浜�1鏉℃暟鎹紝纭畾鍒犻櫎鍚楋紵"))
-                    return;
-                var _obj = new
+                guid = strGuid,//涓诲缓
+            };
+            try
+            {
+                string strJson = UtilityHelper.HttpPost("", _webServiceName + "GetModel", JsonConvert.SerializeObject(_obj));
+                ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson);
+                if (_rtn.rtnCode > 0)
                 {
-                    mxGuid = mxGuid,
-                    inType = "dhtm"
-                };
-                try
-                {
-                    var strJson = UtilityHelper.HttpPost("",
-                        _webServiceName + "DeleteBarcode",
-                        JsonConvert.SerializeObject(_obj));
-                    var _rtn = UtilityHelper.ReturnToDynamic(strJson);
-                    if (_rtn.rtnCode > 0)
+                    dynamic dy = _rtn.rtnData;
+                   
+                    JArray array1 = new JArray();
+                    foreach (var a in dy["list1"])
                     {
-                        if (_rtn.rtnCode > 0) getModel(lbGuid.Text);
+                        array1.Add(a);
                     }
-                    MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg);
+                    DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(array1.ToString());
+                    if (dt1.Rows.Count > 0)
+                    {
+                        gcMxL1.BindingContext = new BindingContext();
+                        gcMxL1.DataSource = dt1;
+                        gcMxL1.ForceInitialize();
+                        gvMxL1.BestFitColumns();
+                        Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMxL1);
+                    }
+                    else
+                    {
+                        Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMxL1, gvMxL1);
+                    }
+                    JArray array2 = new JArray();
+                    foreach (var a in dy["list3"])
+                    {
+                        array2.Add(a);
+                    }
+
+                    DataTable dt2 = JsonConvert.DeserializeObject<DataTable>(array2.ToString());
+                    if (dt2.Rows.Count > 0)
+                    {
+                        gcMxL2.BindingContext = new BindingContext();
+                        gcMxL2.DataSource = dt2;
+                        gcMxL2.ForceInitialize();
+                        gvMxL2.BestFitColumns();
+                        Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMxL2);
+                    }
+                    else
+                    {
+                        Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMxL2, gvMxL2);
+                    }
+                    JArray array3 = new JArray();
+                    foreach (var a in dy["list2"])
+                    {
+                        array3.Add(a);
+                    }
+                    DataTable dt3 = JsonConvert.DeserializeObject<DataTable>(array3.ToString());
+                    if (dt3.Rows.Count > 0)
+                    {
+                        gcMxL3.BindingContext = new BindingContext();
+                        gcMxL3.DataSource = dt3;
+                        gcMxL3.ForceInitialize();
+                        gvMxL3.BestFitColumns();
+                        Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMxL3);
+                    }
+                    else
+                    {
+                        Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMxL3, gvMxL3);
+                    }
                 }
-                catch (Exception ex)
-                {
-                    MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
-                }
+                else
+                    ToolBox.MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg);
+            }
+            catch (Exception ex)
+            {
+                ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
             }
         }
+
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3