From 9702c6a4dc358c7bff2eb18c8426229a0140e34a Mon Sep 17 00:00:00 2001 From: lu <123456> Date: 星期一, 15 九月 2025 08:29:16 +0800 Subject: [PATCH] bug --- DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs | 451 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 384 insertions(+), 67 deletions(-) diff --git a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs index 3ab1971..872ac86 100644 --- a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs +++ b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs @@ -1,6 +1,7 @@ 锘縰sing DevExpress.Utils; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Controls; +using DevExpress.XtraEditors.Drawing; using DevExpress.XtraGrid; using DevExpress.XtraGrid.Columns; using DevExpress.XtraGrid.Menu; @@ -54,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; @@ -102,7 +107,8 @@ } catch (Exception ex) { - wdf.Close(); + if (wdf != null) + wdf.Close(); LogHelper.Debug(url, param + ":" + ex.Message); throw ex; } @@ -112,10 +118,11 @@ requestStream = null; response = null; } - wdf.Close(); + if (wdf != null) + wdf.Close(); return responseStr; } - + /// <summary> /// 鏍规嵁鍥剧墖鍚嶈鍙栬祫婧愭枃浠�,涓嶅甫鍚庣紑鍚� /// </summary> @@ -162,6 +169,7 @@ gc.BindingContext = new BindingContext(); gc.DataSource = dt; gc.ForceInitialize(); + gv.BestFitColumns(); } /// <summary> @@ -266,7 +274,8 @@ { colmn.Visible = true; colmn.OptionsColumn.ReadOnly = false; - }; + } + ; if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui")) { colmn.Visible = !isEdt; @@ -449,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; } //鏃堕棿 @@ -745,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) { @@ -768,6 +795,7 @@ } else txt.ReadOnly = isEdt; + txt.Checked = false; continue; } //鑷畾涔変粨搴� @@ -1005,6 +1033,13 @@ txt.ReadOnly = isEdt; continue; } + //澶氶�� + if (ctrl is RadioGroup) + { + var txt = ctrl as RadioGroup; + txt.ReadOnly = isEdt; + continue; + } //鏃ユ湡 if (ctrl is DateTimePicker) { @@ -1203,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; } @@ -1217,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; } @@ -1224,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; } @@ -1239,7 +1286,10 @@ { tabControl.TabPages[0].PageEnabled = true; tabControl.TabPages[1].PageEnabled = true; - + if (tabControl.TabPages.Count > 2) + { + tabControl.TabPages[2].PageEnabled = true; + } return; } } @@ -1675,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) => { @@ -1706,7 +1760,6 @@ } }; gridView1.OptionsView.ColumnAutoWidth = false;//鑷姩璋冩暣鍒楀 - if (isPostSearch == true) { gridView1.OptionsView.ShowGroupPanel = false; @@ -1723,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) { @@ -1749,7 +1801,6 @@ column.OptionsFilter.AllowAutoFilter = false; } } - gridView1.IndicatorWidth = 60; gridView1.CustomDrawRowIndicator += (s, e) => { @@ -1793,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) => { //榛樿閫変腑琛屼笉鍙樿壊 @@ -1802,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) @@ -1877,6 +1936,7 @@ }; } } + private static void ActiveEditor_MouseUp(object sender, MouseEventArgs e) { BaseEdit edit = sender as BaseEdit; @@ -1884,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; } } @@ -1899,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; @@ -1931,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鏍峰紡 @@ -2064,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> @@ -2172,6 +2334,92 @@ txt_iCount_1.ReadOnly = true; } + #region 鑷畾涔夎繘搴︽潯鍒� + + /// <summary> + /// 鑷畾涔夎繘搴︽潯鍒� + /// </summary> + /// <param name="view"></param> + /// <param name="fieldName">鍒楃殑瀛楁鍚�</param> + /// <param name="warningValue"></param> + /// <param name="lessColor"></param> + /// <param name="greaterColor"></param> + public static void CustomProgressBarColumn(DevExpress.XtraGrid.Views.Grid.GridView view, string fieldName, int warningValue = 50, Brush lessColor = null, Brush greaterColor = null) + { + var col = view.Columns[fieldName]; + if (col == null) return; + col.AppearanceCell.Options.UseTextOptions = true; + col.AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center; + view.CustomDrawCell += (s, e) => + { + int _handle = e.RowHandle; + if (_handle < 0) + return; + if (e.Column.FieldName == fieldName) + { + DrawProgressBar(e, warningValue, lessColor, greaterColor); + e.Handled = true; + DrawEditor(e); + } + }; + } + + private static void DrawProgressBar(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e, int warningValue = 50, Brush lessColor = null, Brush greaterColor = null) + { + string d = e.CellValue == null ? null : e.CellValue.ToString(); + decimal percent = string.IsNullOrEmpty(d) ? 0m : decimal.Parse(d); + if (percent <= 0) + percent = 0.1m; + int width = (int)(percent * e.Bounds.Width); + Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, width, e.Bounds.Height); + Brush b = Brushes.Green; + if (greaterColor != null) + { + b = greaterColor; + } + if (percent * 100 < warningValue) + + { + if (lessColor == null) + + { + b = Brushes.Red; + } + else + + { + b = lessColor; + } + } + e.Graphics.FillRectangle(b, rect); + } + private static void DrawEditor(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) + + { + GridCellInfo cell = e.Cell as GridCellInfo; + Point offset = cell.CellValueRect.Location; + BaseEditPainter pb = cell.ViewInfo.Painter as BaseEditPainter; + AppearanceObject style = cell.ViewInfo.PaintAppearance; + if (!offset.IsEmpty) + cell.ViewInfo.Offset(offset.X, offset.Y); + try + + { + pb.Draw(new ControlGraphicsInfoArgs(cell.ViewInfo, e.Cache, cell.Bounds)); + } + + finally + + { + if (!offset.IsEmpty) + + { + cell.ViewInfo.Offset(-offset.X, -offset.Y); + } + } + } + #endregion + #region 缁樺埗琛ㄥご鍏ㄩ�夊嬀閫夋 /// <summary> /// 缁樺埗琛ㄥご鍏ㄩ�夊嬀閫夋 @@ -2180,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) { @@ -2224,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; @@ -2240,6 +2503,31 @@ } } #endregion + + //璇诲彇榛樿缁勭粐 + public static string GetFirstOrg(UserControl.UcLookOrg txt_erpSczz) + { + string userGuid = LoginInfoModel.CurrentUser.LoginUserGuid; + var pgq = new PageQueryModel(1, 999999, "FID", "asc", userGuid, " and IS_STATUS=1"); + var json = JsonConvert.SerializeObject(pgq); + try + { + var strReturn = UtilityHelper.HttpPost("", "Organization/GetListPage", json); + var _obj = UtilityHelper.ReturnToDynamic(strReturn); + string _extendText = _obj.rtnData.extendText; + string[] _dftOrg = _extendText.Split(','); + if (_dftOrg.Length > 0) + { + txt_erpSczz.SetIdOrCode(_dftOrg[0].Trim()); + return _dftOrg[0].Trim(); + } + return ""; + } + catch (Exception ex) + { + return ""; + } + } } /// <summary> @@ -2312,4 +2600,33 @@ public string fileType { get; set; } } + + + public enum QcSeason + { + iqc, + ipqc宸℃, + ipqc棣栨, + fqc, + 鐢熶骇閫�鏂欏叆搴撴, + 鍏跺畠鍏ュ簱妫�, + 閿�鍞��璐у叆搴撴, + 瓒呮湡妫�, + 濮斿閫�鏂欏叆搴撴, + cqcjyes,//閲嶆鏂规 + cqcjno,//閲嶆鏂规 + 浜х嚎绉伴噸, + iqc绉伴噸, + 鍙楁墭鍏ュ簱 + } + + public enum OrderType + { + 鍏跺畠鍏ュ簱, + 鐗╂枡璋冩嫧, + 鍏跺畠鍑哄簱 + } + + + } \ No newline at end of file -- Gitblit v1.9.3