lu
2025-03-21 7a79a925742bac1c873f76c0a86443859771bee5
DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
@@ -10,7 +10,6 @@
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;
@@ -410,7 +409,14 @@
                        if (colType is CheckEdit)
                        {
                            var txt = colType as CheckEdit;
                            if (_isRead(txt.Tag))
                            {
                                txt.ReadOnly = true;
                            }
                            else
                                txt.ReadOnly = isEdt;
                            if (txt != null)
                            {
                                switch (strVal)
                                {
                                    case "True":
@@ -426,8 +432,8 @@
                                        txt.Checked = false;
                                        break;
                                }
                            }
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //单选
@@ -453,6 +459,7 @@
                            txt.Enabled = !isEdt;
                            continue;
                        }
                        //时间
                        if (colType is DateTimePicker)
                        {
@@ -791,13 +798,12 @@
                if (ctrl is CheckEdit)
                {
                    var txt = ctrl as CheckEdit;
                    txt.ReadOnly = isEdt;
                    if (txt.Tag != null && txt.Tag.ToString().Length > 0 && txt.Tag.ToString().StartsWith("moren"))
                    if (_isRead(txt.Tag))
                    {
                        txt.Checked = bool.Parse(txt.Tag.ToString().Replace("moren.", ""));
                        txt.ReadOnly = true;
                    }
                    else
                        txt.Checked = false;
                        txt.ReadOnly = isEdt;
                    continue;
                }
                //自定义仓库
@@ -1375,6 +1381,11 @@
                return 0;
            }
        }
        public static decimal? GetDecimal(string s)
        {
            if (string.IsNullOrEmpty(s)) return null;
            return decimal.Parse(s);
        }
        public static int ToInt(string str)
        {
            try
@@ -1596,7 +1607,7 @@
            GridView dgv = s as GridView;
            if (dgv != null)
            {
                if (dgv.GetSelectedRows() != null)
                if (dgv.GetSelectedRows() != null && dgv.GetSelectedRows().Count() > 0)
                {
                    var selectedRow = dgv.GetSelectedRows()[0]; // 获取第一个选中行的索引
                    if (selectedRow >= 0)
@@ -1720,7 +1731,7 @@
        public delegate void DelegateGetModel(string guid);
        public delegate void DelegateGetList(int currentPage);
        /// <summary>
        ///
        /// 设置主表的样式
        /// </summary>
        /// <param name="gridView1">gridview</param>
        /// <param name="picCheckBox">图标按钮</param>
@@ -1730,13 +1741,35 @@
        /// <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 = AutoFilterCondition.Contains;
                column.OptionsFilter.AutoFilterCondition = DevExpress.XtraGrid.Columns.AutoFilterCondition.Contains;
                column.OptionsFilter.ImmediateUpdateAutoFilter = false;
                if (column.Tag == null || column.Tag.ToString().EndsWith("edit"))
@@ -1745,6 +1778,7 @@
                    column.OptionsColumn.ReadOnly = true;
                if (column.Tag == null || column.Tag.ToString().Length <= 0)
                    column.OptionsFilter.AllowAutoFilter = false;
            }
            gridView1.OptionsFilter.AllowAutoFilterConditionChange = DevExpress.Utils.DefaultBoolean.False;
            gridView1.OptionsView.ShowAutoFilterRow = true;
@@ -1842,6 +1876,23 @@
            edit.SelectAll();
        }
        public static void SetGridLayout(GridView gridView1)
        {
            foreach (GridColumn column in gridView1.Columns)
            {
                if (column.Width > 500)
                    column.Width = 500;
            }
        }
        /// <summary>
        /// 设置选项卡
        /// </summary>
        /// <param name="gridView1"></param>
        /// <param name="xtraTabControl1"></param>
        /// <param name="pageBar1"></param>
        /// <param name="action"></param>
        /// <param name="page"></param>
        public static void SetTabParameter(GridView gridView1, DevExpress.XtraTab.XtraTabControl xtraTabControl1, UcPageBar pageBar1, DelegateGetModel action = null, DelegateGetList page = null)
        {
            xtraTabControl1.SelectedPageChanged += (s, e) =>
@@ -1890,6 +1941,28 @@
        /// <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)
            {
@@ -2010,57 +2083,8 @@
                            column.Visible = bool.Parse(controlVisible);
                    }
                }
            }
        }
        public static void getXmlConfig(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"])
                    {
                        //string _id = a["controlId"].ToString();
                        //string _controlType = a["controlType"].ToString();
                        //string _controlXml = a["controlXml"].ToString();
                        //string _splitterPosition = a["splitterPosition"].ToString();
                        array.Add(a);
                    }
                    foreach (GridView gridView1 in gvList)
                    {
                        JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == gridView1.Name.ToString().Trim().ToUpper());
                        if (john != null)
                        {
                            string controlId = john["controlId"].ToString();
                            string controlXml = john["controlXml"].ToString();
                            byte[] byteArray = Encoding.UTF8.GetBytes(controlXml);
                            using (var stream = new MemoryStream(byteArray))
                            {
                                gridView1.RestoreLayoutFromStream(stream);
                            }
                        }
                    }
                }
                else
                    ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg);
            }
            catch (Exception ex)
            {
                ToolBox.MsgHelper.Warning("提示:" + ex.Message);
            }
        }
    }