lu
2025-01-16 a7feb4c13e6f83f7adf8510dc7cb5c1323c87de5
DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
@@ -24,6 +24,7 @@
using Gs.DevApp.UserControl;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using OracleInternal.Sharding;
using UserControls.Data;
using static System.Windows.Forms.Control;
@@ -80,30 +81,30 @@
                request.ContentType = "application/json";
                request.Headers.Add("token", GetBasicAuthTicket());
                request.Accept = "*/*";
                request.Timeout = 15000;
                request.Timeout = 150000;
                request.AllowAutoRedirect = false;
                request.ServicePoint.Expect100Continue = false;
                wdf.SetCaption(_caption + "(10/100)" + meth);
                //  wdf.SetCaption(_caption + "(10/100)" + meth);
                HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
                request.CachePolicy = noCachePolicy;
                wdf.SetCaption(_caption + "(20/100)" + meth);
                //   wdf.SetCaption(_caption + "(20/100)" + meth);
                requestStream = new StreamWriter(request.GetRequestStream());
                requestStream.Write(param);
                requestStream.Close();
                wdf.SetCaption(_caption + "30/100)" + meth);
                //   wdf.SetCaption(_caption + "30/100)" + meth);
                response = request.GetResponse();
                wdf.SetCaption(_caption + "(40/100)");
                //  wdf.SetCaption(_caption + "(40/100)");
                if (response != null)
                {
                    wdf.SetCaption(_caption + "(50/100)" + meth);
                    //  wdf.SetCaption(_caption + "(50/100)" + meth);
                    var reader = new StreamReader(response.GetResponseStream(),
                        Encoding.UTF8);
                    responseStr = reader.ReadToEnd();
                    //File.WriteAllText(Server.MapPath("~/") + @"\test.txt", responseStr); 
                    reader.Close();
                    wdf.SetCaption(_caption + "(60/100)" + meth);
                    //  wdf.SetCaption(_caption + "(60/100)" + meth);
                }
                wdf.SetCaption(_caption + "(80/100)" + meth);
                // wdf.SetCaption(_caption + "(80/100)" + meth);
            }
            catch (Exception ex)
            {
@@ -117,7 +118,7 @@
                requestStream = null;
                response = null;
            }
            wdf.SetCaption(_caption + "(90/100)");
            // wdf.SetCaption(_caption + "(90/100)");
            wdf.Close();
            return responseStr;
        }
@@ -269,21 +270,37 @@
        {
            isEdt = !isEdt;
            if (gridViews != null)
            {
                foreach (var gv in gridViews)
                {
                    foreach (GridColumn colmn in gv.Columns)
                    {
                        colmn.OptionsColumn.AllowEdit = true;
                        if (colmn.Name.ToString().Contains("gvBtnAlawys"))
                        {
                            colmn.Visible = true;
                            colmn.OptionsColumn.ReadOnly = false;
                        };
                        if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui"))
                        {
                            //  colmn.Visible = !isEdt;
                            //  break;
                            colmn.OptionsColumn.AllowEdit = true;
                            colmn.Visible = !isEdt;
                        }
                        else
                            colmn.OptionsColumn.AllowEdit = !isEdt;
                        {
                            if (isEdt == false)
                            {
                                if (colmn.Tag != null && colmn.Tag.ToString().EndsWith("edit"))
                                    colmn.OptionsColumn.ReadOnly = isEdt;
                                else
                                    colmn.OptionsColumn.ReadOnly = !isEdt;
                            }
                            else
                                colmn.OptionsColumn.ReadOnly = isEdt;
                        }
                    }
                    //gv.OptionsBehavior.Editable = !isEdt;
                }
            }
            var _btnAry = controls.Find("btnSelect", false);
            if (_btnAry.Length > 0)
            {
@@ -314,7 +331,6 @@
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        if (colType is ImageComboBoxEdit)
                        {
                            var txt = colType as ImageComboBoxEdit;
@@ -329,32 +345,25 @@
                            }
                            continue;
                        }
                        if (colType is ComboBoxEdit)
                        {
                            var txt = colType as ComboBoxEdit;
                            if (txt.Properties.TextEditStyle ==
                                TextEditStyles.DisableTextEditor)
                                txt.SelectedIndex = int.Parse(strVal);
                                try
                                {
                                    txt.SelectedIndex = int.Parse(strVal);
                                }
                                catch (Exception)
                                {
                                    txt.Text = strVal;
                                }
                            else
                                txt.Text = strVal;
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //下拉
                        if (colType is ComboBoxEdit)
                        {
                            var txt = colType as ComboBoxEdit;
                            if (txt.Properties.TextEditStyle ==
                                TextEditStyles.DisableTextEditor)
                                txt.SelectedIndex = int.Parse(strVal);
                            else
                                txt.Text = strVal;
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //自定义下拉
                        if (colType is UcComBox)
                        {
@@ -363,14 +372,18 @@
                            txt.Enabled = !isEdt;
                            continue;
                        }
                        //文本
                        if (colType is TextEdit)
                        {
                            var txt = colType as TextEdit;
                            if (txt != null)
                                txt.Text = strVal;
                            txt.ReadOnly = isEdt;
                            if (_isRead(txt.Tag))
                            {
                                txt.ReadOnly = true;
                            }
                            else
                                txt.ReadOnly = isEdt;
                            continue;
                        }
                        if (colType is MemoEdit)
@@ -378,10 +391,14 @@
                            var txt = colType as MemoEdit;
                            if (txt != null)
                                txt.Text = strVal;
                            txt.ReadOnly = isEdt;
                            if (_isRead(txt.Tag))
                            {
                                txt.ReadOnly = true;
                            }
                            else
                                txt.ReadOnly = isEdt;
                            continue;
                        }
                        //数字卡
                        if (colType is NumericUpDown)
                        {
@@ -391,7 +408,6 @@
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //单选
                        if (colType is CheckEdit)
                        {
@@ -416,24 +432,30 @@
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //单选
                        if (colType is CheckBox)
                        {
                            var txt = colType as CheckBox;
                            if (txt != null)
                                txt.Checked = bool.Parse(strVal);
                                switch (strVal)
                                {
                                    case "True":
                                        txt.Checked = true;
                                        break;
                                    case "1":
                                        txt.Checked = true;
                                        break;
                                    case "False":
                                        txt.Checked = false;
                                        break;
                                    default:
                                        txt.Checked = false;
                                        break;
                                }
                            txt.Enabled = !isEdt;
                            continue;
                        }
                        if (colType is CheckEdit)
                        {
                            var txt = colType as CheckEdit;
                            if (txt != null)
                                txt.Checked = bool.Parse(strVal);
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //时间
                        if (colType is DateTimePicker)
                        {
@@ -442,7 +464,6 @@
                            txt.Enabled = !isEdt;
                            continue;
                        }
                        //Label
                        if (colType is Label)
                        {
@@ -525,7 +546,6 @@
                                txt.Enabled = false;
                            continue;
                        }
                        //自定客户
                        if (colType is UcLookCustomer)
                        {
@@ -614,6 +634,17 @@
                                txt.Enabled = false;
                            continue;
                        }
                        //自定委外
                        if (colType is UcLookWwgd)
                        {
                            var txt = colType as UcLookWwgd;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            continue;
                        }
                        if (colType is SimpleButton)
                        {
                            var txt = colType as SimpleButton;
@@ -625,6 +656,18 @@
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            foreach (Control ctrl in controls)
            {
                if (ctrl is TextEdit)
                {
                    var txt = ctrl as TextEdit;
                    bool _bl = _isRead(txt.Tag, isEdt);
                    txt.ReadOnly = _bl;
                    // txt.ReadOnly = isEdt;
                    continue;
                }
            }
        }
@@ -640,32 +683,51 @@
        {
            isEdt = !isEdt;
            if (gridViews != null)
            {
                foreach (var gv in gridViews)
                {
                    foreach (GridColumn colmn in gv.Columns)
                    {
                        colmn.OptionsColumn.AllowEdit = true;
                        if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui"))
                        {
                            //  colmn.Visible = !isEdt;
                            //  break;
                            colmn.OptionsColumn.AllowEdit = true;
                            colmn.Visible = !isEdt;
                        }
                        else
                            colmn.OptionsColumn.AllowEdit = !isEdt;
                        {
                            if (isEdt == false)
                            {
                                if (colmn.Tag != null && colmn.Tag.ToString().EndsWith("edit"))
                                    colmn.OptionsColumn.ReadOnly = isEdt;
                                else
                                    colmn.OptionsColumn.ReadOnly = !isEdt;
                            }
                            else
                                colmn.OptionsColumn.ReadOnly = isEdt;
                        }
                    }
                    //gv.OptionsBehavior.Editable = !isEdt;
                }
            }
            foreach (Control ctrl in controls)
            {
                //多行文本
                if (ctrl is MemoEdit)
                {
                    var txt = ctrl as MemoEdit;
                    txt.Text = "";
                    txt.ReadOnly = isEdt;
                    if (txt.Tag != null && txt.Tag.ToString().Length > 0 && txt.Tag.ToString().StartsWith("moren"))
                    {
                        txt.Text = txt.Tag.ToString().Replace("moren.", "");
                    }
                    else
                        txt.Text = "";
                    if (_isRead(txt.Tag))
                    {
                        txt.ReadOnly = true;
                    }
                    else
                        txt.ReadOnly = isEdt;
                    continue;
                }
                //下拉
                if (ctrl is ComboBoxEdit)
                {
@@ -678,7 +740,6 @@
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //自定义的下拉
                if (ctrl is UcComBox)
                {
@@ -687,7 +748,6 @@
                    txt.Enabled = !isEdt;
                    continue;
                }
                //文本
                if (ctrl is TextEdit)
                {
@@ -698,17 +758,15 @@
                    }
                    else
                        txt.Text = "";
                    txt.ReadOnly = isEdt;
                    if (_isRead(txt.Tag))
                    {
                        txt.ReadOnly = true;
                    }
                    else
                        txt.ReadOnly = isEdt;
                    continue;
                }
                if (ctrl is MemoEdit)
                {
                    var txt = ctrl as MemoEdit;
                    if (txt != null)
                        txt.Text = "";
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //时间
                if (ctrl is DateTimePicker)
                {
@@ -720,13 +778,19 @@
                if (ctrl is CheckBox)
                {
                    var txt = ctrl as CheckBox;
                    //txt.Checked = false;
                    txt.Enabled = !isEdt;
                    txt.Checked = false;
                }
                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"))
                    {
                        txt.Checked = bool.Parse(txt.Tag.ToString().Replace("moren.", ""));
                    }
                    else
                        txt.Checked = false;
                    continue;
                }
@@ -842,13 +906,20 @@
                    txt.Enabled = !isEdt;
                    continue;
                }
                //自定委外
                if (ctrl is UcLookWwgd)
                {
                    var txt = ctrl as UcLookWwgd;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    continue;
                }
                if (ctrl is SimpleButton)
                {
                    var txt = ctrl as SimpleButton;
                    txt.Enabled = !isEdt;
                    continue;
                }
            }
        }
@@ -863,34 +934,49 @@
        {
            isEdt = !isEdt;
            if (gridViews != null)
            {
                foreach (var gv in gridViews)
                {
                    foreach (GridColumn colmn in gv.Columns)
                    {
                        colmn.OptionsColumn.AllowEdit = true;
                        if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui"))
                        {
                            //  colmn.Visible = !isEdt;
                            //  break;
                            colmn.OptionsColumn.AllowEdit = true;
                            colmn.Visible = !isEdt;
                        }
                        else
                            colmn.OptionsColumn.AllowEdit = !isEdt;
                        {
                            if (colmn.Tag != null && colmn.Tag.ToString().EndsWith("edit"))
                                colmn.OptionsColumn.ReadOnly = isEdt;
                            else
                                colmn.OptionsColumn.ReadOnly = isEdt;
                        }
                    }
                    //gv.OptionsBehavior.Editable = !isEdt;
                }
            }
            foreach (Control ctrl in controls)
            {
                //文本
                if (ctrl is TextEdit)
                {
                    var txt = ctrl as TextEdit;
                    txt.ReadOnly = isEdt;
                    if (_isRead(txt.Tag))
                    {
                        txt.ReadOnly = true;
                    }
                    else
                        txt.ReadOnly = isEdt;
                    continue;
                }
                if (ctrl is MemoEdit)
                {
                    var txt = ctrl as MemoEdit;
                    txt.ReadOnly = isEdt;
                    if (_isRead(txt.Tag))
                    {
                        txt.ReadOnly = true;
                    }
                    else
                        txt.ReadOnly = isEdt;
                    continue;
                }
                //数字卡
@@ -1069,9 +1155,39 @@
                        txt.Enabled = false;
                    continue;
                }
                //自定委外
                if (ctrl is UcLookWwgd)
                {
                    var txt = ctrl as UcLookWwgd;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    continue;
                }
                if (ctrl is SimpleButton)
                {
                    var txt = ctrl as SimpleButton;
                    txt.Enabled = !isEdt;
                    continue;
                }
            }
        }
        private static bool _isRead(object obj, bool isEdt = false)
        {
            ///永远是只读的
            if (obj != null && obj.ToString().ToUpper() == ("readOnly".ToUpper()))
            {
                return true;
            }
            ///永远是可写的
            if (obj != null && obj.ToString().ToUpper() == ("readOnly-1".ToUpper()))
            {
                return false;
            }
            return isEdt;
        }
        /// <summary>
        ///     切换选项卡
        /// </summary>
@@ -1255,7 +1371,12 @@
                return 1;
            return 0;
        }
        public static bool ToBoole(string str)
        {
            if (str.ToUpper() == "true".ToUpper())
                return true;
            return false;
        }
        public string GetIsNullOrEmpty(string str)
        {
            if (string.IsNullOrEmpty(str.Trim()))
@@ -1454,9 +1575,15 @@
                        btnChkIco.Text = checkStatus;
                        btnChkIco.Visible = true;
                        if (checkStatus == "1" || checkStatus.ToUpper() == true.ToString().ToUpper())
                        {
                            btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_check;
                            btnChkIco.Tag = "已审核";
                        }
                        else
                        {
                            btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_noCheck;
                            btnChkIco.Tag = "未审核";
                        }
                        btnChkIco.Anchor = AnchorStyles.Top | AnchorStyles.Right; // 靠右
                        btnChkIco.Location = new Point(fm.ClientSize.Width - btnChkIco.Width - 20, 80); // 距离顶部10像素
                    }
@@ -1464,7 +1591,44 @@
            }
        }
        /// <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)
        {
@@ -1474,9 +1638,15 @@
        {
            return new FilterEntity(getQueryWord(id), idDec + ")", " like ", "包含)", "%" + val + "%");
        }
        public static List<FilterEntity> GetDilter(GridColumnCollection Columns)
        public static List<FilterEntity> GetDilter(GridColumnCollection Columns, GridView gridView1 = null)
        {
            List<FilterEntity> fiList = new List<FilterEntity>();
            if (gridView1 != null)
            {
                bool b = gridView1.ActiveFilterEnabled;
                if (b == false)
                    return fiList;
            }
            foreach (DevExpress.XtraGrid.Columns.GridColumn col in Columns)
            {
                ColumnFilterInfo filter = col.FilterInfo;
@@ -1533,20 +1703,28 @@
            gridView1.OptionsView.ColumnAutoWidth = false;//自动调整列宽
            foreach (GridColumn column in gridView1.Columns)
            {
                column.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Contains;
                column.OptionsFilter.ImmediateUpdateAutoFilter = false;
                column.OptionsColumn.AllowEdit = true;
                column.OptionsColumn.ReadOnly = true;
                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"))
                    column.OptionsColumn.ReadOnly = false;
                else
                    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;
            gridView1.OptionsFilter.AllowFilterEditor = false;
            gridView1.OptionsFilter.ShowCustomFunctions = DevExpress.Utils.DefaultBoolean.False;
            gridView1.OptionsFilter.AllowColumnMRUFilterList = false;
            gridView1.OptionsFilter.AllowMRUFilterList = false;
            gridView1.OptionsCustomization.AllowFilter = false;
            gridView1.OptionsFind.ShowSearchNavButtons = false;
            gridView1.OptionsView.ShowAutoFilterRow = true;
            gridView1.OptionsView.ShowGroupPanel = false;
            //是否显示底部的过滤条
            // gridView1.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;
            gridView1.IndicatorWidth = 50;
            gridView1.CustomDrawRowIndicator += (s, e) =>
            {
@@ -1590,6 +1768,40 @@
                        view.ActiveEditor.MouseUp += ActiveEditor_MouseUp;
                };
            }
            gridView1.RowStyle += (s, e) =>
            {
                //默认选中行不变色
                gridView1.OptionsSelection.EnableAppearanceFocusedRow = false;
                //默认选中单元格不变色
                gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;
                if (e.RowHandle >= 0)
                {
                    DataRow row = gridView1.GetDataRow(e.RowHandle);
                    if (row == null)
                        return;
                    bool columnExists = row.Table.Columns.Contains("isRed");
                    if (columnExists == true)
                    {
                        string _isRed = row["isRed"].ToString();
                        if (_isRed == "1")
                        {
                            e.Appearance.BackColor = Color.LightPink;
                        }
                    }
                    // 设置焦点行的背景色
                    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;
                    //}
                }
            };
        }
        private static void ActiveEditor_MouseUp(object sender, MouseEventArgs e)
@@ -1606,19 +1818,33 @@
                if (xtraTabControl1.SelectedTabPageIndex == 1)
                {
                    int _handle = gridView1.FocusedRowHandle;
                    if (_handle == -1)
                    bool _bl = xtraTabControl1.TabPages[0].PageEnabled;
                    if (_bl == false) { return; };
                    if (_handle < 0)
                    {
                        xtraTabControl1.SelectedTabPageIndex = -1;
                        Gs.DevApp.ToolBox.MsgHelper.ShowInformation("请选择你要显示的行!" + _handle.ToString() + "tag" + xtraTabControl1.SelectedTabPageIndex.ToString());
                        return;
                    }
                    DataRow row = gridView1.GetDataRow(_handle);
                    if (row == null)
                    {
                        xtraTabControl1.SelectedTabPageIndex = -1;
                        Gs.DevApp.ToolBox.MsgHelper.ShowInformation("请选择你要显示的行!" + _handle.ToString());
                        return;
                    }
                    string _guid = row["guid"].ToString();
                    if (string.IsNullOrEmpty(_guid))
                    {
                        xtraTabControl1.SelectedTabPageIndex = -1;
                        Gs.DevApp.ToolBox.MsgHelper.ShowInformation("请选择你要显示的行!" + _handle.ToString());
                        return;
                    }
                    action(_guid);
                }
                if (xtraTabControl1.SelectedTabPageIndex == 0)
                {
                    page(pageBar1.CurrentPage);
                    //  page(pageBar1.CurrentPage);
                }
            };
        }
@@ -1681,8 +1907,6 @@
            Regex regex = new Regex("^[0-9]+$");
            return regex.IsMatch(str);
        }
    }