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 |  171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 164 insertions(+), 7 deletions(-)

diff --git a/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs b/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs
index b5abbf6..d5e23e9 100644
--- a/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs
+++ b/DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs
@@ -1,21 +1,178 @@
-锘縰sing DevExpress.XtraEditors;
+锘縰sing DevExpress.XtraGrid.Columns;
+using DevExpress.XtraGrid.Views.Grid;
+using Gs.DevApp.Entity;
+using Gs.DevApp.ToolBox;
+using Newtonsoft.Json;
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
 using System.Data;
 using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 using System.Windows.Forms;
+using System.Windows.Forms.VisualStyles;
 
 namespace Gs.DevApp.DevFrm.PDA
 {
     public partial class SelectPage : DevExpress.XtraEditors.XtraForm
     {
-        public SelectPage()
+        private readonly string _webServiceName = "MesSysPageviewManager/";
+        private string userGuid = "";
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="_suppId">渚涘簲鍟�</param>
+        /// <param name="_receiveOrgId">鏀舵枡缁勭粐</param>
+        /// <param name="_isWw">鏄惁濮斿</param>
+        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();
+                DataTable dt = this.gcMain.DataSource as DataTable;
+                {
+                    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
+                {
+                    userGuid = Gs.DevApp.ToolBox.UtilityHelper.ToGuid(userGuid),
+                    bindGuidslist = sbList.ToString(),
+                    fType = "PDA椤甸潰",
+                };
+                try
+                {
+                    var strJson = UtilityHelper.HttpPost("",
+                          "MesSysPageviewManager/SetUserBind",
+                        JsonConvert.SerializeObject(_obj));
+                    var _rtn = UtilityHelper.ReturnToDynamic(strJson);
+                    MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnData.outMsg);
+                    if (_rtn.rtnCode > 0)
+                    {
+                        this.Close();
+                    }
+                }
+                catch (Exception ex)
+                {
+                    MsgHelper.Warning("鎻愮ず锛�" + ex.Message);
+                }
+            };
         }
+
+
+        /// <summary>
+        /// </summary>
+        /// <param name="curPage">绗嚑椤�</param>
+        /// <param name="pageSize">姣忛〉鍑犳潯</param>
+        private void getPageList(int curPage)
+        {
+            var _sbSqlWhere = "";
+            var pgq = new PageQueryModel(curPage, 999999, "a.PAGE_GROUP", "asc", "", _sbSqlWhere.ToString(), userGuid);
+            var json = JsonConvert.SerializeObject(pgq);
+            try
+            {
+                var strReturn = UtilityHelper.HttpPost("",
+                    _webServiceName + "GetListPage", json);
+                var dd = UtilityHelper.ReturnToTablePage(strReturn);
+                if (dd.rtnCode > 0)
+                {
+                    DataTable dt = dd.rtnData.list;
+                    gcMain.BindingContext = new BindingContext();
+                    if (dt.Rows.Count > 0)
+                    {
+                        gcMain.DataSource = dt;
+                        gcMain.ForceInitialize();
+                        gridView1.BestFitColumns(); Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gridView1);
+                    }
+                    else
+                        UtilityHelper.SetDefaultTable(gcMain, gridView1);
+                }
+                else
+                {
+                    ToolBox.MsgHelper.ShowError("鎻愮ず锛�" + dd.rtnMsg);
+                }
+            }
+            catch (Exception ex)
+            {
+                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

--
Gitblit v1.9.3