From ccc1b0d541d8f3bdd2bcb72dd0b5533e68b886d5 Mon Sep 17 00:00:00 2001 From: lu <99954486@qq.com> Date: 星期一, 09 六月 2025 09:53:37 +0800 Subject: [PATCH] 采购明细报表 --- DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs | 91 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 90 insertions(+), 1 deletions(-) diff --git a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs index 3ab1971..0d5a642 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; @@ -115,7 +116,7 @@ wdf.Close(); return responseStr; } - + /// <summary> /// 鏍规嵁鍥剧墖鍚嶈鍙栬祫婧愭枃浠�,涓嶅甫鍚庣紑鍚� /// </summary> @@ -2172,6 +2173,94 @@ 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> /// 缁樺埗琛ㄥご鍏ㄩ�夊嬀閫夋 -- Gitblit v1.9.3