From e1dbb26b92643e7d78ffa8548586af38e2f1dc11 Mon Sep 17 00:00:00 2001
From: lu <99954486@qq.com>
Date: 星期四, 09 一月 2025 09:34:26 +0800
Subject: [PATCH] 细节

---
 DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs | 1849 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 1,780 insertions(+), 69 deletions(-)

diff --git a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
index 2b078be..3ae35d9 100644
--- a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
+++ b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
@@ -1,65 +1,114 @@
-锘縰sing Newtonsoft.Json.Linq;
-using System;
+锘縰sing System;
 using System.Collections.Generic;
+using System.Configuration;
 using System.Data;
-using System.IO;
-using System.Linq;
-using System.Net;
-using System.Reflection;
-using System.Text;
-using System.Resources;
 using System.Drawing;
-using Newtonsoft.Json;
-using Gs.DevApp.Models;
+using System.IO;
+using System.Net;
+using System.Net.Cache;
+using System.Net.Http;
+using System.Reflection;
+using System.Resources;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
 using System.Windows.Forms;
+using DevExpress.XtraEditors;
+using DevExpress.XtraEditors.Controls;
+using DevExpress.XtraGrid;
+using DevExpress.XtraGrid.Columns;
+using DevExpress.XtraGrid.Views.Grid;
+using DevExpress.XtraTab;
+using DevExpress.XtraTreeList;
+using Gs.DevApp.Entity;
+using Gs.DevApp.UserControl;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using UserControls.Data;
+using static System.Windows.Forms.Control;
+
 
 namespace Gs.DevApp.ToolBox
 {
     /// <summary>
-    /// 閫氱敤绫�
+    ///     閫氱敤绫�
     /// </summary>
     public class UtilityHelper
     {
-        private static string WebApiUrl = System.Configuration.ConfigurationSettings.AppSettings.Get("WebApiUrl").ToString();
+        private static readonly string WebApiUrl =
+            ConfigurationManager.AppSettings["WebApiUrl"];
 
-        /// <summary>
-        /// httpPost璁块棶鏈嶅姟
-        /// </summary>
-        /// <param name="url">鏈嶅姟鍦板潃</param>
-        /// <param name="meth">鏂规硶鍚嶇О</param>
-        /// <param name="param">鍙傛暟</param>
-        /// <returns></returns>
+
+        public static async Task<string> UploadFileAsync(string filePath)
+        {
+            using (var httpClient = new HttpClient())
+            using (var form = new MultipartFormDataContent())
+            {
+                httpClient.DefaultRequestHeaders.Add("token",
+                    GetBasicAuthTicket());
+                using (var fs = File.OpenRead(filePath))
+                using (var streamContent = new StreamContent(fs))
+                {
+                    form.Add(streamContent, "file", Path.GetFileName(filePath));
+                    var response =
+                        await httpClient.PostAsync(
+                            WebApiUrl + "Upload/UploadFile", form);
+                    var responseString =
+                        await response.Content.ReadAsStringAsync();
+                    return responseString;
+                }
+            }
+        }
+
         public static string HttpPost(string url, string meth, string param)
         {
-            if (string.IsNullOrEmpty(url))
-                url = WebApiUrl;
-            url += meth;
-            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
-            request.Method = "POST";
-            request.ContentType = "application/json";
-            request.Headers.Add("token", GetBasicAuthTicket());
-            request.Accept = "*/*";
-            request.Timeout = 15000;
-            request.AllowAutoRedirect = false;
+            string _caption = "鎷煎懡鍔犺浇涓紝璇风◢鍚�...";
+            DevExpress.Utils.WaitDialogForm wdf = new DevExpress.Utils.WaitDialogForm(_caption + meth, "鍙嬫儏鎻愮ず");
+            wdf.BackColor = System.Drawing.Color.LightSkyBlue;
+            wdf.Padding = new Padding(15);
+            HttpWebRequest request = null;
             StreamWriter requestStream = null;
             WebResponse response = null;
             string responseStr = null;
             try
             {
+                if (string.IsNullOrEmpty(url))
+                    url = WebApiUrl;
+                url += meth;
+                request = (HttpWebRequest)WebRequest.Create(url);
+                request.Method = "POST";
+                request.ContentType = "application/json";
+                request.Headers.Add("token", GetBasicAuthTicket());
+                request.Accept = "*/*";
+                request.Timeout = 150000;
+                request.AllowAutoRedirect = false;
+                request.ServicePoint.Expect100Continue = false;
+                wdf.SetCaption(_caption + "锛�10/100锛�" + meth);
+                HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
+                request.CachePolicy = noCachePolicy;
+                wdf.SetCaption(_caption + "锛�20/100锛�" + meth);
                 requestStream = new StreamWriter(request.GetRequestStream());
                 requestStream.Write(param);
                 requestStream.Close();
+                wdf.SetCaption(_caption + "30/100锛�" + meth);
                 response = request.GetResponse();
+                wdf.SetCaption(_caption + "锛�40/100锛�");
                 if (response != null)
                 {
-                    StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
+                    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 + "锛�80/100锛�" + meth);
             }
             catch (Exception ex)
             {
+                wdf.Close();
+                LogHelper.Debug(url, param + ":" + ex.Message);
                 throw ex;
             }
             finally
@@ -68,97 +117,1759 @@
                 requestStream = null;
                 response = null;
             }
+            wdf.SetCaption(_caption + "锛�90/100锛�");
+            wdf.Close();
             return responseStr;
         }
+
         /// <summary>
-        /// 鏍规嵁鍥剧墖鍚嶈鍙栬祫婧愭枃浠�,涓嶅甫鍚庣紑鍚�
+        ///     榛樿椤靛ぇ灏�
+        /// </summary>
+        /// <returns></returns>
+        public static int GetPageSize()
+        {
+            return int.Parse(ConfigurationSettings.AppSettings.Get("PageSize"));
+        }
+
+        /// <summary>
+        ///     鏍规嵁鍥剧墖鍚嶈鍙栬祫婧愭枃浠�,涓嶅甫鍚庣紑鍚�
         /// </summary>
         /// <param name="imageName"></param>
         /// <param name="lay">1涓哄ぇ鍥�</param>
         /// <returns></returns>
         public static Image GetImgFromResource(string imageName, int lay)
         {
-            // 鑾峰彇褰撳墠绋嬪簭闆�
-            Assembly assembly = Assembly.GetExecutingAssembly();
-            // 鍒涘缓璧勬簮绠$悊鍣ㄦ潵璁块棶璧勬簮
-            ResourceManager resourceManager = new ResourceManager("Gs.DevApp.Properties.Resources", assembly);
-            // 灏濊瘯鑾峰彇鍥剧墖璧勬簮
+            var assembly = Assembly.GetExecutingAssembly();
+            var resourceManager =
+                new ResourceManager("Gs.DevApp.Properties.Resources", assembly);
             try
             {
-                Image image = resourceManager.GetObject(imageName) as Image;
-                if (image != null)
-                {
-                    return image;
-                }
+                var image = resourceManager.GetObject(imageName) as Image;
+                if (image != null) return image;
             }
             catch (Exception ex)
             {
             }
-            Image image2 = resourceManager.GetObject(lay == 1 ? "chartsshowlegend_32x32" : "linktoprevious_16x16") as Image;
+
+            var image2 = resourceManager.GetObject(lay == 1
+                ? "chartsshowlegend_32x32"
+                : "linktoprevious_16x16") as Image;
             return image2;
         }
+
         /// <summary>
-        /// 鐢熸垚token
+        ///     鍒濆鍖栦竴涓〃
+        /// </summary>
+        /// <param name="gc"></param>
+        /// <param name="gv"></param>
+        public static void SetDefaultTable(GridControl gc, GridView gv)
+        {
+            var dt = new DataTable();
+            foreach (GridColumn col in gv.Columns)
+            {
+                if (col.UnboundDataType == typeof(System.Boolean))
+                    dt.Columns.Add(col.FieldName, typeof(System.Boolean));
+                else
+                {
+                    dt.Columns.Add(col.FieldName, typeof(string));
+                }
+            }
+            gc.BindingContext = new BindingContext();
+            gc.DataSource = dt;
+            gc.ForceInitialize();
+        }
+
+        /// <summary>
+        ///     鐢熸垚璁块棶鏈嶅姟鐨則oken
         /// </summary>
         /// <returns></returns>
         public static string GetBasicAuthTicket()
         {
-            string userGuid = string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginUserGuid) ? Guid.NewGuid().ToString() : LoginInfoModel.CurrentUser.LoginUserGuid;
-            string orgGuid = string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginOrgGuid) ? Guid.NewGuid().ToString() : LoginInfoModel.CurrentUser.LoginOrgGuid;
-            string token = (userGuid + "~" + orgGuid);
+            var userGuid =
+                string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginUserGuid)
+                    ? Guid.NewGuid().ToString()
+                    : LoginInfoModel.CurrentUser.LoginUserGuid;
+            var orgGuid =
+                string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginOrgGuid)
+                    ? Guid.NewGuid().ToString()
+                    : LoginInfoModel.CurrentUser.LoginOrgGuid;
+            var token = userGuid + "~" + orgGuid;
             return token;
         }
+
         /// <summary>
-        /// 鏍囧噯json涓茶繑鍥濺eturnModel-->table锛�
+        ///     鏈嶅姟杩斿洖鐨刯son杞负ReturnModel-->鍖呭惈TablePage鍒嗛〉锛�
         /// </summary>
         /// <param name="strReturn"></param>
         /// <returns></returns>
-        public static ReturnModel<PageListModel> GetTableByJson(string strReturn)
+        public static ReturnModel<PageListModel> ReturnToTablePage(
+            string strReturn)
         {
-            ReturnModel<PageListModel> rto = new ReturnModel<PageListModel>();
-            JObject json = JObject.Parse(strReturn);
+            var rto = new ReturnModel<PageListModel>();
+            var json = JObject.Parse(strReturn);
             rto.rtnCode = int.Parse(json["rtnCode"].ToString());
             rto.rtnMsg = json["rtnMsg"].ToString();
             rto.rtnData = new PageListModel();
             rto.rtnData.pages = int.Parse(json["rtnData"]["pages"].ToString());
             rto.rtnData.total = int.Parse(json["rtnData"]["total"].ToString());
-            rto.rtnData.everyPageSize = int.Parse(json["rtnData"]["everyPageSize"].ToString());
-            JArray array = new JArray();
+            rto.rtnData.everyPageSize =
+                int.Parse(json["rtnData"]["everyPageSize"].ToString());
+            var array = new JArray();
             var d = json["rtnData"]["list"];
-            foreach (var a in d)
-            {
-                array.Add(a);
-            }
-            DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
+            foreach (var a in d) array.Add(a);
+            var dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
             rto.rtnData.list = dt;
             return rto;
         }
+
         /// <summary>
-        /// 鏍囧噯json涓茶繑鍥濺eturnModel->瀛楃涓诧紝
+        ///     鏈嶅姟杩斿洖鐨刯son杩斿洖ReturnModel锛�
         /// </summary>
         /// <param name="strReturn"></param>
         /// <returns></returns>
-        public static ReturnModel<dynamic> GetDataByJson(string strReturn)
+        public static ReturnModel<dynamic> ReturnToDynamic(string strReturn)
         {
-            ReturnModel<dynamic> rto = new ReturnModel<dynamic>();
-            JObject json = JObject.Parse(strReturn);
+            var rto = new ReturnModel<dynamic>();
+            var json = JObject.Parse(strReturn);
             rto.rtnCode = int.Parse(json["rtnCode"].ToString());
             rto.rtnMsg = json["rtnMsg"].ToString();
             rto.rtnData = json["rtnData"];
             return rto;
         }
+
         /// <summary>
-        /// 璁剧疆绯荤粺瀛椾綋澶у皬锛岀洰鍓嶅苟涓嶉�氱敤
+        ///     鏈嶅姟杩斿洖鐨刯son涓茶繑鍥濺eturnModel-->浠呬粎鏈塴ist,涓嶅垎椤碉紝
         /// </summary>
-        public static float GetFontSize = 10;
-        public static void SetFont(Control control)
+        /// <param name="strReturn"></param>
+        /// <returns></returns>
+        public static ReturnModel<DataTable> ReturnToList(string strReturn)
         {
-            float size = GetFontSize;
-            foreach (Control childControl in control.Controls)
+            var rto = new ReturnModel<DataTable>();
+            var json = JObject.Parse(strReturn);
+            rto.rtnCode = int.Parse(json["rtnCode"].ToString());
+            rto.rtnMsg = json["rtnMsg"].ToString();
+            rto.rtnData = new DataTable();
+            var array = new JArray();
+            var d = json["rtnData"];
+            foreach (var a in d) array.Add(a);
+            var dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
+            rto.rtnData = dt;
+            return rto;
+        }
+
+        /// <summary>
+        ///     鏍规嵁瀵硅薄鎵归噺璁剧疆鏂囨湰妗嗙殑鍊�
+        /// </summary>
+        /// <param name="controls">controls:涓篻roupBox1.Controls/panel1.Controls</param>
+        /// <param name="dynamicObject">瀵瑰儚</param>
+        /// <param name="isEdt">鏄惁鍙紪杈�</param>
+        /// <param name="gridViews">鍏宠仈鐨刧rid</param>
+        public static void SetValueByObj(ControlCollection controls,
+            dynamic dynamicObject, bool isEdt, List<GridView> gridViews = null)
+        {
+            isEdt = !isEdt;
+            if (gridViews != null)
             {
-                childControl.Font = new Font(childControl.Font.FontFamily, size, childControl.Font.Style);
-                SetFont(childControl);
+                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;
+                        }
+                        else
+                        {
+                            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;
+                        }
+                    }
+                }
+            }
+            var _btnAry = controls.Find("btnSelect", false);
+            if (_btnAry.Length > 0)
+            {
+                var _btnType = _btnAry[0];
+                _btnType.Enabled = !isEdt;
+            }
+            var _btnAry2 = controls.Find("btnTui", false);
+            if (_btnAry2.Length > 0)
+            {
+                var _btnType = _btnAry2[0];
+                _btnType.Enabled = !isEdt;
+            }
+            foreach (JProperty property in dynamicObject.Properties())
+            {
+                var strName = property.Name;
+                var strVal = property.Value.ToString();
+                try
+                {
+                    var _dddddd = "txt_" + strName;
+                    var cols = controls.Find(_dddddd, true);
+                    if (cols.Length > 0)
+                    {
+                        var colType = cols[0];
+                        if (colType is LookUpEdit)
+                        {
+                            var txt = colType as LookUpEdit;
+                            if (txt != null) txt.EditValue = strVal;
+                            txt.ReadOnly = isEdt;
+                            continue;
+                        }
+                        if (colType is ImageComboBoxEdit)
+                        {
+                            var txt = colType as ImageComboBoxEdit;
+                            for (var i = 0; i < txt.Properties.Items.Count; i++)
+                            {
+                                if (txt.Properties.Items[i].Description ==
+                                    strVal)
+                                {
+                                    txt.ReadOnly = isEdt;
+                                    txt.SelectedIndex = i;
+                                }
+                            }
+                            continue;
+                        }
+                        if (colType is ComboBoxEdit)
+                        {
+                            var txt = colType as ComboBoxEdit;
+                            if (txt.Properties.TextEditStyle ==
+                                TextEditStyles.DisableTextEditor)
+                                try
+                                {
+                                    txt.SelectedIndex = int.Parse(strVal);
+                                }
+                                catch (Exception)
+                                {
+
+                                    txt.Text = strVal;
+                                }
+                            else
+                                txt.Text = strVal;
+                            txt.ReadOnly = isEdt;
+                            continue;
+                        }
+                        //鑷畾涔変笅鎷�
+                        if (colType is UcComBox)
+                        {
+                            var txt = colType as UcComBox;
+                            txt.Val = strVal;
+                            txt.Enabled = !isEdt;
+                            continue;
+                        }
+                        //鏂囨湰
+                        if (colType is TextEdit)
+                        {
+                            var txt = colType as TextEdit;
+                            if (txt != null)
+                                txt.Text = strVal;
+                            if (_isRead(txt.Tag))
+                            {
+                                txt.ReadOnly = true;
+                            }
+                            else
+                                txt.ReadOnly = isEdt;
+                            continue;
+                        }
+                        if (colType is MemoEdit)
+                        {
+                            var txt = colType as MemoEdit;
+                            if (txt != null)
+                                txt.Text = strVal;
+                            if (_isRead(txt.Tag))
+                            {
+                                txt.ReadOnly = true;
+                            }
+                            else
+                                txt.ReadOnly = isEdt;
+                            continue;
+                        }
+                        //鏁板瓧鍗�
+                        if (colType is NumericUpDown)
+                        {
+                            var txt = colType as NumericUpDown;
+                            if (txt != null)
+                                txt.Text = strVal;
+                            txt.ReadOnly = isEdt;
+                            continue;
+                        }
+                        //鍗曢��
+                        if (colType is CheckEdit)
+                        {
+                            var txt = colType as CheckEdit;
+                            if (txt != null)
+                                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.ReadOnly = isEdt;
+                            continue;
+                        }
+                        //鍗曢��
+                        if (colType is CheckBox)
+                        {
+                            var txt = colType as CheckBox;
+                            if (txt != null)
+                                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 DateTimePicker)
+                        {
+                            var txt = colType as DateTimePicker;
+                            txt.Text = strVal;
+                            txt.Enabled = !isEdt;
+                            continue;
+                        }
+                        //Label
+                        if (colType is Label)
+                        {
+                            var txt = colType as Label;
+                            if (_dddddd == "txt_checkStatus")
+                            {
+                                if (strVal == "True" || strVal == "1")
+                                    txt.Text = "宸插鏍�";
+                                if (strVal == "False" || strVal == "0" || strVal == "")
+                                    txt.Text = "鏈鏍�";
+                            }
+                            else
+                            {
+                                txt.Text = strVal;
+                            }
+                        }
+                        //鑷畾涔変粨搴�
+                        if (colType is UcLookCk)
+                        {
+                            var txt = colType as UcLookCk;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾涔変緵搴斿晢
+                        if (colType is UcLookSupplier)
+                        {
+                            var txt = colType as UcLookSupplier;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾涔夌墿鏂�
+                        if (colType is UcLookItems)
+                        {
+                            var txt = colType as UcLookItems;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾杞﹂棿
+                        if (colType is UcLookWorkshop)
+                        {
+                            var txt = colType as UcLookWorkshop;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾浜х嚎
+                        if (colType is UcLookWorkline)
+                        {
+                            var txt = colType as UcLookWorkline;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾鍗曚綅
+                        if (colType is UcLookUnit)
+                        {
+                            var txt = colType as UcLookUnit;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾瀹㈡埛
+                        if (colType is UcLookCustomer)
+                        {
+                            var txt = colType as UcLookCustomer;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾鍛樺伐
+                        if (colType is UcLookStaff)
+                        {
+                            var txt = colType as UcLookStaff;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾缁勭粐
+                        if (colType is UcLookOrg)
+                        {
+                            var txt = colType as UcLookOrg;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾鐢ㄦ埛
+                        if (colType is UcLookUser)
+                        {
+                            var txt = colType as UcLookUser;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾鎵撳嵃鏈�
+                        if (colType is UcLookPrint)
+                        {
+                            var txt = colType as UcLookPrint;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾缂洪櫡绫诲埆 
+                        if (colType is UcLookDefectType)
+                        {
+                            var txt = colType as UcLookDefectType;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾閮ㄩ棬
+                        if (colType is UcLookDepartment)
+                        {
+                            var txt = colType as UcLookDepartment;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                txt.Enabled = false;
+                            continue;
+                        }
+                        //鑷畾daa
+                        if (colType is UcLookDaa)
+                        {
+                            var txt = colType as UcLookDaa;
+                            txt.SetIdOrCode(strVal);
+                            if (txt.IsReadly == false)
+                                txt.Enabled = !isEdt;
+                            else
+                                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;
+                            txt.Enabled = !isEdt;
+                            continue;
+                        }
+                    }
+                }
+                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;
+                }
             }
         }
+
+        /// <summary>
+        ///     娓呯┖瀹瑰櫒閲岄潰鐨勬帶浠�
+        /// </summary>
+        /// <param name="controls">controls:涓篻roupBox1.Controls/panel1.Controls</param>
+        /// <param name="isEdt">鏄惁鍙紪杈�</param>
+        /// <param name="gridViews">鍏宠仈鐨刧rid</param>
+        public static void CleanValueByControl(ControlCollection controls,
+            bool isEdt, List<GridView> gridViews = null)
+        {
+            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;
+                        }
+                        else
+                        {
+                            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;
+                        }
+                    }
+                }
+            }
+            foreach (Control ctrl in controls)
+            {
+                //澶氳鏂囨湰
+                if (ctrl is MemoEdit)
+                {
+                    var txt = ctrl as MemoEdit;
+                    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)
+                {
+                    var txt = ctrl as ComboBoxEdit;
+                    if (txt.Properties.TextEditStyle ==
+                        TextEditStyles.DisableTextEditor)
+                        txt.SelectedIndex = 0;
+                    else
+                        txt.Text = "";
+                    txt.ReadOnly = isEdt;
+                    continue;
+                }
+                //鑷畾涔夌殑涓嬫媺
+                if (ctrl is UcComBox)
+                {
+                    var txt = ctrl as UcComBox;
+                    txt.Val = "0";
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鏂囨湰
+                if (ctrl is TextEdit)
+                {
+                    var txt = ctrl as TextEdit;
+                    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 DateTimePicker)
+                {
+                    var txt = ctrl as DateTimePicker;
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鍗曢��
+                if (ctrl is CheckBox)
+                {
+                    var txt = ctrl as CheckBox;
+                    txt.Enabled = !isEdt;
+                    txt.Checked = false;
+                }
+                if (ctrl is CheckEdit)
+                {
+                    var txt = ctrl as CheckEdit;
+                    txt.ReadOnly = isEdt;
+                    txt.Checked = false;
+                    continue;
+                }
+
+                //鑷畾涔変粨搴�
+                if (ctrl is UcLookCk)
+                {
+                    var txt = ctrl as UcLookCk;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾涔変緵搴斿晢
+                if (ctrl is UcLookSupplier)
+                {
+                    var txt = ctrl as UcLookSupplier;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾涔夌墿鏂�
+                if (ctrl is UcLookItems)
+                {
+                    var txt = ctrl as UcLookItems;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾杞﹂棿
+                if (ctrl is UcLookWorkshop)
+                {
+                    var txt = ctrl as UcLookWorkshop;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾浜х嚎
+                if (ctrl is UcLookWorkline)
+                {
+                    var txt = ctrl as UcLookWorkline;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾鍗曚綅
+                if (ctrl is UcLookUnit)
+                {
+                    var txt = ctrl as UcLookUnit;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾瀹㈡埛
+                if (ctrl is UcLookCustomer)
+                {
+                    var txt = ctrl as UcLookCustomer;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾瀹㈡埛
+                if (ctrl is UcLookStaff)
+                {
+                    var txt = ctrl as UcLookStaff;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾缁勭粐
+                if (ctrl is UcLookOrg)
+                {
+                    var txt = ctrl as UcLookOrg;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾鐢ㄦ埛
+                if (ctrl is UcLookUser)
+                {
+                    var txt = ctrl as UcLookUser;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾鎵撳嵃鏈�
+                if (ctrl is UcLookPrint)
+                {
+                    var txt = ctrl as UcLookPrint;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾缂洪櫡绫诲埆
+                if (ctrl is UcLookDefectType)
+                {
+                    var txt = ctrl as UcLookDefectType;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾閮ㄩ棬
+                if (ctrl is UcLookDepartment)
+                {
+                    var txt = ctrl as UcLookDepartment;
+                    txt.SetIdOrCode("-1");
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+                //鑷畾daa
+                if (ctrl is UcLookDaa)
+                {
+                    var txt = ctrl as UcLookDaa;
+                    txt.SetIdOrCode("-1");
+                    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;
+                }
+            }
+        }
+      
+        /// <summary>
+        ///     绂佺敤鎴栧惎鐢ㄥ鍣ㄩ噷闈㈢殑鎺т欢
+        /// </summary>
+        /// <param name="controls">controls:涓篻roupBox1.Controls/panel1.Controls</param>
+        /// <param name="isEdt"></param>
+        /// <param name="gridViews"></param>
+        public static void ChangeEnableByControl(ControlCollection controls,
+            bool isEdt, List<GridView> gridViews = null)
+        {
+            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;
+                        }
+                        else
+                        {
+                            if (colmn.Tag != null && colmn.Tag.ToString().EndsWith("edit"))
+                                colmn.OptionsColumn.ReadOnly = isEdt;
+                            else
+                                colmn.OptionsColumn.ReadOnly = isEdt;
+                        }
+                    }
+                }
+            }
+            foreach (Control ctrl in controls)
+            {
+                //鏂囨湰
+                if (ctrl is TextEdit)
+                {
+                    var txt = ctrl as TextEdit;
+                    if (_isRead(txt.Tag))
+                    {
+                        txt.ReadOnly = true;
+                    }
+                    else
+                        txt.ReadOnly = isEdt;
+                    continue;
+                }
+                if (ctrl is MemoEdit)
+                {
+                    var txt = ctrl as MemoEdit;
+                    if (_isRead(txt.Tag))
+                    {
+                        txt.ReadOnly = true;
+                    }
+                    else
+                        txt.ReadOnly = isEdt;
+                    continue;
+                }
+                //鏁板瓧鍗�
+                if (ctrl is NumericUpDown)
+                {
+                    var txt = ctrl as NumericUpDown;
+                    txt.ReadOnly = isEdt;
+                    continue;
+                }
+                //涓嬫媺
+                if (ctrl is UcComBox)
+                {
+                    var txt = ctrl as UcComBox;
+                    txt.Val = "0";
+                    txt.Enabled = !isEdt;
+                    continue;
+                }
+
+                //鏃ユ湡
+                if (ctrl is DateTimePicker)
+                {
+                    ctrl.Enabled = !isEdt;
+                    continue;
+                }
+
+                //鍗曢��
+                if (ctrl is CheckBox)
+                {
+                    ctrl.Enabled = !isEdt;
+                    continue;
+                }
+                //
+                if (ctrl is CheckEdit)
+                {
+                    var txt = ctrl as CheckEdit;
+                    txt.ReadOnly = isEdt;
+                    continue;
+                }
+                //鑷畾涔変粨搴�
+                if (ctrl is UcLookCk)
+                {
+                    var txt = ctrl as UcLookCk;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾涔変緵搴斿晢
+                if (ctrl is UcLookSupplier)
+                {
+                    var txt = ctrl as UcLookSupplier;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾涔夌墿鏂�
+                if (ctrl is UcLookItems)
+                {
+                    var txt = ctrl as UcLookItems;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾涔夎溅闂�
+                if (ctrl is UcLookWorkshop)
+                {
+                    var txt = ctrl as UcLookWorkshop;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾涔変骇绾�
+                if (ctrl is UcLookWorkline)
+                {
+                    var txt = ctrl as UcLookWorkline;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾涔夊崟浣�
+                if (ctrl is UcLookUnit)
+                {
+                    var txt = ctrl as UcLookUnit;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾涔夊鎴�
+                if (ctrl is UcLookCustomer)
+                {
+                    var txt = ctrl as UcLookCustomer;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾涔夊憳宸�
+                if (ctrl is UcLookStaff)
+                {
+                    var txt = ctrl as UcLookStaff;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾缁勭粐
+                if (ctrl is UcLookOrg)
+                {
+                    var txt = ctrl as UcLookOrg;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾鐢ㄦ埛
+                if (ctrl is UcLookUser)
+                {
+                    var txt = ctrl as UcLookUser;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾鎵撳嵃
+                if (ctrl is UcLookPrint)
+                {
+                    var txt = ctrl as UcLookPrint;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾缂洪櫡绫诲埆
+                if (ctrl is UcLookDefectType)
+                {
+                    var txt = ctrl as UcLookDefectType;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾閮ㄩ棬
+                if (ctrl is UcLookDepartment)
+                {
+                    var txt = ctrl as UcLookDepartment;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        txt.Enabled = false;
+                    continue;
+                }
+                //鑷畾daa
+                if (ctrl is UcLookDaa)
+                {
+                    var txt = ctrl as UcLookDaa;
+                    if (txt.IsReadly == false)
+                        txt.Enabled = !isEdt;
+                    else
+                        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>
+        /// <param name="tabControl">閫夐」鍗″鍣�</param>
+        /// <param name="idx">浠�0寮�濮嬶紝濡傛灉鏄�999锛屽垯鍏ㄩ儴鍙敤</param>
+        public static void JumpToTab(XtraTabControl tabControl, int idx)
+        {
+            if (idx == 999)
+            {
+                for (var i = 0; i < tabControl.TabPages.Count; i++)
+                    tabControl.TabPages[i].PageEnabled = true;
+                tabControl.SelectedTabPageIndex = tabControl.TabPages.Count - 1;
+                return;
+            }
+
+            for (var i = 0; i < tabControl.TabPages.Count; i++)
+                tabControl.TabPages[i].PageEnabled = false;
+            tabControl.TabPages[idx].PageEnabled = true;
+            tabControl.SelectedTabPageIndex = idx;
+        }
+
+
+        /// <summary>
+        /// tab璺宠浆锛�0鏌ョ湅锛�1閫�鍑猴紝2鍒犻櫎锛�3淇敼锛�4鏂板鍔�
+        /// </summary>
+        /// <param name="tabControl"></param>
+        /// <param name="idx">0鏌ョ湅锛�1閫�鍑猴紝2鍒犻櫎锛�3淇敼锛�4鏂板鍔�</param>
+        public static void JumpTab(XtraTabControl tabControl, int action)
+        {
+
+            if (action == 0)
+            {
+                tabControl.TabPages[0].PageEnabled = true;
+                tabControl.TabPages[1].PageEnabled = true;
+                tabControl.SelectedTabPageIndex = 1;
+                return;
+            }
+            if (action == 1)
+            {
+                tabControl.TabPages[0].PageEnabled = true;
+                tabControl.TabPages[1].PageEnabled = true;
+                tabControl.SelectedTabPageIndex = 0;
+                return;
+            }
+            if (action == 2)
+            {
+                tabControl.TabPages[0].PageEnabled = true;
+                tabControl.TabPages[1].PageEnabled = true;
+                tabControl.SelectedTabPageIndex = 0;
+                return;
+            }
+            if (action == 3)
+            {
+                tabControl.TabPages[0].PageEnabled = false;
+                tabControl.TabPages[1].PageEnabled = true;
+                tabControl.SelectedTabPageIndex = 1;
+                return;
+            }
+            if (action == 4)
+            {
+                tabControl.TabPages[0].PageEnabled = false;
+                tabControl.TabPages[1].PageEnabled = true;
+                tabControl.SelectedTabPageIndex = 1;
+                return;
+            }
+            if (action == 5)
+            {
+                tabControl.TabPages[0].PageEnabled = true;
+                tabControl.TabPages[1].PageEnabled = true;
+                tabControl.SelectedTabPageIndex = 1;
+                return;
+            }
+        }
+
+        /// <summary>
+        ///     TreeView鑱斿姩閫夋嫨
+        /// </summary>
+        /// <param name="e"></param>
+        public static void TreeViewCheck(TreeViewEventArgs e)
+        {
+            try
+            {
+                if (e.Node.Nodes.Count > 0)
+                    foreach (TreeNode tn in e.Node.Nodes)
+                    {
+                        tn.Checked = e.Node.Checked;
+                        foreach (TreeNode x in tn.Nodes)
+                        {
+                            x.Checked = e.Node.Checked;
+                            foreach (TreeNode y in x.Nodes)
+                                y.Checked = e.Node.Checked;
+                        }
+                    }
+
+                if (e.Node.Checked && e.Node.Parent != null &&
+                    e.Node.Parent.Nodes.Count > 0)
+                {
+                    var currentNode = e.Node;
+                    while (currentNode != null)
+                    {
+                        currentNode.Checked = e.Node.Checked;
+                        currentNode = currentNode.Parent;
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                MsgHelper.ShowError(ex.Message);
+            }
+        }
+
+        /// <summary>
+        ///     杞┘宄板懡鍚�
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public static string ToCamelCase(string strItem)
+        {
+            //濡傛灉鍖呭惈灏忓啓锛屼絾涓嶅寘鍚笅鍒掔嚎
+            var hasLowercase = Regex.IsMatch(strItem, @"[a-z]");
+            if (hasLowercase && !strItem.Contains("_"))
+            {
+                var chars = strItem.ToCharArray();
+                chars[0] = char.ToLower(chars[0]);
+                return new string(chars);
+            }
+
+            var strItems = strItem.ToLower().Split('_');
+            var strItemTarget = strItems[0];
+            for (var j = 1; j < strItems.Length; j++)
+            {
+                var temp = strItems[j];
+                var temp1 = temp[0].ToString().ToUpper();
+                var temp2 = "";
+                temp2 = temp1 + temp.Remove(0, 1);
+                strItemTarget += temp2;
+            }
+
+            return strItemTarget;
+        }
+
+        /// <summary>
+        /// 杞珿uid
+        /// </summary>
+        /// <param name="str"></param>
+        /// <returns></returns>
+        public static Guid ToGuid(string str)
+        {
+            if (string.IsNullOrEmpty(str)) return Guid.Empty;
+            return Guid.Parse(str);
+        }
+
+        public static int ToInt(string str)
+        {
+            try
+            {
+                return int.Parse(str);
+            }
+            catch (Exception)
+            {
+
+                return 0;
+            }
+        }
+        public static long ToLong(string str)
+        {
+            try
+            {
+                return long.Parse(str);
+            }
+            catch (Exception)
+            {
+
+                return 0;
+            }
+        }
+
+        public static int ToBit(string str)
+        {
+            if (str.ToUpper() == "true".ToUpper())
+                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()))
+                return "{>";
+            return str.Trim();
+        }
+
+        /// <summary>
+        /// 璇诲彇grid鐨勫綋鍓嶈
+        /// </summary>
+        /// <param name="xtraTabControl1"></param>
+        /// <param name="lbGuid">缂栬緫妗嗕腑鐨勪富閿悕</param>
+        /// <param name="txtName">缂栬緫妗嗕腑鐨勬枃鏈鍚�</param>
+        /// <param name="gridView1"></param>
+        /// <param name="SelectedTabPageIndex"></param>
+        /// <returns></returns>
+        public static (string, string) GetCurrentRow(
+            XtraTabControl xtraTabControl1
+            , Label lbGuid
+            , TextEdit txtName
+            , GridView gridView1
+            , string fileName = ""
+            , int SelectedTabPageIndex = 1)
+        {
+            var _strGuid = "";
+            var _strName = "";
+            if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex &&
+                lbGuid.Text.Length > 10)
+            {
+                _strGuid = lbGuid.Text.Trim();
+                _strName = txtName.Text.Trim();
+            }
+            else
+            {
+                var dr = gridView1.GetFocusedDataRow();
+                if (dr == null || string.IsNullOrEmpty(dr["guid"].ToString()))
+                {
+                }
+                else
+                {
+                    _strGuid = dr["guid"].ToString();
+                    if (string.IsNullOrEmpty(fileName))
+                        _strName = dr[1].ToString();
+                    else
+                        _strName = dr[fileName].ToString();
+                }
+            }
+
+            return (_strGuid, _strName);
+        }
+
+        /// <summary>
+        ///     璇诲彇TreeView鐨勫綋鍓嶈
+        /// </summary>
+        /// <param name="xtraTabControl1"></param>
+        /// <param name="lbGuid"></param>
+        /// <param name="txtName"></param>
+        /// <param name="tlMenu"></param>
+        /// <param name="SelectedTabPageIndex"></param>
+        /// <returns></returns>
+        public static (string, string) GetCurrentRow(
+            XtraTabControl xtraTabControl1
+            , Label lbGuid
+            , TextEdit txtName
+            , TreeView tlMenu
+            , int SelectedTabPageIndex = 1)
+        {
+            var _strGuid = "";
+            var _strName = "";
+            if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex &&
+                lbGuid.Text.Length > 10)
+            {
+                _strGuid = lbGuid.Text.Trim();
+                _strName = txtName.Text.Trim();
+            }
+            else
+            {
+                var clickedNode = tlMenu.SelectedNode;
+                if (clickedNode != null)
+                {
+                    _strGuid = clickedNode.Name;
+                    _strName = clickedNode.Text.Trim();
+                }
+            }
+
+            return (_strGuid, _strName);
+        }
+
+        /// <summary>
+        ///     璇诲彇TreeList鐨勫綋鍓嶈
+        /// </summary>
+        /// <param name="xtraTabControl1"></param>
+        /// <param name="lbGuid"></param>
+        /// <param name="txtName"></param>
+        /// <param name="tlMenu"></param>
+        /// <param name="SelectedTabPageIndex"></param>
+        /// <returns></returns>
+        public static (string, string) GetCurrentRow(
+            XtraTabControl xtraTabControl1
+            , Label lbGuid
+            , TextEdit txtName
+            , TreeList tlMenu
+            , int SelectedTabPageIndex = 1)
+        {
+            var _strGuid = "";
+            var _strName = "";
+            if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex &&
+                lbGuid.Text.Length > 10)
+            {
+                _strGuid = lbGuid.Text.Trim();
+                _strName = txtName.Text.Trim();
+            }
+            else
+            {
+                _strGuid = tlMenu.FocusedNode.GetValue("guid").ToString();
+                _strName = tlMenu.FocusedNode.GetValue(0).ToString();
+            }
+
+            return (_strGuid, _strName);
+        }
+
+        /// <summary>
+        ///     璇诲彇GridView鍙屽嚮鐨勪富閿�
+        /// </summary>
+        /// <param name="gridView1"></param>
+        /// <param name="e"></param>
+        /// <param name="colName"></param>
+        /// <returns></returns>
+        public static string GetCurrentDoubleRow(GridView gridView1
+            , MouseEventArgs e
+            , string colName)
+        {
+            var info = gridView1.CalcHitInfo(e.Location);
+            if (info.InRow)
+            {
+                var view = info.View;
+                if (view != null)
+                {
+                    var row = view.GetDataRow(info.RowHandle);
+                    if (row != null)
+                    {
+                        var rowGuid = row[colName].ToString();
+                        return rowGuid;
+                    }
+                }
+            }
+            return "";
+        }
+
+
+        /// <summary>
+        ///     璇诲彇GridView鍙屽嚮鐨勪富閿�
+        /// </summary>
+        /// <param name="gridView1"></param>
+        /// <param name="e"></param>
+        /// <param name="colName"></param>
+        /// <returns></returns>
+        public static string GetCurrentDoubleRow(TreeList tlMenu
+            , MouseEventArgs e
+            , string colName)
+        {
+            var info = tlMenu.CalcHitInfo(e.Location);
+            if (info.Node != null)
+            {
+                var clickedNode = tlMenu.FocusedNode;
+                if (clickedNode.FirstNode == null)
+                {
+                    var rowGuid = clickedNode.GetValue(colName).ToString();
+                    return rowGuid;
+                }
+            }
+
+            return "";
+        }
+
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="s"></param>
+        /// <param name="btnChkIco"></param>
+        /// <param name="fm"></param>
+        /// <param name="fileName">瀵瑰簲鐨勫鏍稿瓧娈靛悕绉�</param>
+        /// <param name="icoName"></param>
+        public static void SetCheckIco(object s, PictureBox btnChkIco, Form fm, string fileName = "checkStatus", string icoName = "")
+        {
+            GridView dgv = s as GridView;
+            if (dgv != null)
+            {
+                if (dgv.GetSelectedRows() != null)
+                {
+                    var selectedRow = dgv.GetSelectedRows()[0]; // 鑾峰彇绗竴涓�変腑琛岀殑绱㈠紩
+                    if (selectedRow >= 0)
+                    {
+                        var checkStatus = dgv.GetRowCellValue(selectedRow, fileName).ToString(); // 鑾峰彇鎸囧畾鍒楃殑鍊�
+                        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鍍忕礌
+                    }
+                }
+            }
+        }
+
+
+        #region 璁剧疆鎼滅储
+        public static string getQueryWord(string str)
+        {
+            return str.ToUpper().Replace("query_".ToUpper(), "");
+        }
+        public static FilterEntity getFilterEntityWord(string id, string idDec, string val)
+        {
+            return new FilterEntity(getQueryWord(id), idDec + ")", " like ", "鍖呭惈)", "%" + val + "%");
+        }
+        public static List<FilterEntity> GetDilter(GridColumnCollection Columns)
+        {
+            List<FilterEntity> fiList = new List<FilterEntity>();
+            foreach (DevExpress.XtraGrid.Columns.GridColumn col in Columns)
+            {
+                ColumnFilterInfo filter = col.FilterInfo;
+                if (string.IsNullOrEmpty(filter.FilterString))
+                    continue;
+                //  fiList.Add(new FilterEntity("b.FNumber", "浣跨敤缁勭粐", " like ", "鍖呭惈", "%" + filter.Value + "%"));
+                string[] ddd = filter.FilterString.Replace("Contains", "").Replace("(", "").Replace(")", "").Replace("'", "").Replace("'", "").Split(',');
+                //Contains([fSubsidiary], '005')
+                fiList.Add(getFilterEntityWord(col.Tag.ToString(), col.Caption.Trim(), ddd[1].Trim()));
+            }
+            return fiList;
+        }
+
+        /// <summary>
+        /// 鏍规嵁杩囨护鍣紝璇诲彇鏌ヨ鏉′欢,org琛ㄤ负缁勭粐
+        /// </summary>
+        /// <param name="_filterList"></param>
+        /// <returns></returns>
+        public static string GetSearchWhere(List<FilterEntity> _filterList)
+        {
+            var _sbSqlWhere = new StringBuilder();
+            foreach (var itm in _filterList)
+            {
+                if (itm.fileId.ToUpper().Contains("org".ToUpper()))
+                {
+                    if (IsNumeric(itm.fileValue.Replace("%", "")))
+                        _sbSqlWhere.Append(" and  org.FNumber " + itm.fileOper + "'" + itm.fileValue + "'");
+                    else
+                    {
+                        _sbSqlWhere.Append(" and  org.NAME " + itm.fileOper + "'" + itm.fileValue.Trim() + "'");
+                    }
+                }
+                else
+                    _sbSqlWhere.Append(" and " + itm.fileId + itm.fileOper + "'" +
+                                      itm.fileValue + "'");
+            }
+            return _sbSqlWhere.ToString();
+        }
+
+
+        public delegate void DelegateGetModel(string guid);
+        public delegate void DelegateGetList(int currentPage);
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="gridView1">gridview</param>
+        /// <param name="picCheckBox">鍥炬爣鎸夐挳</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)
+        {
+            gridView1.OptionsView.ColumnAutoWidth = false;//鑷姩璋冩暣鍒楀
+            foreach (GridColumn column in gridView1.Columns)
+            {
+                column.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Contains;
+                column.OptionsFilter.ImmediateUpdateAutoFilter = false;
+                column.OptionsColumn.AllowEdit = true;
+                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.OptionsFilter.AllowFilterEditor = false;
+            gridView1.OptionsFilter.ShowCustomFunctions = DevExpress.Utils.DefaultBoolean.False;
+            gridView1.OptionsCustomization.AllowFilter = false;
+            gridView1.OptionsFind.ShowSearchNavButtons = false;
+            gridView1.OptionsView.ShowAutoFilterRow = true;
+            gridView1.OptionsView.ShowGroupPanel = false;
+            gridView1.IndicatorWidth = 50;
+            gridView1.CustomDrawRowIndicator += (s, e) =>
+            {
+                if (e.Info.IsRowIndicator && e.RowHandle >= 0)
+                    e.Info.DisplayText = (e.RowHandle + 1).ToString();
+            };
+            gridView1.CustomDrawEmptyForeground += (s, e) =>
+            {
+                var str = "鏆傛湭鏌ユ壘鍒板尮閰嶇殑鏁版嵁!";
+                var f = new Font("寰蒋闆呴粦", 16);
+                var r = new Rectangle(gridView1.GridControl.Width / 2 - 100,
+                    e.Bounds.Top + 45, e.Bounds.Right - 5, e.Bounds.Height - 5);
+                e.Graphics.DrawString(str, f, Brushes.Gray, r);
+            };
+            if (picCheckBox != null)
+            {
+                gridView1.FocusedRowChanged += (s, e) =>
+                {
+                    UtilityHelper.SetCheckIco(s, picCheckBox, fm, fileName, icoName);
+                };
+            }
+            if (action != null)
+            {
+                gridView1.ShownEditor += (sender, e) =>
+                {
+                    DevExpress.XtraGrid.Views.Grid.GridView view = sender as DevExpress.XtraGrid.Views.Grid.GridView;
+                    view.ActiveEditor.DoubleClick += (ssssss, eeeeeee) =>
+                    {
+                        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;
+                        action(_guid);
+                    };
+                    if (view.ActiveEditor is TextEdit)
+                        view.ActiveEditor.MouseUp += ActiveEditor_MouseUp;
+                };
+            }
+
+        }
+        private static void ActiveEditor_MouseUp(object sender, MouseEventArgs e)
+        {
+            BaseEdit edit = sender as BaseEdit;
+            edit.MouseUp -= ActiveEditor_MouseUp;
+            edit.SelectAll();
+        }
+
+        public static void SetTabParameter(GridView gridView1, DevExpress.XtraTab.XtraTabControl xtraTabControl1, UcPageBar pageBar1, DelegateGetModel action = null, DelegateGetList page = null)
+        {
+            xtraTabControl1.SelectedPageChanged += (s, e) =>
+            {
+                if (xtraTabControl1.SelectedTabPageIndex == 1)
+                {
+                    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;
+                    action(_guid);
+                }
+                if (xtraTabControl1.SelectedTabPageIndex == 0)
+                {
+                    page(pageBar1.CurrentPage);
+                }
+            };
+        }
+
+        /// <summary>
+        /// 璁剧疆鏄庣粏grid鏍峰紡
+        /// </summary>
+        /// <param name="gridView1"></param>
+        /// <param name="btnChkIco"></param>
+        /// <param name="fm"></param>
+        /// <param name="fileName"></param>
+        /// <param name="icoName"></param>
+        public static void SetGridViewParameterMx(GridView gridView1)
+        {
+            gridView1.OptionsView.ColumnAutoWidth = false;//鑷姩璋冩暣鍒楀
+            gridView1.OptionsFilter.AllowFilterEditor = false;
+            gridView1.OptionsFilter.ShowCustomFunctions = DevExpress.Utils.DefaultBoolean.False;
+            gridView1.OptionsCustomization.AllowFilter = false;
+            gridView1.OptionsFind.ShowSearchNavButtons = false;
+            gridView1.OptionsView.ShowAutoFilterRow = false;
+            gridView1.OptionsView.ShowGroupPanel = false;
+            gridView1.IndicatorWidth = 40;
+            gridView1.CustomDrawRowIndicator += (s, e) =>
+            {
+                if (e.Info.IsRowIndicator && e.RowHandle >= 0)
+                    e.Info.DisplayText = (e.RowHandle + 1).ToString();
+            };
+            gridView1.CustomDrawEmptyForeground += (s, e) =>
+            {
+                var str = "鏆傛棤鏄庣粏鏁版嵁!";
+                var f = new Font("寰蒋闆呴粦", 16);
+                var r = new Rectangle(gridView1.GridControl.Width / 2 - 100,
+                    e.Bounds.Top + 45, e.Bounds.Right - 5, e.Bounds.Height - 5);
+                e.Graphics.DrawString(str, f, Brushes.Gray, r);
+            };
+            gridView1.ValidatingEditor += (sender, e) =>
+            {
+                //yz_quantity_0
+                GridView view = sender as GridView;
+                if (view.FocusedColumn.Tag != null && view.FocusedColumn.Tag.ToString().StartsWith("yz_"))
+                {
+                    string[] _ary = view.FocusedColumn.Tag.ToString().Split('_');
+                    if (_ary.Length > 2)
+                    {
+                        if (_ary[2] == "0")
+                        {
+                            double price = 0; if (!Double.TryParse(e.Value as String, out price))
+                            { e.Valid = false; e.ErrorText = "璇疯緭鍏ユ纭殑鏁板瓧."; }
+                            return;
+                        }
+                    }
+                }
+            };
+        }
+
+        #endregion
+
+        public static bool IsNumeric(string str)
+        {
+            Regex regex = new Regex("^[0-9]+$");
+            return regex.IsMatch(str);
+        }
+
     }
-}
+
+    /// <summary>
+    ///     涓嬫媺妗嗘潯鐩被
+    /// </summary>
+    public class CboItemEntity
+    {
+        public CboItemEntity()
+        {
+        }
+
+        public CboItemEntity(string val, string text)
+        {
+            Text = text;
+            Value = val;
+        }
+
+        /// <summary>
+        ///     鏄剧ず鍊�
+        /// </summary>
+        public object Text { get; set; } = 0;
+
+        /// <summary>
+        ///     瀵硅薄鍊�
+        /// </summary>
+        public object Value { get; set; } = "";
+
+        public override string ToString()
+        {
+            return Text.ToString();
+        }
+
+    }
+
+    /// <summary>
+    ///     鏌ヨ妗�
+    /// </summary>
+    public class FilterEntity
+    {
+        /// <summary>
+        /// </summary>
+        /// <param name="id">瀛楁鍚�</param>
+        /// <param name="idDec">瀛楁鍚嶅娉�</param>
+        /// <param name="oper">鎿嶄綔绗�</param>
+        /// <param name="operDec">鎿嶄綔绗﹀娉�</param>
+        /// <param name="val"></param>
+        public FilterEntity(string id, string idDec, string oper,
+            string operDec, string val)
+        {
+            fileId = id;
+            fileIdDec = idDec;
+            fileOper = oper;
+            fileOperDec = operDec;
+            fileValue = val;
+        }
+
+        public string fileId { get; set; }
+
+        public string fileIdDec { get; set; }
+
+        public string fileOper { get; set; }
+
+        public string fileOperDec { get; set; }
+
+        public string fileValue { get; set; }
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3