| | |
| | | using Newtonsoft.Json.Linq; |
| | | using System; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Configuration; |
| | | using System.Data; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Net; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Resources; |
| | | using System.Drawing; |
| | | using Newtonsoft.Json; |
| | | using Gs.DevApp.Models; |
| | | using System.Windows.Forms; |
| | | using static System.Windows.Forms.Control; |
| | | using DevExpress.XtraEditors; |
| | | using DevExpress.XtraTab; |
| | | using System.IO; |
| | | using System.Net; |
| | | using System.Net.Cache; |
| | | using System.Net.Http; |
| | | using System.Reflection; |
| | | using System.Resources; |
| | | using System.Text; |
| | | using System.Text.RegularExpressions; |
| | | using System.Threading.Tasks; |
| | | using System.Windows.Forms; |
| | | using DevExpress.RichEdit.Export; |
| | | using DevExpress.XtraBars.Customization; |
| | | using DevExpress.XtraEditors; |
| | | using DevExpress.XtraEditors.Controls; |
| | | using DevExpress.XtraGrid; |
| | | using DevExpress.XtraGrid.Columns; |
| | | using DevExpress.XtraGrid.Views.Grid; |
| | | using DevExpress.XtraTab; |
| | | using DevExpress.XtraTreeList; |
| | | using DevExpress.XtraWaitForm; |
| | | using Gs.DevApp.Entity; |
| | | using Gs.DevApp.UserControl; |
| | | using Newtonsoft.Json; |
| | | using Newtonsoft.Json.Linq; |
| | | 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"]; |
| | | |
| | | |
| | | public static async Task<string> UploadFileAsync(string filePath) |
| | | { |
| | | using (var httpClient = new HttpClient()) |
| | | using (var form = new MultipartFormDataContent()) |
| | | { |
| | | httpClient.DefaultRequestHeaders.Add("token", |
| | | GetBasicAuthTicket()); |
| | | using (var fs = File.OpenRead(filePath)) |
| | | using (var streamContent = new StreamContent(fs)) |
| | | { |
| | | form.Add(streamContent, "file", Path.GetFileName(filePath)); |
| | | var response = |
| | | await httpClient.PostAsync( |
| | | WebApiUrl + "Upload/UploadFile", form); |
| | | var responseString = |
| | | await response.Content.ReadAsStringAsync(); |
| | | return responseString; |
| | | } |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// httpPost访问服务 |
| | | /// </summary> |
| | | /// <param name="url">服务地址</param> |
| | | /// <param name="meth">方法名称</param> |
| | | /// <param name="param">参数</param> |
| | | /// <returns></returns> |
| | | //public static async Task<string> HttpPostAsync(string url, string meth, string param) |
| | | //{ |
| | | // if (string.IsNullOrEmpty(url)) |
| | | // url = WebApiUrl; |
| | | // url += meth; |
| | | // var request = (HttpWebRequest)WebRequest.Create(url); |
| | | // request.Method = "POST"; |
| | | // request.ContentType = "application/json"; |
| | | // request.Headers.Add("token", GetBasicAuthTicket()); |
| | | // request.Accept = "*/*"; |
| | | // request.Timeout = 15000; |
| | | // request.AllowAutoRedirect = false; |
| | | // request.ServicePoint.Expect100Continue = false; |
| | | // HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); |
| | | // request.CachePolicy = noCachePolicy; |
| | | // using (Stream requestStream = await request.GetRequestStreamAsync()) |
| | | // { |
| | | // byte[] dataBytes = Encoding.UTF8.GetBytes(param); |
| | | // await requestStream.WriteAsync(dataBytes, 0, dataBytes.Length); |
| | | // } |
| | | |
| | | // using (WebResponse response = await request.GetResponseAsync()) |
| | | // { |
| | | // using (StreamReader reader = new StreamReader(response.GetResponseStream())) |
| | | // { |
| | | // return await reader.ReadToEndAsync(); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// httpPost访问服务 |
| | | /// httpPost访问服务 |
| | | /// </summary> |
| | | /// <param name="url">服务地址</param> |
| | | /// <param name="meth">方法名称</param> |
| | |
| | | /// <returns></returns> |
| | | public static string HttpPost(string url, string meth, string param) |
| | | { |
| | | if (string.IsNullOrEmpty(url)) |
| | | url = WebApiUrl; |
| | | url += meth; |
| | | HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); |
| | | request.Method = "POST"; |
| | | request.ContentType = "application/json"; |
| | | request.Headers.Add("token", GetBasicAuthTicket()); |
| | | request.Accept = "*/*"; |
| | | request.Timeout = 15000; |
| | | request.AllowAutoRedirect = false; |
| | | string _caption = "拼命加载中,请稍后..."; |
| | | DevExpress.Utils.WaitDialogForm wdf = new DevExpress.Utils.WaitDialogForm(_caption + meth, "友情提示"); |
| | | wdf.BackColor = System.Drawing.Color.LightSkyBlue; |
| | | wdf.Padding = new Padding(15); |
| | | HttpWebRequest request = null; |
| | | StreamWriter requestStream = null; |
| | | WebResponse response = null; |
| | | string responseStr = null; |
| | | try |
| | | { |
| | | if (string.IsNullOrEmpty(url)) |
| | | url = WebApiUrl; |
| | | url += meth; |
| | | request = (HttpWebRequest)WebRequest.Create(url); |
| | | request.Method = "POST"; |
| | | request.ContentType = "application/json"; |
| | | request.Headers.Add("token", GetBasicAuthTicket()); |
| | | request.Accept = "*/*"; |
| | | request.Timeout = 15000; |
| | | request.AllowAutoRedirect = false; |
| | | request.ServicePoint.Expect100Continue = false; |
| | | wdf.SetCaption(_caption+"(10/100)" + meth); |
| | | HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); |
| | | request.CachePolicy = noCachePolicy; |
| | | wdf.SetCaption(_caption + "(20/100)" + meth); |
| | | requestStream = new StreamWriter(request.GetRequestStream()); |
| | | requestStream.Write(param); |
| | | requestStream.Close(); |
| | | wdf.SetCaption(_caption + "30/100)" + meth); |
| | | response = request.GetResponse(); |
| | | wdf.SetCaption(_caption + "(40/100)"); |
| | | if (response != null) |
| | | { |
| | | StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); |
| | | wdf.SetCaption(_caption + "(50/100)" + meth); |
| | | var reader = new StreamReader(response.GetResponseStream(), |
| | | Encoding.UTF8); |
| | | responseStr = reader.ReadToEnd(); |
| | | //File.WriteAllText(Server.MapPath("~/") + @"\test.txt", responseStr); |
| | | reader.Close(); |
| | | wdf.SetCaption(_caption + "(60/100)" + meth); |
| | | } |
| | | wdf.SetCaption(_caption + "(80/100)" + meth); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | wdf.Close(); |
| | | LogHelper.Debug(url, param + ":" + ex.Message); |
| | | throw ex; |
| | | } |
| | | finally |
| | |
| | | requestStream = null; |
| | | response = null; |
| | | } |
| | | wdf.SetCaption(_caption + "(90/100)"); |
| | | wdf.Close(); |
| | | return responseStr; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据图片名读取资源文件,不带后缀名 |
| | | /// 默认页大小 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static int GetPageSize() |
| | | { |
| | | return int.Parse(ConfigurationSettings.AppSettings.Get("PageSize")); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据图片名读取资源文件,不带后缀名 |
| | | /// </summary> |
| | | /// <param name="imageName"></param> |
| | | /// <param name="lay">1为大图</param> |
| | | /// <returns></returns> |
| | | public static Image GetImgFromResource(string imageName, int lay) |
| | | { |
| | | // 获取当前程序集 |
| | | Assembly assembly = Assembly.GetExecutingAssembly(); |
| | | // 创建资源管理器来访问资源 |
| | | ResourceManager resourceManager = new ResourceManager("Gs.DevApp.Properties.Resources", assembly); |
| | | // 尝试获取图片资源 |
| | | var assembly = Assembly.GetExecutingAssembly(); |
| | | var resourceManager = |
| | | new ResourceManager("Gs.DevApp.Properties.Resources", assembly); |
| | | try |
| | | { |
| | | Image image = resourceManager.GetObject(imageName) as Image; |
| | | if (image != null) |
| | | { |
| | | return image; |
| | | } |
| | | var image = resourceManager.GetObject(imageName) as Image; |
| | | if (image != null) return image; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | } |
| | | Image image2 = resourceManager.GetObject(lay == 1 ? "chartsshowlegend_32x32" : "linktoprevious_16x16") as Image; |
| | | |
| | | var image2 = resourceManager.GetObject(lay == 1 |
| | | ? "chartsshowlegend_32x32" |
| | | : "linktoprevious_16x16") as Image; |
| | | return image2; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 生成token |
| | | /// 初始化一个表 |
| | | /// </summary> |
| | | /// <param name="gc"></param> |
| | | /// <param name="gv"></param> |
| | | public static void SetDefaultTable(GridControl gc, GridView gv) |
| | | { |
| | | var dt = new DataTable(); |
| | | foreach (GridColumn col in gv.Columns) |
| | | { |
| | | if (col.UnboundDataType == typeof(System.Boolean)) |
| | | dt.Columns.Add(col.FieldName, typeof(System.Boolean)); |
| | | else |
| | | { |
| | | dt.Columns.Add(col.FieldName, typeof(string)); |
| | | } |
| | | } |
| | | gc.BindingContext = new BindingContext(); |
| | | gc.DataSource = dt; |
| | | gc.ForceInitialize(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 生成访问服务的token |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static string GetBasicAuthTicket() |
| | | { |
| | | string userGuid = string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginUserGuid) ? Guid.NewGuid().ToString() : LoginInfoModel.CurrentUser.LoginUserGuid; |
| | | string orgGuid = string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginOrgGuid) ? Guid.NewGuid().ToString() : LoginInfoModel.CurrentUser.LoginOrgGuid; |
| | | string token = (userGuid + "~" + orgGuid); |
| | | var userGuid = |
| | | string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginUserGuid) |
| | | ? Guid.NewGuid().ToString() |
| | | : LoginInfoModel.CurrentUser.LoginUserGuid; |
| | | var orgGuid = |
| | | string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginOrgGuid) |
| | | ? Guid.NewGuid().ToString() |
| | | : LoginInfoModel.CurrentUser.LoginOrgGuid; |
| | | var token = userGuid + "~" + orgGuid; |
| | | return token; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 标准json串返回ReturnModel-->table, |
| | | /// 服务返回的json转为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串返回ReturnModel->字符串, |
| | | /// 服务返回的json返回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"]; |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 标准json串返回ReturnModel-->table, |
| | | /// 服务返回的json串返回ReturnModel-->仅仅有list,不分页, |
| | | /// </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); |
| | | var dt = JsonConvert.DeserializeObject<DataTable>(array.ToString()); |
| | | rto.rtnData = dt; |
| | | return rto; |
| | | } |
| | | |
| | | |
| | | /// <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:为groupBox1.Controls/panel1.Controls</param> |
| | | /// <param name="dynamicObject">对像</param> |
| | | /// <param name="isEdt">是否可编辑</param> |
| | | public static void SetValueByObj(ControlCollection controls, dynamic dynamicObject, Boolean isEdt) |
| | | /// <param name="gridViews">关联的grid</param> |
| | | public static void SetValueByObj(ControlCollection controls, |
| | | dynamic dynamicObject, bool isEdt, List<GridView> gridViews = null) |
| | | { |
| | | isEdt = !isEdt; |
| | | if (gridViews != null) |
| | | foreach (var gv in gridViews) |
| | | { |
| | | foreach (GridColumn colmn in gv.Columns) |
| | | { |
| | | if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui")) |
| | | { |
| | | // colmn.Visible = !isEdt; |
| | | // break; |
| | | colmn.OptionsColumn.AllowEdit = true; |
| | | } |
| | | else |
| | | colmn.OptionsColumn.AllowEdit = !isEdt; |
| | | } |
| | | //gv.OptionsBehavior.Editable = !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(); |
| | | // // 如果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); |
| | | if (cols.Length > 0) |
| | | var strName = property.Name; |
| | | var strVal = property.Value.ToString(); |
| | | try |
| | | { |
| | | Control colType = cols[0]; |
| | | //下拉 |
| | | if (colType is ComboBoxEdit) |
| | | var _dddddd = "txt_" + strName; |
| | | var cols = controls.Find(_dddddd, true); |
| | | if (cols.Length > 0) |
| | | { |
| | | ComboBoxEdit txt = colType as ComboBoxEdit; |
| | | if (txt.Properties.TextEditStyle == DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor) |
| | | txt.SelectedIndex = int.Parse(strVal); |
| | | else |
| | | 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) |
| | | txt.SelectedIndex = int.Parse(strVal); |
| | | else |
| | | txt.Text = strVal; |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | |
| | | //下拉 |
| | | if (colType is ComboBoxEdit) |
| | | { |
| | | var txt = colType as ComboBoxEdit; |
| | | if (txt.Properties.TextEditStyle == |
| | | TextEditStyles.DisableTextEditor) |
| | | txt.SelectedIndex = int.Parse(strVal); |
| | | else |
| | | txt.Text = strVal; |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | |
| | | //自定义下拉 |
| | | if (colType is UcComBox) |
| | | { |
| | | var txt = colType as UcComBox; |
| | | txt.Val = strVal; |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | |
| | | //文本 |
| | | if (colType is TextEdit) |
| | | { |
| | | var txt = colType as TextEdit; |
| | | if (txt != null) |
| | | txt.Text = strVal; |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | if (colType is MemoEdit) |
| | | { |
| | | var txt = colType as MemoEdit; |
| | | if (txt != null) |
| | | txt.Text = strVal; |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | |
| | | //数字卡 |
| | | if (colType is NumericUpDown) |
| | | { |
| | | var txt = colType as NumericUpDown; |
| | | if (txt != null) |
| | | txt.Text = strVal; |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | |
| | | //单选 |
| | | if (colType is CheckEdit) |
| | | { |
| | | var txt = colType as CheckEdit; |
| | | if (txt != null) |
| | | switch (strVal) |
| | | { |
| | | case "True": |
| | | txt.Checked = true; |
| | | break; |
| | | case "1": |
| | | txt.Checked = true; |
| | | break; |
| | | case "False": |
| | | txt.Checked = false; |
| | | break; |
| | | default: |
| | | txt.Checked = false; |
| | | break; |
| | | } |
| | | |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | |
| | | //单选 |
| | | if (colType is CheckBox) |
| | | { |
| | | var txt = colType as CheckBox; |
| | | if (txt != null) |
| | | txt.Checked = bool.Parse(strVal); |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | if (colType is CheckEdit) |
| | | { |
| | | var txt = colType as CheckEdit; |
| | | if (txt != null) |
| | | txt.Checked = bool.Parse(strVal); |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | //时间 |
| | | if (colType is DateTimePicker) |
| | | { |
| | | var txt = colType as DateTimePicker; |
| | | txt.Text = strVal; |
| | | txt.Enabled = isEdt; |
| | | continue; |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | |
| | | //Label |
| | | if (colType is Label) |
| | | { |
| | | var txt = colType as Label; |
| | | if (_dddddd == "txt_checkStatus") |
| | | { |
| | | if (strVal == "True" || strVal == "1") |
| | | txt.Text = "已审核"; |
| | | if (strVal == "False" || strVal == "0" || strVal == "") |
| | | txt.Text = "未审核"; |
| | | } |
| | | else |
| | | { |
| | | txt.Text = strVal; |
| | | } |
| | | } |
| | | //自定义仓库 |
| | | if (colType is UcLookCk) |
| | | { |
| | | var txt = colType as UcLookCk; |
| | | txt.SetIdOrCode(strVal); |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定义供应商 |
| | | if (colType is UcLookSupplier) |
| | | { |
| | | var txt = colType as UcLookSupplier; |
| | | txt.SetIdOrCode(strVal); |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定义物料 |
| | | if (colType is UcLookItems) |
| | | { |
| | | var txt = colType as UcLookItems; |
| | | txt.SetIdOrCode(strVal); |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定车间 |
| | | if (colType is UcLookWorkshop) |
| | | { |
| | | var txt = colType as UcLookWorkshop; |
| | | txt.SetIdOrCode(strVal); |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定产线 |
| | | if (colType is UcLookWorkline) |
| | | { |
| | | var txt = colType as UcLookWorkline; |
| | | txt.SetIdOrCode(strVal); |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定单位 |
| | | if (colType is UcLookUnit) |
| | | { |
| | | var txt = colType as UcLookUnit; |
| | | txt.SetIdOrCode(strVal); |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | |
| | | //自定客户 |
| | | if (colType is UcLookCustomer) |
| | | { |
| | | var txt = colType as UcLookCustomer; |
| | | txt.SetIdOrCode(strVal); |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定员工 |
| | | if (colType is UcLookStaff) |
| | | { |
| | | var txt = colType as UcLookStaff; |
| | | txt.SetIdOrCode(strVal); |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定组织 |
| | | if (colType is UcLookOrg) |
| | | { |
| | | var txt = colType as UcLookOrg; |
| | | txt.SetIdOrCode(strVal); |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | |
| | | if (colType is SimpleButton) |
| | | { |
| | | var txt = colType as SimpleButton; |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | } |
| | | //文本 |
| | | if (colType is TextEdit) |
| | | { |
| | | TextEdit txt = colType as TextEdit; |
| | | if (txt != null) |
| | | txt.Text = strVal; |
| | | txt.Enabled = isEdt; |
| | | continue; |
| | | } |
| | | //数字卡 |
| | | if (colType is NumericUpDown) |
| | | { |
| | | NumericUpDown txt = colType as NumericUpDown; |
| | | if (txt != null) |
| | | txt.Text = strVal; |
| | | txt.Enabled = isEdt; |
| | | continue; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MessageBox.Show(ex.Message); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清空容器里面的控件 |
| | | /// 清空容器里面的控件 |
| | | /// </summary> |
| | | /// <param name="controls">controls:为groupBox1.Controls/panel1.Controls</param> |
| | | /// <param name="isEdt">是否可编辑</param> |
| | | public static void CleanValue(ControlCollection controls, Boolean isEdt) |
| | | /// <param name="gridViews">关联的grid</param> |
| | | public static void CleanValueByControl(ControlCollection controls, |
| | | bool isEdt, List<GridView> gridViews = null) |
| | | { |
| | | isEdt = !isEdt; |
| | | if (gridViews != null) |
| | | foreach (var gv in gridViews) |
| | | { |
| | | foreach (GridColumn colmn in gv.Columns) |
| | | { |
| | | if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui")) |
| | | { |
| | | // colmn.Visible = !isEdt; |
| | | // break; |
| | | colmn.OptionsColumn.AllowEdit = true; |
| | | } |
| | | else |
| | | colmn.OptionsColumn.AllowEdit = !isEdt; |
| | | } |
| | | //gv.OptionsBehavior.Editable = !isEdt; |
| | | } |
| | | foreach (Control ctrl in controls) |
| | | { |
| | | ctrl.Enabled = isEdt; |
| | | //多行文本 |
| | | if (ctrl is MemoEdit) |
| | | { |
| | | MemoEdit txt = ctrl as MemoEdit; |
| | | var txt = ctrl as MemoEdit; |
| | | txt.Text = ""; |
| | | txt.Enabled = isEdt; |
| | | 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 UcComBox) |
| | | { |
| | | var txt = ctrl as UcComBox; |
| | | txt.Val = "0"; |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | |
| | | //文本 |
| | | if (ctrl is TextEdit) |
| | | { |
| | | ctrl.Text = ""; |
| | | var txt = ctrl as TextEdit; |
| | | txt.Text = ""; |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | if (ctrl is MemoEdit) |
| | | { |
| | | var txt = ctrl as MemoEdit; |
| | | if (txt != null) |
| | | txt.Text = ""; |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | //时间 |
| | | if (ctrl is DateTimePicker) |
| | | { |
| | | var txt = ctrl as DateTimePicker; |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | //单选 |
| | | if (ctrl is CheckBox) |
| | | { |
| | | var txt = ctrl as CheckBox; |
| | | txt.Checked = false; |
| | | txt.Enabled = !isEdt; |
| | | } |
| | | if (ctrl is CheckEdit) |
| | | { |
| | | var txt = ctrl as CheckEdit; |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | |
| | | //自定义仓库 |
| | | if (ctrl is UcLookCk) |
| | | { |
| | | var txt = ctrl as UcLookCk; |
| | | txt.SetIdOrCode("-1"); |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | //自定义供应商 |
| | | if (ctrl is UcLookSupplier) |
| | | { |
| | | var txt = ctrl as UcLookSupplier; |
| | | txt.SetIdOrCode("-1"); |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | //自定义物料 |
| | | if (ctrl is UcLookItems) |
| | | { |
| | | var txt = ctrl as UcLookItems; |
| | | txt.SetIdOrCode("-1"); |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | //自定车间 |
| | | if (ctrl is UcLookWorkshop) |
| | | { |
| | | var txt = ctrl as UcLookWorkshop; |
| | | txt.SetIdOrCode("-1"); |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | //自定产线 |
| | | if (ctrl is UcLookWorkline) |
| | | { |
| | | var txt = ctrl as UcLookWorkline; |
| | | txt.SetIdOrCode("-1"); |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | //自定单位 |
| | | if (ctrl is UcLookUnit) |
| | | { |
| | | var txt = ctrl as UcLookUnit; |
| | | txt.SetIdOrCode("-1"); |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | //自定客户 |
| | | if (ctrl is UcLookCustomer) |
| | | { |
| | | var txt = ctrl as UcLookCustomer; |
| | | txt.SetIdOrCode("-1"); |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | //自定客户 |
| | | if (ctrl is UcLookStaff) |
| | | { |
| | | var txt = ctrl as UcLookStaff; |
| | | txt.SetIdOrCode("-1"); |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | //自定组织 |
| | | if (ctrl is UcLookOrg) |
| | | { |
| | | var txt = ctrl as UcLookOrg; |
| | | txt.SetIdOrCode("-1"); |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | if (ctrl is SimpleButton) |
| | | { |
| | | var txt = ctrl as SimpleButton; |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 禁用或启用容器里面的控件 |
| | | /// 禁用或启用容器里面的控件 |
| | | /// </summary> |
| | | /// <param name="controls">controls:为groupBox1.Controls/panel1.Controls</param> |
| | | /// <param name="isEdt">是否可编辑</param> |
| | | public static void ChangeEnable(ControlCollection controls, Boolean isEdt) |
| | | /// <param name="isEdt"></param> |
| | | /// <param name="gridViews"></param> |
| | | public static void ChangeEnableByControl(ControlCollection controls, |
| | | bool isEdt, List<GridView> gridViews = null) |
| | | { |
| | | isEdt = !isEdt; |
| | | if (gridViews != null) |
| | | foreach (var gv in gridViews) |
| | | { |
| | | foreach (GridColumn colmn in gv.Columns) |
| | | { |
| | | if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui")) |
| | | { |
| | | // colmn.Visible = !isEdt; |
| | | // break; |
| | | colmn.OptionsColumn.AllowEdit = true; |
| | | } |
| | | else |
| | | colmn.OptionsColumn.AllowEdit = !isEdt; |
| | | } |
| | | //gv.OptionsBehavior.Editable = !isEdt; |
| | | } |
| | | foreach (Control ctrl in controls) |
| | | { |
| | | //文本 |
| | | if (ctrl is TextEdit) |
| | | { |
| | | ctrl.Enabled = isEdt; |
| | | var txt = ctrl as TextEdit; |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | if (ctrl is MemoEdit) |
| | | { |
| | | var txt = ctrl as MemoEdit; |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | //数字卡 |
| | | if (ctrl is NumericUpDown) |
| | | { |
| | | ctrl.Enabled = isEdt; |
| | | var txt = ctrl as NumericUpDown; |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | //下拉 |
| | | if (ctrl is UcComBox) |
| | | { |
| | | var txt = ctrl as UcComBox; |
| | | txt.Val = "0"; |
| | | txt.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | |
| | | //日期 |
| | | if (ctrl is DateTimePicker) |
| | | { |
| | | ctrl.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | |
| | | //单选 |
| | | if (ctrl is CheckBox) |
| | | { |
| | | ctrl.Enabled = !isEdt; |
| | | continue; |
| | | } |
| | | // |
| | | if (ctrl is CheckEdit) |
| | | { |
| | | var txt = ctrl as CheckEdit; |
| | | txt.ReadOnly = isEdt; |
| | | continue; |
| | | } |
| | | //自定义仓库 |
| | | if (ctrl is UcLookCk) |
| | | { |
| | | var txt = ctrl as UcLookCk; |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定义供应商 |
| | | if (ctrl is UcLookSupplier) |
| | | { |
| | | var txt = ctrl as UcLookSupplier; |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定义物料 |
| | | if (ctrl is UcLookItems) |
| | | { |
| | | var txt = ctrl as UcLookItems; |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定义车间 |
| | | if (ctrl is UcLookWorkshop) |
| | | { |
| | | var txt = ctrl as UcLookWorkshop; |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定义产线 |
| | | if (ctrl is UcLookWorkline) |
| | | { |
| | | var txt = ctrl as UcLookWorkline; |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定义单位 |
| | | if (ctrl is UcLookUnit) |
| | | { |
| | | var txt = ctrl as UcLookUnit; |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定义客户 |
| | | if (ctrl is UcLookCustomer) |
| | | { |
| | | var txt = ctrl as UcLookCustomer; |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定义员工 |
| | | if (ctrl is UcLookStaff) |
| | | { |
| | | var txt = ctrl as UcLookStaff; |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | //自定组织 |
| | | if (ctrl is UcLookOrg) |
| | | { |
| | | var txt = ctrl as UcLookOrg; |
| | | if (txt.IsReadly == false) |
| | | txt.Enabled = !isEdt; |
| | | else |
| | | txt.Enabled = false; |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | ///切换选项卡 |
| | | /// 切换选项卡 |
| | | /// </summary> |
| | | /// <param name="tabControl">选项卡容器</param> |
| | | /// <param name="idx">从0开始,如果是999,则全部可用</param> |
| | | public static void ChangeTab(XtraTabControl tabControl, int idx) |
| | | public static void JumpToTab(XtraTabControl tabControl, int idx) |
| | | { |
| | | if (idx == 999) |
| | | { |
| | | for (int i = 0; i < tabControl.TabPages.Count; i++) |
| | | { |
| | | for (var i = 0; i < tabControl.TabPages.Count; i++) |
| | | tabControl.TabPages[i].PageEnabled = true; |
| | | } |
| | | tabControl.SelectedTabPageIndex = tabControl.TabPages.Count - 1; |
| | | return; |
| | | } |
| | | for (int i = 0; i < tabControl.TabPages.Count; i++) |
| | | { |
| | | |
| | | for (var i = 0; i < tabControl.TabPages.Count; i++) |
| | | tabControl.TabPages[i].PageEnabled = false; |
| | | } |
| | | tabControl.TabPages[idx].PageEnabled = true; |
| | | tabControl.SelectedTabPageIndex = idx; |
| | | } |
| | | |
| | | |
| | | /// <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> |
| | | /// 转驼峰命名 |
| | | /// 转驼峰命名 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public static string ToCamelCase(string input) |
| | | public static string ToCamelCase(string strItem) |
| | | { |
| | | if (string.IsNullOrEmpty(input)) |
| | | return input; |
| | | //如果包含小写,但不包含下划线 |
| | | var hasLowercase = Regex.IsMatch(strItem, @"[a-z]"); |
| | | if (hasLowercase && !strItem.Contains("_")) |
| | | { |
| | | var chars = strItem.ToCharArray(); |
| | | chars[0] = char.ToLower(chars[0]); |
| | | return new string(chars); |
| | | } |
| | | |
| | | // 匹配非字母数字字符后的第一个字母,并将其转换为大写 |
| | | return Regex.Replace( |
| | | input, |
| | | "([a-z])([A-Z])", |
| | | "$1$2", |
| | | RegexOptions.CultureInvariant |
| | | ).Trim(); |
| | | var strItems = strItem.ToLower().Split('_'); |
| | | var strItemTarget = strItems[0]; |
| | | for (var j = 1; j < strItems.Length; j++) |
| | | { |
| | | var temp = strItems[j]; |
| | | var temp1 = temp[0].ToString().ToUpper(); |
| | | var temp2 = ""; |
| | | temp2 = temp1 + temp.Remove(0, 1); |
| | | strItemTarget += temp2; |
| | | } |
| | | |
| | | return strItemTarget; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 转Guid |
| | | /// </summary> |
| | | /// <param name="str"></param> |
| | | /// <returns></returns> |
| | | public static Guid ToGuid(string str) |
| | | { |
| | | if (string.IsNullOrEmpty(str)) return Guid.Empty; |
| | | return Guid.Parse(str); |
| | | } |
| | | |
| | | public static int ToInt(string str) |
| | | { |
| | | try |
| | | { |
| | | return int.Parse(str); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | |
| | | return 0; |
| | | } |
| | | } |
| | | public static long ToLong(string str) |
| | | { |
| | | try |
| | | { |
| | | return long.Parse(str); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | public static int ToBit(string str) |
| | | { |
| | | if (str.ToUpper() == "true".ToUpper()) |
| | | return 1; |
| | | return 0; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读取grid的当前行 |
| | | /// </summary> |
| | | /// <param name="xtraTabControl1"></param> |
| | | /// <param name="lbGuid">编辑框中的主键名</param> |
| | | /// <param name="txtName">编辑框中的文本框名</param> |
| | | /// <param name="gridView1"></param> |
| | | /// <param name="SelectedTabPageIndex"></param> |
| | | /// <returns></returns> |
| | | public static (string, string) GetCurrentRow( |
| | | XtraTabControl xtraTabControl1 |
| | | , Label lbGuid |
| | | , TextEdit txtName |
| | | , GridView gridView1 |
| | | , string fileName = "" |
| | | , int SelectedTabPageIndex = 1) |
| | | { |
| | | var _strGuid = ""; |
| | | var _strName = ""; |
| | | if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex && |
| | | lbGuid.Text.Length > 10) |
| | | { |
| | | _strGuid = lbGuid.Text.Trim(); |
| | | _strName = txtName.Text.Trim(); |
| | | } |
| | | else |
| | | { |
| | | var dr = gridView1.GetFocusedDataRow(); |
| | | if (dr == null || string.IsNullOrEmpty(dr["guid"].ToString())) |
| | | { |
| | | } |
| | | else |
| | | { |
| | | _strGuid = dr["guid"].ToString(); |
| | | if (string.IsNullOrEmpty(fileName)) |
| | | _strName = dr[1].ToString(); |
| | | else |
| | | _strName = dr[fileName].ToString(); |
| | | } |
| | | } |
| | | |
| | | return (_strGuid, _strName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读取TreeView的当前行 |
| | | /// </summary> |
| | | /// <param name="xtraTabControl1"></param> |
| | | /// <param name="lbGuid"></param> |
| | | /// <param name="txtName"></param> |
| | | /// <param name="tlMenu"></param> |
| | | /// <param name="SelectedTabPageIndex"></param> |
| | | /// <returns></returns> |
| | | public static (string, string) GetCurrentRow( |
| | | XtraTabControl xtraTabControl1 |
| | | , Label lbGuid |
| | | , TextEdit txtName |
| | | , TreeView tlMenu |
| | | , int SelectedTabPageIndex = 1) |
| | | { |
| | | var _strGuid = ""; |
| | | var _strName = ""; |
| | | if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex && |
| | | lbGuid.Text.Length > 10) |
| | | { |
| | | _strGuid = lbGuid.Text.Trim(); |
| | | _strName = txtName.Text.Trim(); |
| | | } |
| | | else |
| | | { |
| | | var clickedNode = tlMenu.SelectedNode; |
| | | if (clickedNode != null) |
| | | { |
| | | _strGuid = clickedNode.Name; |
| | | _strName = clickedNode.Text.Trim(); |
| | | } |
| | | } |
| | | |
| | | return (_strGuid, _strName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读取TreeList的当前行 |
| | | /// </summary> |
| | | /// <param name="xtraTabControl1"></param> |
| | | /// <param name="lbGuid"></param> |
| | | /// <param name="txtName"></param> |
| | | /// <param name="tlMenu"></param> |
| | | /// <param name="SelectedTabPageIndex"></param> |
| | | /// <returns></returns> |
| | | public static (string, string) GetCurrentRow( |
| | | XtraTabControl xtraTabControl1 |
| | | , Label lbGuid |
| | | , TextEdit txtName |
| | | , TreeList tlMenu |
| | | , int SelectedTabPageIndex = 1) |
| | | { |
| | | var _strGuid = ""; |
| | | var _strName = ""; |
| | | if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex && |
| | | lbGuid.Text.Length > 10) |
| | | { |
| | | _strGuid = lbGuid.Text.Trim(); |
| | | _strName = txtName.Text.Trim(); |
| | | } |
| | | else |
| | | { |
| | | _strGuid = tlMenu.FocusedNode.GetValue("guid").ToString(); |
| | | _strName = tlMenu.FocusedNode.GetValue(0).ToString(); |
| | | } |
| | | |
| | | return (_strGuid, _strName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读取GridView双击的主键 |
| | | /// </summary> |
| | | /// <param name="gridView1"></param> |
| | | /// <param name="e"></param> |
| | | /// <param name="colName"></param> |
| | | /// <returns></returns> |
| | | public static string GetCurrentDoubleRow(GridView gridView1 |
| | | , MouseEventArgs e |
| | | , string colName) |
| | | { |
| | | var info = gridView1.CalcHitInfo(e.Location); |
| | | if (info.InRow) |
| | | { |
| | | var view = info.View; |
| | | if (view != null) |
| | | { |
| | | var row = view.GetDataRow(info.RowHandle); |
| | | if (row != null) |
| | | { |
| | | var rowGuid = row[colName].ToString(); |
| | | return rowGuid; |
| | | } |
| | | } |
| | | } |
| | | |
| | | return ""; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 读取GridView双击的主键 |
| | | /// </summary> |
| | | /// <param name="gridView1"></param> |
| | | /// <param name="e"></param> |
| | | /// <param name="colName"></param> |
| | | /// <returns></returns> |
| | | public static string GetCurrentDoubleRow(TreeList tlMenu |
| | | , MouseEventArgs e |
| | | , string colName) |
| | | { |
| | | var info = tlMenu.CalcHitInfo(e.Location); |
| | | if (info.Node != null) |
| | | { |
| | | var clickedNode = tlMenu.FocusedNode; |
| | | if (clickedNode.FirstNode == null) |
| | | { |
| | | var rowGuid = clickedNode.GetValue(colName).ToString(); |
| | | return rowGuid; |
| | | } |
| | | } |
| | | |
| | | return ""; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="s"></param> |
| | | /// <param name="btnChkIco"></param> |
| | | /// <param name="fm"></param> |
| | | /// <param name="fileName">对应的审核字段名称</param> |
| | | /// <param name="icoName"></param> |
| | | public static void SetCheckIco(object s, PictureBox btnChkIco, Form fm, string fileName = "checkStatus", string icoName = "") |
| | | { |
| | | GridView dgv = s as GridView; |
| | | if (dgv != null) |
| | | { |
| | | if (dgv.GetSelectedRows() != null) |
| | | { |
| | | var selectedRow = dgv.GetSelectedRows()[0]; // 获取第一个选中行的索引 |
| | | if (selectedRow >= 0) |
| | | { |
| | | var checkStatus = dgv.GetRowCellValue(selectedRow, fileName).ToString(); // 获取指定列的值 |
| | | btnChkIco.Text = checkStatus; |
| | | btnChkIco.Visible = true; |
| | | if (checkStatus == "1" || checkStatus.ToUpper() == true.ToString().ToUpper()) |
| | | btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_check; |
| | | else |
| | | btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_noCheck; |
| | | btnChkIco.Anchor = AnchorStyles.Top | AnchorStyles.Right; // 靠右 |
| | | btnChkIco.Location = new Point(fm.ClientSize.Width - btnChkIco.Width - 20, 80); // 距离顶部10像素 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | #region 设置搜索 |
| | | public static string getQueryWord(string str) |
| | | { |
| | | return str.ToUpper().Replace("query_".ToUpper(), ""); |
| | | } |
| | | public static FilterEntity getFilterEntityWord(string id, string idDec, string val) |
| | | { |
| | | return new FilterEntity(getQueryWord(id), idDec + ")", " like ", "包含)", "%" + val + "%"); |
| | | } |
| | | public static List<FilterEntity> GetDilter(GridColumnCollection Columns) |
| | | { |
| | | List<FilterEntity> fiList = new List<FilterEntity>(); |
| | | foreach (DevExpress.XtraGrid.Columns.GridColumn col in Columns) |
| | | { |
| | | ColumnFilterInfo filter = col.FilterInfo; |
| | | if (string.IsNullOrEmpty(filter.FilterString)) |
| | | continue; |
| | | // fiList.Add(new FilterEntity("b.FNumber", "使用组织", " like ", "包含", "%" + filter.Value + "%")); |
| | | string[] ddd = filter.FilterString.Replace("Contains", "").Replace("(", "").Replace(")", "").Replace("'", "").Replace("'", "").Split(','); |
| | | //Contains([fSubsidiary], '005') |
| | | fiList.Add(getFilterEntityWord(col.Tag.ToString(), col.Caption.Trim(), ddd[1].Trim())); |
| | | } |
| | | return fiList; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据过滤器,读取查询条件,org表为组织 |
| | | /// </summary> |
| | | /// <param name="_filterList"></param> |
| | | /// <returns></returns> |
| | | public static string GetSearchWhere(List<FilterEntity> _filterList) |
| | | { |
| | | var _sbSqlWhere = new StringBuilder(); |
| | | foreach (var itm in _filterList) |
| | | { |
| | | if (itm.fileId.ToUpper().Contains("org".ToUpper())) |
| | | { |
| | | if (IsNumeric(itm.fileValue.Replace("%", ""))) |
| | | _sbSqlWhere.Append(" and org.FNumber " + itm.fileOper + "'" + itm.fileValue + "'"); |
| | | else |
| | | { |
| | | _sbSqlWhere.Append(" and org.NAME " + itm.fileOper + "'" + itm.fileValue.Trim() + "'"); |
| | | } |
| | | } |
| | | else |
| | | _sbSqlWhere.Append(" and " + itm.fileId + itm.fileOper + "'" + |
| | | itm.fileValue + "'"); |
| | | } |
| | | return _sbSqlWhere.ToString(); |
| | | } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="gridView1">gridview</param> |
| | | /// <param name="btnChkIco">图标按钮</param> |
| | | /// <param name="fm">当前窗体</param> |
| | | /// <param name="fileName">字段</param> |
| | | /// <param name="icoName">图标路径</param> |
| | | public static void SetGridSear(GridView gridView1, PictureBox btnChkIco = null, Form fm = null, string fileName = "checkStatus", string icoName = "") |
| | | { |
| | | // gridView1.OptionsView.ColumnAutoWidth = false;自动调整列宽 |
| | | |
| | | foreach (GridColumn column in gridView1.Columns) |
| | | { |
| | | column.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Contains; |
| | | column.OptionsFilter.ImmediateUpdateAutoFilter = false; |
| | | // column.OptionsColumn.AllowEdit = false; |
| | | if (column.Tag == null || column.Tag.ToString().Length <= 0) |
| | | column.OptionsFilter.AllowAutoFilter = false; |
| | | } |
| | | gridView1.OptionsFilter.AllowAutoFilterConditionChange = DevExpress.Utils.DefaultBoolean.False; |
| | | gridView1.OptionsFilter.AllowFilterEditor = false; |
| | | gridView1.OptionsFilter.ShowCustomFunctions = DevExpress.Utils.DefaultBoolean.False; |
| | | gridView1.OptionsCustomization.AllowFilter = false; |
| | | gridView1.OptionsFind.ShowSearchNavButtons = false; |
| | | gridView1.OptionsView.ShowAutoFilterRow = true; |
| | | gridView1.OptionsView.ShowGroupPanel = false; |
| | | gridView1.IndicatorWidth = 50; |
| | | gridView1.CustomDrawRowIndicator += (s, e) => |
| | | { |
| | | if (e.Info.IsRowIndicator && e.RowHandle >= 0) |
| | | e.Info.DisplayText = (e.RowHandle + 1).ToString(); |
| | | }; |
| | | gridView1.CustomDrawEmptyForeground += (s, e) => |
| | | { |
| | | var str = "暂未查找到匹配的数据!"; |
| | | var f = new Font("微软雅黑", 16); |
| | | var r = new Rectangle(gridView1.GridControl.Width / 2 - 100, |
| | | e.Bounds.Top + 45, e.Bounds.Right - 5, e.Bounds.Height - 5); |
| | | e.Graphics.DrawString(str, f, Brushes.Gray, r); |
| | | }; |
| | | if (btnChkIco != null) |
| | | { |
| | | gridView1.FocusedRowChanged += (s, e) => |
| | | { |
| | | UtilityHelper.SetCheckIco(s, btnChkIco, fm, fileName, icoName); |
| | | }; |
| | | } |
| | | } |
| | | |
| | | /// <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 SetGridSearMx(GridView gridView1) |
| | | { |
| | | gridView1.OptionsFilter.AllowFilterEditor = false; |
| | | gridView1.OptionsFilter.ShowCustomFunctions = DevExpress.Utils.DefaultBoolean.False; |
| | | gridView1.OptionsCustomization.AllowFilter = false; |
| | | gridView1.OptionsFind.ShowSearchNavButtons = false; |
| | | gridView1.OptionsView.ShowAutoFilterRow = false; |
| | | gridView1.OptionsView.ShowGroupPanel = false; |
| | | gridView1.IndicatorWidth = 40; |
| | | gridView1.CustomDrawRowIndicator += (s, e) => |
| | | { |
| | | if (e.Info.IsRowIndicator && e.RowHandle >= 0) |
| | | e.Info.DisplayText = (e.RowHandle + 1).ToString(); |
| | | }; |
| | | gridView1.CustomDrawEmptyForeground += (s, e) => |
| | | { |
| | | var str = "暂无明细数据!"; |
| | | var f = new Font("微软雅黑", 16); |
| | | var r = new Rectangle(gridView1.GridControl.Width / 2 - 100, |
| | | e.Bounds.Top + 45, e.Bounds.Right - 5, e.Bounds.Height - 5); |
| | | e.Graphics.DrawString(str, f, Brushes.Gray, r); |
| | | }; |
| | | gridView1.ValidatingEditor += (sender, e) => |
| | | { |
| | | //yz_quantity_0 |
| | | GridView view = sender as GridView; |
| | | if (view.FocusedColumn.Tag != null && view.FocusedColumn.Tag.ToString().StartsWith("yz_")) |
| | | { |
| | | string[] _ary = view.FocusedColumn.Tag.ToString().Split('_'); |
| | | if (_ary.Length > 2) |
| | | { |
| | | if (_ary[2] == "0") |
| | | { |
| | | double price = 0; if (!Double.TryParse(e.Value as String, out price)) |
| | | { e.Valid = false; e.ErrorText = "请输入正确的数字."; } |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | public static bool IsNumeric(string str) |
| | | { |
| | | Regex regex = new Regex("^[0-9]+$"); |
| | | return regex.IsMatch(str); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 下拉框条目类 |
| | | /// </summary> |
| | | public class CboItemEntity |
| | | { |
| | | public CboItemEntity() |
| | | { |
| | | } |
| | | |
| | | public CboItemEntity(string val, string text) |
| | | { |
| | | Text = text; |
| | | Value = val; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 显示值 |
| | | /// </summary> |
| | | public object Text { get; set; } = 0; |
| | | |
| | | /// <summary> |
| | | /// 对象值 |
| | | /// </summary> |
| | | public object Value { get; set; } = ""; |
| | | |
| | | public override string ToString() |
| | | { |
| | | return Text.ToString(); |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询框 |
| | | /// </summary> |
| | | public class FilterEntity |
| | | { |
| | | /// <summary> |
| | | /// </summary> |
| | | /// <param name="id">字段名</param> |
| | | /// <param name="idDec">字段名备注</param> |
| | | /// <param name="oper">操作符</param> |
| | | /// <param name="operDec">操作符备注</param> |
| | | /// <param name="val"></param> |
| | | public FilterEntity(string id, string idDec, string oper, |
| | | string operDec, string val) |
| | | { |
| | | fileId = id; |
| | | fileIdDec = idDec; |
| | | fileOper = oper; |
| | | fileOperDec = operDec; |
| | | fileValue = val; |
| | | } |
| | | |
| | | public string fileId { get; set; } |
| | | |
| | | public string fileIdDec { get; set; } |
| | | |
| | | public string fileOper { get; set; } |
| | | |
| | | public string fileOperDec { get; set; } |
| | | |
| | | public string fileValue { get; set; } |
| | | } |
| | | } |