bug
lu
10 天以前 89776d6f53dff45b1ac0ee20438f5aa8dab2d0e5
DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
@@ -1,29 +1,34 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Drawing;
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.Utils;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraEditors.Drawing;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Menu;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
using DevExpress.XtraTab;
using DevExpress.XtraTreeList;
using Gs.DevApp.Entity;
using Gs.DevApp.UserControl;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Cache;
using System.Reflection;
using System.Resources;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
using UserControls.Data;
using static System.Windows.Forms.Control;
@@ -38,34 +43,33 @@
        private static readonly string WebApiUrl =
            ConfigurationManager.AppSettings["WebApiUrl"];
        /// <summary>
        /// 读取加载信息
        /// </summary>
        /// <returns></returns>
        public static async Task<string> UploadFileAsync(string filePath)
        public static (Size, string, Color, Padding) getLoading()
        {
            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;
                }
            }
            Size _size = new Size(360, 90);
            return (_size, "拼命加载中,请稍后...", System.Drawing.Color.LightSkyBlue, new Padding(15));
        }
        public static string HttpPost(string url, string meth, string param)
        /// <summary>
        /// http请求
        /// </summary>
        /// <param name="url"></param>
        /// <param name="meth"></param>
        /// <param name="param"></param>
        /// <param name="isLoading"></param>
        /// <returns></returns>
        public static string HttpPost(string url, string meth, string param, bool isLoading = true)
        {
            string _caption = "拼命加载中,请稍后...";
            DevExpress.Utils.WaitDialogForm wdf = new DevExpress.Utils.WaitDialogForm(_caption + meth, "友情提示");
            wdf.BackColor = System.Drawing.Color.LightSkyBlue;
            wdf.Padding = new Padding(15);
            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;
            HttpWebRequest request = null;
            StreamWriter requestStream = null;
            WebResponse response = null;
@@ -83,27 +87,20 @@
                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)
                {
                    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)
            {
@@ -117,18 +114,8 @@
                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>
@@ -177,6 +164,7 @@
            gc.BindingContext = new BindingContext();
            gc.DataSource = dt;
            gc.ForceInitialize();
            gv.BestFitColumns();
        }
        /// <summary>
@@ -189,11 +177,7 @@
                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;
            var token = userGuid;
            return token;
        }
@@ -252,11 +236,15 @@
            var array = new JArray();
            var d = json["rtnData"];
            foreach (var a in d) array.Add(a);
            //if (array.Count <=0)
            //    return null;
            var dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
            rto.rtnData = dt;
            return rto;
        }
        #region 批量处理对像,文本值,包含清空,禁用,启用三种
        /// <summary>
        ///     根据对象批量设置文本框的值
        /// </summary>
@@ -272,10 +260,11 @@
            {
                foreach (var gv in gridViews)
                {
                    gv.ClearSorting();
                    gv.OptionsCustomization.AllowSort = isEdt;
                    foreach (GridColumn colmn in gv.Columns)
                    {
                        colmn.OptionsColumn.AllowEdit = true;
                        if (colmn.Name.ToString().Contains("gvBtnAlawys"))
                        {
                            colmn.Visible = true;
@@ -284,6 +273,8 @@
                        if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui"))
                        {
                            colmn.Visible = !isEdt;
                            if (colmn.Visible == true)
                                colmn.VisibleIndex = 99999;
                        }
                        else
                        {
@@ -323,6 +314,7 @@
                    if (cols.Length > 0)
                    {
                        var colType = cols[0];
                        if (colType is LookUpEdit)
                        {
                            var txt = colType as LookUpEdit;
@@ -363,11 +355,11 @@
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //自定义下拉
                        if (colType is UcComBox)
                        if (colType is ButtonEdit)
                        {
                            var txt = colType as UcComBox;
                            txt.Val = strVal;
                            var txt = colType as ButtonEdit;
                            if (txt != null)
                                txt.Text = strVal;
                            txt.Enabled = !isEdt;
                            continue;
                        }
@@ -385,6 +377,7 @@
                                txt.ReadOnly = isEdt;
                            continue;
                        }
                        //文本域
                        if (colType is MemoEdit)
                        {
                            var txt = colType as MemoEdit;
@@ -411,7 +404,14 @@
                        if (colType is CheckEdit)
                        {
                            var txt = colType as CheckEdit;
                            if (_isRead(txt.Tag))
                            {
                                txt.ReadOnly = true;
                            }
                            else
                                txt.ReadOnly = isEdt;
                            if (txt != null)
                            {
                                switch (strVal)
                                {
                                    case "True":
@@ -427,8 +427,8 @@
                                        txt.Checked = false;
                                        break;
                                }
                            }
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //单选
@@ -454,7 +454,6 @@
                            txt.Enabled = !isEdt;
                            continue;
                        }
                        //时间
                        if (colType is DateTimePicker)
                        {
@@ -484,10 +483,7 @@
                        {
                            var txt = colType as UcLookCk;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定义供应商
@@ -495,10 +491,7 @@
                        {
                            var txt = colType as UcLookSupplier;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定义物料
@@ -506,10 +499,7 @@
                        {
                            var txt = colType as UcLookItems;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定车间
@@ -517,10 +507,7 @@
                        {
                            var txt = colType as UcLookWorkshop;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定产线
@@ -528,10 +515,7 @@
                        {
                            var txt = colType as UcLookWorkline;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定单位
@@ -539,10 +523,7 @@
                        {
                            var txt = colType as UcLookUnit;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定客户
@@ -550,10 +531,7 @@
                        {
                            var txt = colType as UcLookCustomer;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定员工
@@ -561,10 +539,7 @@
                        {
                            var txt = colType as UcLookStaff;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定组织
@@ -572,10 +547,7 @@
                        {
                            var txt = colType as UcLookOrg;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定用户
@@ -583,10 +555,7 @@
                        {
                            var txt = colType as UcLookUser;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定打印机
@@ -594,21 +563,7 @@
                        {
                            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;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定部门
@@ -616,10 +571,7 @@
                        {
                            var txt = colType as UcLookDepartment;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定daa
@@ -627,10 +579,7 @@
                        {
                            var txt = colType as UcLookDaa;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定委外
@@ -638,16 +587,48 @@
                        {
                            var txt = colType as UcLookWwgd;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定销售
                        if (colType is UcLookSales)
                        {
                            var txt = colType as UcLookSales;
                            txt.SetIdOrCode(strVal);
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        if (colType is SimpleButton)
                        {
                            var txt = colType as SimpleButton;
                            txt.Enabled = !isEdt;
                            if (txt.Tag != null && txt.Tag.ToString() == "gvBtnAlawys")
                                txt.Enabled = true;
                            else
                                txt.Enabled = !isEdt;
                            continue;
                        }
                        //自定工序
                        if (colType is UcLookGx)
                        {
                            var txt = colType as UcLookGx;
                            txt.SetIdOrCode(strVal);
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定不良
                        if (colType is UcDictionary)
                        {
                            var txt = colType as UcDictionary;
                            txt.TextTxt = (strVal);
                            txt.IsReadly = isEdt;
                            continue;
                        }
                        //自定单据类型下拉
                        if (colType is UcDictionaryComBox)
                        {
                            var txt = colType as UcDictionaryComBox;
                            txt.TextTxt = (strVal);
                            txt.IsReadly = isEdt;
                            continue;
                        }
                    }
@@ -685,6 +666,8 @@
            {
                foreach (var gv in gridViews)
                {
                    gv.ClearSorting();
                    gv.OptionsCustomization.AllowSort = isEdt;
                    foreach (GridColumn colmn in gv.Columns)
                    {
                        colmn.OptionsColumn.AllowEdit = true;
@@ -739,12 +722,12 @@
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //自定义的下拉
                if (ctrl is UcComBox)
                if (ctrl is ButtonEdit)
                {
                    var txt = ctrl as UcComBox;
                    txt.Val = "0";
                    var txt = ctrl as ButtonEdit;
                    txt.Text = "";
                    txt.Enabled = !isEdt;
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //文本
@@ -765,7 +748,6 @@
                        txt.ReadOnly = isEdt;
                    continue;
                }
                //时间
                if (ctrl is DateTimePicker)
                {
@@ -783,17 +765,20 @@
                if (ctrl is CheckEdit)
                {
                    var txt = ctrl as CheckEdit;
                    txt.ReadOnly = isEdt;
                    txt.Checked = false;
                    if (_isRead(txt.Tag))
                    {
                        txt.ReadOnly = true;
                    }
                    else
                        txt.ReadOnly = isEdt;
                    continue;
                }
                //自定义仓库
                if (ctrl is UcLookCk)
                {
                    var txt = ctrl as UcLookCk;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定义供应商
@@ -801,7 +786,7 @@
                {
                    var txt = ctrl as UcLookSupplier;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定义物料
@@ -809,7 +794,7 @@
                {
                    var txt = ctrl as UcLookItems;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定车间
@@ -817,7 +802,7 @@
                {
                    var txt = ctrl as UcLookWorkshop;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定产线
@@ -825,7 +810,7 @@
                {
                    var txt = ctrl as UcLookWorkline;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定单位
@@ -833,7 +818,7 @@
                {
                    var txt = ctrl as UcLookUnit;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定客户
@@ -841,15 +826,15 @@
                {
                    var txt = ctrl as UcLookCustomer;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定客户
                //自定员工
                if (ctrl is UcLookStaff)
                {
                    var txt = ctrl as UcLookStaff;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定组织
@@ -857,7 +842,7 @@
                {
                    var txt = ctrl as UcLookOrg;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定用户
@@ -865,7 +850,7 @@
                {
                    var txt = ctrl as UcLookUser;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定打印机
@@ -873,23 +858,16 @@
                {
                    var txt = ctrl as UcLookPrint;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = 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;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定daa
@@ -897,7 +875,7 @@
                {
                    var txt = ctrl as UcLookDaa;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定委外
@@ -905,13 +883,48 @@
                {
                    var txt = ctrl as UcLookWwgd;
                    txt.SetIdOrCode("-1");
                    txt.Enabled = !isEdt;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定销售
                if (ctrl is UcLookSales)
                {
                    var txt = ctrl as UcLookSales;
                    txt.SetIdOrCode("-1");
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定工序
                if (ctrl is UcLookGx)
                {
                    var txt = ctrl as UcLookGx;
                    txt.SetIdOrCode("-1");
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定不良
                if (ctrl is UcDictionary)
                {
                    var txt = ctrl as UcDictionary;
                    txt.TextTxt = "";
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定义单据类型下拉
                if (ctrl is UcDictionaryComBox)
                {
                    var txt = ctrl as UcDictionaryComBox;
                    //txt.SetIdOrCode("-1");
                    txt.IsReadly = isEdt;
                    continue;
                }
                if (ctrl is SimpleButton)
                {
                    var txt = ctrl as SimpleButton;
                    txt.Enabled = !isEdt;
                    if (txt.Tag != null && txt.Tag.ToString() == "gvBtnAlawys")
                        txt.Enabled = true;
                    else
                        txt.Enabled = !isEdt;
                    continue;
                }
            }
@@ -931,6 +944,8 @@
            {
                foreach (var gv in gridViews)
                {
                    gv.ClearSorting();
                    gv.OptionsCustomization.AllowSort = isEdt;
                    foreach (GridColumn colmn in gv.Columns)
                    {
                        colmn.OptionsColumn.AllowEdit = true;
@@ -950,6 +965,19 @@
            }
            foreach (Control ctrl in controls)
            {
                //下拉
                if (ctrl is ComboBoxEdit)
                {
                    var txt = ctrl as ComboBoxEdit;
                    txt.ReadOnly = isEdt;
                    continue;
                }
                if (ctrl is ButtonEdit)
                {
                    var txt = ctrl as ButtonEdit;
                    txt.Enabled = !isEdt;
                    continue;
                }
                //文本
                if (ctrl is TextEdit)
                {
@@ -980,29 +1008,18 @@
                    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;
@@ -1013,161 +1030,147 @@
                if (ctrl is UcLookCk)
                {
                    var txt = ctrl as UcLookCk;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定义供应商
                if (ctrl is UcLookSupplier)
                {
                    var txt = ctrl as UcLookSupplier;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定义物料
                if (ctrl is UcLookItems)
                {
                    var txt = ctrl as UcLookItems;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定义车间
                if (ctrl is UcLookWorkshop)
                {
                    var txt = ctrl as UcLookWorkshop;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定义产线
                if (ctrl is UcLookWorkline)
                {
                    var txt = ctrl as UcLookWorkline;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定义单位
                if (ctrl is UcLookUnit)
                {
                    var txt = ctrl as UcLookUnit;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定义客户
                if (ctrl is UcLookCustomer)
                {
                    var txt = ctrl as UcLookCustomer;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定义员工
                if (ctrl is UcLookStaff)
                {
                    var txt = ctrl as UcLookStaff;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定组织
                if (ctrl is UcLookOrg)
                {
                    var txt = ctrl as UcLookOrg;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定用户
                if (ctrl is UcLookUser)
                {
                    var txt = ctrl as UcLookUser;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    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;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定部门
                if (ctrl is UcLookDepartment)
                {
                    var txt = ctrl as UcLookDepartment;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定daa
                if (ctrl is UcLookDaa)
                {
                    var txt = ctrl as UcLookDaa;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定委外
                if (ctrl is UcLookWwgd)
                {
                    var txt = ctrl as UcLookWwgd;
                    if (txt.IsReadly == false)
                        txt.Enabled = !isEdt;
                    else
                        txt.Enabled = false;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定销售
                if (ctrl is UcLookSales)
                {
                    var txt = ctrl as UcLookSales;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定工序
                if (ctrl is UcLookGx)
                {
                    var txt = ctrl as UcLookGx;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定不良
                if (ctrl is UcDictionary)
                {
                    var txt = ctrl as UcDictionary;
                    txt.IsReadly = isEdt;
                    continue;
                }
                //自定单据类型下拉
                if (ctrl is UcDictionaryComBox)
                {
                    var txt = ctrl as UcDictionaryComBox;
                    txt.IsReadly = isEdt;
                    continue;
                }
                if (ctrl is SimpleButton)
                {
                    var txt = ctrl as SimpleButton;
                    txt.Enabled = !isEdt;
                    if (txt.Tag != null && txt.Tag.ToString() == "gvBtnAlawys")
                        txt.Enabled = true;
                    else
                        txt.Enabled = !isEdt;
                    continue;
                }
            }
        }
        #endregion
        /// <summary>
        /// 判断控件只读状态
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="isEdt"></param>
        /// <returns></returns>
        private static bool _isRead(object obj, bool isEdt = false)
        {
            ///永远是只读的
@@ -1182,33 +1185,13 @@
            }
            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新增加
        /// tab跳转:0查看,1退出,2删除,3修改,4新增加,6保存后
        /// </summary>
        /// <param name="tabControl"></param>
        /// <param name="idx">0查看,1退出,2删除,3修改,4新增加</param>
        /// <param name="idx">0查看,1退出,2删除,3修改,4新增加,6保存后</param>
        public static void JumpTab(XtraTabControl tabControl, int action)
        {
@@ -1254,6 +1237,14 @@
                tabControl.SelectedTabPageIndex = 1;
                return;
            }
            if (action == 6)
            {
                tabControl.TabPages[0].PageEnabled = true;
                tabControl.TabPages[1].PageEnabled = true;
                return;
            }
        }
        /// <summary>
@@ -1293,35 +1284,6 @@
            }
        }
        /// <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>
        /// 转Guid
@@ -1333,12 +1295,11 @@
            if (string.IsNullOrEmpty(str)) return Guid.Empty;
            return Guid.Parse(str);
        }
        public static int ToInt(string str)
        public static decimal ToDecimal(string str)
        {
            try
            {
                return int.Parse(str);
                return decimal.Parse(str);
            }
            catch (Exception)
            {
@@ -1346,18 +1307,12 @@
                return 0;
            }
        }
        public static long ToLong(string str)
        public static decimal? GetDecimal(string s)
        {
            try
            {
                return long.Parse(str);
            }
            catch (Exception)
            {
                return 0;
            }
            if (string.IsNullOrEmpty(s)) return null;
            return decimal.Parse(s);
        }
        public static int ToBit(string str)
        {
@@ -1365,17 +1320,15 @@
                return 1;
            return 0;
        }
        public static bool ToBoole(string str)
        public static bool ToCheck(string str)
        {
            if (str.ToUpper() == "true".ToUpper())
                return true;
            if (str.ToUpper() == "1".ToUpper())
                return true;
            return false;
        }
        public string GetIsNullOrEmpty(string str)
        {
            if (string.IsNullOrEmpty(str.Trim()))
                return "{>";
            return str.Trim();
        }
        /// <summary>
@@ -1542,7 +1495,6 @@
                    return rowGuid;
                }
            }
            return "";
        }
@@ -1560,7 +1512,7 @@
            GridView dgv = s as GridView;
            if (dgv != null)
            {
                if (dgv.GetSelectedRows() != null)
                if (dgv.GetSelectedRows() != null && dgv.GetSelectedRows().Count() > 0)
                {
                    var selectedRow = dgv.GetSelectedRows()[0]; // 获取第一个选中行的索引
                    if (selectedRow >= 0)
@@ -1568,7 +1520,7 @@
                        var checkStatus = dgv.GetRowCellValue(selectedRow, fileName).ToString(); // 获取指定列的值
                        btnChkIco.Text = checkStatus;
                        btnChkIco.Visible = true;
                        if (checkStatus == "1" || checkStatus.ToUpper() == true.ToString().ToUpper())
                        if (checkStatus == "1" || checkStatus.ToUpper() == true.ToString().ToUpper() || checkStatus == "已审核")
                        {
                            btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_check;
                            btnChkIco.Tag = "已审核";
@@ -1579,34 +1531,110 @@
                            btnChkIco.Tag = "未审核";
                        }
                        btnChkIco.Anchor = AnchorStyles.Top | AnchorStyles.Right; // 靠右
                        btnChkIco.Location = new Point(fm.ClientSize.Width - btnChkIco.Width - 20, 80); // 距离顶部10像素
                        btnChkIco.Location = new Point(fm.ClientSize.Width - btnChkIco.Width - 20, 25); // 距离顶部10像素
                    }
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="gridView1"></param>
        /// <param name="zdChk">chk字段</param>
        /// <param name="zdChkUser">chk user</param>
        /// <param name="zdCkDate">chk date</param>
        /// <param name="btnChkIco"></param>
        /// <param name="fm">当前窗体</param>
        /// <param name="fileName">1为审核,0为反审核</param>
        /// <param name="icoName"></param>
        public static void SetCheckIco(GridView gridView1, string zdChk, string zdChkUser, string zdCkDate, PictureBox btnChkIco, Form fm, string fileName, string icoName = "")
        {
            btnChkIco.Anchor = AnchorStyles.Top | AnchorStyles.Right; // 靠右
            btnChkIco.Location = new Point(fm.ClientSize.Width - btnChkIco.Width - 20, 80); // 距离顶部10像素
            if (gridView1 == null)
            {
                btnChkIco.Visible = true;
                if (fileName == "1")
                {
                    btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_check;
                    btnChkIco.Tag = "已审核";
                }
                else
                {
                    btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_noCheck;
                    btnChkIco.Tag = "未审核";
                }
                return;
            }
            if (fileName == "1" || fileName.ToUpper() == true.ToString().ToUpper())
            {
                btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_check;
                btnChkIco.Tag = "已审核";
                if (!string.IsNullOrEmpty(zdChkUser))
                    gridView1.SetFocusedRowCellValue(zdChkUser, "已审核");
                if (!string.IsNullOrEmpty(zdCkDate))
                    gridView1.SetFocusedRowCellValue(zdCkDate, DateTime.Now.ToString());
                if (!string.IsNullOrEmpty(zdChk))
                    gridView1.SetFocusedRowCellValue(zdChk, true);
            }
            else
            {
                btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_noCheck;
                btnChkIco.Tag = "未审核";
                if (!string.IsNullOrEmpty(zdChkUser))
                    gridView1.SetFocusedRowCellValue(zdChkUser, "");
                if (!string.IsNullOrEmpty(zdCkDate))
                    gridView1.SetFocusedRowCellValue(zdCkDate, "");
                if (!string.IsNullOrEmpty(zdChk))
                    gridView1.SetFocusedRowCellValue(zdChk, false);
            }
        }
        #region 设置搜索
        public static string getQueryWord(string str)
        public static FilterEntity getFilterEntityWord(string id, string idDec, string val, string type)
        {
            return str.ToUpper().Replace("query_".ToUpper(), "");
            switch (type)
            {
                case "Bit类型":
                    string _val = (val.ToUpper() == "true".ToUpper() ? "1" : "0");
                    return new FilterEntity(id, idDec + ")", "=", "等于)", "" + _val + "", type);
                    break;
                default:
                    return new FilterEntity(id, idDec + ")", "like", "包含)", "%" + val + "%", type);
                    break;
            }
        }
        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)
        public static List<FilterEntity> GetDilter(GridColumnCollection Columns, GridView gridView1 = null)
        {
            List<FilterEntity> fiList = new List<FilterEntity>();
            if (gridView1 != null)
            {
                bool b = gridView1.ActiveFilterEnabled;
                if (b == false)
                    return fiList;
            }
            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()));
                string _filterString = filter.FilterString.Replace("Contains", "").Replace("(", "").Replace(")", "").Replace("'", "").Replace("'", "");
                string[] ddd = _filterString.Split(',');
                string _val = "";
                if (ddd.Length > 1)
                {
                    _val = ddd[1].Trim();
                }
                else
                {
                    ddd = _filterString.Split('=');
                    _val = ddd[1].Trim();
                }
                fiList.Add(getFilterEntityWord(col.Tag.ToString(), col.Caption.Trim(), _val, col.UnboundExpression));
            }
            return fiList;
        }
@@ -1631,17 +1659,27 @@
                    }
                }
                else
                    _sbSqlWhere.Append(" and " + itm.fileId + itm.fileOper + "'" +
                                      itm.fileValue + "'");
                {
                    switch (itm.fileType)
                    {
                        case "时间类型":
                            _sbSqlWhere.Append(" and CONVERT(nvarchar(30)," + itm.fileId + ",23)" + itm.fileOper + "'" + itm.fileValue + "'");
                            break;
                        case "Bit类型":
                            _sbSqlWhere.Append(" and isnull(" + itm.fileId + ",0) =" + itm.fileValue + "");
                            break;
                        default:
                            _sbSqlWhere.Append(" and " + itm.fileId + " " + itm.fileOper + " '" + itm.fileValue + "'");
                            break;
                    }
                }
            }
            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>
@@ -1649,30 +1687,73 @@
        /// <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)
        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)
        {
            gridView1.PopupMenuShowing += (s, e) =>
            {
                if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column)
                {
                    GridViewColumnMenu menu = e.Menu as GridViewColumnMenu;
                    if (menu != null)
                    {
                        string[] ary = { "Column Chooser", "Hide This Column", "Clear All Sorting", "Clear Sorting", "Sort Descending", "Sort Ascending", "Best Fit (all columns)" };
                        for (int i = menu.Items.Count - 1; i >= 0; i--)
                        {
                            string _caption = menu.Items[i].Caption;
                            if (!ary.Contains(_caption))
                            {
                                menu.Items.Remove(menu.Items[i]);
                            }
                        }
                    }
                }
            };
            gridView1.OptionsView.ColumnAutoWidth = false;//自动调整列宽
            // gridView1.BestFitColumns();//数据绑定到GridView之后调用BestFitColumns()方法
            if (isPostSearch == true)
            {
                gridView1.OptionsView.ShowGroupPanel = false;
                gridView1.OptionsCustomization.AllowGroup = false;
                gridView1.OptionsFilter.AllowAutoFilterConditionChange = DevExpress.Utils.DefaultBoolean.False;
                gridView1.OptionsView.ShowAutoFilterRow = true;
                gridView1.OptionsFilter.AllowFilterEditor = false;
                gridView1.OptionsFilter.ShowCustomFunctions = DevExpress.Utils.DefaultBoolean.False;
                gridView1.OptionsFilter.AllowColumnMRUFilterList = false;
                gridView1.OptionsFilter.AllowMRUFilterList = false;
                gridView1.OptionsCustomization.AllowFilter = false;
                gridView1.OptionsFind.ShowSearchNavButtons = false;
                gridView1.OptionsView.ShowGroupPanel = false;
                //是否显示底部的过滤条
                // gridView1.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;
            }
            // gridView1.Appearance.HeaderPanel.ForeColor = DevExpress.LookAndFeel.DXSkinColors.ForeColors.ControlText;
            foreach (GridColumn column in gridView1.Columns)
            {
                column.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Contains;
                column.OptionsFilter.ImmediateUpdateAutoFilter = false;
                column.MinWidth = 10;
                column.MaxWidth = 0;
                column.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
                column.OptionsColumn.AllowEdit = true;
                // column.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Contains;
                column.OptionsFilter.AutoFilterCondition = DevExpress.XtraGrid.Columns.AutoFilterCondition.Contains;
                column.OptionsFilter.ImmediateUpdateAutoFilter = false;
                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;
                //if(isPostSearch==false)
                //    column.OptionsColumn.ReadOnly = true;
                if (isPostSearch == 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.IndicatorWidth = 60;
            gridView1.CustomDrawRowIndicator += (s, e) =>
            {
                if (e.Info.IsRowIndicator && e.RowHandle >= 0)
@@ -1717,24 +1798,87 @@
            }
            gridView1.RowStyle += (s, e) =>
            {
                gridView1.OptionsSelection.EnableAppearanceFocusedRow = false;//默认选中行不变色
                gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;//默认选中单元格不变色
                //默认选中行不变色
                gridView1.OptionsSelection.EnableAppearanceFocusedRow = false;
                //默认选中单元格不变色
                gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;
                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.BackColor = Color.LightPink;
                            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)
            {
                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)
                    {
                    }
                };
            }
        }
        private static void ActiveEditor_MouseUp(object sender, MouseEventArgs e)
        {
@@ -1743,26 +1887,62 @@
            edit.SelectAll();
        }
        public static void SetTabParameter(GridView gridView1, DevExpress.XtraTab.XtraTabControl xtraTabControl1, UcPageBar pageBar1, DelegateGetModel action = null, DelegateGetList page = null)
        public static void SetGridLayout(GridView gridView1)
        {
            foreach (GridColumn column in gridView1.Columns)
            {
                if (column.Width > 500)
                    column.Width = 500;
            }
        }
        /// <summary>
        /// 设置选项卡
        /// </summary>
        /// <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)
        {
            xtraTabControl1.SelectedPageChanged += (s, e) =>
            {
                if (xtraTabControl1.SelectedTabPageIndex == 1)
                {
                    int _handle = gridView1.FocusedRowHandle;
                    if (_handle == -1)
                    bool _bl = xtraTabControl1.TabPages[0].PageEnabled;
                    if (_bl == false) { return; };
                    if (_handle < 0)
                    {
                        xtraTabControl1.SelectedTabPageIndex = -1;
                        Gs.DevApp.ToolBox.MsgHelper.ShowInformation("请选择你要显示的行!" + _handle.ToString() + "tag" + xtraTabControl1.SelectedTabPageIndex.ToString());
                        return;
                    }
                    DataRow row = gridView1.GetDataRow(_handle);
                    if (row == null)
                    {
                        xtraTabControl1.SelectedTabPageIndex = -1;
                        Gs.DevApp.ToolBox.MsgHelper.ShowInformation("请选择你要显示的行!" + _handle.ToString());
                        return;
                    }
                    string _guid = row["guid"].ToString();
                    if (string.IsNullOrEmpty(_guid))
                    {
                        xtraTabControl1.SelectedTabPageIndex = -1;
                        Gs.DevApp.ToolBox.MsgHelper.ShowInformation("请选择你要显示的行!" + _handle.ToString());
                        return;
                    }
                    action(_guid);
                }
                if (xtraTabControl1.SelectedTabPageIndex == 0)
                if (pageBar1 != null && xtraTabControl1.SelectedTabPageIndex == 0)
                {
                    page(pageBar1.CurrentPage);
                    int rowHandle = 0;
                    rowHandle = gridView1.LocateByValue(1, gridView1.Columns["guid"], lbGuid.Text);
                    if (rowHandle < 0)
                        rowHandle = 0;
                    gridView1.FocusedRowHandle = rowHandle;
                }
            };
        }
@@ -1775,8 +1955,38 @@
        /// <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) =>
            {
                if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column)
                {
                    GridViewColumnMenu menu = e.Menu as GridViewColumnMenu;
                    if (menu != null)
                    {
                        string[] ary = { "Column Chooser", "Hide This Column", "Clear All Sorting", "Clear Sorting", "Sort Descending", "Sort Ascending", "Best Fit (all columns)" };
                        for (int i = menu.Items.Count - 1; i >= 0; i--)
                        {
                            string _caption = menu.Items[i].Caption;
                            if (!ary.Contains(_caption))
                            {
                                menu.Items.Remove(menu.Items[i]);
                            }
                        }
                    }
                }
            };
            gridView1.OptionsView.ShowGroupPanel = false;
            gridView1.OptionsCustomization.AllowGroup = false;
            // gridView1.OptionsView.Alignment = DataGridViewContentAlignment.MiddleLeft;
            foreach (GridColumn column in gridView1.Columns)
            {
                // column.DefaultCellStyle.Alignment = true;
                column.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
                column.MinWidth = 10;
                column.MaxWidth = 0;
            }
            gridView1.OptionsView.ColumnAutoWidth = false;//自动调整列宽
            gridView1.OptionsFilter.AllowFilterEditor = false;
            gridView1.OptionsFilter.ShowCustomFunctions = DevExpress.Utils.DefaultBoolean.False;
@@ -1784,7 +1994,7 @@
            gridView1.OptionsFind.ShowSearchNavButtons = false;
            gridView1.OptionsView.ShowAutoFilterRow = false;
            gridView1.OptionsView.ShowGroupPanel = false;
            gridView1.IndicatorWidth = 40;
            gridView1.IndicatorWidth = 60;
            gridView1.CustomDrawRowIndicator += (s, e) =>
            {
                if (e.Info.IsRowIndicator && e.RowHandle >= 0)
@@ -1816,16 +2026,337 @@
                    }
                }
            };
            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
        /// <summary>
        /// 判断是不是一个有效的数值
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static bool IsNumeric(string str)
        {
            Regex regex = new Regex("^[0-9]+$");
            return regex.IsMatch(str);
        }
        /// <summary>
        /// 判断是不是一个有效果的decimal数值
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static bool IsNumeric2(string str)
        {
            string input = str;
            decimal number;
            bool isNumeric = decimal.TryParse(input, out number);
            return isNumeric;
        }
        /// <summary>
        /// 判断是不是一个有效的正整数
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static bool IsNumeric3(string str)
        {
            string input = str;
            decimal number;
            bool isNumeric = decimal.TryParse(input, out number);
            if (isNumeric && number > 0)
                return true;
            return false;
        }
        /// <summary>
        /// 判断是不是一个有效的正整数
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static bool IsNumeric3(string str, string str2)
        {
            decimal d1 = 0;
            decimal d2 = 0;
            if (!string.IsNullOrEmpty(str))
            {
                d1 = decimal.Parse(str);
            }
            if (!string.IsNullOrEmpty(str2))
            {
                d2 = decimal.Parse(str2);
            }
            return (d1 + d2) > 0 ? true : false;
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="box1">txt_psnQty_1:每张条码数量</param>
        /// <param name="box2">txt_iCount_1:整张数值</param>
        /// <param name="sum">txt_kQty:可打印量</param>
        /// <param name="rd"></param>
        /// <param name="txt_yuliang">txt_yuliang:余量</param>
        public static void PrintJiSuan(DevExpress.XtraEditors.TextEdit box1, DevExpress.XtraEditors.TextEdit box2, string sum, DevExpress.XtraEditors.RadioGroup rd, DevExpress.XtraEditors.TextEdit txt_yuliang = null)
        {
            if (rd.SelectedIndex == 2)
                return;
            try
            {
                string t1 = box1.Text.Trim();
                string t2 = box2.Text.Trim();
                if (!Gs.DevApp.ToolBox.UtilityHelper.IsNumeric2(t1))
                    return;
                if (Gs.DevApp.ToolBox.UtilityHelper.ToDecimal(t1) <= 0)
                    return;
                decimal? dc = Gs.DevApp.ToolBox.UtilityHelper.GetDecimal(sum);
                decimal? dc1 = Gs.DevApp.ToolBox.UtilityHelper.GetDecimal(t1);
                decimal dividend = decimal.Parse(sum); // 被除数
                decimal divisor = decimal.Parse(t1);   // 除数
                decimal shang = dividend / divisor;
                decimal integerPart = Math.Truncate(shang); // 获取整数部分
                decimal decimalPart = dividend - divisor * integerPart; // 获取小数部分
                //decimal quotient = dividend / divisor; // 整数部分
                //decimal remainder = dividend % divisor; // 余数
                box2.Text = integerPart.ToString();
                if (rd.SelectedIndex == 0)
                    txt_yuliang.Text = decimalPart.ToString();
            }
            catch (Exception ex)
            {
                Gs.DevApp.ToolBox.MsgHelper.ShowError("输入数据错误:" + ex.Message);
            }
        }
        public static void PrintAuto(DevExpress.XtraEditors.TextEdit txt_psnQty_1, DevExpress.XtraEditors.TextEdit txt_iCount_1, DevExpress.XtraEditors.RadioGroup radOut, DevExpress.XtraEditors.TextEdit txt_yuliang = null)
        {
            txt_psnQty_1.Text = "";
            txt_iCount_1.Text = "";
            txt_yuliang.Text = "";
            if (radOut.SelectedIndex == 2)
                txt_iCount_1.ReadOnly = false;
            else
                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>
        /// 绘制表头全选勾选框
        /// </summary>
        //  private Rectangle checkBoxColumnHeaderRect = Rectangle.Empty;
        // 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)
            {
                //X = 51 Y = 1 Width = 37 Height = 57
                e.Column.Caption = ".";
                checkBoxColumnHeaderRect = e.Bounds;
                // checkBoxColumn = e.Column;
                //须把列头标题设置为空
                e.Painter.DrawObject(e.Info);
                //在列头中心显示复选框
                int x = e.Bounds.X + (int)((e.Bounds.Width - CheckBoxRenderer.GetGlyphSize(e.Graphics, CheckBoxState.UncheckedNormal).Width) * 0.5);
                int y = e.Bounds.Y + (int)((e.Bounds.Height - CheckBoxRenderer.GetGlyphSize(e.Graphics, CheckBoxState.UncheckedNormal).Height) * 0.5);
                Point location = new Point(x, y);
                CheckBoxState checkBoxState;
                if (e.Column.Tag != null && e.Column.Tag.ToString() == "1")
                    checkBoxState = CheckBoxState.CheckedPressed;
                else
                    checkBoxState = CheckBoxState.UncheckedNormal;
                CheckBoxRenderer.DrawCheckBox(e.Graphics, location, checkBoxState);
                e.Handled = true;
            }
        }
        public static void CustomMouseUp(object sender, MouseEventArgs e, DevExpress.XtraGrid.GridControl gcMain, DevExpress.XtraGrid.Views.Grid.GridView gridView1)
        {
            GridColumn checkBoxColumn = gridView1.Columns[0];
            Rectangle checkBoxColumnHeaderRect = new Rectangle(51, 1, 37, 57);
            if (checkBoxColumnHeaderRect != Rectangle.Empty)
            {
                if (e.X > checkBoxColumnHeaderRect.X && e.X < (checkBoxColumnHeaderRect.X + checkBoxColumnHeaderRect.Width) && e.Y > checkBoxColumnHeaderRect.Y && e.Y < (checkBoxColumnHeaderRect.Y + checkBoxColumnHeaderRect.Height))
                {
                    DataTable _Table = (DataTable)gcMain.DataSource;
                    if (checkBoxColumn.Tag != null && checkBoxColumn.Tag.ToString() == "1")
                    {
                        checkBoxColumn.Tag = "0";
                        foreach (DataRow row in _Table.Rows)
                        {
                            row["chkInt"] = false;
                        }
                    }
                    else
                    {
                        checkBoxColumn.Tag = "1";
                        foreach (DataRow row in _Table.Rows)
                        {
                            row["chkInt"] = true;
                        }
                    }
                    gcMain.BindingContext = new BindingContext();
                    gcMain.DataSource = _Table;
                    gcMain.ForceInitialize();
                    gridView1.CloseEditor();
                    gridView1.PostEditor();
                    gridView1.UpdateCurrentRow();
                    gridView1.InvalidateColumnHeader(checkBoxColumn);
                }
            }
        }
        #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>
@@ -1837,10 +2368,11 @@
        {
        }
        public CboItemEntity(string val, string text)
        public CboItemEntity(string val, string text, string fType = "")
        {
            Text = text;
            Value = val;
            FType = fType;
        }
        /// <summary>
@@ -1852,6 +2384,8 @@
        ///     对象值
        /// </summary>
        public object Value { get; set; } = "";
        public object FType { get; set; } = "";
        public override string ToString()
        {
@@ -1873,13 +2407,14 @@
        /// <param name="operDec">操作符备注</param>
        /// <param name="val"></param>
        public FilterEntity(string id, string idDec, string oper,
            string operDec, string val)
            string operDec, string val, string type)
        {
            fileId = id;
            fileIdDec = idDec;
            fileOper = oper;
            fileOperDec = operDec;
            fileValue = val;
            fileType = type;
        }
        public string fileId { get; set; }
@@ -1891,5 +2426,19 @@
        public string fileOperDec { get; set; }
        public string fileValue { get; set; }
        public string fileType { get; set; }
    }
    public enum QcSeason
    {
        iqc,
        ipqc巡检,
        ipqc首检,
        fqc
    }
}