lu
2025-01-03 8dbc06ffc555112cccbcbc1d32d4aa87fddf44ee
DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs
@@ -5,6 +5,7 @@
using System.Drawing;
using System.IO;
using System.Net;
using System.Net.Cache;
using System.Net.Http;
using System.Reflection;
using System.Resources;
@@ -12,7 +13,6 @@
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.Office.Model;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraGrid;
@@ -24,7 +24,9 @@
using Gs.DevApp.UserControl;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using UserControls.Data;
using static System.Windows.Forms.Control;
namespace Gs.DevApp.ToolBox
{
@@ -57,79 +59,55 @@
                }
            }
        }
        /// <summary>
        ///     httpPost访问服务
        /// </summary>
        /// <param name="url">服务地址</param>
        /// <param name="meth">方法名称</param>
        /// <param name="param">参数</param>
        /// <returns></returns>
        public static async Task<string> HttpPostAsync(string url, string meth, string param)
        {
            if (string.IsNullOrEmpty(url))
                url = WebApiUrl;
            url += meth;
            var request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "application/json";
            request.Headers.Add("token", GetBasicAuthTicket());
            request.Accept = "*/*";
            request.Timeout = 15000;
            request.AllowAutoRedirect = false;
            using (Stream requestStream = await request.GetRequestStreamAsync())
            {
                byte[] dataBytes = Encoding.UTF8.GetBytes(param);
                await requestStream.WriteAsync(dataBytes, 0, dataBytes.Length);
            }
            using (WebResponse response = await request.GetResponseAsync())
            {
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    return await reader.ReadToEndAsync();
                }
            }
        }
        /// <summary>
        ///     httpPost访问服务
        /// </summary>
        /// <param name="url">服务地址</param>
        /// <param name="meth">方法名称</param>
        /// <param name="param">参数</param>
        /// <returns></returns>
        public static string HttpPost(string url, string meth, string param)
        {
            if (string.IsNullOrEmpty(url))
                url = WebApiUrl;
            url += meth;
            var request = (HttpWebRequest)WebRequest.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 = 15000;
                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)
            {
                wdf.Close();
                LogHelper.Debug(url, param + ":" + ex.Message);
                throw ex;
            }
@@ -139,7 +117,8 @@
                requestStream = null;
                response = null;
            }
            wdf.SetCaption(_caption + "(90/100)");
            wdf.Close();
            return responseStr;
        }
@@ -187,7 +166,14 @@
        {
            var dt = new DataTable();
            foreach (GridColumn col in gv.Columns)
                dt.Columns.Add(col.FieldName, typeof(string));
            {
                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();
@@ -283,15 +269,49 @@
        {
            isEdt = !isEdt;
            if (gridViews != null)
            {
                foreach (var gv in gridViews)
                    gv.OptionsBehavior.Editable = !isEdt;
                {
                    foreach (GridColumn colmn in gv.Columns)
                    {
                        colmn.OptionsColumn.AllowEdit = true;
           var _btnAry=  controls.Find("btnSelect", false);
            if (_btnAry.Length > 0) {
                        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;
@@ -310,7 +330,6 @@
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        if (colType is ImageComboBoxEdit)
                        {
                            var txt = colType as ImageComboBoxEdit;
@@ -325,32 +344,26 @@
                            }
                            continue;
                        }
                        if (colType is ComboBoxEdit)
                        {
                            var txt = colType as ComboBoxEdit;
                            if (txt.Properties.TextEditStyle ==
                                TextEditStyles.DisableTextEditor)
                                txt.SelectedIndex = int.Parse(strVal);
                                try
                                {
                                    txt.SelectedIndex = int.Parse(strVal);
                                }
                                catch (Exception)
                                {
                                    txt.Text = strVal;
                                }
                            else
                                txt.Text = strVal;
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //下拉
                        if (colType is ComboBoxEdit)
                        {
                            var txt = colType as ComboBoxEdit;
                            if (txt.Properties.TextEditStyle ==
                                TextEditStyles.DisableTextEditor)
                                txt.SelectedIndex = int.Parse(strVal);
                            else
                                txt.Text = strVal;
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //自定义下拉
                        if (colType is UcComBox)
                        {
@@ -359,17 +372,28 @@
                            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;
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //数字卡
                        if (colType is NumericUpDown)
                        {
@@ -379,7 +403,6 @@
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //单选
                        if (colType is CheckEdit)
                        {
@@ -404,7 +427,6 @@
                            txt.ReadOnly = isEdt;
                            continue;
                        }
                        //单选
                        if (colType is CheckBox)
                        {
@@ -430,16 +452,15 @@
                            txt.Enabled = !isEdt;
                            continue;
                        }
                        //Label
                        if (colType is Label)
                        {
                            var txt = colType as Label;
                            if (_dddddd == "txt_checkStatus")
                            {
                                if (strVal == "True" || strVal=="1")
                                if (strVal == "True" || strVal == "1")
                                    txt.Text = "已审核";
                                if (strVal == "False" || strVal=="0" || strVal=="")
                                if (strVal == "False" || strVal == "0" || strVal == "")
                                    txt.Text = "未审核";
                            }
                            else
@@ -451,8 +472,11 @@
                        if (colType is UcLookCk)
                        {
                            var txt = colType as UcLookCk;
                            txt.SetIdOrCode( strVal);
                            txt.Enabled = !isEdt;
                            txt.SetIdOrCode(strVal);
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            continue;
                        }
                        //自定义供应商
@@ -460,7 +484,10 @@
                        {
                            var txt = colType as UcLookSupplier;
                            txt.SetIdOrCode(strVal);
                            txt.Enabled = !isEdt;
                            if (txt.IsReadly == false)
                                txt.Enabled = !isEdt;
                            else
                                txt.Enabled = false;
                            continue;
                        }
                        //自定义物料
@@ -468,7 +495,142 @@
                        {
                            var txt = colType as UcLookItems;
                            txt.SetIdOrCode(strVal);
                            txt.Enabled = !isEdt;
                            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)
@@ -484,6 +646,21 @@
                    MessageBox.Show(ex.Message);
                }
            }
            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;
                }
            }
        }
        /// <summary>
@@ -497,8 +674,31 @@
        {
            isEdt = !isEdt;
            if (gridViews != null)
            {
                foreach (var gv in gridViews)
                    gv.OptionsBehavior.Editable = !isEdt;
                {
                    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)
            {
                //多行文本
@@ -509,7 +709,6 @@
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //下拉
                if (ctrl is ComboBoxEdit)
                {
@@ -522,7 +721,6 @@
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //自定义的下拉
                if (ctrl is UcComBox)
                {
@@ -531,16 +729,32 @@
                    txt.Enabled = !isEdt;
                    continue;
                }
                //文本
                if (ctrl is TextEdit)
                {
                    var txt = ctrl as TextEdit;
                    txt.Text = "";
                    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 MemoEdit)
                {
                    var txt = ctrl as MemoEdit;
                    if (txt != null)
                        txt.Text = "";
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //时间
                if (ctrl is DateTimePicker)
                {
@@ -552,13 +766,14 @@
                if (ctrl is CheckBox)
                {
                    var txt = ctrl as CheckBox;
                    txt.Checked = false;
                    txt.Enabled = !isEdt;
                    txt.Checked = false;
                }
                if (ctrl is CheckEdit)
                {
                    var txt = ctrl as CheckEdit;
                    txt.ReadOnly = isEdt;
                    txt.Checked = false;
                    continue;
                }
@@ -586,16 +801,111 @@
                    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>
@@ -607,18 +917,46 @@
        {
            isEdt = !isEdt;
            if (gridViews != null)
            {
                foreach (var gv in gridViews)
                    gv.OptionsBehavior.Editable = !isEdt;
                {
                    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;
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //数字卡
                if (ctrl is NumericUpDown)
                {
@@ -626,7 +964,6 @@
                    txt.ReadOnly = isEdt;
                    continue;
                }
                //下拉
                if (ctrl is UcComBox)
                {
@@ -644,20 +981,185 @@
                }
                //单选
                if (ctrl is CheckBox) {
                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)
        {
            if (obj != null && obj.ToString().ToUpper().Contains("readOnly".ToUpper()))
            {
                return true;
            }
            return false;
        }
        /// <summary>
        ///     切换选项卡
        /// </summary>
@@ -677,6 +1179,59 @@
                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>
@@ -757,6 +1312,50 @@
            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>
@@ -771,6 +1370,7 @@
            , Label lbGuid
            , TextEdit txtName
            , GridView gridView1
            , string fileName = ""
            , int SelectedTabPageIndex = 1)
        {
            var _strGuid = "";
@@ -790,7 +1390,10 @@
                else
                {
                    _strGuid = dr["guid"].ToString();
                      _strName = dr[1].ToString();
                    if (string.IsNullOrEmpty(fileName))
                        _strName = dr[1].ToString();
                    else
                        _strName = dr[fileName].ToString();
                }
            }
@@ -892,7 +1495,6 @@
                    }
                }
            }
            return "";
        }
@@ -921,6 +1523,267 @@
            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>
@@ -952,6 +1815,7 @@
        {
            return Text.ToString();
        }
    }
    /// <summary>