From ccc1b0d541d8f3bdd2bcb72dd0b5533e68b886d5 Mon Sep 17 00:00:00 2001 From: lu <99954486@qq.com> Date: 星期一, 09 六月 2025 09:53:37 +0800 Subject: [PATCH] 采购明细报表 --- DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs | 2355 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 2,128 insertions(+), 227 deletions(-) diff --git a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs index 83f1141..0d5a642 100644 --- a/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs +++ b/DevApp/Gs.DevApp/ToolBox/UtilityHelper.cs @@ -1,63 +1,101 @@ -锘縰sing Newtonsoft.Json.Linq; +锘縰sing DevExpress.Utils; +using DevExpress.XtraEditors; +using DevExpress.XtraEditors.Controls; +using DevExpress.XtraEditors.Drawing; +using DevExpress.XtraGrid; +using DevExpress.XtraGrid.Columns; +using DevExpress.XtraGrid.Menu; +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.Text; using System.Resources; -using System.Drawing; -using Newtonsoft.Json; -using Gs.DevApp.Entity; -using System.Windows.Forms; -using static System.Windows.Forms.Control; -using DevExpress.XtraEditors; -using DevExpress.XtraTab; +using System.Text; using System.Text.RegularExpressions; -using System.Xml; -using System.Collections.Generic; +using System.Windows.Forms; +using System.Windows.Forms.VisualStyles; +using UserControls.Data; +using static System.Windows.Forms.Control; + namespace Gs.DevApp.ToolBox { /// <summary> - /// 閫氱敤绫� + /// 閫氱敤绫� /// </summary> public class UtilityHelper { - private static string WebApiUrl = System.Configuration.ConfigurationSettings.AppSettings.Get("WebApiUrl").ToString(); + private static readonly string WebApiUrl = + ConfigurationManager.AppSettings["WebApiUrl"]; /// <summary> - /// httpPost璁块棶鏈嶅姟 + /// 璇诲彇鍔犺浇淇℃伅 /// </summary> - /// <param name="url">鏈嶅姟鍦板潃</param> - /// <param name="meth">鏂规硶鍚嶇О</param> - /// <param name="param">鍙傛暟</param> /// <returns></returns> - public static string HttpPost(string url, string meth, string param) + + public static (Size, string, Color, Padding) getLoading() { - if (string.IsNullOrEmpty(url)) - url = WebApiUrl; - url += meth; - HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); - request.Method = "POST"; - request.ContentType = "application/json"; - request.Headers.Add("token", GetBasicAuthTicket()); - request.Accept = "*/*"; - request.Timeout = 15000; - request.AllowAutoRedirect = false; + Size _size = new Size(360, 90); + return (_size, "鎷煎懡鍔犺浇涓紝璇风◢鍚�...", System.Drawing.Color.LightSkyBlue, new Padding(15)); + } + /// <summary> + /// http璇锋眰 + /// </summary> + /// <param name="url"></param> + /// <param name="meth"></param> + /// <param name="param"></param> + /// <param name="isLoading"></param> + /// <returns></returns> + public static string HttpPost(string url, string meth, string param, bool isLoading = true) + { + 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) { - StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); + var reader = new StreamReader(response.GetResponseStream(), + Encoding.UTF8); responseStr = reader.ReadToEnd(); //File.WriteAllText(Server.MapPath("~/") + @"\test.txt", responseStr); reader.Close(); @@ -65,6 +103,8 @@ } catch (Exception ex) { + wdf.Close(); + LogHelper.Debug(url, param + ":" + ex.Message); throw ex; } finally @@ -73,80 +113,106 @@ requestStream = null; response = null; } + wdf.Close(); return responseStr; } + /// <summary> - /// 鏍规嵁鍥剧墖鍚嶈鍙栬祫婧愭枃浠�,涓嶅甫鍚庣紑鍚� + /// 鏍规嵁鍥剧墖鍚嶈鍙栬祫婧愭枃浠�,涓嶅甫鍚庣紑鍚� /// </summary> /// <param name="imageName"></param> /// <param name="lay">1涓哄ぇ鍥�</param> /// <returns></returns> public static Image GetImgFromResource(string imageName, int lay) { - // 鑾峰彇褰撳墠绋嬪簭闆� - Assembly assembly = Assembly.GetExecutingAssembly(); - // 鍒涘缓璧勬簮绠$悊鍣ㄦ潵璁块棶璧勬簮 - ResourceManager resourceManager = new ResourceManager("Gs.DevApp.Properties.Resources", assembly); - // 灏濊瘯鑾峰彇鍥剧墖璧勬簮 + var assembly = Assembly.GetExecutingAssembly(); + var resourceManager = + new ResourceManager("Gs.DevApp.Properties.Resources", assembly); try { - Image image = resourceManager.GetObject(imageName) as Image; - if (image != null) - { - return image; - } + var image = resourceManager.GetObject(imageName) as Image; + if (image != null) return image; } catch (Exception ex) { } - Image image2 = resourceManager.GetObject(lay == 1 ? "chartsshowlegend_32x32" : "linktoprevious_16x16") as Image; + + var image2 = resourceManager.GetObject(lay == 1 + ? "chartsshowlegend_32x32" + : "linktoprevious_16x16") as Image; return image2; } + /// <summary> - /// 鐢熸垚token + /// 鍒濆鍖栦竴涓〃 + /// </summary> + /// <param name="gc"></param> + /// <param name="gv"></param> + public static void SetDefaultTable(GridControl gc, GridView gv) + { + var dt = new DataTable(); + foreach (GridColumn col in gv.Columns) + { + if (col.UnboundDataType == typeof(System.Boolean)) + dt.Columns.Add(col.FieldName, typeof(System.Boolean)); + else + { + dt.Columns.Add(col.FieldName, typeof(string)); + } + } + gc.BindingContext = new BindingContext(); + gc.DataSource = dt; + gc.ForceInitialize(); + } + + /// <summary> + /// 鐢熸垚璁块棶鏈嶅姟鐨則oken /// </summary> /// <returns></returns> public static string GetBasicAuthTicket() { - string userGuid = string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginUserGuid) ? Guid.NewGuid().ToString() : LoginInfoModel.CurrentUser.LoginUserGuid; - string orgGuid = string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginOrgGuid) ? Guid.NewGuid().ToString() : LoginInfoModel.CurrentUser.LoginOrgGuid; - string token = (userGuid + "~" + orgGuid); + var userGuid = + string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginUserGuid) + ? Guid.NewGuid().ToString() + : LoginInfoModel.CurrentUser.LoginUserGuid; + var token = userGuid; return token; } + /// <summary> - /// 鏍囧噯json涓茶繑鍥濺eturnModel-->table锛� + /// 鏈嶅姟杩斿洖鐨刯son杞负ReturnModel-->鍖呭惈TablePage鍒嗛〉锛� /// </summary> /// <param name="strReturn"></param> /// <returns></returns> - public static ReturnModel<PageListModel> GetTableByJson(string strReturn) + public static ReturnModel<PageListModel> ReturnToTablePage( + string strReturn) { - ReturnModel<PageListModel> rto = new ReturnModel<PageListModel>(); - JObject json = JObject.Parse(strReturn); + var rto = new ReturnModel<PageListModel>(); + var json = JObject.Parse(strReturn); rto.rtnCode = int.Parse(json["rtnCode"].ToString()); rto.rtnMsg = json["rtnMsg"].ToString(); rto.rtnData = new PageListModel(); rto.rtnData.pages = int.Parse(json["rtnData"]["pages"].ToString()); rto.rtnData.total = int.Parse(json["rtnData"]["total"].ToString()); - rto.rtnData.everyPageSize = int.Parse(json["rtnData"]["everyPageSize"].ToString()); - JArray array = new JArray(); + rto.rtnData.everyPageSize = + int.Parse(json["rtnData"]["everyPageSize"].ToString()); + var array = new JArray(); var d = json["rtnData"]["list"]; - foreach (var a in d) - { - array.Add(a); - } - DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString()); + foreach (var a in d) array.Add(a); + var dt = JsonConvert.DeserializeObject<DataTable>(array.ToString()); rto.rtnData.list = dt; return rto; } + /// <summary> - /// 鏍囧噯json涓茶繑鍥濺eturnModel->瀛楃涓诧紝 + /// 鏈嶅姟杩斿洖鐨刯son杩斿洖ReturnModel锛� /// </summary> /// <param name="strReturn"></param> /// <returns></returns> - public static ReturnModel<dynamic> GetDataByJson(string strReturn) + public static ReturnModel<dynamic> ReturnToDynamic(string strReturn) { - ReturnModel<dynamic> rto = new ReturnModel<dynamic>(); - JObject json = JObject.Parse(strReturn); + var rto = new ReturnModel<dynamic>(); + var json = JObject.Parse(strReturn); rto.rtnCode = int.Parse(json["rtnCode"].ToString()); rto.rtnMsg = json["rtnMsg"].ToString(); rto.rtnData = json["rtnData"]; @@ -154,350 +220,2185 @@ } /// <summary> - /// 鏍囧噯json涓茶繑鍥濺eturnModel-->table锛� + /// 鏈嶅姟杩斿洖鐨刯son涓茶繑鍥濺eturnModel-->浠呬粎鏈塴ist,涓嶅垎椤碉紝 /// </summary> /// <param name="strReturn"></param> /// <returns></returns> - public static ReturnModel<DataTable> GetNoPageTableByJson(string strReturn) + public static ReturnModel<DataTable> ReturnToList(string strReturn) { - ReturnModel<DataTable> rto = new ReturnModel<DataTable>(); - JObject json = JObject.Parse(strReturn); + var rto = new ReturnModel<DataTable>(); + var json = JObject.Parse(strReturn); rto.rtnCode = int.Parse(json["rtnCode"].ToString()); rto.rtnMsg = json["rtnMsg"].ToString(); rto.rtnData = new DataTable(); - JArray array = new JArray(); + var array = new JArray(); var d = json["rtnData"]; - foreach (var a in d) - { - array.Add(a); - } - DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString()); + foreach (var a in d) array.Add(a); + //if (array.Count <=0) + // return null; + var dt = JsonConvert.DeserializeObject<DataTable>(array.ToString()); rto.rtnData = dt; return rto; } + #region 鎵归噺澶勭悊瀵瑰儚锛屾枃鏈�硷紝鍖呭惈娓呯┖锛岀鐢紝鍚敤涓夌 /// <summary> - /// 璇诲彇榛樿椤靛ぇ灏� - /// </summary> - /// <returns></returns> - public static int GetPageSize() - { - return 50; - // return int.Parse(System.Configuration.ConfigurationSettings.AppSettings.Get("PageSize").ToString()); - } - - /// <summary> - /// 鏍规嵁瀵硅薄鎵归噺璁剧疆鏂囨湰鍊� + /// 鏍规嵁瀵硅薄鎵归噺璁剧疆鏂囨湰妗嗙殑鍊� /// </summary> /// <param name="controls">controls:涓篻roupBox1.Controls/panel1.Controls</param> /// <param name="dynamicObject">瀵瑰儚</param> /// <param name="isEdt">鏄惁鍙紪杈�</param> - public static void SetValueByObj(ControlCollection controls, dynamic dynamicObject, Boolean isEdt, List<DevExpress.XtraGrid.Views.Grid.GridView> gridViews = null) + /// <param name="gridViews">鍏宠仈鐨刧rid</param> + public static void SetValueByObj(ControlCollection controls, + dynamic dynamicObject, bool isEdt, List<GridView> gridViews = null) { + isEdt = !isEdt; if (gridViews != null) { - foreach (DevExpress.XtraGrid.Views.Grid.GridView gv in gridViews) + foreach (var gv in gridViews) { - gv.OptionsBehavior.Editable = isEdt; + 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()) { - string strName = property.Name; - string strVal = property.Value.ToString(); + var strName = property.Name; + var strVal = property.Value.ToString(); try { - // // 濡傛灉value鏄竴涓璞★紝鍙互閫掑綊閬嶅巻 - // if (property.Value is JObject) - // { - // JObject nestedObject = (JObject)property.Value; - // foreach (JProperty nestedProperty in nestedObject.Properties()) - // { - // Console.WriteLine("\tName: {0}, Value: {1}", nestedProperty.Name, nestedProperty.Value); - // } - // } - Control[] cols = controls.Find("txt_" + strName, true); + var _dddddd = "txt_" + strName; + var cols = controls.Find(_dddddd, true); if (cols.Length > 0) { - Control colType = cols[0]; - //LookUpEdit + var colType = cols[0]; + if (colType is LookUpEdit) { - LookUpEdit txt = colType as LookUpEdit; - if (txt != null) - { - txt.EditValue = strVal; - // txt.Text = strVal; - } - txt.Enabled = isEdt; + 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) { - ComboBoxEdit txt = colType as ComboBoxEdit; - if (txt.Properties.TextEditStyle == DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor) - txt.SelectedIndex = int.Parse(strVal); + 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.Enabled = isEdt; + 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) { - TextEdit txt = colType as TextEdit; + var txt = colType as TextEdit; if (txt != null) txt.Text = strVal; - txt.Enabled = isEdt; + 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) { - NumericUpDown txt = colType as NumericUpDown; + var txt = colType as NumericUpDown; if (txt != null) txt.Text = strVal; - txt.Enabled = isEdt; + txt.ReadOnly = isEdt; continue; } //鍗曢�� if (colType is CheckEdit) { - CheckEdit txt = colType as CheckEdit; + var txt = colType as CheckEdit; + if (_isRead(txt.Tag)) + { + txt.ReadOnly = true; + } + else + txt.ReadOnly = isEdt; if (txt != null) - txt.Checked = (strVal.ToString() == "1" ? true : false); - txt.Enabled = isEdt; + { + 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) { - DateTimePicker txt = colType as DateTimePicker; - if (txt != null) - txt.Checked = (strVal.ToString() == "1" ? true : false); - txt.Enabled = isEdt; + 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(strName + ex.Message); + MessageBox.Show(ex.Message); } - } + foreach (Control ctrl in controls) + { + if (ctrl is TextEdit) + { + var txt = ctrl as TextEdit; + bool _bl = _isRead(txt.Tag, isEdt); + txt.ReadOnly = _bl; + // txt.ReadOnly = isEdt; + continue; + } + } } /// <summary> - /// 娓呯┖瀹瑰櫒閲岄潰鐨勬帶浠� + /// 娓呯┖瀹瑰櫒閲岄潰鐨勬帶浠� /// </summary> /// <param name="controls">controls:涓篻roupBox1.Controls/panel1.Controls</param> /// <param name="isEdt">鏄惁鍙紪杈�</param> - public static void CleanValue(ControlCollection controls, Boolean isEdt, List<DevExpress.XtraGrid.Views.Grid.GridView> gridViews = null) + /// <param name="gridViews">鍏宠仈鐨刧rid</param> + public static void CleanValueByControl(ControlCollection controls, + bool isEdt, List<GridView> gridViews = null) { + isEdt = !isEdt; if (gridViews != null) { - foreach (DevExpress.XtraGrid.Views.Grid.GridView gv in gridViews) + foreach (var gv in gridViews) { - gv.OptionsBehavior.Editable = isEdt; + 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) { - ctrl.Enabled = isEdt; //澶氳鏂囨湰 if (ctrl is MemoEdit) { - MemoEdit txt = ctrl as MemoEdit; - txt.Text = ""; - txt.Enabled = isEdt; + 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) { - ComboBoxEdit txt = ctrl as ComboBoxEdit; - if (txt.Properties.TextEditStyle == DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor) + var txt = ctrl as ComboBoxEdit; + if (txt.Properties.TextEditStyle == + TextEditStyles.DisableTextEditor) txt.SelectedIndex = 0; else txt.Text = ""; - txt.Enabled = isEdt; + 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) { - ctrl.Text = ""; + 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; } } } /// <summary> - /// 绂佺敤鎴栧惎鐢ㄥ鍣ㄩ噷闈㈢殑鎺т欢 + /// 绂佺敤鎴栧惎鐢ㄥ鍣ㄩ噷闈㈢殑鎺т欢 /// </summary> /// <param name="controls">controls:涓篻roupBox1.Controls/panel1.Controls</param> - /// <param name="isEdt">鏄惁鍙紪杈�</param> - public static void ChangeEnable(ControlCollection controls, Boolean isEdt, List<DevExpress.XtraGrid.Views.Grid.GridView> gridViews = null) + /// <param name="isEdt"></param> + /// <param name="gridViews"></param> + public static void ChangeEnableByControl(ControlCollection controls, + bool isEdt, List<GridView> gridViews = null) { + isEdt = !isEdt; if (gridViews != null) { - foreach (DevExpress.XtraGrid.Views.Grid.GridView gv in gridViews) + foreach (var gv in gridViews) { - gv.OptionsBehavior.Editable = isEdt; + 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) { - ctrl.Enabled = isEdt; + 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) { - ctrl.Enabled = isEdt; + var txt = ctrl as NumericUpDown; + txt.ReadOnly = isEdt; continue; } //鏃ユ湡 if (ctrl is DateTimePicker) { - ctrl.Enabled = isEdt; + 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 /// <summary> - ///鍒囨崲閫夐」鍗� + /// 鍒ゆ柇鎺т欢鍙鐘舵�� /// </summary> - /// <param name="tabControl">閫夐」鍗″鍣�</param> - /// <param name="idx">浠�0寮�濮嬶紝濡傛灉鏄�999锛屽垯鍏ㄩ儴鍙敤</param> - public static void ChangeTab(XtraTabControl tabControl, int idx) + /// <param name="obj"></param> + /// <param name="isEdt"></param> + /// <returns></returns> + private static bool _isRead(object obj, bool isEdt = false) { - if (idx == 999) + ///姘歌繙鏄彧璇荤殑 + if (obj != null && obj.ToString().ToUpper() == ("readOnly".ToUpper())) { - for (int i = 0; i < tabControl.TabPages.Count; i++) - { - tabControl.TabPages[i].PageEnabled = true; - } - tabControl.SelectedTabPageIndex = tabControl.TabPages.Count - 1; - return; + return true; } - for (int i = 0; i < tabControl.TabPages.Count; i++) + ///姘歌繙鏄彲鍐欑殑 + if (obj != null && obj.ToString().ToUpper() == ("readOnly-1".ToUpper())) { - tabControl.TabPages[i].PageEnabled = false; + return false; } - tabControl.TabPages[idx].PageEnabled = true; - tabControl.SelectedTabPageIndex = idx; + return isEdt; } + /// <summary> + /// tab璺宠浆锛�0鏌ョ湅锛�1閫�鍑猴紝2鍒犻櫎锛�3淇敼锛�4鏂板鍔�,6淇濆瓨鍚� + /// </summary> + /// <param name="tabControl"></param> + /// <param name="idx">0鏌ョ湅锛�1閫�鍑猴紝2鍒犻櫎锛�3淇敼锛�4鏂板鍔�,6淇濆瓨鍚�</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; + } + + if (action == 6) + { + tabControl.TabPages[0].PageEnabled = true; + tabControl.TabPages[1].PageEnabled = true; + + return; + } + } + + /// <summary> + /// TreeView鑱斿姩閫夋嫨 + /// </summary> + /// <param name="e"></param> public static void TreeViewCheck(TreeViewEventArgs e) { try { if (e.Node.Nodes.Count > 0) - { - bool NoFalse = true; foreach (TreeNode tn in e.Node.Nodes) { - if (tn.Checked == false) + tn.Checked = e.Node.Checked; + foreach (TreeNode x in tn.Nodes) { - NoFalse = false; + x.Checked = e.Node.Checked; + foreach (TreeNode y in x.Nodes) + y.Checked = e.Node.Checked; } } - if (e.Node.Checked == true || NoFalse) - { - foreach (TreeNode tn in e.Node.Nodes) - { - if (tn.Checked != e.Node.Checked) - { - tn.Checked = e.Node.Checked; - } - } - } - } - if (e.Node.Parent != null && e.Node.Parent is TreeNode) + + if (e.Node.Checked && e.Node.Parent != null && + e.Node.Parent.Nodes.Count > 0) { - bool ParentNode = true; - foreach (TreeNode tn in e.Node.Parent.Nodes) + var currentNode = e.Node; + while (currentNode != null) { - if (tn.Checked == false) - { - ParentNode = false; - } - } - if (e.Node.Parent.Checked != ParentNode && (e.Node.Checked == false || e.Node.Checked == true && e.Node.Parent.Checked == false)) - { - e.Node.Parent.Checked = ParentNode; + currentNode.Checked = e.Node.Checked; + currentNode = currentNode.Parent; } } } catch (Exception ex) { - throw ex; + MsgHelper.ShowError(ex.Message); } + } + + /// <summary> + /// 杞珿uid + /// </summary> + /// <param name="str"></param> + /// <returns></returns> + public static Guid ToGuid(string str) + { + if (string.IsNullOrEmpty(str)) return Guid.Empty; + return Guid.Parse(str); + } + public static 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; } /// <summary> - /// 杞┘宄板懡鍚� + /// 璇诲彇grid鐨勫綋鍓嶈 /// </summary> - /// <param name="input"></param> + /// <param name="xtraTabControl1"></param> + /// <param name="lbGuid">缂栬緫妗嗕腑鐨勪富閿悕</param> + /// <param name="txtName">缂栬緫妗嗕腑鐨勬枃鏈鍚�</param> + /// <param name="gridView1"></param> + /// <param name="SelectedTabPageIndex"></param> /// <returns></returns> - public static string ToCamelCase(string propertyName) + public static (string, string) GetCurrentRow( + XtraTabControl xtraTabControl1 + , Label lbGuid + , TextEdit txtName + , GridView gridView1 + , string fileName = "" + , int SelectedTabPageIndex = 1) { - if (propertyName.Length > 0 && propertyName.All(char.IsUpper)) - propertyName = propertyName.ToLower(); - string dd = Regex.Replace(propertyName, @"_([a-z])", m => m.Groups[1].Value.ToUpper()); - return dd; - } - public static void UpdateAppConfig(string key, string newValue) - { - string configFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.Load(configFile); - - XmlNode node = xmlDoc.SelectSingleNode($"//appSettings//add[@key='{key}']"); - if (node != null) + var _strGuid = ""; + var _strName = ""; + if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex && + lbGuid.Text.Length > 10) { - XmlAttribute attribute = node as XmlAttribute; - attribute.Value = newValue; - xmlDoc.Save(configFile); + _strGuid = lbGuid.Text.Trim(); + _strName = txtName.Text.Trim(); } - } - public class CboItemEntity - { - private object _text = 0; - private object _Value = ""; - /// <summary> - /// 鏄剧ず鍊� - /// </summary> - public object Text + else { - get { return this._text; } - set { this._text = value; } - } - /// <summary> - /// 瀵硅薄鍊� - /// </summary> - public object Value - { - get { return this._Value; } - set { this._Value = value; } + 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(); + } } - public override string ToString() + return (_strGuid, _strName); + } + + /// <summary> + /// 璇诲彇TreeView鐨勫綋鍓嶈 + /// </summary> + /// <param name="xtraTabControl1"></param> + /// <param name="lbGuid"></param> + /// <param name="txtName"></param> + /// <param name="tlMenu"></param> + /// <param name="SelectedTabPageIndex"></param> + /// <returns></returns> + public static (string, string) GetCurrentRow( + XtraTabControl xtraTabControl1 + , Label lbGuid + , TextEdit txtName + , TreeView tlMenu + , int SelectedTabPageIndex = 1) + { + var _strGuid = ""; + var _strName = ""; + if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex && + lbGuid.Text.Length > 10) { - return this.Text.ToString(); + _strGuid = lbGuid.Text.Trim(); + _strName = txtName.Text.Trim(); + } + else + { + var clickedNode = tlMenu.SelectedNode; + if (clickedNode != null) + { + _strGuid = clickedNode.Name; + _strName = clickedNode.Text.Trim(); + } + } + + return (_strGuid, _strName); + } + + /// <summary> + /// 璇诲彇TreeList鐨勫綋鍓嶈 + /// </summary> + /// <param name="xtraTabControl1"></param> + /// <param name="lbGuid"></param> + /// <param name="txtName"></param> + /// <param name="tlMenu"></param> + /// <param name="SelectedTabPageIndex"></param> + /// <returns></returns> + public static (string, string) GetCurrentRow( + XtraTabControl xtraTabControl1 + , Label lbGuid + , TextEdit txtName + , TreeList tlMenu + , int SelectedTabPageIndex = 1) + { + var _strGuid = ""; + var _strName = ""; + if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex && + lbGuid.Text.Length > 10) + { + _strGuid = lbGuid.Text.Trim(); + _strName = txtName.Text.Trim(); + } + else + { + _strGuid = tlMenu.FocusedNode.GetValue("guid").ToString(); + _strName = tlMenu.FocusedNode.GetValue(0).ToString(); + } + + return (_strGuid, _strName); + } + + /// <summary> + /// 璇诲彇GridView鍙屽嚮鐨勪富閿� + /// </summary> + /// <param name="gridView1"></param> + /// <param name="e"></param> + /// <param name="colName"></param> + /// <returns></returns> + public static string GetCurrentDoubleRow(GridView gridView1 + , MouseEventArgs e + , string colName) + { + var info = gridView1.CalcHitInfo(e.Location); + if (info.InRow) + { + var view = info.View; + if (view != null) + { + var row = view.GetDataRow(info.RowHandle); + if (row != null) + { + var rowGuid = row[colName].ToString(); + return rowGuid; + } + } + } + return ""; + } + + + /// <summary> + /// 璇诲彇GridView鍙屽嚮鐨勪富閿� + /// </summary> + /// <param name="gridView1"></param> + /// <param name="e"></param> + /// <param name="colName"></param> + /// <returns></returns> + public static string GetCurrentDoubleRow(TreeList tlMenu + , MouseEventArgs e + , string colName) + { + var info = tlMenu.CalcHitInfo(e.Location); + if (info.Node != null) + { + var clickedNode = tlMenu.FocusedNode; + if (clickedNode.FirstNode == null) + { + var rowGuid = clickedNode.GetValue(colName).ToString(); + return rowGuid; + } + } + return ""; + } + + + /// <summary> + /// + /// </summary> + /// <param name="s"></param> + /// <param name="btnChkIco"></param> + /// <param name="fm"></param> + /// <param name="fileName">瀵瑰簲鐨勫鏍稿瓧娈靛悕绉�</param> + /// <param name="icoName"></param> + public static void SetCheckIco(object s, PictureBox btnChkIco, Form fm, string fileName = "checkStatus", string icoName = "") + { + GridView dgv = s as GridView; + if (dgv != null) + { + if (dgv.GetSelectedRows() != null && 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鍍忕礌 + } + } } } + + /// <summary> + /// + /// </summary> + /// <param name="gridView1"></param> + /// <param name="zdChk">chk瀛楁</param> + /// <param name="zdChkUser">chk user</param> + /// <param name="zdCkDate">chk date</param> + /// <param name="btnChkIco"></param> + /// <param name="fm">褰撳墠绐椾綋</param> + /// <param name="fileName">1涓哄鏍革紝0涓哄弽瀹℃牳</param> + /// <param name="icoName"></param> + public static void SetCheckIco(GridView gridView1, string zdChk, string zdChkUser, string zdCkDate, PictureBox btnChkIco, Form fm, string fileName, string icoName = "") + { + btnChkIco.Anchor = AnchorStyles.Top | AnchorStyles.Right; // 闈犲彸 + btnChkIco.Location = new Point(fm.ClientSize.Width - btnChkIco.Width - 20, 80); // 璺濈椤堕儴10鍍忕礌 + if (gridView1 == null) + { + btnChkIco.Visible = true; + if (fileName == "1") + { + btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_check; + btnChkIco.Tag = "宸插鏍�"; + } + else + { + btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_noCheck; + btnChkIco.Tag = "鏈鏍�"; + } + return; + } + if (fileName == "1" || fileName.ToUpper() == true.ToString().ToUpper()) + { + btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_check; + btnChkIco.Tag = "宸插鏍�"; + if (!string.IsNullOrEmpty(zdChkUser)) + gridView1.SetFocusedRowCellValue(zdChkUser, "宸插鏍�"); + if (!string.IsNullOrEmpty(zdCkDate)) + gridView1.SetFocusedRowCellValue(zdCkDate, DateTime.Now.ToString()); + if (!string.IsNullOrEmpty(zdChk)) + gridView1.SetFocusedRowCellValue(zdChk, true); + } + else + { + btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_noCheck; + btnChkIco.Tag = "鏈鏍�"; + if (!string.IsNullOrEmpty(zdChkUser)) + gridView1.SetFocusedRowCellValue(zdChkUser, ""); + if (!string.IsNullOrEmpty(zdCkDate)) + gridView1.SetFocusedRowCellValue(zdCkDate, ""); + if (!string.IsNullOrEmpty(zdChk)) + gridView1.SetFocusedRowCellValue(zdChk, false); + } + + } + + #region 璁剧疆鎼滅储 + + public static 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<FilterEntity> GetDilter(GridColumnCollection Columns, GridView gridView1 = null) + { + List<FilterEntity> fiList = new List<FilterEntity>(); + if (gridView1 != null) + { + bool b = gridView1.ActiveFilterEnabled; + if (b == false) + return fiList; + } + foreach (DevExpress.XtraGrid.Columns.GridColumn col in Columns) + { + ColumnFilterInfo filter = col.FilterInfo; + if (string.IsNullOrEmpty(filter.FilterString)) + continue; + 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; + } + + /// <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 + { + switch (itm.fileType) + { + case "鏃堕棿绫诲瀷": + _sbSqlWhere.Append(" and CONVERT(nvarchar(30)," + itm.fileId + ",23)" + itm.fileOper + "'" + itm.fileValue + "'"); + break; + case "Bit绫诲瀷": + _sbSqlWhere.Append(" and isnull(" + itm.fileId + ",0) =" + itm.fileValue + ""); + break; + default: + _sbSqlWhere.Append(" and " + itm.fileId + " " + itm.fileOper + " '" + itm.fileValue + "'"); + break; + } + } + } + return _sbSqlWhere.ToString(); + } + public delegate void DelegateGetModel(string guid); + public delegate void DelegateGetList(int currentPage); + /// <summary> + /// 璁剧疆涓昏〃鐨勬牱寮� + /// </summary> + /// <param name="gridView1">gridview</param> + /// <param name="picCheckBox">鍥炬爣鎸夐挳</param> + /// <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, 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; + } + } + + /// <summary> + /// 璁剧疆閫夐」鍗� + /// </summary> + /// <param name="gridView1"></param> + /// <param name="xtraTabControl1"></param> + /// <param name="pageBar1"></param> + /// <param name="action"></param> + /// <param name="page"></param> + public static void SetTabParameter(GridView gridView1, DevExpress.XtraTab.XtraTabControl xtraTabControl1, UcPageBar pageBar1, DelegateGetModel action = null, DelegateGetList page = null, Label lbGuid = null) + { + xtraTabControl1.SelectedPageChanged += (s, e) => + { + if (xtraTabControl1.SelectedTabPageIndex == 1) + { + int _handle = gridView1.FocusedRowHandle; + 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; + } + }; + } + + /// <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, 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 + /// <summary> + /// 鍒ゆ柇鏄笉鏄竴涓湁鏁堢殑鏁板�� + /// </summary> + /// <param name="str"></param> + /// <returns></returns> + public static bool IsNumeric(string str) + { + Regex regex = new Regex("^[0-9]+$"); + return regex.IsMatch(str); + } + /// <summary> + /// 鍒ゆ柇鏄笉鏄竴涓湁鏁堟灉鐨刣ecimal鏁板�� + /// </summary> + /// <param name="str"></param> + /// <returns></returns> + public static bool IsNumeric2(string str) + { + string input = str; + decimal number; + bool isNumeric = decimal.TryParse(input, out number); + return isNumeric; + } + /// <summary> + /// 鍒ゆ柇鏄笉鏄竴涓湁鏁堢殑姝f暣鏁� + /// </summary> + /// <param name="str"></param> + /// <returns></returns> + public static bool IsNumeric3(string str) + { + string input = str; + decimal number; + bool isNumeric = decimal.TryParse(input, out number); + if (isNumeric && number > 0) + return true; + return false; + } + + /// <summary> + /// 鍒ゆ柇鏄笉鏄竴涓湁鏁堢殑姝f暣鏁� + /// </summary> + /// <param name="str"></param> + /// <returns></returns> + public static bool IsNumeric3(string str, string str2) + { + decimal d1 = 0; + decimal d2 = 0; + if (!string.IsNullOrEmpty(str)) + { + d1 = decimal.Parse(str); + } + if (!string.IsNullOrEmpty(str2)) + { + d2 = decimal.Parse(str2); + } + return (d1 + d2) > 0 ? true : false; + } + /// <summary> + /// + /// </summary> + /// <param name="box1">txt_psnQty_1:姣忓紶鏉$爜鏁伴噺</param> + /// <param name="box2">txt_iCount_1:鏁村紶鏁板��</param> + /// <param name="sum">txt_kQty:鍙墦鍗伴噺</param> + /// <param name="rd"></param> + /// <param name="txt_yuliang">txt_yuliang:浣欓噺</param> + public static void PrintJiSuan(DevExpress.XtraEditors.TextEdit box1, DevExpress.XtraEditors.TextEdit box2, string sum, DevExpress.XtraEditors.RadioGroup rd, DevExpress.XtraEditors.TextEdit txt_yuliang = null) + { + if (rd.SelectedIndex == 2) + return; + try + { + string t1 = box1.Text.Trim(); + string t2 = box2.Text.Trim(); + if (!Gs.DevApp.ToolBox.UtilityHelper.IsNumeric2(t1)) + return; + if (Gs.DevApp.ToolBox.UtilityHelper.ToDecimal(t1) <= 0) + return; + decimal? dc = Gs.DevApp.ToolBox.UtilityHelper.GetDecimal(sum); + decimal? dc1 = Gs.DevApp.ToolBox.UtilityHelper.GetDecimal(t1); + decimal dividend = decimal.Parse(sum); // 琚櫎鏁� + decimal divisor = decimal.Parse(t1); // 闄ゆ暟 + decimal shang = dividend / divisor; + + decimal integerPart = Math.Truncate(shang); // 鑾峰彇鏁存暟閮ㄥ垎 + decimal decimalPart = dividend - divisor * integerPart; // 鑾峰彇灏忔暟閮ㄥ垎 + + //decimal quotient = dividend / divisor; // 鏁存暟閮ㄥ垎 + //decimal remainder = dividend % divisor; // 浣欐暟 + box2.Text = integerPart.ToString(); + if (rd.SelectedIndex == 0) + txt_yuliang.Text = decimalPart.ToString(); + } + catch (Exception ex) + { + Gs.DevApp.ToolBox.MsgHelper.ShowError("杈撳叆鏁版嵁閿欒:" + ex.Message); + } + } + public static void PrintAuto(DevExpress.XtraEditors.TextEdit txt_psnQty_1, DevExpress.XtraEditors.TextEdit txt_iCount_1, DevExpress.XtraEditors.RadioGroup radOut, DevExpress.XtraEditors.TextEdit txt_yuliang = null) + { + txt_psnQty_1.Text = ""; + txt_iCount_1.Text = ""; + txt_yuliang.Text = ""; + if (radOut.SelectedIndex == 2) + txt_iCount_1.ReadOnly = false; + else + txt_iCount_1.ReadOnly = true; + } + + + + #region 鑷畾涔夎繘搴︽潯鍒� + + /// <summary> + /// 鑷畾涔夎繘搴︽潯鍒� + /// </summary> + /// <param name="view"></param> + /// <param name="fieldName">鍒楃殑瀛楁鍚�</param> + /// <param name="warningValue"></param> + /// <param name="lessColor"></param> + /// <param name="greaterColor"></param> + public static void CustomProgressBarColumn(DevExpress.XtraGrid.Views.Grid.GridView view, string fieldName, int warningValue = 50, Brush lessColor = null, Brush greaterColor = null) + { + var col = view.Columns[fieldName]; + if (col == null) return; + col.AppearanceCell.Options.UseTextOptions = true; + col.AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center; + view.CustomDrawCell += (s, e) => + { + int _handle = e.RowHandle; + if (_handle < 0) + return; + if (e.Column.FieldName == fieldName) + { + DrawProgressBar(e, warningValue, lessColor, greaterColor); + e.Handled = true; + DrawEditor(e); + } + }; + } + + private static void DrawProgressBar(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e, int warningValue = 50, Brush lessColor = null, Brush greaterColor = null) + { + string d = e.CellValue == null ? null : e.CellValue.ToString(); + decimal percent = string.IsNullOrEmpty(d) ? 0m : decimal.Parse(d); + if (percent <= 0) + percent = 0.1m; + int width = (int)(percent * e.Bounds.Width); + Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, width, e.Bounds.Height); + Brush b = Brushes.Green; + if (greaterColor != null) + { + b = greaterColor; + } + if (percent * 100 < warningValue) + + { + if (lessColor == null) + + { + b = Brushes.Red; + } + else + + { + b = lessColor; + } + } + e.Graphics.FillRectangle(b, rect); + } + private static void DrawEditor(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) + + { + GridCellInfo cell = e.Cell as GridCellInfo; + Point offset = cell.CellValueRect.Location; + BaseEditPainter pb = cell.ViewInfo.Painter as BaseEditPainter; + AppearanceObject style = cell.ViewInfo.PaintAppearance; + if (!offset.IsEmpty) + cell.ViewInfo.Offset(offset.X, offset.Y); + try + + { + pb.Draw(new ControlGraphicsInfoArgs(cell.ViewInfo, e.Cache, cell.Bounds)); + } + + finally + + { + if (!offset.IsEmpty) + + { + cell.ViewInfo.Offset(-offset.X, -offset.Y); + } + } + } + #endregion + + #region 缁樺埗琛ㄥご鍏ㄩ�夊嬀閫夋 + /// <summary> + /// 缁樺埗琛ㄥご鍏ㄩ�夊嬀閫夋 + /// </summary> + // private Rectangle checkBoxColumnHeaderRect = Rectangle.Empty; + // private GridColumn checkBoxColumn = null; + public static void CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e) + { + + Rectangle checkBoxColumnHeaderRect = new Rectangle(51, 1, 37, 57); + if (e.Column != null && e.Column.AbsoluteIndex == 0) + { + //X = 51 Y = 1 Width = 37 Height = 57 + e.Column.Caption = "."; + checkBoxColumnHeaderRect = e.Bounds; + // checkBoxColumn = e.Column; + //椤绘妸鍒楀ご鏍囬璁剧疆涓虹┖ + e.Painter.DrawObject(e.Info); + //鍦ㄥ垪澶翠腑蹇冩樉绀哄閫夋 + int x = e.Bounds.X + (int)((e.Bounds.Width - CheckBoxRenderer.GetGlyphSize(e.Graphics, CheckBoxState.UncheckedNormal).Width) * 0.5); + int y = e.Bounds.Y + (int)((e.Bounds.Height - CheckBoxRenderer.GetGlyphSize(e.Graphics, CheckBoxState.UncheckedNormal).Height) * 0.5); + Point location = new Point(x, y); + CheckBoxState checkBoxState; + if (e.Column.Tag != null && e.Column.Tag.ToString() == "1") + checkBoxState = CheckBoxState.CheckedPressed; + else + checkBoxState = CheckBoxState.UncheckedNormal; + CheckBoxRenderer.DrawCheckBox(e.Graphics, location, checkBoxState); + e.Handled = true; + } + } + + public static void CustomMouseUp(object sender, MouseEventArgs e, DevExpress.XtraGrid.GridControl gcMain, DevExpress.XtraGrid.Views.Grid.GridView gridView1) + { + GridColumn checkBoxColumn = gridView1.Columns[0]; + Rectangle checkBoxColumnHeaderRect = new Rectangle(51, 1, 37, 57); + if (checkBoxColumnHeaderRect != Rectangle.Empty) + { + if (e.X > checkBoxColumnHeaderRect.X && e.X < (checkBoxColumnHeaderRect.X + checkBoxColumnHeaderRect.Width) && e.Y > checkBoxColumnHeaderRect.Y && e.Y < (checkBoxColumnHeaderRect.Y + checkBoxColumnHeaderRect.Height)) + { + DataTable _Table = (DataTable)gcMain.DataSource; + if (checkBoxColumn.Tag != null && checkBoxColumn.Tag.ToString() == "1") + { + checkBoxColumn.Tag = "0"; + foreach (DataRow row in _Table.Rows) + { + row["chkInt"] = false; + } + } + else + { + checkBoxColumn.Tag = "1"; + foreach (DataRow row in _Table.Rows) + { + row["chkInt"] = true; + } + } + gcMain.BindingContext = new BindingContext(); + gcMain.DataSource = _Table; + gcMain.ForceInitialize(); + gridView1.CloseEditor(); + gridView1.PostEditor(); + gridView1.UpdateCurrentRow(); + gridView1.InvalidateColumnHeader(checkBoxColumn); + } + } + } + #endregion } -} + + /// <summary> + /// 涓嬫媺妗嗘潯鐩被 + /// </summary> + public class CboItemEntity + { + public CboItemEntity() + { + } + + public CboItemEntity(string val, string text, string fType = "") + { + Text = text; + Value = val; + FType = fType; + } + + /// <summary> + /// 鏄剧ず鍊� + /// </summary> + public object Text { get; set; } = 0; + + /// <summary> + /// 瀵硅薄鍊� + /// </summary> + public object Value { get; set; } = ""; + + public object FType { get; set; } = ""; + + public override string ToString() + { + return Text.ToString(); + } + + } + + /// <summary> + /// 鏌ヨ妗� + /// </summary> + public class FilterEntity + { + /// <summary> + /// </summary> + /// <param name="id">瀛楁鍚�</param> + /// <param name="idDec">瀛楁鍚嶅娉�</param> + /// <param name="oper">鎿嶄綔绗�</param> + /// <param name="operDec">鎿嶄綔绗﹀娉�</param> + /// <param name="val"></param> + public FilterEntity(string id, string idDec, string oper, + string operDec, string val, 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; } + } +} \ No newline at end of file -- Gitblit v1.9.3