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; namespace Gs.DevApp.ToolBox { /// /// 通用类 /// public class UtilityHelper { private static readonly string WebApiUrl = ConfigurationManager.AppSettings["WebApiUrl"]; /// /// 读取加载信息 /// /// public static (Size, string, Color, Padding) getLoading() { Size _size = new Size(360, 90); return (_size, "拼命加载中,请稍后...", System.Drawing.Color.LightSkyBlue, new Padding(15)); } /// /// http请求 /// /// /// /// /// /// public static string HttpPost(string url, string meth, string param, bool isLoading = true) { 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; string responseStr = null; try { if (string.IsNullOrEmpty(url)) url = WebApiUrl; url += meth; request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/json"; request.Headers.Add("token", GetBasicAuthTicket()); request.Accept = "*/*"; request.Timeout = 150000; request.AllowAutoRedirect = false; request.ServicePoint.Expect100Continue = false; HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); request.CachePolicy = noCachePolicy; requestStream = new StreamWriter(request.GetRequestStream()); requestStream.Write(param); requestStream.Close(); response = request.GetResponse(); if (response != null) { var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); responseStr = reader.ReadToEnd(); //File.WriteAllText(Server.MapPath("~/") + @"\test.txt", responseStr); reader.Close(); } } catch (Exception ex) { wdf.Close(); LogHelper.Debug(url, param + ":" + ex.Message); throw ex; } finally { request = null; requestStream = null; response = null; } wdf.Close(); return responseStr; } /// /// 根据图片名读取资源文件,不带后缀名 /// /// /// 1为大图 /// public static Image GetImgFromResource(string imageName, int lay) { var assembly = Assembly.GetExecutingAssembly(); var resourceManager = new ResourceManager("Gs.DevApp.Properties.Resources", assembly); try { var image = resourceManager.GetObject(imageName) as Image; if (image != null) return image; } catch (Exception ex) { } var image2 = resourceManager.GetObject(lay == 1 ? "chartsshowlegend_32x32" : "linktoprevious_16x16") as Image; return image2; } /// /// 初始化一个表 /// /// /// public static void SetDefaultTable(GridControl gc, GridView gv) { var dt = new DataTable(); foreach (GridColumn col in gv.Columns) { if (col.UnboundDataType == typeof(System.Boolean)) dt.Columns.Add(col.FieldName, typeof(System.Boolean)); else { dt.Columns.Add(col.FieldName, typeof(string)); } } gc.BindingContext = new BindingContext(); gc.DataSource = dt; gc.ForceInitialize(); gv.BestFitColumns(); } /// /// 生成访问服务的token /// /// public static string GetBasicAuthTicket() { var userGuid = string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginUserGuid) ? Guid.NewGuid().ToString() : LoginInfoModel.CurrentUser.LoginUserGuid; var token = userGuid; return token; } /// /// 服务返回的json转为ReturnModel-->包含TablePage分页, /// /// /// public static ReturnModel ReturnToTablePage( string strReturn) { var rto = new ReturnModel(); var json = JObject.Parse(strReturn); rto.rtnCode = int.Parse(json["rtnCode"].ToString()); rto.rtnMsg = json["rtnMsg"].ToString(); rto.rtnData = new PageListModel(); rto.rtnData.pages = int.Parse(json["rtnData"]["pages"].ToString()); rto.rtnData.total = int.Parse(json["rtnData"]["total"].ToString()); rto.rtnData.everyPageSize = int.Parse(json["rtnData"]["everyPageSize"].ToString()); var array = new JArray(); var d = json["rtnData"]["list"]; foreach (var a in d) array.Add(a); var dt = JsonConvert.DeserializeObject(array.ToString()); rto.rtnData.list = dt; return rto; } /// /// 服务返回的json返回ReturnModel, /// /// /// public static ReturnModel ReturnToDynamic(string strReturn) { var rto = new ReturnModel(); var json = JObject.Parse(strReturn); rto.rtnCode = int.Parse(json["rtnCode"].ToString()); rto.rtnMsg = json["rtnMsg"].ToString(); rto.rtnData = json["rtnData"]; return rto; } /// /// 服务返回的json串返回ReturnModel-->仅仅有list,不分页, /// /// /// public static ReturnModel ReturnToList(string strReturn) { var rto = new ReturnModel(); var json = JObject.Parse(strReturn); rto.rtnCode = int.Parse(json["rtnCode"].ToString()); rto.rtnMsg = json["rtnMsg"].ToString(); rto.rtnData = new DataTable(); var array = new JArray(); var d = json["rtnData"]; foreach (var a in d) array.Add(a); //if (array.Count <=0) // return null; var dt = JsonConvert.DeserializeObject(array.ToString()); rto.rtnData = dt; return rto; } #region 批量处理对像,文本值,包含清空,禁用,启用三种 /// /// 根据对象批量设置文本框的值 /// /// controls:为groupBox1.Controls/panel1.Controls /// 对像 /// 是否可编辑 /// 关联的grid public static void SetValueByObj(ControlCollection controls, dynamic dynamicObject, bool isEdt, List gridViews = null) { isEdt = !isEdt; if (gridViews != null) { 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; colmn.OptionsColumn.ReadOnly = false; }; if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui")) { colmn.Visible = !isEdt; if (colmn.Visible == true) colmn.VisibleIndex = 99999; } else { if (isEdt == false) { if (colmn.Tag != null && colmn.Tag.ToString().EndsWith("edit")) colmn.OptionsColumn.ReadOnly = isEdt; else colmn.OptionsColumn.ReadOnly = !isEdt; } else colmn.OptionsColumn.ReadOnly = isEdt; } } } } var _btnAry = controls.Find("btnSelect", false); if (_btnAry.Length > 0) { var _btnType = _btnAry[0]; _btnType.Enabled = !isEdt; } var _btnAry2 = controls.Find("btnTui", false); if (_btnAry2.Length > 0) { var _btnType = _btnAry2[0]; _btnType.Enabled = !isEdt; } foreach (JProperty property in dynamicObject.Properties()) { var strName = property.Name; var strVal = property.Value.ToString(); try { var _dddddd = "txt_" + strName; var cols = controls.Find(_dddddd, true); if (cols.Length > 0) { var colType = cols[0]; if (colType is LookUpEdit) { var txt = colType as LookUpEdit; if (txt != null) txt.EditValue = strVal; txt.ReadOnly = isEdt; continue; } if (colType is ImageComboBoxEdit) { var txt = colType as ImageComboBoxEdit; for (var i = 0; i < txt.Properties.Items.Count; i++) { if (txt.Properties.Items[i].Description == strVal) { txt.ReadOnly = isEdt; txt.SelectedIndex = i; } } continue; } if (colType is ComboBoxEdit) { var txt = colType as ComboBoxEdit; if (txt.Properties.TextEditStyle == TextEditStyles.DisableTextEditor) try { txt.SelectedIndex = int.Parse(strVal); } catch (Exception) { txt.Text = strVal; } else txt.Text = strVal; txt.ReadOnly = isEdt; continue; } if (colType is ButtonEdit) { var txt = colType as ButtonEdit; if (txt != null) txt.Text = strVal; txt.Enabled = !isEdt; continue; } //文本 if (colType is TextEdit) { var txt = colType as TextEdit; if (txt != null) txt.Text = strVal; if (_isRead(txt.Tag)) { txt.ReadOnly = true; } else txt.ReadOnly = isEdt; continue; } //文本域 if (colType is MemoEdit) { var txt = colType as MemoEdit; if (txt != null) txt.Text = strVal; if (_isRead(txt.Tag)) { txt.ReadOnly = true; } else txt.ReadOnly = isEdt; continue; } //数字卡 if (colType is NumericUpDown) { var txt = colType as NumericUpDown; if (txt != null) txt.Text = strVal; txt.ReadOnly = isEdt; continue; } //单选 if (colType is CheckEdit) { var txt = colType as CheckEdit; if (_isRead(txt.Tag)) { txt.ReadOnly = true; } else txt.ReadOnly = isEdt; if (txt != null) { switch (strVal) { case "True": txt.Checked = true; break; case "1": txt.Checked = true; break; case "False": txt.Checked = false; break; default: txt.Checked = false; break; } } continue; } //单选 if (colType is CheckBox) { var txt = colType as CheckBox; if (txt != null) switch (strVal) { case "True": txt.Checked = true; break; case "1": txt.Checked = true; break; case "False": txt.Checked = false; break; default: txt.Checked = false; break; } txt.Enabled = !isEdt; continue; } //时间 if (colType is DateTimePicker) { var txt = colType as DateTimePicker; txt.Text = strVal; txt.Enabled = !isEdt; continue; } //Label if (colType is Label) { var txt = colType as Label; if (_dddddd == "txt_checkStatus") { if (strVal == "True" || strVal == "1") txt.Text = "已审核"; if (strVal == "False" || strVal == "0" || strVal == "") txt.Text = "未审核"; } else { txt.Text = strVal; } } //自定义仓库 if (colType is UcLookCk) { var txt = colType as UcLookCk; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定义供应商 if (colType is UcLookSupplier) { var txt = colType as UcLookSupplier; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定义物料 if (colType is UcLookItems) { var txt = colType as UcLookItems; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定车间 if (colType is UcLookWorkshop) { var txt = colType as UcLookWorkshop; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定产线 if (colType is UcLookWorkline) { var txt = colType as UcLookWorkline; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定单位 if (colType is UcLookUnit) { var txt = colType as UcLookUnit; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定客户 if (colType is UcLookCustomer) { var txt = colType as UcLookCustomer; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定员工 if (colType is UcLookStaff) { var txt = colType as UcLookStaff; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定组织 if (colType is UcLookOrg) { var txt = colType as UcLookOrg; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定用户 if (colType is UcLookUser) { var txt = colType as UcLookUser; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定打印机 if (colType is UcLookPrint) { var txt = colType as UcLookPrint; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定部门 if (colType is UcLookDepartment) { var txt = colType as UcLookDepartment; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定daa if (colType is UcLookDaa) { var txt = colType as UcLookDaa; txt.SetIdOrCode(strVal); txt.IsReadly = isEdt; continue; } //自定委外 if (colType is UcLookWwgd) { var txt = colType as UcLookWwgd; txt.SetIdOrCode(strVal); 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; 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; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } foreach (Control ctrl in controls) { if (ctrl is TextEdit) { var txt = ctrl as TextEdit; bool _bl = _isRead(txt.Tag, isEdt); txt.ReadOnly = _bl; // txt.ReadOnly = isEdt; continue; } } } /// /// 清空容器里面的控件 /// /// controls:为groupBox1.Controls/panel1.Controls /// 是否可编辑 /// 关联的grid public static void CleanValueByControl(ControlCollection controls, bool isEdt, List gridViews = null) { isEdt = !isEdt; if (gridViews != null) { 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("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui")) { colmn.Visible = !isEdt; } else { if (isEdt == false) { if (colmn.Tag != null && colmn.Tag.ToString().EndsWith("edit")) colmn.OptionsColumn.ReadOnly = isEdt; else colmn.OptionsColumn.ReadOnly = !isEdt; } else colmn.OptionsColumn.ReadOnly = isEdt; } } } } foreach (Control ctrl in controls) { //多行文本 if (ctrl is MemoEdit) { var txt = ctrl as MemoEdit; if (txt.Tag != null && txt.Tag.ToString().Length > 0 && txt.Tag.ToString().StartsWith("moren")) { txt.Text = txt.Tag.ToString().Replace("moren.", ""); } else txt.Text = ""; if (_isRead(txt.Tag)) { txt.ReadOnly = true; } else txt.ReadOnly = isEdt; continue; } //下拉 if (ctrl is ComboBoxEdit) { var txt = ctrl as ComboBoxEdit; if (txt.Properties.TextEditStyle == TextEditStyles.DisableTextEditor) txt.SelectedIndex = 0; else txt.Text = ""; txt.ReadOnly = isEdt; continue; } if (ctrl is ButtonEdit) { var txt = ctrl as ButtonEdit; txt.Text = ""; txt.Enabled = !isEdt; txt.ReadOnly = isEdt; continue; } //文本 if (ctrl is TextEdit) { var txt = ctrl as TextEdit; if (txt.Tag != null && txt.Tag.ToString().Length > 0 && txt.Tag.ToString().StartsWith("moren")) { txt.Text = txt.Tag.ToString().Replace("moren.", ""); } else txt.Text = ""; if (_isRead(txt.Tag)) { txt.ReadOnly = true; } else txt.ReadOnly = isEdt; continue; } //时间 if (ctrl is DateTimePicker) { var txt = ctrl as DateTimePicker; txt.Enabled = !isEdt; continue; } //单选 if (ctrl is CheckBox) { var txt = ctrl as CheckBox; txt.Enabled = !isEdt; txt.Checked = false; } if (ctrl is CheckEdit) { var txt = ctrl as CheckEdit; 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.IsReadly = isEdt; continue; } //自定义供应商 if (ctrl is UcLookSupplier) { var txt = ctrl as UcLookSupplier; txt.SetIdOrCode("-1"); txt.IsReadly = isEdt; continue; } //自定义物料 if (ctrl is UcLookItems) { var txt = ctrl as UcLookItems; txt.SetIdOrCode("-1"); txt.IsReadly = isEdt; continue; } //自定车间 if (ctrl is UcLookWorkshop) { var txt = ctrl as UcLookWorkshop; txt.SetIdOrCode("-1"); txt.IsReadly = isEdt; continue; } //自定产线 if (ctrl is UcLookWorkline) { var txt = ctrl as UcLookWorkline; txt.SetIdOrCode("-1"); txt.IsReadly = isEdt; continue; } //自定单位 if (ctrl is UcLookUnit) { var txt = ctrl as UcLookUnit; txt.SetIdOrCode("-1"); txt.IsReadly = isEdt; continue; } //自定客户 if (ctrl is UcLookCustomer) { var txt = ctrl as UcLookCustomer; txt.SetIdOrCode("-1"); txt.IsReadly = isEdt; continue; } //自定员工 if (ctrl is UcLookStaff) { var txt = ctrl as UcLookStaff; txt.SetIdOrCode("-1"); txt.IsReadly = isEdt; continue; } //自定组织 if (ctrl is UcLookOrg) { var txt = ctrl as UcLookOrg; txt.SetIdOrCode("-1"); txt.IsReadly = isEdt; continue; } //自定用户 if (ctrl is UcLookUser) { var txt = ctrl as UcLookUser; txt.SetIdOrCode("-1"); txt.IsReadly = isEdt; continue; } //自定打印机 if (ctrl is UcLookPrint) { var txt = ctrl as UcLookPrint; txt.SetIdOrCode("-1"); txt.IsReadly = isEdt; continue; } //自定部门 if (ctrl is UcLookDepartment) { var txt = ctrl as UcLookDepartment; txt.SetIdOrCode("-1"); txt.IsReadly = isEdt; continue; } //自定daa if (ctrl is UcLookDaa) { var txt = ctrl as UcLookDaa; txt.SetIdOrCode("-1"); txt.IsReadly = isEdt; continue; } //自定委外 if (ctrl is UcLookWwgd) { var txt = ctrl as UcLookWwgd; txt.SetIdOrCode("-1"); 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; if (txt.Tag != null && txt.Tag.ToString() == "gvBtnAlawys") txt.Enabled = true; else txt.Enabled = !isEdt; continue; } } } /// /// 禁用或启用容器里面的控件 /// /// controls:为groupBox1.Controls/panel1.Controls /// /// public static void ChangeEnableByControl(ControlCollection controls, bool isEdt, List gridViews = null) { isEdt = !isEdt; if (gridViews != null) { 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("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 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) { var txt = ctrl as TextEdit; if (_isRead(txt.Tag)) { txt.ReadOnly = true; } else txt.ReadOnly = isEdt; continue; } if (ctrl is MemoEdit) { var txt = ctrl as MemoEdit; if (_isRead(txt.Tag)) { txt.ReadOnly = true; } else txt.ReadOnly = isEdt; continue; } //数字卡 if (ctrl is NumericUpDown) { var txt = ctrl as NumericUpDown; txt.ReadOnly = isEdt; continue; } //日期 if (ctrl is DateTimePicker) { ctrl.Enabled = !isEdt; continue; } //单选 if (ctrl is CheckBox) { ctrl.Enabled = !isEdt; continue; } if (ctrl is CheckEdit) { var txt = ctrl as CheckEdit; txt.ReadOnly = isEdt; continue; } //自定义仓库 if (ctrl is UcLookCk) { var txt = ctrl as UcLookCk; txt.IsReadly = isEdt; continue; } //自定义供应商 if (ctrl is UcLookSupplier) { var txt = ctrl as UcLookSupplier; txt.IsReadly = isEdt; continue; } //自定义物料 if (ctrl is UcLookItems) { var txt = ctrl as UcLookItems; txt.IsReadly = isEdt; continue; } //自定义车间 if (ctrl is UcLookWorkshop) { var txt = ctrl as UcLookWorkshop; txt.IsReadly = isEdt; continue; } //自定义产线 if (ctrl is UcLookWorkline) { var txt = ctrl as UcLookWorkline; txt.IsReadly = isEdt; continue; } //自定义单位 if (ctrl is UcLookUnit) { var txt = ctrl as UcLookUnit; txt.IsReadly = isEdt; continue; } //自定义客户 if (ctrl is UcLookCustomer) { var txt = ctrl as UcLookCustomer; txt.IsReadly = isEdt; continue; } //自定义员工 if (ctrl is UcLookStaff) { var txt = ctrl as UcLookStaff; txt.IsReadly = isEdt; continue; } //自定组织 if (ctrl is UcLookOrg) { var txt = ctrl as UcLookOrg; txt.IsReadly = isEdt; continue; } //自定用户 if (ctrl is UcLookUser) { var txt = ctrl as UcLookUser; txt.IsReadly = isEdt; continue; } //自定打印 if (ctrl is UcLookPrint) { var txt = ctrl as UcLookPrint; txt.IsReadly = isEdt; continue; } //自定部门 if (ctrl is UcLookDepartment) { var txt = ctrl as UcLookDepartment; txt.IsReadly = isEdt; continue; } //自定daa if (ctrl is UcLookDaa) { var txt = ctrl as UcLookDaa; txt.IsReadly = isEdt; continue; } //自定委外 if (ctrl is UcLookWwgd) { var txt = ctrl as UcLookWwgd; 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; if (txt.Tag != null && txt.Tag.ToString() == "gvBtnAlawys") txt.Enabled = true; else txt.Enabled = !isEdt; continue; } } } #endregion /// /// 判断控件只读状态 /// /// /// /// private static bool _isRead(object obj, bool isEdt = false) { ///永远是只读的 if (obj != null && obj.ToString().ToUpper() == ("readOnly".ToUpper())) { return true; } ///永远是可写的 if (obj != null && obj.ToString().ToUpper() == ("readOnly-1".ToUpper())) { return false; } return isEdt; } /// /// tab跳转:0查看,1退出,2删除,3修改,4新增加,6保存后 /// /// /// 0查看,1退出,2删除,3修改,4新增加,6保存后 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; } if (action == 6) { tabControl.TabPages[0].PageEnabled = true; tabControl.TabPages[1].PageEnabled = true; return; } } /// /// TreeView联动选择 /// /// public static void TreeViewCheck(TreeViewEventArgs e) { try { if (e.Node.Nodes.Count > 0) foreach (TreeNode tn in e.Node.Nodes) { tn.Checked = e.Node.Checked; foreach (TreeNode x in tn.Nodes) { x.Checked = e.Node.Checked; foreach (TreeNode y in x.Nodes) y.Checked = e.Node.Checked; } } if (e.Node.Checked && e.Node.Parent != null && e.Node.Parent.Nodes.Count > 0) { var currentNode = e.Node; while (currentNode != null) { currentNode.Checked = e.Node.Checked; currentNode = currentNode.Parent; } } } catch (Exception ex) { MsgHelper.ShowError(ex.Message); } } /// /// 转Guid /// /// /// public static Guid ToGuid(string str) { if (string.IsNullOrEmpty(str)) return Guid.Empty; return Guid.Parse(str); } public static decimal ToDecimal(string str) { try { return decimal.Parse(str); } catch (Exception) { return 0; } } public static decimal? GetDecimal(string s) { if (string.IsNullOrEmpty(s)) return null; return decimal.Parse(s); } public static int ToBit(string str) { if (str.ToUpper() == "true".ToUpper()) return 1; return 0; } public static bool ToCheck(string str) { if (str.ToUpper() == "true".ToUpper()) return true; if (str.ToUpper() == "1".ToUpper()) return true; return false; } /// /// 读取grid的当前行 /// /// /// 编辑框中的主键名 /// 编辑框中的文本框名 /// /// /// public static (string, string) GetCurrentRow( XtraTabControl xtraTabControl1 , Label lbGuid , TextEdit txtName , GridView gridView1 , string fileName = "" , int SelectedTabPageIndex = 1) { var _strGuid = ""; var _strName = ""; if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex && lbGuid.Text.Length > 10) { _strGuid = lbGuid.Text.Trim(); _strName = txtName.Text.Trim(); } else { var dr = gridView1.GetFocusedDataRow(); if (dr == null || string.IsNullOrEmpty(dr["guid"].ToString())) { } else { _strGuid = dr["guid"].ToString(); if (string.IsNullOrEmpty(fileName)) _strName = dr[1].ToString(); else _strName = dr[fileName].ToString(); } } return (_strGuid, _strName); } /// /// 读取TreeView的当前行 /// /// /// /// /// /// /// public static (string, string) GetCurrentRow( XtraTabControl xtraTabControl1 , Label lbGuid , TextEdit txtName , TreeView tlMenu , int SelectedTabPageIndex = 1) { var _strGuid = ""; var _strName = ""; if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex && lbGuid.Text.Length > 10) { _strGuid = lbGuid.Text.Trim(); _strName = txtName.Text.Trim(); } else { var clickedNode = tlMenu.SelectedNode; if (clickedNode != null) { _strGuid = clickedNode.Name; _strName = clickedNode.Text.Trim(); } } return (_strGuid, _strName); } /// /// 读取TreeList的当前行 /// /// /// /// /// /// /// public static (string, string) GetCurrentRow( XtraTabControl xtraTabControl1 , Label lbGuid , TextEdit txtName , TreeList tlMenu , int SelectedTabPageIndex = 1) { var _strGuid = ""; var _strName = ""; if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex && lbGuid.Text.Length > 10) { _strGuid = lbGuid.Text.Trim(); _strName = txtName.Text.Trim(); } else { _strGuid = tlMenu.FocusedNode.GetValue("guid").ToString(); _strName = tlMenu.FocusedNode.GetValue(0).ToString(); } return (_strGuid, _strName); } /// /// 读取GridView双击的主键 /// /// /// /// /// public static string GetCurrentDoubleRow(GridView gridView1 , MouseEventArgs e , string colName) { var info = gridView1.CalcHitInfo(e.Location); if (info.InRow) { var view = info.View; if (view != null) { var row = view.GetDataRow(info.RowHandle); if (row != null) { var rowGuid = row[colName].ToString(); return rowGuid; } } } return ""; } /// /// 读取GridView双击的主键 /// /// /// /// /// public static string GetCurrentDoubleRow(TreeList tlMenu , MouseEventArgs e , string colName) { var info = tlMenu.CalcHitInfo(e.Location); if (info.Node != null) { var clickedNode = tlMenu.FocusedNode; if (clickedNode.FirstNode == null) { var rowGuid = clickedNode.GetValue(colName).ToString(); return rowGuid; } } return ""; } /// /// /// /// /// /// /// 对应的审核字段名称 /// 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 && dgv.GetSelectedRows().Count() > 0) { 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() || checkStatus == "已审核") { 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, 25); // 距离顶部10像素 } } } } /// /// /// /// /// chk字段 /// chk user /// chk date /// /// 当前窗体 /// 1为审核,0为反审核 /// 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 FilterEntity getFilterEntityWord(string id, string idDec, string val, string type) { 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 List GetDilter(GridColumnCollection Columns, GridView gridView1 = null) { List fiList = new List(); 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; 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; } /// /// 根据过滤器,读取查询条件,org表为组织 /// /// /// public static string GetSearchWhere(List _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 { 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); /// /// 设置主表的样式 /// /// gridview /// 图标按钮 /// /// 字段 /// 图标路径 /// 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;//自动调整列宽 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.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(isPostSearch==false) // column.OptionsColumn.ReadOnly = true; if (isPostSearch == true) { if (column.Tag == null || column.Tag.ToString().Length <= 0) column.OptionsFilter.AllowAutoFilter = false; } } gridView1.IndicatorWidth = 60; 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; }; } gridView1.RowStyle += (s, e) => { //默认选中行不变色 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.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) { BaseEdit edit = sender as BaseEdit; edit.MouseUp -= ActiveEditor_MouseUp; edit.SelectAll(); } public static void SetGridLayout(GridView gridView1) { foreach (GridColumn column in gridView1.Columns) { if (column.Width > 500) column.Width = 500; } } /// /// 设置选项卡 /// /// /// /// /// /// 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; 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 (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; } }; } /// /// 设置明细grid样式 /// /// /// /// /// /// 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; gridView1.OptionsCustomization.AllowFilter = false; gridView1.OptionsFind.ShowSearchNavButtons = false; gridView1.OptionsView.ShowAutoFilterRow = false; gridView1.OptionsView.ShowGroupPanel = false; gridView1.IndicatorWidth = 60; 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; } } } }; 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 /// /// 判断是不是一个有效的数值 /// /// /// public static bool IsNumeric(string str) { Regex regex = new Regex("^[0-9]+$"); return regex.IsMatch(str); } /// /// 判断是不是一个有效果的decimal数值 /// /// /// public static bool IsNumeric2(string str) { string input = str; decimal number; bool isNumeric = decimal.TryParse(input, out number); return isNumeric; } /// /// 判断是不是一个有效的正整数 /// /// /// 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; } /// /// 判断是不是一个有效的正整数 /// /// /// 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; } /// /// /// /// txt_psnQty_1:每张条码数量 /// txt_iCount_1:整张数值 /// txt_kQty:可打印量 /// /// txt_yuliang:余量 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 自定义进度条列 /// /// 自定义进度条列 /// /// /// 列的字段名 /// /// /// 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 绘制表头全选勾选框 /// /// 绘制表头全选勾选框 /// // 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 ""; } } } /// /// 下拉框条目类 /// public class CboItemEntity { public CboItemEntity() { } public CboItemEntity(string val, string text, string fType = "") { Text = text; Value = val; FType = fType; } /// /// 显示值 /// public object Text { get; set; } = 0; /// /// 对象值 /// public object Value { get; set; } = ""; public object FType { get; set; } = ""; public override string ToString() { return Text.ToString(); } } /// /// 查询框 /// public class FilterEntity { /// /// /// 字段名 /// 字段名备注 /// 操作符 /// 操作符备注 /// public FilterEntity(string id, string idDec, string oper, string operDec, string val, string type) { fileId = id; fileIdDec = idDec; fileOper = oper; fileOperDec = operDec; fileValue = val; fileType = type; } public string fileId { get; set; } public string fileIdDec { get; set; } public string fileOper { get; set; } public string fileOperDec { get; set; } public string fileValue { get; set; } public string fileType { get; set; } } public enum QcSeason { iqc, ipqc巡检, ipqc首检, fqc } }