From 641e86dfaeb2eed992a717beb297c0ba84869f6b Mon Sep 17 00:00:00 2001
From: lu <99954486@qq.com>
Date: 星期二, 15 四月 2025 18:08:38 +0800
Subject: [PATCH] checkbox

---
 DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs                     |   93 ++++++++++++++++++++++++++++--
 DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.Designer.cs            |   19 +++++
 DevApp/Gs.DevApp/DevFrm/Warehouse/SelectShuoTuiSq.Designer.cs |    1 
 DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs                     |   16 ++++-
 4 files changed, 115 insertions(+), 14 deletions(-)

diff --git a/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.Designer.cs b/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.Designer.cs
index ea15bce..858333a 100644
--- a/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.Designer.cs
+++ b/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.Designer.cs
@@ -31,6 +31,7 @@
             this.panelControl2 = new DevExpress.XtraEditors.PanelControl();
             this.gcMain = new DevExpress.XtraGrid.GridControl();
             this.gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            this.gridColumn1 = new DevExpress.XtraGrid.Columns.GridColumn();
             this.gv_depotCode = new DevExpress.XtraGrid.Columns.GridColumn();
             this.gv_depotName = new DevExpress.XtraGrid.Columns.GridColumn();
             this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
@@ -71,16 +72,29 @@
             this.gridView1.Appearance.Row.Options.UseFont = true;
             this.gridView1.ColumnPanelRowHeight = 60;
             this.gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] {
+            this.gridColumn1,
             this.gv_depotCode,
             this.gv_depotName});
             this.gridView1.GridControl = this.gcMain;
             this.gridView1.IndicatorWidth = 50;
             this.gridView1.Name = "gridView1";
             this.gridView1.OptionsFind.ShowSearchNavButtons = false;
-            this.gridView1.OptionsSelection.MultiSelect = true;
-            this.gridView1.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect;
             this.gridView1.OptionsView.ShowAutoFilterRow = true;
             this.gridView1.OptionsView.ShowGroupPanel = false;
+            // 
+            // gridColumn1
+            // 
+            this.gridColumn1.Caption = ".";
+            this.gridColumn1.FieldName = "chkInt";
+            this.gridColumn1.MaxWidth = 60;
+            this.gridColumn1.MinWidth = 60;
+            this.gridColumn1.Name = "gridColumn1";
+            this.gridColumn1.OptionsColumn.AllowSort = DevExpress.Utils.DefaultBoolean.False;
+            this.gridColumn1.OptionsFilter.AllowInHeaderSearch = DevExpress.Utils.DefaultBoolean.False;
+            this.gridColumn1.Tag = "edit";
+            this.gridColumn1.Visible = true;
+            this.gridColumn1.VisibleIndex = 0;
+            this.gridColumn1.Width = 60;
             // 
             // gv_depotCode
             // 
@@ -161,5 +175,6 @@
         private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
         private DevExpress.XtraGrid.Columns.GridColumn gv_depotCode;
         private DevExpress.XtraGrid.Columns.GridColumn gv_depotName;
+        private DevExpress.XtraGrid.Columns.GridColumn gridColumn1;
     }
 }
\ No newline at end of file
diff --git a/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs b/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs
index c23e3b5..d5e23e9 100644
--- a/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs
+++ b/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs
@@ -1,9 +1,13 @@
-锘縰sing Gs.DevApp.Entity;
+锘縰sing DevExpress.XtraGrid.Columns;
+using DevExpress.XtraGrid.Views.Grid;
+using Gs.DevApp.Entity;
 using Gs.DevApp.ToolBox;
 using Newtonsoft.Json;
 using System;
 using System.Data;
+using System.Drawing;
 using System.Windows.Forms;
+using System.Windows.Forms.VisualStyles;
 
 namespace Gs.DevApp.DevFrm.PDA
 {
@@ -20,20 +24,27 @@
         public SelectPage(string _userGuid)
         {
             InitializeComponent();
+            this.gridView1.CustomDrawColumnHeader += (s, e) => { gridViewLeftList_CustomDrawColumnHeader(s, e); };
+            this.gridView1.MouseUp += (s, e) => { gridViewLeftList_MouseUp(s, e); };
             this.userGuid = _userGuid;
             Gs.DevApp.ToolBox.UtilityHelper.SetGridViewParameter(gridView1, null, null, null, "", null, null, false);
             getPageList(1);
             btnIn.Click += (s, e) =>
             {
                 System.Text.StringBuilder sbList = new System.Text.StringBuilder();
-                int[] rows = this.gridView1.GetSelectedRows();//鍏堣幏鍙栭�夋嫨琛岀殑琛屽彿
-                DataTable dt = this.gcMain.DataSource as DataTable;//寰楀埌GridControl鐨勬暟鎹簮
-                foreach (int idx in rows)
+                DataTable dt = this.gcMain.DataSource as DataTable;
                 {
-                    string _guid = dt.Rows[idx]["guid"].ToString();
-                    if (sbList.Length > 0)
-                        sbList.Append(",");
-                    sbList.Append(_guid);
+                    foreach (DataRow dr in dt.Rows)
+                    {
+                        string checkBox = dr["chkInt"].ToString();
+                        string _guid = dr["guid"].ToString();
+                        if (Gs.DevApp.ToolBox.UtilityHelper.ToCheck(checkBox))
+                        {
+                            if (sbList.Length > 0)
+                                sbList.Append(",");
+                            sbList.Append(_guid);
+                        }
+                    }
                 }
                 var _obj = new
                 {
@@ -59,6 +70,7 @@
                 }
             };
         }
+
 
         /// <summary>
         /// </summary>
@@ -97,5 +109,70 @@
                 MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
             }
         }
+
+
+        #region 缁樺埗琛ㄥご鍏ㄩ�夊嬀閫夋
+        /// <summary>
+        /// 缁樺埗琛ㄥご鍏ㄩ�夊嬀閫夋
+        /// </summary>
+        private Rectangle checkBoxColumnHeaderRect = Rectangle.Empty;
+        private GridColumn checkBoxColumn = null;
+        private void gridViewLeftList_CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e)
+        {
+            if (e.Column != null && e.Column.AbsoluteIndex == 0)
+            {
+                e.Column.Caption = "";
+                checkBoxColumnHeaderRect = e.Bounds;
+                checkBoxColumn = e.Column;
+                //椤绘妸鍒楀ご鏍囬璁剧疆涓虹┖
+                e.Painter.DrawObject(e.Info);
+                //鍦ㄥ垪澶翠腑蹇冩樉绀哄閫夋
+                int x = e.Bounds.X + (int)((e.Bounds.Width - CheckBoxRenderer.GetGlyphSize(e.Graphics, CheckBoxState.UncheckedNormal).Width) * 0.5);
+                int y = e.Bounds.Y + (int)((e.Bounds.Height - CheckBoxRenderer.GetGlyphSize(e.Graphics, CheckBoxState.UncheckedNormal).Height) * 0.5);
+                Point location = new Point(x, y);
+                CheckBoxState checkBoxState;
+                if (e.Column.Tag != null && e.Column.Tag.ToString() == "1")
+                    checkBoxState = CheckBoxState.CheckedPressed;
+                else
+                    checkBoxState = CheckBoxState.UncheckedNormal;
+                CheckBoxRenderer.DrawCheckBox(e.Graphics, location, checkBoxState);
+                e.Handled = true;
+            }
+        }
+
+        private void gridViewLeftList_MouseUp(object sender, MouseEventArgs e)
+        {
+            if (checkBoxColumnHeaderRect != Rectangle.Empty)
+            {
+                if (e.X > checkBoxColumnHeaderRect.X && e.X < (checkBoxColumnHeaderRect.X + checkBoxColumnHeaderRect.Width) && e.Y > checkBoxColumnHeaderRect.Y && e.Y < (checkBoxColumnHeaderRect.Y + checkBoxColumnHeaderRect.Height))
+                {
+                    DataTable _Table = (DataTable)gcMain.DataSource;
+                    if (checkBoxColumn.Tag != null && checkBoxColumn.Tag.ToString() == "1")
+                    {
+                        checkBoxColumn.Tag = "0";
+                        foreach (DataRow row in _Table.Rows)
+                        {
+                            row["chkInt"] = false;
+                        }
+                    }
+                    else
+                    {
+                        checkBoxColumn.Tag = "1";
+                        foreach (DataRow row in _Table.Rows)
+                        {
+                            row["chkInt"] = true;
+                        }
+                    }
+                    gcMain.BindingContext = new BindingContext();
+                    gcMain.DataSource = _Table;
+                    gcMain.ForceInitialize();
+                    gridView1.CloseEditor();
+                    gridView1.PostEditor();
+                    gridView1.UpdateCurrentRow();
+                    gridView1.InvalidateColumnHeader(checkBoxColumn);
+                }
+            }
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/DevApp/Gs.DevApp/DevFrm/Warehouse/SelectShuoTuiSq.Designer.cs b/DevApp/Gs.DevApp/DevFrm/Warehouse/SelectShuoTuiSq.Designer.cs
index 6cd8413..c4c3350 100644
--- a/DevApp/Gs.DevApp/DevFrm/Warehouse/SelectShuoTuiSq.Designer.cs
+++ b/DevApp/Gs.DevApp/DevFrm/Warehouse/SelectShuoTuiSq.Designer.cs
@@ -109,6 +109,7 @@
             this.gv_chk.MaxWidth = 50;
             this.gv_chk.MinWidth = 50;
             this.gv_chk.Name = "gv_chk";
+            this.gv_chk.Tag = "edit";
             this.gv_chk.Visible = true;
             this.gv_chk.VisibleIndex = 0;
             this.gv_chk.Width = 50;
diff --git a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
index f665fdc..580873b 100644
--- a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
+++ b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
@@ -42,7 +42,6 @@
         private static readonly string WebApiUrl =
             ConfigurationManager.AppSettings["WebApiUrl"];
 
-
         public static async Task<string> UploadFileAsync(string filePath)
         {
             using (var httpClient = new HttpClient())
@@ -1352,6 +1351,14 @@
             return false;
         }
 
+        public static bool ToCheck(string str)
+        {
+            if (str.ToUpper() == "true".ToUpper())
+                return true;
+            if (str.ToUpper() == "1".ToUpper())
+                return true;
+            return false;
+        }
 
         /// <summary>
         /// 璇诲彇grid鐨勫綋鍓嶈
@@ -1747,9 +1754,9 @@
                     column.OptionsColumn.ReadOnly = false;
                 else
                     column.OptionsColumn.ReadOnly = true;
-                
-                if(isPostSearch==false)
-                    column.OptionsColumn.ReadOnly = true;
+
+                //if(isPostSearch==false)
+                //    column.OptionsColumn.ReadOnly = true;
 
                 if (isPostSearch == true)
                 {
@@ -2090,6 +2097,7 @@
                 return 0;
             return decimal.Parse(txt);
         }
+      
     }
 
     /// <summary>

--
Gitblit v1.9.3