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 |  132 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 130 insertions(+), 2 deletions(-)

diff --git a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
index e0885ab..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>
@@ -1952,7 +1953,7 @@
         /// <param name="fm"></param>
         /// <param name="fileName"></param>
         /// <param name="icoName"></param>
-        public static void SetGridViewParameterMx(GridView gridView1)
+        public static void SetGridViewParameterMx(GridView gridView1, DevExpress.Utils.ToolTipController tips = null)
         {
             gridView1.PopupMenuShowing += (s, e) =>
             {
@@ -2023,6 +2024,45 @@
                     }
                 }
             };
+
+            if (tips != null)
+            {
+                tips.Appearance.BackColor = Color.LightBlue; // 璁剧疆鑳屾櫙棰滆壊
+                tips.Appearance.ForeColor = Color.Black; // 璁剧疆鍓嶆櫙鑹诧紙鏂囧瓧棰滆壊锛�
+                gridView1.MouseMove += (s, e) =>
+                {
+                    try
+                    {
+                        GridHitInfo hi = gridView1.CalcHitInfo(new Point(e.X, e.Y));
+                        if (hi.InRowCell)
+                        {
+                            int cuRowHandle = hi.RowHandle;
+                            if (cuRowHandle < 0)
+                                return;
+                            DataRow curRow = gridView1.GetDataRow(cuRowHandle);
+                            var column = hi.Column;
+                            string showTxt = curRow[column.FieldName].ToString();
+                            ToolTipControllerShowEventArgs aa = new ToolTipControllerShowEventArgs();
+                            aa.AllowHtmlText = DefaultBoolean.True;
+                            aa.Title = column.Caption; //HTML, 绮椾綋 
+                            aa.ToolTip = showTxt; //鏂 
+                            aa.ShowBeak = true;
+                            aa.Rounded = true; ////鍦嗚 
+                            aa.RoundRadius = 7; //鍦嗚鐜� 
+                                                // aa.ToolTipType = ToolTipType.SuperTip; //瓒呯骇鏍峰紡锛屽彲澶氳鎴栨樉绀哄浘鏍� 
+                            aa.ToolTipType = ToolTipType.Standard;//鏍囧噯鏍峰紡锛屽彲鏄剧ず楦熷槾銆� 
+                            aa.IconType = ToolTipIconType.Information; //娑堟伅鍥炬爣 
+                            aa.IconSize = ToolTipIconSize.Small; //澶у浘鏍� 
+                            tips.ShowHint(aa);
+                        }
+                        else
+                            tips.HideHint();
+                    }
+                    catch (Exception exception)
+                    {
+                    }
+                };
+            }
         }
 
         #endregion
@@ -2133,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