lu
2025-04-15 641e86dfaeb2eed992a717beb297c0ba84869f6b
DevApp/Gs.DevApp/DevFrm/PDA/SelectPage.cs
@@ -1,25 +1,19 @@
using DevExpress.XtraEditors;
using 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 static DevExpress.Data.Mask.Internal.RegExMaskMath.DraftFiniteAutomaton<T>;
using System.Windows.Forms.VisualStyles;
namespace Gs.DevApp.DevFrm.PDA
{
    public partial class SelectPage : DevExpress.XtraEditors.XtraForm
    {
        private readonly List<FilterEntity> _filterList = new List<FilterEntity>();
        private readonly string _webServiceName = "MesDepotsManager/";
        private readonly string _webServiceName = "MesSysPageviewManager/";
        private string userGuid = "";
        /// <summary>
        /// 
@@ -30,29 +24,33 @@
        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, "", (value) =>
            {
            });
            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
                {
                    userGuid = Gs.DevApp.ToolBox.UtilityHelper.ToGuid(userGuid),
                    bindGuidslist = sbList.ToString(),
                    fType = "仓库",
                    fType = "PDA页面",
                };
                try
                {
@@ -80,9 +78,8 @@
        /// <param name="pageSize">每页几条</param>
        private void getPageList(int curPage)
        {
            var _sbSqlWhere = UtilityHelper.GetSearchWhere(_filterList);
            var pgq = new PageQueryModel(curPage, 999999, "org.FNumber asc ,a.depot_code", "asc",
                "", _sbSqlWhere.ToString());
            var _sbSqlWhere = "";
            var pgq = new PageQueryModel(curPage, 999999, "a.PAGE_GROUP", "asc", "", _sbSqlWhere.ToString(), userGuid);
            var json = JsonConvert.SerializeObject(pgq);
            try
            {
@@ -97,7 +94,7 @@
                    {
                        gcMain.DataSource = dt;
                        gcMain.ForceInitialize();
                        gridView1.BestFitColumns();
                        gridView1.BestFitColumns(); Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gridView1);
                    }
                    else
                        UtilityHelper.SetDefaultTable(gcMain, gridView1);
@@ -113,5 +110,69 @@
            }
        }
        #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
    }
}