lu
2025-03-01 c26069c9418efe9f9c0f963f43fb98b8a7440adf
DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
@@ -4,11 +4,13 @@
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Cache;
using System.Net.Http;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
@@ -17,6 +19,7 @@
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Menu;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraTab;
using DevExpress.XtraTreeList;
@@ -189,11 +192,7 @@
                string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginUserGuid)
                    ? Guid.NewGuid().ToString()
                    : LoginInfoModel.CurrentUser.LoginUserGuid;
            var orgGuid =
                string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginOrgGuid)
                    ? Guid.NewGuid().ToString()
                    : LoginInfoModel.CurrentUser.LoginOrgGuid;
            var token = userGuid + "~" + orgGuid;
            var token = userGuid;
            return token;
        }
@@ -454,7 +453,6 @@
                            txt.Enabled = !isEdt;
                            continue;
                        }
                        //时间
                        if (colType is DateTimePicker)
                        {
@@ -644,6 +642,17 @@
                                txt.Enabled = false;
                            continue;
                        }
                        //自定销售
                        if (colType is UcLookSales)
                        {
                            var txt = colType as UcLookSales;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            continue;
                        }
                        if (colType is SimpleButton)
                        {
                            var txt = colType as SimpleButton;
@@ -765,7 +774,6 @@
                        txt.ReadOnly = isEdt;
                    continue;
                }
                //时间
                if (ctrl is DateTimePicker)
                {
@@ -784,10 +792,14 @@
                {
                    var txt = ctrl as CheckEdit;
                    txt.ReadOnly = isEdt;
                    txt.Checked = false;
                    if (txt.Tag != null && txt.Tag.ToString().Length > 0 && txt.Tag.ToString().StartsWith("moren"))
                    {
                        txt.Checked = bool.Parse(txt.Tag.ToString().Replace("moren.", ""));
                    }
                    else
                        txt.Checked = false;
                    continue;
                }
                //自定义仓库
                if (ctrl is UcLookCk)
                {
@@ -904,6 +916,14 @@
                if (ctrl is UcLookWwgd)
                {
                    var txt = ctrl as UcLookWwgd;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    continue;
                }
                //自定销售
                if (ctrl is UcLookSales)
                {
                    var txt = ctrl as UcLookSales;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    continue;
@@ -1159,6 +1179,16 @@
                        txt.Enabled = false;
                    continue;
                }
                //自定销售
                if (ctrl is UcLookSales)
                {
                    var txt = ctrl as UcLookSales;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    continue;
                }
                if (ctrl is SimpleButton)
                {
                    var txt = ctrl as SimpleButton;
@@ -1333,7 +1363,18 @@
            if (string.IsNullOrEmpty(str)) return Guid.Empty;
            return Guid.Parse(str);
        }
        public static decimal ToDecimal(string str)
        {
            try
            {
                return decimal.Parse(str);
            }
            catch (Exception)
            {
                return 0;
            }
        }
        public static int ToInt(string str)
        {
            try
@@ -1371,12 +1412,7 @@
                return true;
            return false;
        }
        public string GetIsNullOrEmpty(string str)
        {
            if (string.IsNullOrEmpty(str.Trim()))
                return "{>";
            return str.Trim();
        }
        /// <summary>
        /// 读取grid的当前行
@@ -1568,7 +1604,7 @@
                        var checkStatus = dgv.GetRowCellValue(selectedRow, fileName).ToString(); // 获取指定列的值
                        btnChkIco.Text = checkStatus;
                        btnChkIco.Visible = true;
                        if (checkStatus == "1" || checkStatus.ToUpper() == true.ToString().ToUpper())
                        if (checkStatus == "1" || checkStatus.ToUpper() == true.ToString().ToUpper() || checkStatus == "已审核")
                        {
                            btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_check;
                            btnChkIco.Tag = "已审核";
@@ -1579,13 +1615,50 @@
                            btnChkIco.Tag = "未审核";
                        }
                        btnChkIco.Anchor = AnchorStyles.Top | AnchorStyles.Right; // 靠右
                        btnChkIco.Location = new Point(fm.ClientSize.Width - btnChkIco.Width - 20, 80); // 距离顶部10像素
                        btnChkIco.Location = new Point(fm.ClientSize.Width - btnChkIco.Width - 20, 25); // 距离顶部10像素
                    }
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="gridView1"></param>
        /// <param name="zdChk">chk字段</param>
        /// <param name="zdChkUser">chk user</param>
        /// <param name="zdCkDate">chk date</param>
        /// <param name="btnChkIco"></param>
        /// <param name="fm">当前窗体</param>
        /// <param name="fileName">1为审核,0为反审核</param>
        /// <param name="icoName"></param>
        public static void SetCheckIco(GridView gridView1, string zdChk, string zdChkUser, string zdCkDate, PictureBox btnChkIco, Form fm, string fileName, string icoName = "")
        {
            if (fileName == "1" || fileName.ToUpper() == true.ToString().ToUpper())
            {
                btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_check;
                btnChkIco.Tag = "已审核";
                if (!string.IsNullOrEmpty(zdChkUser))
                    gridView1.SetFocusedRowCellValue(zdChkUser, "已审核");
                if (!string.IsNullOrEmpty(zdCkDate))
                    gridView1.SetFocusedRowCellValue(zdCkDate, DateTime.Now.ToString());
                if (!string.IsNullOrEmpty(zdChk))
                    gridView1.SetFocusedRowCellValue(zdChk, true);
            }
            else
            {
                btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_noCheck;
                btnChkIco.Tag = "未审核";
                if (!string.IsNullOrEmpty(zdChkUser))
                    gridView1.SetFocusedRowCellValue(zdChkUser, "");
                if (!string.IsNullOrEmpty(zdCkDate))
                    gridView1.SetFocusedRowCellValue(zdCkDate, "");
                if (!string.IsNullOrEmpty(zdChk))
                    gridView1.SetFocusedRowCellValue(zdChk, false);
            }
            btnChkIco.Anchor = AnchorStyles.Top | AnchorStyles.Right; // 靠右
            btnChkIco.Location = new Point(fm.ClientSize.Width - btnChkIco.Width - 20, 80); // 距离顶部10像素
        }
        #region 设置搜索
        public static string getQueryWord(string str)
        {
@@ -1657,9 +1730,33 @@
        /// <param name="action"></param>
        public static void SetGridViewParameter(GridView gridView1, PictureBox picCheckBox = null, Form fm = null, string fileName = "checkStatus", string icoName = "", DelegateGetModel action = null)
        {
            gridView1.PopupMenuShowing += (s, e) =>
            {
                if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column)
                {
                    GridViewColumnMenu menu = e.Menu as GridViewColumnMenu;
                    if (menu != null)
                    {
                        string[] ary = { "Column Chooser", "Hide This Column", "Clear All Sorting", "Clear Sorting", "Sort Descending", "Sort Ascending", "Best Fit (all columns)" };
                        for (int i = menu.Items.Count - 1; i >= 0; i--)
                        {
                            string _caption = menu.Items[i].Caption;
                            if (!ary.Contains(_caption))
                            {
                                menu.Items.Remove(menu.Items[i]);
                            }
                        }
                    }
                }
            };
            gridView1.OptionsView.ShowGroupPanel = false;
            gridView1.OptionsCustomization.AllowGroup = false;
            gridView1.Appearance.HeaderPanel.ForeColor = DevExpress.LookAndFeel.DXSkinColors.ForeColors.ControlText;
            gridView1.OptionsView.ColumnAutoWidth = false;//自动调整列宽
            foreach (GridColumn column in gridView1.Columns)
            {
                column.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
                column.OptionsColumn.AllowEdit = true;
                column.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Contains;
                column.OptionsFilter.AutoFilterCondition = DevExpress.XtraGrid.Columns.AutoFilterCondition.Contains;
@@ -1685,10 +1782,6 @@
            gridView1.IndicatorWidth = 50;
            gridView1.CustomDrawRowIndicator += (s, e) =>
            {
                //if (e.RowHandle == GridControl.AutoFilterRowHandle)
                //{
                //    e.Info.DisplayText = "筛选行";
                //}
                if (e.Info.IsRowIndicator && e.RowHandle >= 0)
                    e.Info.DisplayText = (e.RowHandle + 1).ToString();
            };
@@ -1731,8 +1824,10 @@
            }
            gridView1.RowStyle += (s, e) =>
            {
                gridView1.OptionsSelection.EnableAppearanceFocusedRow = false;//默认选中行不变色
                gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;//默认选中单元格不变色
                //默认选中行不变色
                gridView1.OptionsSelection.EnableAppearanceFocusedRow = false;
                //默认选中单元格不变色
                gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;
                if (e.RowHandle >= 0)
                {
                    DataRow row = gridView1.GetDataRow(e.RowHandle);
@@ -1744,9 +1839,21 @@
                        string _isRed = row["isRed"].ToString();
                        if (_isRed == "1")
                        {
                            e.Appearance.BackColor = Color.LightPink;
                            e.Appearance.ForeColor = Color.Tomato;
                        }
                    }
                    // 设置焦点行的背景色
                    if (gridView1.GetRow(e.RowHandle) == gridView1.GetFocusedRow())
                    {
                        e.Appearance.BackColor = Color.Azure;
                        e.Appearance.BackColor2 = Color.LightSkyBlue;
                    }
                    //else if (gridView1.IsRowHotTracked(e.RowHandle))
                    //{
                    //    // 设置鼠标悬停行的背景色
                    //    e.Appearance.BackColor = Color.LightBlue;
                    //    e.Appearance.BackColor2 = Color.LightBlue;
                    //}
                }
            };
        }
@@ -1766,7 +1873,7 @@
                    int _handle = gridView1.FocusedRowHandle;
                    bool _bl = xtraTabControl1.TabPages[0].PageEnabled;
                    if (_bl == false) { return; };
                    if (_handle < 0 )
                    if (_handle < 0)
                    {
                        xtraTabControl1.SelectedTabPageIndex = -1;
                        Gs.DevApp.ToolBox.MsgHelper.ShowInformation("请选择你要显示的行!" + _handle.ToString() + "tag" + xtraTabControl1.SelectedTabPageIndex.ToString());
@@ -1790,7 +1897,7 @@
                }
                if (xtraTabControl1.SelectedTabPageIndex == 0)
                {
                  //  page(pageBar1.CurrentPage);
                    //  page(pageBar1.CurrentPage);
                }
            };
        }
@@ -1805,6 +1912,34 @@
        /// <param name="icoName"></param>
        public static void SetGridViewParameterMx(GridView gridView1)
        {
            gridView1.PopupMenuShowing += (s, e) =>
            {
                if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column)
                {
                    GridViewColumnMenu menu = e.Menu as GridViewColumnMenu;
                    if (menu != null)
                    {
                        string[] ary = { "Column Chooser", "Hide This Column", "Clear All Sorting", "Clear Sorting", "Sort Descending", "Sort Ascending", "Best Fit (all columns)" };
                        for (int i = menu.Items.Count - 1; i >= 0; i--)
                        {
                            string _caption = menu.Items[i].Caption;
                            if (!ary.Contains(_caption))
                            {
                                menu.Items.Remove(menu.Items[i]);
                            }
                        }
                    }
                }
            };
            gridView1.OptionsView.ShowGroupPanel = false;
            gridView1.OptionsCustomization.AllowGroup = false;
            // gridView1.OptionsView.Alignment = DataGridViewContentAlignment.MiddleLeft;
            foreach (GridColumn column in gridView1.Columns)
            {
                // column.DefaultCellStyle.Alignment = true;
                column.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
            }
            gridView1.OptionsView.ColumnAutoWidth = false;//自动调整列宽
            gridView1.OptionsFilter.AllowFilterEditor = false;
            gridView1.OptionsFilter.ShowCustomFunctions = DevExpress.Utils.DefaultBoolean.False;
@@ -1854,6 +1989,74 @@
            return regex.IsMatch(str);
        }
        public static void getGridViewConfig(string namespaceFullName, List<DevExpress.XtraGrid.Views.Grid.GridView> gvList)
        {
            // gridView1.ShowCustomization();
            // gridView1.OptionsMenu.EnableColumnMenu = false;
            JArray array = new JArray();
            var _obj = new
            {
                formPath = namespaceFullName,
            };
            try
            {
                string strJson = UtilityHelper.HttpPost("", "Fm/GetModel", JsonConvert.SerializeObject(_obj));
                ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson);
                if (_rtn.rtnCode > 0)
                {
                    JObject _job = JObject.Parse(strJson);
                    foreach (var a in _job["rtnData"]["list"])
                    {
                        array.Add(a);
                    }
                }
                else
                    ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg);
            }
            catch (Exception ex)
            {
                ToolBox.MsgHelper.Warning("提示:" + ex.Message);
            }
            foreach (GridView gridView1 in gvList)
            {
                gridView1.PopupMenuShowing += (s, e) =>
                {
                    if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column)
                    {
                        GridViewColumnMenu menu = e.Menu as GridViewColumnMenu;
                        if (menu != null)
                        {
                            string[] ary = { "Column Chooser", "Hide This Column", "Clear All Sorting", "Clear Sorting", "Sort Descending", "Sort Ascending", "Best Fit (all columns)" };
                            for (int i = menu.Items.Count - 1; i >= 0; i--)
                            {
                                string _caption = menu.Items[i].Caption;
                                if (!ary.Contains(_caption))
                                {
                                    menu.Items.Remove(menu.Items[i]);
                                }
                            }
                        }
                    }
                };
                gridView1.OptionsView.ShowGroupPanel = false;
                gridView1.OptionsCustomization.AllowGroup = false;
                if (string.IsNullOrEmpty(namespaceFullName)) return;
                foreach (GridColumn column in gridView1.Columns)
                {
                    JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == column.Name.ToString().Trim().ToUpper());
                    if (john != null)
                    {
                        string controlIdx = john["controlIdx"].ToString();
                        string controlVisible = john["controlVisible"].ToString();
                        if (!string.IsNullOrEmpty(controlIdx))
                            column.VisibleIndex = int.Parse(controlIdx);
                        if (!string.IsNullOrEmpty(controlVisible))
                            column.Visible = bool.Parse(controlVisible);
                    }
                }
            }
        }
    }
    /// <summary>