lu
2025-04-18 f788e188fdeeb74cec845cd2c5df4976f7ff1ed5
DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
@@ -1,4 +1,18 @@
using System;
using DevExpress.Utils;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Menu;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
using DevExpress.XtraTab;
using DevExpress.XtraTreeList;
using Gs.DevApp.Entity;
using Gs.DevApp.UserControl;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
@@ -14,20 +28,7 @@
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.Utils;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Menu;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
using DevExpress.XtraTab;
using DevExpress.XtraTreeList;
using Gs.DevApp.Entity;
using Gs.DevApp.UserControl;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Windows.Forms.VisualStyles;
using UserControls.Data;
using static System.Windows.Forms.Control;
@@ -41,7 +42,6 @@
    {
        private static readonly string WebApiUrl =
            ConfigurationManager.AppSettings["WebApiUrl"];
        public static async Task<string> UploadFileAsync(string filePath)
        {
@@ -726,6 +726,7 @@
                    var txt = ctrl as ButtonEdit;
                    txt.Text = "";
                    txt.Enabled = !isEdt;
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //文本
@@ -1351,6 +1352,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的当前行
@@ -1713,7 +1722,7 @@
                }
            };
            gridView1.OptionsView.ColumnAutoWidth = false;//自动调整列宽
            if (isPostSearch == true)
            {
                gridView1.OptionsView.ShowGroupPanel = false;
@@ -1745,8 +1754,10 @@
                if (column.Tag == null || column.Tag.ToString().EndsWith("edit"))
                    column.OptionsColumn.ReadOnly = false;
                else
                    //column.OptionsColumn.ReadOnly = true;
                column.OptionsColumn.ReadOnly = isPostSearch;
                    column.OptionsColumn.ReadOnly = true;
                //if(isPostSearch==false)
                //    column.OptionsColumn.ReadOnly = true;
                if (isPostSearch == true)
                {
@@ -2065,7 +2076,8 @@
            }
        }
        public static void PrintAuto(DevExpress.XtraEditors.TextEdit txt_psnQty_1, DevExpress.XtraEditors.TextEdit txt_iCount_1, DevExpress.XtraEditors.RadioGroup radOut) {
        public static void PrintAuto(DevExpress.XtraEditors.TextEdit txt_psnQty_1, DevExpress.XtraEditors.TextEdit txt_iCount_1, DevExpress.XtraEditors.RadioGroup radOut)
        {
            txt_psnQty_1.Text = "";
            txt_iCount_1.Text = "";
            radOut.Properties.Items[0].Description = "全自动";
@@ -2086,6 +2098,75 @@
                return 0;
            return decimal.Parse(txt);
        }
        #region 绘制表头全选勾选框
        /// <summary>
        /// 绘制表头全选勾选框
        /// </summary>
        //  private Rectangle checkBoxColumnHeaderRect = Rectangle.Empty;
        // 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)
            {
                //X = 51 Y = 1 Width = 37 Height = 57
                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;
            }
        }
        public static void CustomMouseUp(object sender, MouseEventArgs e, DevExpress.XtraGrid.GridControl gcMain, DevExpress.XtraGrid.Views.Grid.GridView gridView1)
        {
            GridColumn checkBoxColumn = gridView1.Columns[0];
            Rectangle checkBoxColumnHeaderRect = new Rectangle(51, 1, 37, 57);
            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
    }
    /// <summary>