bug
lu
3 天以前 9702c6a4dc358c7bff2eb18c8426229a0140e34a
DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
@@ -55,20 +55,24 @@
        /// <summary>
        /// http请求
        /// </summary>
        /// <param name="url"></param>
        /// <param name="meth"></param>
        /// <param name="param"></param>
        /// <param name="isLoading"></param>
        /// <param name="url">api根地址</param>
        /// <param name="meth">方法名称</param>
        /// <param name="param">json参数</param>
        /// <param name="isLoading">是否loading</param>
        /// <returns></returns>
        public static string HttpPost(string url, string meth, string param, bool isLoading = true)
        {
            Size _size; string _caption; Color _color; Padding _pad;
            (_size, _caption, _color, _pad) = getLoading();
            DevExpress.Utils.WaitDialogForm wdf = new DevExpress.Utils.WaitDialogForm("加载进度:" + meth, _caption, _size);
            wdf.BackColor = _color;
            wdf.Padding = _pad;
            wdf.SetCaption("加载进度:" + meth);
            wdf.Visible = isLoading;
            DevExpress.Utils.WaitDialogForm wdf = null;
            if (isLoading == true)
            {
                Size _size; string _caption; Color _color; Padding _pad;
                (_size, _caption, _color, _pad) = getLoading();
                wdf = new DevExpress.Utils.WaitDialogForm("加载进度:" + meth, _caption, _size);
                wdf.BackColor = _color;
                wdf.Padding = _pad;
                wdf.SetCaption("加载进度:" + meth);
                wdf.Visible = isLoading;
            }
            HttpWebRequest request = null;
            StreamWriter requestStream = null;
            WebResponse response = null;
@@ -103,7 +107,8 @@
            }
            catch (Exception ex)
            {
                wdf.Close();
                if (wdf != null)
                    wdf.Close();
                LogHelper.Debug(url, param + ":" + ex.Message);
                throw ex;
            }
@@ -113,7 +118,8 @@
                requestStream = null;
                response = null;
            }
            wdf.Close();
            if (wdf != null)
                wdf.Close();
            return responseStr;
        }
@@ -268,7 +274,8 @@
                        {
                            colmn.Visible = true;
                            colmn.OptionsColumn.ReadOnly = false;
                        };
                        }
                        ;
                        if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui"))
                        {
                            colmn.Visible = !isEdt;
@@ -451,6 +458,15 @@
                                        break;
                                }
                            txt.Enabled = !isEdt;
                            continue;
                        }
                        //多选
                        if (colType is RadioGroup)
                        {
                            var txt = colType as RadioGroup;
                            if (txt != null)
                                txt.SelectedIndex = int.Parse(strVal);
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //时间
@@ -747,6 +763,15 @@
                        txt.ReadOnly = isEdt;
                    continue;
                }
                //多选
                if (ctrl is RadioGroup)
                {
                    var txt = ctrl as RadioGroup;
                    if (txt != null)
                        txt.SelectedIndex = 0;
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //时间
                if (ctrl is DateTimePicker)
                {
@@ -770,6 +795,7 @@
                    }
                    else
                        txt.ReadOnly = isEdt;
                    txt.Checked = false;
                    continue;
                }
                //自定义仓库
@@ -1007,6 +1033,13 @@
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //多选
                if (ctrl is RadioGroup)
                {
                    var txt = ctrl as RadioGroup;
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //日期
                if (ctrl is DateTimePicker)
                {
@@ -1205,6 +1238,10 @@
            {
                tabControl.TabPages[0].PageEnabled = true;
                tabControl.TabPages[1].PageEnabled = true;
                if (tabControl.TabPages.Count > 2)
                {
                    tabControl.TabPages[2].PageEnabled = true;
                }
                tabControl.SelectedTabPageIndex = 0;
                return;
            }
@@ -1219,6 +1256,10 @@
            {
                tabControl.TabPages[0].PageEnabled = false;
                tabControl.TabPages[1].PageEnabled = true;
                if (tabControl.TabPages.Count > 2)
                {
                    tabControl.TabPages[2].PageEnabled = false;
                }
                tabControl.SelectedTabPageIndex = 1;
                return;
            }
@@ -1226,6 +1267,10 @@
            {
                tabControl.TabPages[0].PageEnabled = false;
                tabControl.TabPages[1].PageEnabled = true;
                if (tabControl.TabPages.Count >2)
                {
                    tabControl.TabPages[2].PageEnabled = false;
                }
                tabControl.SelectedTabPageIndex = 1;
                return;
            }
@@ -1241,7 +1286,10 @@
            {
                tabControl.TabPages[0].PageEnabled = true;
                tabControl.TabPages[1].PageEnabled = true;
                if (tabControl.TabPages.Count > 2)
                {
                    tabControl.TabPages[2].PageEnabled = true;
                }
                return;
            }
        }
@@ -1677,16 +1725,20 @@
        }
        public delegate void DelegateGetModel(string guid);
        public delegate void DelegateGetList(int currentPage);
        public delegate void DelegateGetUserControlList();
        /// <summary>
        /// 设置主表的样式
        ///
        /// </summary>
        /// <param name="gridView1">gridview</param>
        /// <param name="picCheckBox">图标按钮</param>
        /// <param name="fm"></param>
        /// <param name="fm">窗体</param>
        /// <param name="fileName">字段</param>
        /// <param name="icoName">图标路径</param>
        /// <param name="action"></param>
        public static void SetGridViewParameter(GridView gridView1, PictureBox picCheckBox = null, Form fm = null, string fileName = "checkStatus", string icoName = "", DelegateGetModel action = null, DevExpress.Utils.ToolTipController tips = null, bool isPostSearch = true)
        /// <param name="action">委托1</param>
        /// <param name="tips">鸟嘴提示</param>
        /// <param name="isPostSearch"></param>
        /// <param name="action2">委托2</param>
        public static void SetGridViewParameter(GridView gridView1, PictureBox picCheckBox = null, Form fm = null, string fileName = "checkStatus", string icoName = "", DelegateGetModel action = null, DevExpress.Utils.ToolTipController tips = null, bool isPostSearch = true, DelegateGetModel action2 = null)
        {
            gridView1.PopupMenuShowing += (s, e) =>
            {
@@ -1708,7 +1760,6 @@
                }
            };
            gridView1.OptionsView.ColumnAutoWidth = false;//自动调整列宽
            if (isPostSearch == true)
            {
                gridView1.OptionsView.ShowGroupPanel = false;
@@ -1725,7 +1776,6 @@
                //是否显示底部的过滤条
                // gridView1.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;
            }
            // gridView1.Appearance.HeaderPanel.ForeColor = DevExpress.LookAndFeel.DXSkinColors.ForeColors.ControlText;
            foreach (GridColumn column in gridView1.Columns)
            {
@@ -1751,7 +1801,6 @@
                        column.OptionsFilter.AllowAutoFilter = false;
                }
            }
            gridView1.IndicatorWidth = 60;
            gridView1.CustomDrawRowIndicator += (s, e) =>
            {
@@ -1795,6 +1844,42 @@
                        view.ActiveEditor.MouseUp += ActiveEditor_MouseUp;
                };
            }
            if (action2 != null)
            {
                gridView1.FocusedRowChanged += (s, e) =>
                {
                    int _handle = gridView1.FocusedRowHandle;
                    if (_handle == -1)
                        return;
                    DataRow row = gridView1.GetDataRow(_handle);
                    if (row == null)
                        return;
                    string _guid = row["guid"].ToString();
                    if (string.IsNullOrEmpty(_guid))
                        return;
                    action2(_guid);
                };
            }
            gridView1.RowCellStyle += (s, e) =>
            {
                GridView view = s as GridView;
                if (view != null && e.Column != null && e.CellValue != null)
                {
                    if (e.Column.FieldName.EndsWith("Color"))
                    {
                        int rowHandle = e.RowHandle;
                        DataRow row = gridView1.GetDataRow(e.RowHandle);
                        string _bgColor = row[e.Column.FieldName + "Rgb"].ToString();
                        if (!string.IsNullOrEmpty(_bgColor))
                        {
                            Color bgColor = ColorTranslator.FromHtml(_bgColor);
                            e.Appearance.BackColor = bgColor;
                            //   e.Appearance.BackColor2 = Color.LightSkyBlue;
                            //e.Appearance.ForeColor = ColorTranslator.FromHtml("#ffffff") ;
                        }
                    }
                }
            };
            gridView1.RowStyle += (s, e) =>
            {
                //默认选中行不变色
@@ -1804,40 +1889,12 @@
                if (e.RowHandle >= 0)
                {
                    DataRow row = gridView1.GetDataRow(e.RowHandle);
                    if (row == null)
                        return;
                    //这是danger色
                    bool columnExists = row.Table.Columns.Contains("isRed");
                    if (columnExists == true)
                    {
                        string _isRed = row["isRed"].ToString();
                        if (_isRed == "1")
                        {
                            e.Appearance.ForeColor = Color.Tomato;
                        }
                    }
                    //这是success色
                    columnExists = row.Table.Columns.Contains("isSuccess");
                    if (columnExists == true)
                    {
                        string _isRed = row["isSuccess"].ToString();
                        if (_isRed == "1")
                        {
                            e.Appearance.ForeColor = Color.FromArgb(128, 255, 128);
                        }
                    }
                    // 设置焦点行的背景色
                    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;
                    //}
                }
            };
            if (tips != null)
@@ -1879,6 +1936,7 @@
                };
            }
        }
        private static void ActiveEditor_MouseUp(object sender, MouseEventArgs e)
        {
            BaseEdit edit = sender as BaseEdit;
@@ -1886,12 +1944,12 @@
            edit.SelectAll();
        }
        public static void SetGridLayout(GridView gridView1)
        public static void SetGridLayout(GridView gridView1, int maxWidth = 500)
        {
            foreach (GridColumn column in gridView1.Columns)
            {
                if (column.Width > 500)
                    column.Width = 500;
                if (column.Width > maxWidth)
                    column.Width = maxWidth;
            }
        }
@@ -1901,17 +1959,35 @@
        /// <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, Label lbGuid = null)
        /// <param name="action">读取实体</param>
        /// <param name="page">读取列表</param>
        /// <param name="lbGuid"></param>
        /// <param name="barMenu"></param>
        /// <param name="ucLst">读取报表</param>
        public static void SetTabParameter(GridView gridView1, DevExpress.XtraTab.XtraTabControl xtraTabControl1, UcPageBar pageBar1, DelegateGetModel action = null, DelegateGetList page = null, Label lbGuid = null, UcToolBarMenu barMenu = null, DelegateGetUserControlList ucLst = null)
        {
            xtraTabControl1.SelectedPageChanged += (s, e) =>
            {
                if (pageBar1 != null && xtraTabControl1.SelectedTabPageIndex == 0)
                {
                    if (barMenu != null)
                        barMenu.SetAllButton(0);
                    page(pageBar1.CurrentPage);
                    int rowHandle = 0;
                    rowHandle = gridView1.LocateByValue(1, gridView1.Columns["guid"], lbGuid.Text);
                    if (rowHandle < 0)
                        rowHandle = 0;
                    gridView1.FocusedRowHandle = rowHandle;
                    return;
                }
                if (xtraTabControl1.SelectedTabPageIndex == 1)
                {
                    int _handle = gridView1.FocusedRowHandle;
                    bool _bl = xtraTabControl1.TabPages[0].PageEnabled;
                    if (_bl == false) { return; };
                    if (_bl == false) { return; }
                    ;
                    if (_handle < 0)
                    {
                        xtraTabControl1.SelectedTabPageIndex = -1;
@@ -1933,18 +2009,18 @@
                        return;
                    }
                    action(_guid);
                    return;
                }
                if (pageBar1 != null && xtraTabControl1.SelectedTabPageIndex == 0)
                if (barMenu != null && xtraTabControl1.SelectedTabPageIndex == 2)
                {
                    page(pageBar1.CurrentPage);
                    int rowHandle = 0;
                    rowHandle = gridView1.LocateByValue(1, gridView1.Columns["guid"], lbGuid.Text);
                    if (rowHandle < 0)
                        rowHandle = 0;
                    gridView1.FocusedRowHandle = rowHandle;
                    barMenu.SetAllButton(2);
                    ucLst();
                    return;
                }
            };
        }
        /// <summary>
        /// 设置明细grid样式
@@ -2066,7 +2142,91 @@
            }
        }
        /// <summary>
        /// 数据过滤
        /// </summary>
        /// <returns></returns>
        public static string GetOrgWhere()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append(" (select aboutGuid as fid from  SYS_USER_BIND where userGuid='" + LoginInfoModel.CurrentUser.LoginUserGuid + "' and ftype='组织')");
            return sb.ToString();
        }
        /// <summary>
        /// 用户控件读取xml配置
        /// </summary>
        /// <param name="_formNamespace"></param>
        /// <param name="gvList"></param>
        /// <param name="gcMain"></param>
        public static void GetUcXmlConfig(string _formNamespace, List<DevExpress.XtraGrid.Views.Grid.GridView> gvList, GridControl gcMain)
        {
            JArray array = new JArray();
            var _obj = new
            {
                formPath = _formNamespace,
            };
            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);
                    }
                    foreach (GridView gv in gvList)
                    {
                        JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == gv.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))
                            {
                                gv.RestoreLayoutFromStream(stream);
                            }
                        }
                    }
                    //设置查询条件beg
                    if (gcMain != null)
                    {
                        GridView gv1 = gcMain.MainView as GridView;
                        if (gv1 != null)
                        {
                            foreach (var a in _job["rtnData"]["list2"])
                            {
                                string _gvColName = a["gvColName"].ToString();
                                string _sqlField = a["sqlField"].ToString();
                                string _sqlFieldType = a["sqlFieldType"].ToString();
                                var column = gv1.Columns.Cast<DevExpress.XtraGrid.Columns.GridColumn>()
                                                .FirstOrDefault(c => c.Name == _gvColName);
                                if (column != null)
                                {
                                    column.Tag = _sqlField;
                                    column.UnboundExpression = _sqlFieldType;
                                }
                            }
                        }
                    }
                    //设置查询条件end
                }
                else
                    ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg);
            }
            catch (Exception ex)
            {
                ToolBox.MsgHelper.Warning("提示:" + ex.Message);
            }
        }
        #endregion
        /// <summary>
        /// 判断是不是一个有效的数值
        /// </summary>
@@ -2174,8 +2334,6 @@
                txt_iCount_1.ReadOnly = true;
        }
        #region 自定义进度条列
        /// <summary>
@@ -2270,7 +2428,6 @@
        // 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)
            {
@@ -2314,10 +2471,26 @@
                    else
                    {
                        checkBoxColumn.Tag = "1";
                        /********2025-07-23修补过滤bug 故注释 beg ************/
                        //foreach (DataRow row in _Table.Rows)
                        //{
                        //    row["chkInt"] = true;
                        //}
                        /********2025-07-23修补过滤bug 故注释 end ************/
                        /********2025-07-23修补过滤bug beg ************/
                        System.Collections.IList ftRow = gridView1.DataController.GetAllFilteredAndSortedRows();
                        System.Collections.ArrayList ftAry = new System.Collections.ArrayList();
                        foreach (System.Data.DataRowView _ft in ftRow)
                        {
                            string guid = _ft["guid"].ToString();
                            ftAry.Add(guid);
                        }
                        foreach (DataRow row in _Table.Rows)
                        {
                            row["chkInt"] = true;
                            if (ftAry.Contains(row["guid"].ToString()))
                                row["chkInt"] = true;
                        }
                        /********2025-07-23修补过滤bug end ************/
                    }
                    gcMain.BindingContext = new BindingContext();
                    gcMain.DataSource = _Table;
@@ -2330,7 +2503,6 @@
            }
        }
        #endregion
        //读取默认组织
        public static string GetFirstOrg(UserControl.UcLookOrg txt_erpSczz)
@@ -2437,7 +2609,22 @@
        ipqc首检,
        fqc,
        生产退料入库检,
        其它入库检
        其它入库检,
        销售退货入库检,
        超期检,
        委外退料入库检,
        cqcjyes,//重检方案
        cqcjno,//重检方案
        产线称重,
        iqc称重,
        受托入库
    }
    public enum OrderType
    {
        其它入库,
        物料调拨,
        其它出库
    }