From 9462294983b675ce314d298cd11e2468a9ef5545 Mon Sep 17 00:00:00 2001
From: 快乐的昕的电脑 <快乐的昕的电脑@DESKTOP-C2BQPQU>
Date: 星期六, 20 九月 2025 15:26:45 +0800
Subject: [PATCH] 蓝宝:模具台账表、模具操作记录表

---
 DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs |  997 ++++-----------------------------------------------------
 1 files changed, 80 insertions(+), 917 deletions(-)

diff --git a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
index abed60c..1daefa8 100644
--- a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
+++ b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
@@ -55,20 +55,24 @@
         /// <summary>
         /// http璇锋眰
         /// </summary>
-        /// <param name="url"></param>
-        /// <param name="meth"></param>
-        /// <param name="param"></param>
-        /// <param name="isLoading"></param>
+        /// <param name="url">api鏍瑰湴鍧�</param>
+        /// <param name="meth">鏂规硶鍚嶇О</param>
+        /// <param name="param">json鍙傛暟</param>
+        /// <param name="isLoading">鏄惁loading</param>
         /// <returns></returns>
         public static string HttpPost(string url, string meth, string param, bool isLoading = true)
         {
-            Size _size; string _caption; Color _color; Padding _pad;
-            (_size, _caption, _color, _pad) = getLoading();
-            DevExpress.Utils.WaitDialogForm wdf = new DevExpress.Utils.WaitDialogForm("鍔犺浇杩涘害:" + meth, _caption, _size);
-            wdf.BackColor = _color;
-            wdf.Padding = _pad;
-            wdf.SetCaption("鍔犺浇杩涘害:" + meth);
-            wdf.Visible = isLoading;
+            DevExpress.Utils.WaitDialogForm wdf = null;
+            if (isLoading == true)
+            {
+                Size _size; string _caption; Color _color; Padding _pad;
+                (_size, _caption, _color, _pad) = getLoading();
+                wdf = new DevExpress.Utils.WaitDialogForm("鍔犺浇杩涘害:" + meth, _caption, _size);
+                wdf.BackColor = _color;
+                wdf.Padding = _pad;
+                wdf.SetCaption("鍔犺浇杩涘害:" + meth);
+                wdf.Visible = isLoading;
+            }
             HttpWebRequest request = null;
             StreamWriter requestStream = null;
             WebResponse response = null;
@@ -103,7 +107,8 @@
             }
             catch (Exception ex)
             {
-                wdf.Close();
+                if (wdf != null)
+                    wdf.Close();
                 LogHelper.Debug(url, param + ":" + ex.Message);
                 throw ex;
             }
@@ -113,7 +118,8 @@
                 requestStream = null;
                 response = null;
             }
-            wdf.Close();
+            if (wdf != null)
+                wdf.Close();
             return responseStr;
         }
 
@@ -274,7 +280,7 @@
                         {
                             colmn.Visible = !isEdt;
                             if (colmn.Visible == true)
-                               colmn.VisibleIndex = 1;
+                                colmn.VisibleIndex = 99999;
                         }
                         else
                         {
@@ -454,6 +460,15 @@
                             txt.Enabled = !isEdt;
                             continue;
                         }
+                        //澶氶��
+                        if (colType is RadioGroup)
+                        {
+                            var txt = colType as RadioGroup;
+                            if (txt != null)
+                                txt.SelectedIndex = int.Parse(strVal);
+                            txt.ReadOnly = isEdt;
+                            continue;
+                        }
                         //鏃堕棿
                         if (colType is DateTimePicker)
                         {
@@ -546,13 +561,6 @@
                         if (colType is UcLookOrg)
                         {
                             var txt = colType as UcLookOrg;
-                            txt.SetIdOrCode(strVal);
-                            txt.IsReadly = isEdt;
-                            continue;
-                        }
-                        if (colType is UcLookKw)
-                        {
-                            var txt = colType as UcLookKw;
                             txt.SetIdOrCode(strVal);
                             txt.IsReadly = isEdt;
                             continue;
@@ -755,6 +763,15 @@
                         txt.ReadOnly = isEdt;
                     continue;
                 }
+                //澶氶��
+                if (ctrl is RadioGroup)
+                {
+                    var txt = ctrl as RadioGroup;
+                    if (txt != null)
+                        txt.SelectedIndex = 0;
+                    txt.ReadOnly = isEdt;
+                    continue;
+                }
                 //鏃堕棿
                 if (ctrl is DateTimePicker)
                 {
@@ -778,6 +795,7 @@
                     }
                     else
                         txt.ReadOnly = isEdt;
+                    txt.Checked = false;
                     continue;
                 }
                 //鑷畾涔変粨搴�
@@ -917,14 +935,6 @@
                     txt.IsReadly = isEdt;
                     continue;
                 }
-                //
-                if (ctrl is UcLookKw)
-                {
-                    var txt = ctrl as UcLookKw;
-                    txt.SetIdOrCode("-1");
-                    txt.IsReadly = isEdt;
-                    continue;
-                }
                 //鑷畾涔夊崟鎹被鍨嬩笅鎷�
                 if (ctrl is UcDictionaryComBox)
                 {
@@ -1023,6 +1033,13 @@
                     txt.ReadOnly = isEdt;
                     continue;
                 }
+                //澶氶��
+                if (ctrl is RadioGroup)
+                {
+                    var txt = ctrl as RadioGroup;
+                    txt.ReadOnly = isEdt;
+                    continue;
+                }
                 //鏃ユ湡
                 if (ctrl is DateTimePicker)
                 {
@@ -1045,13 +1062,6 @@
                 if (ctrl is UcLookCk)
                 {
                     var txt = ctrl as UcLookCk;
-                    txt.IsReadly = isEdt;
-                    continue;
-                }
-                //鑷畾涔変粨搴�
-                if (ctrl is UcLookKw)
-                {
-                    var txt = ctrl as UcLookKw;
                     txt.IsReadly = isEdt;
                     continue;
                 }
@@ -1700,6 +1710,7 @@
         }
         public delegate void DelegateGetModel(string guid);
         public delegate void DelegateGetList(int currentPage);
+
         /// <summary>
         /// 
         /// </summary>
@@ -1711,7 +1722,7 @@
         /// <param name="action">濮旀墭1</param>
         /// <param name="tips">楦熷槾鎻愮ず</param>
         /// <param name="isPostSearch"></param>
-        /// <param name="action2">濮旀墭2锛堝垪琛ㄦ樉绀烘槑缁嗭級</param>
+        /// <param name="action2">濮旀墭2</param>
         public static void SetGridViewParameter(GridView gridView1, PictureBox picCheckBox = null, Form fm = null, string fileName = "checkStatus", string icoName = "", DelegateGetModel action = null, DevExpress.Utils.ToolTipController tips = null, bool isPostSearch = true, DelegateGetModel action2 = null)
         {
             gridView1.PopupMenuShowing += (s, e) =>
@@ -1926,15 +1937,15 @@
             edit.SelectAll();
         }
 
-        public static void SetGridLayout(GridView gridView1)
+        public static void SetGridLayout(GridView gridView1,int maxWidth=500)
         {
             foreach (GridColumn column in gridView1.Columns)
             {
-                if (column.Width > 500)
-                    column.Width = 500;
+                if (column.Width > maxWidth)
+                    column.Width = maxWidth;
             }
         }
-
+ 
         /// <summary>
         /// 璁剧疆閫夐」鍗�
         /// </summary>
@@ -2107,7 +2118,20 @@
             }
         }
 
+
+        /// <summary>
+        /// 鏁版嵁杩囨护
+        /// </summary>
+        /// <returns></returns>
+        public static string GetOrgWhere()
+        {
+            System.Text.StringBuilder sb = new System.Text.StringBuilder();
+            sb.Append(" (select aboutGuid as fid from  SYS_USER_BIND where userGuid='" + LoginInfoModel.CurrentUser.LoginUserGuid + "' and ftype='缁勭粐')");
+            return sb.ToString();
+        }
         #endregion
+
+
         /// <summary>
         /// 鍒ゆ柇鏄笉鏄竴涓湁鏁堢殑鏁板��
         /// </summary>
@@ -2215,8 +2239,6 @@
                 txt_iCount_1.ReadOnly = true;
         }
 
-
-
         #region 鑷畾涔夎繘搴︽潯鍒�
 
         /// <summary>
@@ -2311,7 +2333,6 @@
         // private GridColumn checkBoxColumn = null;
         public static void CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e)
         {
-
             Rectangle checkBoxColumnHeaderRect = new Rectangle(51, 1, 37, 57);
             if (e.Column != null && e.Column.AbsoluteIndex == 0)
             {
@@ -2335,13 +2356,6 @@
             }
         }
 
-        /// <summary>
-        /// gridview 鍏ㄩ�夛紝鍙栨秷鍏ㄩ��
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        /// <param name="gcMain"></param>
-        /// <param name="gridView1"></param>
         public static void CustomMouseUp(object sender, MouseEventArgs e, DevExpress.XtraGrid.GridControl gcMain, DevExpress.XtraGrid.Views.Grid.GridView gridView1)
         {
             GridColumn checkBoxColumn = gridView1.Columns[0];
@@ -2368,7 +2382,6 @@
                         //    row["chkInt"] = true;
                         //}
                         /********2025-07-23淇ˉ杩囨护bug 鏁呮敞閲� end ************/
-
                         /********2025-07-23淇ˉ杩囨护bug beg ************/
                         System.Collections.IList ftRow = gridView1.DataController.GetAllFilteredAndSortedRows();
                         System.Collections.ArrayList ftAry = new System.Collections.ArrayList();
@@ -2396,7 +2409,6 @@
         }
         #endregion
 
-
         //璇诲彇榛樿缁勭粐
         public static string GetFirstOrg(UserControl.UcLookOrg txt_erpSczz)
         {
@@ -2421,867 +2433,6 @@
                 return "";
             }
         }
-
-        #region GridView姹囨�婚厤缃伐鍏锋柟娉�
-        /// <summary>
-        /// 2025-08-14 kyy 蹇�熼厤缃瓽ridView搴曢儴姹囨�伙紙鍚敤姹囨�昏+璁剧疆鍒楁眰鍜屾眹鎬伙級
-        /// </summary>
-        /// <param name="gridView">鐩爣GridView鎺т欢</param>
-        /// <param name="summaryColumns">闇�瑕佽繘琛屾眰鍜屾眹鎬荤殑鍒楀悕鏁扮粍</param>
-        public static void SetupGridSummary(DevExpress.XtraGrid.Views.Grid.GridView gridView, params string[] summaryColumns)
-        {
-            // 鍚敤搴曢儴姹囨�昏
-            gridView.OptionsView.ShowFooter = true;
-
-            // 涓烘瘡涓寚瀹氬垪璁剧疆姹傚拰姹囨��
-            foreach (var columnName in summaryColumns)
-            {
-                // 楠岃瘉鍒楁槸鍚﹀瓨鍦紙閬垮厤寮傚父锛�
-                if (gridView.Columns[columnName] != null)
-                {
-                    gridView.Columns[columnName].SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum;
-                    gridView.Columns[columnName].SummaryItem.DisplayFormat = "鍚堣: {0}";
-                }
-            }
-        }
-
-        /// <summary>
-        /// 2025-08-15 kyy 蹇�熼厤缃瓽ridView鏉′欢姹囨�伙紙鍙眹鎬绘弧瓒虫潯浠剁殑琛岋級
-        /// 浣跨敤绠�鍗曠殑鏍囩鏄剧ず鏂瑰紡锛岄伩鍏嶅鏉傜殑姹囨�婚」閰嶇疆
-        /// </summary>
-        /// <param name="gridView">鐩爣GridView鎺т欢</param>
-        /// <param name="conditionFieldName">鏉′欢瀛楁鍚嶏紙濡俢hkInt锛�</param>
-        /// <param name="conditionValue">鏉′欢鍊硷紙濡倀rue銆�1绛夎〃绀洪�変腑锛�</param>
-        /// <param name="summaryColumns">闇�瑕佽繘琛屾眰鍜屾眹鎬荤殑鍒楀悕鏁扮粍</param>
-        public static void SetupGridSummaryWithCondition(DevExpress.XtraGrid.Views.Grid.GridView gridView, string conditionFieldName, object conditionValue, params string[] summaryColumns)
-        {
-            // 鍚敤搴曢儴姹囨�昏
-            gridView.OptionsView.ShowFooter = true;
-
-            // 瀛樺偍鏉′欢姹囨�婚厤缃埌GridView鐨凾ag涓�
-            var conditionSummaryConfig = new 
-            { 
-                ConditionField = conditionFieldName, 
-                ConditionValue = conditionValue, 
-                SummaryColumns = summaryColumns 
-            };
-
-            // 灏嗛厤缃瓨鍌ㄥ埌GridView鐨凾ag涓紙濡傛灉宸叉湁鍏朵粬Tag锛岄渶瑕佸悎骞讹級
-            if (gridView.Tag == null)
-            {
-                gridView.Tag = conditionSummaryConfig;
-            }
-            else
-            {
-                // 濡傛灉宸叉湁Tag锛屽垱寤轰竴涓鍚堝璞�
-                gridView.Tag = new { Existing = gridView.Tag, ConditionSummary = conditionSummaryConfig };
-            }
-
-            // 涓烘瘡涓寚瀹氬垪璁剧疆鑷畾涔夋眹鎬昏绠�
-            foreach (var columnName in summaryColumns)
-            {
-                if (gridView.Columns[columnName] != null)
-                {
-                    // 浣跨敤鏍囧噯鐨勬眰鍜屾眹鎬伙紝浣嗘樉绀鸿嚜瀹氫箟鏍煎紡
-                    gridView.Columns[columnName].SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum;
-                    gridView.Columns[columnName].SummaryItem.DisplayFormat = "閫変腑鍚堣: {0}";
-                }
-            }
-
-            // 缁戝畾鏁版嵁鍙樺寲浜嬩欢锛屾墜鍔ㄨ绠楁潯浠舵眹鎬�
-            gridView.CustomDrawFooterCell -= GridView_CustomDrawFooterForCondition;
-            gridView.CustomDrawFooterCell += GridView_CustomDrawFooterForCondition;
-        }
-
-        /// <summary>
-        /// 鑷畾涔夌粯鍒堕〉鑴氬崟鍏冩牸锛屾樉绀烘潯浠舵眹鎬荤粨鏋�
-        /// </summary>
-        private static void GridView_CustomDrawFooterForCondition(object sender, DevExpress.XtraGrid.Views.Grid.FooterCellCustomDrawEventArgs e)
-        {
-            var gridView = sender as DevExpress.XtraGrid.Views.Grid.GridView;
-            if (gridView?.Tag == null) return;
-
-            try
-            {
-                // 鑾峰彇鏉′欢姹囨�婚厤缃�
-                dynamic config = GetConditionSummaryConfig(gridView.Tag);
-                if (config == null) return;
-
-                string conditionField = config.ConditionField;
-                object conditionValue = config.ConditionValue;
-                string[] summaryColumns = config.SummaryColumns;
-
-                // 妫�鏌ュ綋鍓嶅垪鏄惁闇�瑕佹潯浠舵眹鎬�
-                if (summaryColumns != null && Array.IndexOf(summaryColumns, e.Column.FieldName) >= 0)
-                {
-                    // 璁$畻鏉′欢姹囨�诲��
-                    decimal totalValue = CalculateConditionalSum(gridView, conditionField, conditionValue, e.Column.FieldName);
-                    
-                    // 璁剧疆鏄剧ず鏂囨湰
-                    e.Info.DisplayText = $"{totalValue:F2}";
-                    
-                    // 鍙互鑷畾涔夋樉绀烘牱寮�
-                    e.Appearance.ForeColor = System.Drawing.Color.Blue;
-                    e.Appearance.Font = new System.Drawing.Font(e.Appearance.Font, System.Drawing.FontStyle.Bold);
-                }
-            }
-            catch (Exception ex)
-            {
-                System.Diagnostics.Debug.WriteLine($"鏉′欢姹囨�荤粯鍒堕敊璇�: {ex.Message}");
-            }
-        }
-
-        /// <summary>
-        /// 鑾峰彇鏉′欢姹囨�婚厤缃�
-        /// </summary>
-        private static dynamic GetConditionSummaryConfig(object tag)
-        {
-            if (tag == null) return null;
-
-            // 妫�鏌ユ槸鍚︽槸鐩存帴鐨勯厤缃璞�
-            var tagType = tag.GetType();
-            if (tagType.GetProperty("ConditionField") != null)
-            {
-                return tag;
-            }
-
-            // 妫�鏌ユ槸鍚︽槸澶嶅悎瀵硅薄
-            if (tagType.GetProperty("ConditionSummary") != null)
-            {
-                dynamic composite = tag;
-                return composite.ConditionSummary;
-            }
-
-            return null;
-        }
-
-        /// <summary>
-        /// 璁$畻鏉′欢姹囨�诲��
-        /// </summary>
-        private static decimal CalculateConditionalSum(DevExpress.XtraGrid.Views.Grid.GridView gridView, string conditionField, object conditionValue, string summaryField)
-        {
-            decimal total = 0;
-
-            try
-            {
-                // 閬嶅巻鎵�鏈夊彲瑙佽
-                for (int i = 0; i < gridView.DataRowCount; i++)
-                {
-                    // 鑾峰彇鏉′欢瀛楁鍊�
-                    object conditionFieldValue = gridView.GetRowCellValue(i, conditionField);
-                    
-                    // 妫�鏌ユ潯浠舵槸鍚﹀尮閰�
-                    if (IsConditionMatched(conditionFieldValue, conditionValue))
-                    {
-                        // 鑾峰彇姹囨�诲瓧娈靛��
-                        object summaryFieldValue = gridView.GetRowCellValue(i, summaryField);
-                        
-                        // 绱姞鏁板��
-                        if (summaryFieldValue != null && decimal.TryParse(summaryFieldValue.ToString(), out decimal value))
-                        {
-                            total += value;
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                System.Diagnostics.Debug.WriteLine($"鏉′欢姹囨�昏绠楅敊璇�: {ex.Message}");
-            }
-
-            return Math.Round(total, 2);
-        }
-
-        /// <summary>
-        /// 鎵嬪姩鍒锋柊鏉′欢姹囨�绘樉绀� - 浼樺寲鐗堟湰锛岀珛鍗崇敓鏁�
-        /// </summary>
-        public static void RefreshConditionalSummary(DevExpress.XtraGrid.Views.Grid.GridView gridView)
-        {
-            try
-            {
-                if (gridView != null)
-                {
-                    // 鍏堝埛鏂版暟鎹粦瀹�
-                    gridView.PostEditor();
-                    gridView.UpdateCurrentRow();
-                    
-                    // 寮哄埗閲嶇粯搴曢儴姹囨�诲尯鍩�
-                    gridView.InvalidateFooter();
-                    
-                    // 绔嬪嵆鍒锋柊甯冨眬
-                    gridView.LayoutChanged();
-                    
-                    // 寮哄埗閲嶇粯鏁翠釜瑙嗗浘
-                    gridView.Invalidate();
-                    
-                    // 纭繚鐣岄潰绔嬪嵆鏇存柊
-                    System.Windows.Forms.Application.DoEvents();
-                }
-            }
-            catch (Exception ex)
-            {
-                System.Diagnostics.Debug.WriteLine($"鍒锋柊鏉′欢姹囨�婚敊璇�: {ex.Message}");
-            }
-        }
-
-        /// <summary>
-        /// 鍒ゆ柇鏉′欢鏄惁鍖归厤锛堢敤浜庢眹鎬伙級
-        /// </summary>
-        private static bool IsConditionMatched(object fieldValue, object targetValue)
-        {
-            if (fieldValue == null && targetValue == null) return true;
-            if (fieldValue == null || targetValue == null) return false;
-
-            string fieldStr = fieldValue.ToString().Trim();
-            string targetStr = targetValue.ToString().Trim();
-
-            // 澶勭悊甯冨皵鍊肩被鍨嬬殑鍖归厤
-            if (IsBooleanValue(fieldStr) || IsBooleanValue(targetStr))
-            {
-                bool fieldBool = ConvertToBoolean(fieldStr);
-                bool targetBool = ConvertToBoolean(targetStr);
-                return fieldBool == targetBool;
-            }
-
-            // 澶勭悊鏁板�肩被鍨嬬殑鍖归厤
-            if (decimal.TryParse(fieldStr, out decimal fieldNum) && decimal.TryParse(targetStr, out decimal targetNum))
-            {
-                return fieldNum == targetNum;
-            }
-
-            // 瀛楃涓插尮閰�
-            return string.Equals(fieldStr, targetStr, StringComparison.OrdinalIgnoreCase);
-        }
-
-        /// <summary>
-        /// 妫�鏌ユ槸鍚︿负甯冨皵鍊�
-        /// </summary>
-        private static bool IsBooleanValue(string value)
-        {
-            if (string.IsNullOrEmpty(value)) return false;
-            string lower = value.ToLower();
-            return lower == "true" || lower == "false" || lower == "1" || lower == "0";
-        }
-
-        /// <summary>
-        /// 杞崲涓哄竷灏斿��
-        /// </summary>
-        private static bool ConvertToBoolean(string value)
-        {
-            if (string.IsNullOrEmpty(value)) return false;
-            string lower = value.ToLower();
-            return lower == "true" || lower == "1";
-        }
-        #endregion
-
-        #region 绠�鍖栫増GridView棰滆壊璁剧疆鏂规硶 - 鍒涘缓鏃堕棿锛�2024骞�8鏈�15鏃� 鍒朵綔浜猴細kyy
-
-        /// <summary>
-        /// 涓�琛屼唬鐮佽缃瓽ridView棰滆壊鐨勬柟娉�
-        /// 鍒涘缓鏃堕棿锛�2024骞�8鏈�15鏃� 鍒朵綔浜猴細kyy
-        /// 浣跨敤绀轰緥锛�
-        /// SetSimpleGridColor(gridView1, "checkStatus", "=1", "Cell", Color.Blue);
-        /// SetSimpleGridColor(gridView1, "jyjg", "contains鍚堟牸", "Cell", Color.Green);
-        /// SetSimpleGridColor(gridView1, "status", "=宸插鏍�", "Row", Color.Blue);
-        /// SetSimpleGridColor(gridView1, "", "quantity-okRkqty>100", "Row", Color.Red); // 瀛楁杩愮畻琛ㄨ揪寮�
-        /// </summary>
-        /// <param name="gridView">GridView鎺т欢</param>
-        /// <param name="fieldName">瀛楁鍚嶏紙杩愮畻琛ㄨ揪寮忔椂鍙负绌哄瓧绗︿覆锛�</param>
-        /// <param name="condition">鏉′欢锛堟敮鎸�: =1, contains鍚堟牸, >5, >=10, 鎴栧瓧娈佃繍绠楀 fieldA+fieldB>100锛�</param>
-        /// <param name="scope">鑼冨洿锛圕ell/鍗曞厓鏍�, Row/琛�, Column/鍒楋級</param>
-        /// <param name="color">棰滆壊</param>
-        public static void SetSimpleGridColor(GridView gridView, string fieldName, string condition, string scope, Color color)
-        {
-            if (gridView == null || string.IsNullOrEmpty(condition))
-                return;
-
-            // 妫�鏌ユ槸鍚︿负杩愮畻琛ㄨ揪寮�
-            bool isCalculationExpression = IsCalculationExpression(condition);
-            
-            // 濡傛灉鏄繍绠楄〃杈惧紡浣嗘病鏈夋寚瀹歠ieldName锛宖ieldName璁句负绌�
-            if (isCalculationExpression && string.IsNullOrEmpty(fieldName))
-            {
-                fieldName = ""; // 杩愮畻琛ㄨ揪寮忎笉闇�瑕佺壒瀹氬瓧娈靛悕
-            }
-            else if (!isCalculationExpression && string.IsNullOrEmpty(fieldName))
-            {
-                return; // 鏅�氭潯浠跺繀椤绘寚瀹氬瓧娈靛悕
-            }
-
-            // 绉婚櫎涔嬪墠鍙兘缁戝畾鐨勪簨浠讹紙閬垮厤閲嶅缁戝畾锛�
-            gridView.RowCellStyle -= SimpleGridColor_RowCellStyle;
-
-            // 鍒涘缓绠�鍗曠殑棰滆壊閰嶇疆骞跺瓨鍌ㄥ埌Tag
-            var colorConfigs = gridView.Tag as List<SimpleColorConfig> ?? new List<SimpleColorConfig>();
-            
-            // 娣诲姞鏂伴厤缃�
-            colorConfigs.Add(new SimpleColorConfig
-            {
-                FieldName = fieldName,
-                Condition = condition,
-                Scope = scope,
-                Color = color
-            });
-
-            gridView.Tag = colorConfigs;
-
-            // 缁戝畾棰滆壊璁剧疆浜嬩欢
-            gridView.RowCellStyle += SimpleGridColor_RowCellStyle;
-        }
-
-        /// <summary>
-        /// 绠�鍗曢鑹查厤缃被
-        /// </summary>
-        private class SimpleColorConfig
-        {
-            public string FieldName { get; set; }
-            public string Condition { get; set; }
-            public string Scope { get; set; }
-            public Color Color { get; set; }
-        }
-
-        /// <summary>
-        /// 绠�鍖栫殑棰滆壊璁剧疆浜嬩欢澶勭悊
-        /// </summary>
-        private static void SimpleGridColor_RowCellStyle(object sender, RowCellStyleEventArgs e)
-        {
-            var gridView = sender as GridView;
-            if (gridView?.Tag is List<SimpleColorConfig> configs)
-            {
-                foreach (var config in configs)
-                {
-                    // 鍒ゆ柇鏄惁搴旇搴旂敤棰滆壊
-                    bool shouldApply = false;
-                    
-                    // 妫�鏌ユ槸鍚︿负杩愮畻琛ㄨ揪寮�
-                    bool isCalculationExpression = IsCalculationExpression(config.Condition);
-                    
-                    if (isCalculationExpression)
-                    {
-                        // 杩愮畻琛ㄨ揪寮忔牴鎹寖鍥村喅瀹氭槸鍚﹀簲鐢�
-                        if (config.Scope.ToLower() == "row")
-                            shouldApply = true; // 鏁磋搴旂敤
-                        else if (config.Scope.ToLower() == "cell")
-                            shouldApply = true; // 鎵�鏈夊崟鍏冩牸閮藉皾璇曞簲鐢�
-                        else if (config.Scope.ToLower() == "column")
-                            shouldApply = true; // 鎵�鏈夊垪閮藉皾璇曞簲鐢�
-                    }
-                    else
-                    {
-                        // 鏅�氬瓧娈垫潯浠�
-                        if (config.Scope.ToLower() == "cell" && e.Column.FieldName == config.FieldName)
-                            shouldApply = true;
-                        else if (config.Scope.ToLower() == "row")
-                            shouldApply = true;
-                        else if (config.Scope.ToLower() == "column" && e.Column.FieldName == config.FieldName)
-                            shouldApply = true;
-                    }
-
-                    if (!shouldApply) continue;
-
-                    bool conditionMatched = false;
-
-                    if (isCalculationExpression)
-                    {
-                        // 澶勭悊瀛楁杩愮畻琛ㄨ揪寮�
-                        try
-                        {
-                            decimal result = EvaluateExpression(gridView, e.RowHandle, config.Condition);
-                            conditionMatched = result == 1; // 1琛ㄧず鏉′欢婊¤冻锛�0琛ㄧず涓嶆弧瓒�
-                            
-                            if (conditionMatched)
-                            {
-                                System.Diagnostics.Debug.WriteLine($"杩愮畻琛ㄨ揪寮忓尮閰嶆垚鍔� - 琛ㄨ揪寮�: {config.Condition}, 琛�: {e.RowHandle}");
-                            }
-                        }
-                        catch (Exception ex)
-                        {
-                            System.Diagnostics.Debug.WriteLine($"杩愮畻琛ㄨ揪寮忚绠楀け璐� - 琛ㄨ揪寮�: {config.Condition}, 閿欒: {ex.Message}");
-                        }
-                    }
-                    else
-                    {
-                        // 澶勭悊鍗曞瓧娈垫潯浠�
-                        object cellValue = gridView.GetRowCellValue(e.RowHandle, config.FieldName);
-                        if (cellValue != null)
-                        {
-                            string stringValue = cellValue.ToString().Trim();
-
-                            // 璋冭瘯淇℃伅锛氳緭鍑哄疄闄呯殑瀛楁鍊�
-                            if (config.FieldName == "checkStatus" && e.RowHandle < 3) // 鍙緭鍑哄墠鍑犺閬垮厤澶鏃ュ織
-                            {
-                                System.Diagnostics.Debug.WriteLine($"瀛楁鍊艰皟璇� - 瀛楁: {config.FieldName}, 瀹為檯鍊�: '{stringValue}', 绫诲瀷: {cellValue.GetType().Name}, 鏉′欢: {config.Condition}");
-                            }
-
-                            // 鍒ゆ柇鏉′欢鏄惁鍖归厤
-                            conditionMatched = IsConditionMatch(stringValue, config.Condition);
-                        }
-                    }
-
-                    if (conditionMatched)
-                    {
-                        e.Appearance.ForeColor = config.Color;
-                        System.Diagnostics.Debug.WriteLine($"棰滆壊鍖归厤鎴愬姛 - 瀛楁/琛ㄨ揪寮�: {config.FieldName ?? config.Condition}, 鏉′欢: {config.Condition}");
-                        break; // 鍖归厤鍒扮涓�涓潯浠跺氨鍋滄
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// 妫�鏌ユ槸鍚︿负璁$畻琛ㄨ揪寮忥紙鍖呭惈瀛楁杩愮畻锛�
-        /// </summary>
-        private static bool IsCalculationExpression(string condition)
-        {
-            if (string.IsNullOrEmpty(condition))
-                return false;
-
-            // 妫�鏌ユ槸鍚﹀寘鍚暟瀛﹁繍绠楃鍜屾瘮杈冭繍绠楃鐨勭粍鍚�
-            char[] mathOperators = { '+', '-', '*', '/' };
-            string[] comparisonOperators = { ">=", "<=", ">", "<", "=", "!=" };
-
-            bool hasMathOperator = condition.IndexOfAny(mathOperators) >= 0;
-            bool hasComparisonOperator = comparisonOperators.Any(op => condition.Contains(op));
-
-            // 濡傛灉鍚屾椂鍖呭惈鏁板杩愮畻绗﹀拰姣旇緝杩愮畻绗︼紝灏辫涓烘槸璁$畻琛ㄨ揪寮�
-            return hasMathOperator && hasComparisonOperator;
-        }
-
-        /// <summary>
-        /// 鍒ゆ柇鏉′欢鏄惁鍖归厤
-        /// </summary>
-        private static bool IsConditionMatch(string value, string condition)
-        {
-            if (string.IsNullOrEmpty(value) || string.IsNullOrEmpty(condition))
-                return false;
-
-            condition = condition.Trim();
-            value = value.Trim();
-
-            // 澶勭悊contains鏉′欢
-            if (condition.StartsWith("contains", StringComparison.OrdinalIgnoreCase))
-            {
-                string matchText = condition.Substring(8).Trim();
-                
-                // 绉婚櫎鍓嶇紑澶勭悊锛堝"M:鍏嶆"涓殑"M:"锛�
-                string processedValue = value;
-                int colonIndex = processedValue.IndexOf(':');
-                if (colonIndex >= 0 && colonIndex < processedValue.Length - 1)
-                {
-                    processedValue = processedValue.Substring(colonIndex + 1).Trim();
-                }
-                
-                return processedValue.IndexOf(matchText, StringComparison.OrdinalIgnoreCase) >= 0;
-            }
-
-            // 澶勭悊绛変簬鏉′欢
-            if (condition.StartsWith("="))
-            {
-                string targetValue = condition.Substring(1).Trim();
-                
-                // 鐗规畩澶勭悊bit绫诲瀷瀛楁锛圔oolean鍊硷級
-                if (IsBooleanCondition(targetValue))
-                {
-                    return IsBooleanMatch(value, targetValue);
-                }
-                
-                return string.Equals(value, targetValue, StringComparison.OrdinalIgnoreCase);
-            }
-
-            // 澶勭悊鏁板�兼瘮杈冩潯浠�
-            if (decimal.TryParse(value, out decimal numericValue))
-            {
-                if (condition.StartsWith(">="))
-                {
-                    if (decimal.TryParse(condition.Substring(2).Trim(), out decimal target))
-                        return numericValue >= target;
-                }
-                else if (condition.StartsWith("<="))
-                {
-                    if (decimal.TryParse(condition.Substring(2).Trim(), out decimal target))
-                        return numericValue <= target;
-                }
-                else if (condition.StartsWith(">"))
-                {
-                    if (decimal.TryParse(condition.Substring(1).Trim(), out decimal target))
-                        return numericValue > target;
-                }
-                else if (condition.StartsWith("<"))
-                {
-                    if (decimal.TryParse(condition.Substring(1).Trim(), out decimal target))
-                        return numericValue < target;
-                }
-                else if (decimal.TryParse(condition, out decimal target))
-                {
-                    return numericValue == target;
-                }
-            }
-
-            // 妫�鏌ユ槸鍚︽槸甯冨皵鍊兼潯浠�
-            if (IsBooleanCondition(condition))
-            {
-                return IsBooleanMatch(value, condition);
-            }
-
-            // 榛樿鎸夊瓧绗︿覆鐩哥瓑澶勭悊
-            return string.Equals(value, condition, StringComparison.OrdinalIgnoreCase);
-        }
-
-        /// <summary>
-        /// 鍒ゆ柇澶氬瓧娈佃繍绠楁潯浠舵槸鍚﹀尮閰嶏紙鏀寔瀛楁闂磋繍绠楋級
-        /// </summary>
-        private static bool IsConditionMatchWithCalculation(GridView gridView, int rowHandle, string condition)
-        {
-            if (string.IsNullOrEmpty(condition))
-                return false;
-
-            condition = condition.Trim();
-
-            try
-            {
-                // 瑙f瀽骞惰绠楄〃杈惧紡
-                decimal calculatedValue = EvaluateExpression(gridView, rowHandle, condition);
-                
-                // 濡傛灉琛ㄨ揪寮忚绠楁垚鍔燂紝杩斿洖true锛堣〃绀烘潯浠舵弧瓒筹級
-                return true;
-            }
-            catch
-            {
-                // 濡傛灉璁$畻澶辫触锛岃繑鍥瀎alse
-                return false;
-            }
-        }
-
-        /// <summary>
-        /// 璁$畻鍖呭惈瀛楁鍚嶇殑琛ㄨ揪寮�
-        /// 鏀寔鏍煎紡锛歠ieldA+fieldB>100, fieldA-fieldB<=50, fieldA*fieldB>=fieldC绛�
-        /// </summary>
-        private static decimal EvaluateExpression(GridView gridView, int rowHandle, string expression)
-        {
-            // 鎻愬彇姣旇緝杩愮畻绗﹀拰鐩爣鍊�
-            string[] operators = { ">=", "<=", ">", "<", "=", "!=" };
-            string op = "";
-            string leftExpression = "";
-            string rightExpression = "";
-
-            foreach (var oper in operators)
-            {
-                if (expression.Contains(oper))
-                {
-                    string[] parts = expression.Split(new string[] { oper }, StringSplitOptions.None);
-                    if (parts.Length == 2)
-                    {
-                        op = oper;
-                        leftExpression = parts[0].Trim();
-                        rightExpression = parts[1].Trim();
-                        break;
-                    }
-                }
-            }
-
-            if (string.IsNullOrEmpty(op))
-                throw new ArgumentException("鏃犳晥鐨勮〃杈惧紡鏍煎紡");
-
-            // 璁$畻宸︿晶琛ㄨ揪寮忕殑鍊�
-            decimal leftValue = CalculateFieldExpression(gridView, rowHandle, leftExpression);
-            
-            // 璁$畻鍙充晶琛ㄨ揪寮忕殑鍊硷紙鍙兘鏄暟瀛楁垨瀛楁琛ㄨ揪寮忥級
-            decimal rightValue;
-            if (decimal.TryParse(rightExpression, out rightValue))
-            {
-                // 鍙充晶鏄暟瀛�
-            }
-            else
-            {
-                // 鍙充晶鏄瓧娈佃〃杈惧紡
-                rightValue = CalculateFieldExpression(gridView, rowHandle, rightExpression);
-            }
-
-            // 鏍规嵁杩愮畻绗﹀垽鏂潯浠舵槸鍚︽弧瓒�
-            switch (op)
-            {
-                case ">=":
-                    return leftValue >= rightValue ? 1 : 0;
-                case "<=":
-                    return leftValue <= rightValue ? 1 : 0;
-                case ">":
-                    return leftValue > rightValue ? 1 : 0;
-                case "<":
-                    return leftValue < rightValue ? 1 : 0;
-                case "=":
-                    return leftValue == rightValue ? 1 : 0;
-                case "!=":
-                    return leftValue != rightValue ? 1 : 0;
-                default:
-                    throw new ArgumentException($"涓嶆敮鎸佺殑杩愮畻绗�: {op}");
-            }
-        }
-
-        /// <summary>
-        /// 璁$畻鍖呭惈瀛楁杩愮畻鐨勮〃杈惧紡锛堝锛歠ieldA+fieldB-fieldC*2锛�
-        /// </summary>
-        private static decimal CalculateFieldExpression(GridView gridView, int rowHandle, string expression)
-        {
-            expression = expression.Trim();
-            
-            // 绠�鍗曠殑琛ㄨ揪寮忚В鏋愬櫒 - 鎸夎繍绠椾紭鍏堢骇澶勭悊
-            // 鍏堝鐞嗕箻闄わ紝鍐嶅鐞嗗姞鍑�
-            
-            // 鍒嗗壊鍔犲噺杩愮畻
-            var addSubTerms = SplitExpression(expression, new[] { '+', '-' });
-            decimal result = 0;
-            char lastOp = '+';
-
-            foreach (var term in addSubTerms)
-            {
-                string cleanTerm = term.Key.Trim();
-                char op = term.Value;
-
-                // 澶勭悊涔橀櫎杩愮畻
-                decimal termValue = CalculateMultiplyDivide(gridView, rowHandle, cleanTerm);
-
-                if (lastOp == '+')
-                    result += termValue;
-                else if (lastOp == '-')
-                    result -= termValue;
-
-                lastOp = op;
-            }
-
-            return result;
-        }
-
-        /// <summary>
-        /// 澶勭悊涔橀櫎杩愮畻
-        /// </summary>
-        private static decimal CalculateMultiplyDivide(GridView gridView, int rowHandle, string expression)
-        {
-            var mulDivTerms = SplitExpression(expression, new[] { '*', '/' });
-            decimal result = 0;
-            char lastOp = '*';
-            bool isFirst = true;
-
-            foreach (var term in mulDivTerms)
-            {
-                string cleanTerm = term.Key.Trim();
-                char op = term.Value;
-
-                decimal termValue = GetFieldOrNumericValue(gridView, rowHandle, cleanTerm);
-
-                if (isFirst)
-                {
-                    result = termValue;
-                    isFirst = false;
-                }
-                else if (lastOp == '*')
-                    result *= termValue;
-                else if (lastOp == '/')
-                    result /= termValue;
-
-                lastOp = op;
-            }
-
-            return result;
-        }
-
-        /// <summary>
-        /// 鍒嗗壊琛ㄨ揪寮�
-        /// </summary>
-        private static List<KeyValuePair<string, char>> SplitExpression(string expression, char[] operators)
-        {
-            var result = new List<KeyValuePair<string, char>>();
-            string currentTerm = "";
-            
-            for (int i = 0; i < expression.Length; i++)
-            {
-                char c = expression[i];
-                
-                if (operators.Contains(c))
-                {
-                    if (!string.IsNullOrEmpty(currentTerm))
-                    {
-                        result.Add(new KeyValuePair<string, char>(currentTerm, i < expression.Length - 1 ? c : '\0'));
-                        currentTerm = "";
-                    }
-                }
-                else
-                {
-                    currentTerm += c;
-                }
-            }
-            
-            if (!string.IsNullOrEmpty(currentTerm))
-            {
-                result.Add(new KeyValuePair<string, char>(currentTerm, '\0'));
-            }
-            
-            return result;
-        }
-
-        /// <summary>
-        /// 鑾峰彇瀛楁鍊兼垨鏁板��
-        /// </summary>
-        private static decimal GetFieldOrNumericValue(GridView gridView, int rowHandle, string valueExpression)
-        {
-            valueExpression = valueExpression.Trim();
-
-            // 灏濊瘯瑙f瀽涓烘暟瀛�
-            if (decimal.TryParse(valueExpression, out decimal numValue))
-            {
-                return numValue;
-            }
-
-            // 浣滀负瀛楁鍚嶅鐞�
-            try
-            {
-                object cellValue = gridView.GetRowCellValue(rowHandle, valueExpression);
-                if (cellValue != null && decimal.TryParse(cellValue.ToString(), out decimal fieldValue))
-                {
-                    return fieldValue;
-                }
-            }
-            catch
-            {
-                // 瀛楁涓嶅瓨鍦ㄦ垨鏃犳硶杞崲涓烘暟瀛�
-            }
-
-            return 0; // 榛樿鍊�
-        }
-
-        /// <summary>
-        /// 妫�鏌ユ槸鍚︽槸甯冨皵鍊兼潯浠�
-        /// </summary>
-        private static bool IsBooleanCondition(string condition)
-        {
-            string lowerCondition = condition.ToLower();
-            return lowerCondition == "true" || lowerCondition == "false" || 
-                   lowerCondition == "1" || lowerCondition == "0";
-        }
-
-        /// <summary>
-        /// 甯冨皵鍊煎尮閰嶆鏌�
-        /// </summary>
-        private static bool IsBooleanMatch(string value, string condition)
-        {
-            // 鏍囧噯鍖栧竷灏斿��
-            bool conditionBool = NormalizeBooleanValue(condition);
-            bool valueBool = NormalizeBooleanValue(value);
-            
-            return conditionBool == valueBool;
-        }
-
-        /// <summary>
-        /// 鏍囧噯鍖栧竷灏斿��
-        /// </summary>
-        private static bool NormalizeBooleanValue(string value)
-        {
-            if (string.IsNullOrEmpty(value))
-                return false;
-                
-            string lowerValue = value.Trim().ToLower();
-            
-            // 澶勭悊鍚勭鍙兘鐨則rue鍊�
-            if (lowerValue == "true" || lowerValue == "1" || lowerValue == "鏄�" || lowerValue == "宸插鏍�")
-                return true;
-                
-            // 澶勭悊鍚勭鍙兘鐨刦alse鍊�  
-            if (lowerValue == "false" || lowerValue == "0" || lowerValue == "鍚�" || lowerValue == "鏈鏍�" || lowerValue == "")
-                return false;
-                
-            // 榛樿涓篺alse
-            return false;
-        }
-
-     
-        
-        /// <summary>
-        /// 璁剧疆GridView澶嶉�夋鍒楃偣鍑绘椂鑷姩鍒锋柊鏉′欢姹囨��
-        /// 2025-08-15 kyy 鏂板鍏敤鏂规硶
-        /// </summary>
-        /// <param name="gridView">鐩爣GridView鎺т欢</param>
-        /// <param name="checkboxFieldName">澶嶉�夋瀛楁鍚嶏紙榛樿涓篶hkInt锛�</param>
-        /// <param name="delayMs">寤惰繜鍒锋柊鏃堕棿锛堟绉掞紝榛樿100ms锛�</param>
-        public static void SetupCheckboxClickRefresh(DevExpress.XtraGrid.Views.Grid.GridView gridView, string checkboxFieldName = "chkInt", int delayMs = 100)
-        {
-            if (gridView == null) return;
-
-            // 娣诲姞榧犳爣鐐瑰嚮浜嬩欢锛屾娴嬪閫夋鍒楃偣鍑�
-            gridView.MouseDown += (s, e) =>
-            {
-                var hitInfo = gridView.CalcHitInfo(e.Location);
-                if (hitInfo.InRowCell && hitInfo.Column?.FieldName == checkboxFieldName)
-                {
-                    // 澶嶉�夋鍒楄鐐瑰嚮锛屽欢杩熷埛鏂版眹鎬荤‘淇濆�煎凡鏇存柊
-                    System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
-                    timer.Interval = delayMs;
-                    timer.Tick += (sender, args) =>
-                    {
-                        timer.Stop();
-                        timer.Dispose();
-                        RefreshConditionalSummary(gridView);
-                    };
-                    timer.Start();
-                }
-            };
-        }
-
-        /// <summary>
-        /// 涓�閿缃瓽ridView鏉′欢姹囨�荤殑瀹屾暣鍔熻兘锛堝寘鍚潯浠舵眹鎬�+瀹炴椂鍒锋柊锛�
-        /// 2025-08-15 kyy 鏂板渚挎嵎鏂规硶
-        /// </summary>
-        /// <param name="gridView">鐩爣GridView鎺т欢</param>
-        /// <param name="conditionFieldName">鏉′欢瀛楁鍚嶏紙濡俢hkInt锛�</param>
-        /// <param name="conditionValue">鏉′欢鍊硷紙濡倀rue琛ㄧず閫変腑锛�</param>
-        /// <param name="summaryColumns">闇�瑕佹眹鎬荤殑鍒楀悕鏁扮粍</param>
-        /// <param name="enableRealTimeRefresh">鏄惁鍚敤瀹炴椂鍒锋柊锛堥粯璁rue锛�</param>
-        /// <param name="refreshDelayMs">鍒锋柊寤惰繜鏃堕棿锛堟绉掞紝榛樿100ms锛�</param>
-        public static void SetupCompleteConditionalSummary(DevExpress.XtraGrid.Views.Grid.GridView gridView, 
-            string conditionFieldName, object conditionValue, string[] summaryColumns, 
-            bool enableRealTimeRefresh = true, int refreshDelayMs = 100)
-        {
-            if (gridView == null || summaryColumns == null || summaryColumns.Length == 0) return;
-
-            // 1. 璁剧疆鏉′欢姹囨��
-            SetupGridSummaryWithCondition(gridView, conditionFieldName, conditionValue, summaryColumns);
-
-            if (!enableRealTimeRefresh) return;
-
-            // 2. 璁剧疆瀹炴椂鍒锋柊浜嬩欢
-            // 鍗曞厓鏍煎�煎彉鍖栦簨浠�
-            gridView.CellValueChanged += (s, e) =>
-            {
-                if (e.Column.FieldName == conditionFieldName)
-                {
-                    RefreshConditionalSummary(gridView);
-                }
-            };
-
-            // 鏁版嵁婧愬彉鍖栦簨浠�
-            gridView.DataSourceChanged += (s, e) =>
-            {
-                RefreshConditionalSummary(gridView);
-            };
-
-            // 缂栬緫鍣ㄩ殣钘忎簨浠�
-            gridView.HiddenEditor += (s, e) =>
-            {
-                System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
-                timer.Interval = 50;
-                timer.Tick += (sender, args) =>
-                {
-                    timer.Stop();
-                    timer.Dispose();
-                    RefreshConditionalSummary(gridView);
-                };
-                timer.Start();
-            };
-
-            // 3. 璁剧疆澶嶉�夋鐐瑰嚮鍒锋柊
-            SetupCheckboxClickRefresh(gridView, conditionFieldName, refreshDelayMs);
-        }
-
-        #endregion
-
     }
 
     /// <summary>
@@ -3317,7 +2468,6 @@
             return Text.ToString();
         }
 
-     
     }
 
     /// <summary>
@@ -3364,10 +2514,23 @@
         ipqc棣栨,
         fqc,
         鐢熶骇閫�鏂欏叆搴撴,
-        鍏跺畠鍏ュ簱妫�
+        鍏跺畠鍏ュ簱妫�,
+        閿�鍞��璐у叆搴撴,
+        瓒呮湡妫�,
+        濮斿閫�鏂欏叆搴撴,
+        cqcjyes,//閲嶆鏂规
+        cqcjno,//閲嶆鏂规
+        浜х嚎绉伴噸,
+        iqc绉伴噸,
+        鍙楁墭鍏ュ簱
     }
 
-
+    public enum OrderType
+    {
+        鍏跺畠鍏ュ簱,
+        鐗╂枡璋冩嫧,
+        鍏跺畠鍑哄簱
+    }
 
 
 

--
Gitblit v1.9.3