| | |
| | | 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.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 |
| | | { |
| | |
| | | /// <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); |
| | | } |
| | | //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(); |
| | | } |
| | | } |
| | | } |
| | | // using (WebResponse response = await request.GetResponseAsync()) |
| | | // { |
| | | // using (StreamReader reader = new StreamReader(response.GetResponseStream())) |
| | | // { |
| | | // return await reader.ReadToEndAsync(); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// httpPost访问服务 |
| | |
| | | /// <returns></returns> |
| | | public static string HttpPost(string url, string meth, string param) |
| | | { |
| | | if (string.IsNullOrEmpty(url)) |
| | | url = WebApiUrl; |
| | | url += meth; |
| | | var request = (HttpWebRequest)WebRequest.Create(url); |
| | | request.Method = "POST"; |
| | | request.ContentType = "application/json"; |
| | | request.Headers.Add("token", GetBasicAuthTicket()); |
| | | request.Accept = "*/*"; |
| | | request.Timeout = 15000; |
| | | request.AllowAutoRedirect = false; |
| | | request.ServicePoint.Expect100Continue = false; |
| | | HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); |
| | | request.CachePolicy = noCachePolicy; |
| | | string _caption = "拼命加载中,请稍后..."; |
| | | DevExpress.Utils.WaitDialogForm wdf = new DevExpress.Utils.WaitDialogForm(_caption + meth, "友情提示"); |
| | | wdf.BackColor = System.Drawing.Color.LightSkyBlue; |
| | | wdf.Padding = new Padding(15); |
| | | HttpWebRequest request = null; |
| | | StreamWriter requestStream = null; |
| | | WebResponse response = null; |
| | | string responseStr = null; |
| | | try |
| | | { |
| | | if (string.IsNullOrEmpty(url)) |
| | | url = WebApiUrl; |
| | | url += meth; |
| | | request = (HttpWebRequest)WebRequest.Create(url); |
| | | request.Method = "POST"; |
| | | request.ContentType = "application/json"; |
| | | request.Headers.Add("token", GetBasicAuthTicket()); |
| | | request.Accept = "*/*"; |
| | | request.Timeout = 15000; |
| | | request.AllowAutoRedirect = false; |
| | | request.ServicePoint.Expect100Continue = false; |
| | | wdf.SetCaption(_caption+"(10/100)" + meth); |
| | | HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore); |
| | | request.CachePolicy = noCachePolicy; |
| | | wdf.SetCaption(_caption + "(20/100)" + meth); |
| | | requestStream = new StreamWriter(request.GetRequestStream()); |
| | | requestStream.Write(param); |
| | | requestStream.Close(); |
| | | wdf.SetCaption(_caption + "30/100)" + meth); |
| | | response = request.GetResponse(); |
| | | wdf.SetCaption(_caption + "(40/100)"); |
| | | if (response != null) |
| | | { |
| | | wdf.SetCaption(_caption + "(50/100)" + meth); |
| | | var reader = new StreamReader(response.GetResponseStream(), |
| | | Encoding.UTF8); |
| | | responseStr = reader.ReadToEnd(); |
| | | //File.WriteAllText(Server.MapPath("~/") + @"\test.txt", responseStr); |
| | | reader.Close(); |
| | | wdf.SetCaption(_caption + "(60/100)" + meth); |
| | | } |
| | | wdf.SetCaption(_caption + "(80/100)" + meth); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | wdf.Close(); |
| | | LogHelper.Debug(url, param + ":" + ex.Message); |
| | | throw ex; |
| | | } |
| | |
| | | requestStream = null; |
| | | response = null; |
| | | } |
| | | |
| | | wdf.SetCaption(_caption + "(90/100)"); |
| | | wdf.Close(); |
| | | return responseStr; |
| | | } |
| | | |
| | |
| | | { |
| | | var dt = new DataTable(); |
| | | foreach (GridColumn col in gv.Columns) |
| | | dt.Columns.Add(col.FieldName, typeof(string)); |
| | | { |
| | | if (col.UnboundDataType == typeof(System.Boolean)) |
| | | dt.Columns.Add(col.FieldName, typeof(System.Boolean)); |
| | | else |
| | | { |
| | | dt.Columns.Add(col.FieldName, typeof(string)); |
| | | } |
| | | } |
| | | gc.BindingContext = new BindingContext(); |
| | | gc.DataSource = dt; |
| | | gc.ForceInitialize(); |
| | |
| | | { |
| | | foreach (GridColumn colmn in gv.Columns) |
| | | { |
| | | if (colmn.Name.ToString().Contains("gvMxDel")) |
| | | if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui")) |
| | | { |
| | | colmn.Visible = !isEdt; |
| | | break; |
| | | // colmn.Visible = !isEdt; |
| | | // break; |
| | | colmn.OptionsColumn.AllowEdit = true; |
| | | } |
| | | else |
| | | colmn.OptionsColumn.AllowEdit = !isEdt; |
| | | } |
| | | gv.OptionsBehavior.Editable = !isEdt; |
| | | //gv.OptionsBehavior.Editable = !isEdt; |
| | | } |
| | | var _btnAry = controls.Find("btnSelect", false); |
| | | if (_btnAry.Length > 0) |
| | |
| | | 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; |
| | |
| | | { |
| | | foreach (GridColumn colmn in gv.Columns) |
| | | { |
| | | if (colmn.Name.ToString().Contains("gvMxDel")) |
| | | if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui")) |
| | | { |
| | | colmn.Visible = !isEdt; |
| | | break; |
| | | // colmn.Visible = !isEdt; |
| | | // break; |
| | | colmn.OptionsColumn.AllowEdit = true; |
| | | } |
| | | else |
| | | colmn.OptionsColumn.AllowEdit = !isEdt; |
| | | } |
| | | gv.OptionsBehavior.Editable = !isEdt; |
| | | //gv.OptionsBehavior.Editable = !isEdt; |
| | | } |
| | | foreach (Control ctrl in controls) |
| | | { |
| | |
| | | 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; |
| | |
| | | { |
| | | foreach (GridColumn colmn in gv.Columns) |
| | | { |
| | | if (colmn.Name.ToString().Contains("gvMxDel")) |
| | | if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui")) |
| | | { |
| | | colmn.Visible = !isEdt; |
| | | break; |
| | | // colmn.Visible = !isEdt; |
| | | // break; |
| | | colmn.OptionsColumn.AllowEdit = true; |
| | | } |
| | | else |
| | | colmn.OptionsColumn.AllowEdit = !isEdt; |
| | | } |
| | | gv.OptionsBehavior.Editable = !isEdt; |
| | | //gv.OptionsBehavior.Editable = !isEdt; |
| | | } |
| | | foreach (Control ctrl in controls) |
| | | { |
| | |
| | | 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 |
| | |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | public static int ToBit(string str) |
| | | { |
| | | if (str.ToUpper() == "true".ToUpper()) |
| | | return 1; |
| | | return 0; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读取grid的当前行 |
| | | /// </summary> |
| | |
| | | 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(','); |
| | | 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())); |
| | | } |
| | |
| | | _sbSqlWhere.Append(" and org.FNumber " + itm.fileOper + "'" + itm.fileValue + "'"); |
| | | else |
| | | { |
| | | _sbSqlWhere.Append(" and org.NAME " + itm.fileOper + "'" + itm.fileValue.Trim() + "'"); |
| | | _sbSqlWhere.Append(" and org.NAME " + itm.fileOper + "'" + itm.fileValue.Trim() + "'"); |
| | | } |
| | | } |
| | | else |
| | |
| | | return _sbSqlWhere.ToString(); |
| | | } |
| | | /// <summary> |
| | | /// 初始化gridview |
| | | /// |
| | | /// </summary> |
| | | /// <param name="gridView1"></param> |
| | | public static void SetGridSear(GridView gridView1) |
| | | /// <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.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); |
| | | }; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | /// <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> |