using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Drawing;
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.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraTab;
using DevExpress.XtraTreeList;
using Gs.DevApp.Entity;
using Gs.DevApp.UserControl;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using UserControls.Data;
using static System.Windows.Forms.Control;
namespace Gs.DevApp.ToolBox
{
///
/// 通用类
///
public class UtilityHelper
{
private static readonly string WebApiUrl =
ConfigurationManager.AppSettings["WebApiUrl"];
public static async Task 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;
}
}
}
public static string HttpPost(string url, string meth, string param)
{
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 = 150000;
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;
}
finally
{
request = null;
requestStream = null;
response = null;
}
// wdf.SetCaption(_caption + "(90/100)");
wdf.Close();
return responseStr;
}
///
/// 默认页大小
///
///
public static int GetPageSize()
{
return int.Parse(ConfigurationSettings.AppSettings.Get("PageSize"));
}
///
/// 根据图片名读取资源文件,不带后缀名
///
///
/// 1为大图
///
public static Image GetImgFromResource(string imageName, int lay)
{
var assembly = Assembly.GetExecutingAssembly();
var resourceManager =
new ResourceManager("Gs.DevApp.Properties.Resources", assembly);
try
{
var image = resourceManager.GetObject(imageName) as Image;
if (image != null) return image;
}
catch (Exception ex)
{
}
var image2 = resourceManager.GetObject(lay == 1
? "chartsshowlegend_32x32"
: "linktoprevious_16x16") as Image;
return image2;
}
///
/// 初始化一个表
///
///
///
public static void SetDefaultTable(GridControl gc, GridView gv)
{
var dt = new DataTable();
foreach (GridColumn col in gv.Columns)
{
if (col.UnboundDataType == typeof(System.Boolean))
dt.Columns.Add(col.FieldName, typeof(System.Boolean));
else
{
dt.Columns.Add(col.FieldName, typeof(string));
}
}
gc.BindingContext = new BindingContext();
gc.DataSource = dt;
gc.ForceInitialize();
}
///
/// 生成访问服务的token
///
///
public static string GetBasicAuthTicket()
{
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;
}
///
/// 服务返回的json转为ReturnModel-->包含TablePage分页,
///
///
///
public static ReturnModel ReturnToTablePage(
string strReturn)
{
var rto = new ReturnModel();
var json = JObject.Parse(strReturn);
rto.rtnCode = int.Parse(json["rtnCode"].ToString());
rto.rtnMsg = json["rtnMsg"].ToString();
rto.rtnData = new PageListModel();
rto.rtnData.pages = int.Parse(json["rtnData"]["pages"].ToString());
rto.rtnData.total = int.Parse(json["rtnData"]["total"].ToString());
rto.rtnData.everyPageSize =
int.Parse(json["rtnData"]["everyPageSize"].ToString());
var array = new JArray();
var d = json["rtnData"]["list"];
foreach (var a in d) array.Add(a);
var dt = JsonConvert.DeserializeObject(array.ToString());
rto.rtnData.list = dt;
return rto;
}
///
/// 服务返回的json返回ReturnModel,
///
///
///
public static ReturnModel ReturnToDynamic(string strReturn)
{
var rto = new ReturnModel();
var json = JObject.Parse(strReturn);
rto.rtnCode = int.Parse(json["rtnCode"].ToString());
rto.rtnMsg = json["rtnMsg"].ToString();
rto.rtnData = json["rtnData"];
return rto;
}
///
/// 服务返回的json串返回ReturnModel-->仅仅有list,不分页,
///
///
///
public static ReturnModel ReturnToList(string strReturn)
{
var rto = new ReturnModel();
var json = JObject.Parse(strReturn);
rto.rtnCode = int.Parse(json["rtnCode"].ToString());
rto.rtnMsg = json["rtnMsg"].ToString();
rto.rtnData = new DataTable();
var array = new JArray();
var d = json["rtnData"];
foreach (var a in d) array.Add(a);
var dt = JsonConvert.DeserializeObject(array.ToString());
rto.rtnData = dt;
return rto;
}
///
/// 根据对象批量设置文本框的值
///
/// controls:为groupBox1.Controls/panel1.Controls
/// 对像
/// 是否可编辑
/// 关联的grid
public static void SetValueByObj(ControlCollection controls,
dynamic dynamicObject, bool isEdt, List gridViews = null)
{
isEdt = !isEdt;
if (gridViews != null)
{
foreach (var gv in gridViews)
{
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;
}
else
{
if (isEdt == false)
{
if (colmn.Tag != null && colmn.Tag.ToString().EndsWith("edit"))
colmn.OptionsColumn.ReadOnly = isEdt;
else
colmn.OptionsColumn.ReadOnly = !isEdt;
}
else
colmn.OptionsColumn.ReadOnly = isEdt;
}
}
}
}
var _btnAry = controls.Find("btnSelect", false);
if (_btnAry.Length > 0)
{
var _btnType = _btnAry[0];
_btnType.Enabled = !isEdt;
}
var _btnAry2 = controls.Find("btnTui", false);
if (_btnAry2.Length > 0)
{
var _btnType = _btnAry2[0];
_btnType.Enabled = !isEdt;
}
foreach (JProperty property in dynamicObject.Properties())
{
var strName = property.Name;
var strVal = property.Value.ToString();
try
{
var _dddddd = "txt_" + strName;
var cols = controls.Find(_dddddd, true);
if (cols.Length > 0)
{
var colType = cols[0];
if (colType is LookUpEdit)
{
var txt = colType as LookUpEdit;
if (txt != null) txt.EditValue = strVal;
txt.ReadOnly = isEdt;
continue;
}
if (colType is ImageComboBoxEdit)
{
var txt = colType as ImageComboBoxEdit;
for (var i = 0; i < txt.Properties.Items.Count; i++)
{
if (txt.Properties.Items[i].Description ==
strVal)
{
txt.ReadOnly = isEdt;
txt.SelectedIndex = i;
}
}
continue;
}
if (colType is ComboBoxEdit)
{
var txt = colType as ComboBoxEdit;
if (txt.Properties.TextEditStyle ==
TextEditStyles.DisableTextEditor)
try
{
txt.SelectedIndex = int.Parse(strVal);
}
catch (Exception)
{
txt.Text = strVal;
}
else
txt.Text = strVal;
txt.ReadOnly = isEdt;
continue;
}
//自定义下拉
if (colType is 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;
if (_isRead(txt.Tag))
{
txt.ReadOnly = true;
}
else
txt.ReadOnly = isEdt;
continue;
}
if (colType is MemoEdit)
{
var txt = colType as MemoEdit;
if (txt != null)
txt.Text = strVal;
if (_isRead(txt.Tag))
{
txt.ReadOnly = true;
}
else
txt.ReadOnly = isEdt;
continue;
}
//数字卡
if (colType is NumericUpDown)
{
var txt = colType as NumericUpDown;
if (txt != null)
txt.Text = strVal;
txt.ReadOnly = isEdt;
continue;
}
//单选
if (colType is CheckEdit)
{
var txt = colType as CheckEdit;
if (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)
switch (strVal)
{
case "True":
txt.Checked = true;
break;
case "1":
txt.Checked = true;
break;
case "False":
txt.Checked = false;
break;
default:
txt.Checked = false;
break;
}
txt.Enabled = !isEdt;
continue;
}
//时间
if (colType is DateTimePicker)
{
var txt = colType as DateTimePicker;
txt.Text = strVal;
txt.Enabled = !isEdt;
continue;
}
//Label
if (colType is Label)
{
var txt = colType as Label;
if (_dddddd == "txt_checkStatus")
{
if (strVal == "True" || strVal == "1")
txt.Text = "已审核";
if (strVal == "False" || strVal == "0" || strVal == "")
txt.Text = "未审核";
}
else
{
txt.Text = strVal;
}
}
//自定义仓库
if (colType is UcLookCk)
{
var txt = colType as UcLookCk;
txt.SetIdOrCode(strVal);
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 UcLookUser)
{
var txt = colType as UcLookUser;
txt.SetIdOrCode(strVal);
if (txt.IsReadly == false)
txt.Enabled = !isEdt;
else
txt.Enabled = false;
continue;
}
//自定打印机
if (colType is UcLookPrint)
{
var txt = colType as UcLookPrint;
txt.SetIdOrCode(strVal);
if (txt.IsReadly == false)
txt.Enabled = !isEdt;
else
txt.Enabled = false;
continue;
}
//自定缺陷类别
if (colType is UcLookDefectType)
{
var txt = colType as UcLookDefectType;
txt.SetIdOrCode(strVal);
if (txt.IsReadly == false)
txt.Enabled = !isEdt;
else
txt.Enabled = false;
continue;
}
//自定部门
if (colType is UcLookDepartment)
{
var txt = colType as UcLookDepartment;
txt.SetIdOrCode(strVal);
if (txt.IsReadly == false)
txt.Enabled = !isEdt;
else
txt.Enabled = false;
continue;
}
//自定daa
if (colType is UcLookDaa)
{
var txt = colType as UcLookDaa;
txt.SetIdOrCode(strVal);
if (txt.IsReadly == false)
txt.Enabled = !isEdt;
else
txt.Enabled = false;
continue;
}
//自定委外
if (colType is UcLookWwgd)
{
var txt = colType as UcLookWwgd;
txt.SetIdOrCode(strVal);
if (txt.IsReadly == false)
txt.Enabled = !isEdt;
else
txt.Enabled = false;
continue;
}
if (colType is SimpleButton)
{
var txt = colType as SimpleButton;
txt.Enabled = !isEdt;
continue;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
foreach (Control ctrl in controls)
{
if (ctrl is TextEdit)
{
var txt = ctrl as TextEdit;
bool _bl = _isRead(txt.Tag, isEdt);
txt.ReadOnly = _bl;
// txt.ReadOnly = isEdt;
continue;
}
}
}
///
/// 清空容器里面的控件
///
/// controls:为groupBox1.Controls/panel1.Controls
/// 是否可编辑
/// 关联的grid
public static void CleanValueByControl(ControlCollection controls,
bool isEdt, List gridViews = null)
{
isEdt = !isEdt;
if (gridViews != null)
{
foreach (var gv in gridViews)
{
foreach (GridColumn colmn in gv.Columns)
{
colmn.OptionsColumn.AllowEdit = true;
if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui"))
{
colmn.Visible = !isEdt;
}
else
{
if (isEdt == false)
{
if (colmn.Tag != null && colmn.Tag.ToString().EndsWith("edit"))
colmn.OptionsColumn.ReadOnly = isEdt;
else
colmn.OptionsColumn.ReadOnly = !isEdt;
}
else
colmn.OptionsColumn.ReadOnly = isEdt;
}
}
}
}
foreach (Control ctrl in controls)
{
//多行文本
if (ctrl is MemoEdit)
{
var txt = ctrl as MemoEdit;
if (txt.Tag != null && txt.Tag.ToString().Length > 0 && txt.Tag.ToString().StartsWith("moren"))
{
txt.Text = txt.Tag.ToString().Replace("moren.", "");
}
else
txt.Text = "";
if (_isRead(txt.Tag))
{
txt.ReadOnly = true;
}
else
txt.ReadOnly = isEdt;
continue;
}
//下拉
if (ctrl is ComboBoxEdit)
{
var txt = ctrl as ComboBoxEdit;
if (txt.Properties.TextEditStyle ==
TextEditStyles.DisableTextEditor)
txt.SelectedIndex = 0;
else
txt.Text = "";
txt.ReadOnly = isEdt;
continue;
}
//自定义的下拉
if (ctrl is UcComBox)
{
var txt = ctrl as UcComBox;
txt.Val = "0";
txt.Enabled = !isEdt;
continue;
}
//文本
if (ctrl is TextEdit)
{
var txt = ctrl as TextEdit;
if (txt.Tag != null && txt.Tag.ToString().Length > 0 && txt.Tag.ToString().StartsWith("moren"))
{
txt.Text = txt.Tag.ToString().Replace("moren.", "");
}
else
txt.Text = "";
if (_isRead(txt.Tag))
{
txt.ReadOnly = true;
}
else
txt.ReadOnly = isEdt;
continue;
}
//时间
if (ctrl is DateTimePicker)
{
var txt = ctrl as DateTimePicker;
txt.Enabled = !isEdt;
continue;
}
//单选
if (ctrl is CheckBox)
{
var txt = ctrl as CheckBox;
txt.Enabled = !isEdt;
txt.Checked = false;
}
if (ctrl is CheckEdit)
{
var txt = ctrl as CheckEdit;
txt.ReadOnly = isEdt;
txt.Checked = false;
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 UcLookUser)
{
var txt = ctrl as UcLookUser;
txt.SetIdOrCode("-1");
txt.Enabled = !isEdt;
continue;
}
//自定打印机
if (ctrl is UcLookPrint)
{
var txt = ctrl as UcLookPrint;
txt.SetIdOrCode("-1");
txt.Enabled = !isEdt;
continue;
}
//自定缺陷类别
if (ctrl is UcLookDefectType)
{
var txt = ctrl as UcLookDefectType;
txt.SetIdOrCode("-1");
txt.Enabled = !isEdt;
continue;
}
//自定部门
if (ctrl is UcLookDepartment)
{
var txt = ctrl as UcLookDepartment;
txt.SetIdOrCode("-1");
txt.Enabled = !isEdt;
continue;
}
//自定daa
if (ctrl is UcLookDaa)
{
var txt = ctrl as UcLookDaa;
txt.SetIdOrCode("-1");
txt.Enabled = !isEdt;
continue;
}
//自定委外
if (ctrl is UcLookWwgd)
{
var txt = ctrl as UcLookWwgd;
txt.SetIdOrCode("-1");
txt.Enabled = !isEdt;
continue;
}
if (ctrl is SimpleButton)
{
var txt = ctrl as SimpleButton;
txt.Enabled = !isEdt;
continue;
}
}
}
///
/// 禁用或启用容器里面的控件
///
/// controls:为groupBox1.Controls/panel1.Controls
///
///
public static void ChangeEnableByControl(ControlCollection controls,
bool isEdt, List gridViews = null)
{
isEdt = !isEdt;
if (gridViews != null)
{
foreach (var gv in gridViews)
{
foreach (GridColumn colmn in gv.Columns)
{
colmn.OptionsColumn.AllowEdit = true;
if (colmn.Name.ToString().Contains("gvMxDel") || colmn.Name.ToString().Contains("gvMxTui"))
{
colmn.Visible = !isEdt;
}
else
{
if (colmn.Tag != null && colmn.Tag.ToString().EndsWith("edit"))
colmn.OptionsColumn.ReadOnly = isEdt;
else
colmn.OptionsColumn.ReadOnly = isEdt;
}
}
}
}
foreach (Control ctrl in controls)
{
//文本
if (ctrl is TextEdit)
{
var txt = ctrl as TextEdit;
if (_isRead(txt.Tag))
{
txt.ReadOnly = true;
}
else
txt.ReadOnly = isEdt;
continue;
}
if (ctrl is MemoEdit)
{
var txt = ctrl as MemoEdit;
if (_isRead(txt.Tag))
{
txt.ReadOnly = true;
}
else
txt.ReadOnly = isEdt;
continue;
}
//数字卡
if (ctrl is NumericUpDown)
{
var txt = ctrl as NumericUpDown;
txt.ReadOnly = isEdt;
continue;
}
//下拉
if (ctrl is 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;
}
//自定用户
if (ctrl is UcLookUser)
{
var txt = ctrl as UcLookUser;
if (txt.IsReadly == false)
txt.Enabled = !isEdt;
else
txt.Enabled = false;
continue;
}
//自定打印
if (ctrl is UcLookPrint)
{
var txt = ctrl as UcLookPrint;
if (txt.IsReadly == false)
txt.Enabled = !isEdt;
else
txt.Enabled = false;
continue;
}
//自定缺陷类别
if (ctrl is UcLookDefectType)
{
var txt = ctrl as UcLookDefectType;
if (txt.IsReadly == false)
txt.Enabled = !isEdt;
else
txt.Enabled = false;
continue;
}
//自定部门
if (ctrl is UcLookDepartment)
{
var txt = ctrl as UcLookDepartment;
if (txt.IsReadly == false)
txt.Enabled = !isEdt;
else
txt.Enabled = false;
continue;
}
//自定daa
if (ctrl is UcLookDaa)
{
var txt = ctrl as UcLookDaa;
if (txt.IsReadly == false)
txt.Enabled = !isEdt;
else
txt.Enabled = false;
continue;
}
//自定委外
if (ctrl is UcLookWwgd)
{
var txt = ctrl as UcLookWwgd;
if (txt.IsReadly == false)
txt.Enabled = !isEdt;
else
txt.Enabled = false;
continue;
}
if (ctrl is SimpleButton)
{
var txt = ctrl as SimpleButton;
txt.Enabled = !isEdt;
continue;
}
}
}
private static bool _isRead(object obj, bool isEdt = false)
{
///永远是只读的
if (obj != null && obj.ToString().ToUpper() == ("readOnly".ToUpper()))
{
return true;
}
///永远是可写的
if (obj != null && obj.ToString().ToUpper() == ("readOnly-1".ToUpper()))
{
return false;
}
return isEdt;
}
///
/// 切换选项卡
///
/// 选项卡容器
/// 从0开始,如果是999,则全部可用
public static void JumpToTab(XtraTabControl tabControl, int idx)
{
if (idx == 999)
{
for (var i = 0; i < tabControl.TabPages.Count; i++)
tabControl.TabPages[i].PageEnabled = true;
tabControl.SelectedTabPageIndex = tabControl.TabPages.Count - 1;
return;
}
for (var i = 0; i < tabControl.TabPages.Count; i++)
tabControl.TabPages[i].PageEnabled = false;
tabControl.TabPages[idx].PageEnabled = true;
tabControl.SelectedTabPageIndex = idx;
}
///
/// tab跳转:0查看,1退出,2删除,3修改,4新增加
///
///
/// 0查看,1退出,2删除,3修改,4新增加
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;
}
}
///
/// TreeView联动选择
///
///
public static void TreeViewCheck(TreeViewEventArgs e)
{
try
{
if (e.Node.Nodes.Count > 0)
foreach (TreeNode tn in e.Node.Nodes)
{
tn.Checked = e.Node.Checked;
foreach (TreeNode x in tn.Nodes)
{
x.Checked = e.Node.Checked;
foreach (TreeNode y in x.Nodes)
y.Checked = e.Node.Checked;
}
}
if (e.Node.Checked && e.Node.Parent != null &&
e.Node.Parent.Nodes.Count > 0)
{
var currentNode = e.Node;
while (currentNode != null)
{
currentNode.Checked = e.Node.Checked;
currentNode = currentNode.Parent;
}
}
}
catch (Exception ex)
{
MsgHelper.ShowError(ex.Message);
}
}
///
/// 转驼峰命名
///
///
///
public static string ToCamelCase(string strItem)
{
//如果包含小写,但不包含下划线
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);
}
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;
}
///
/// 转Guid
///
///
///
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;
}
public static bool ToBoole(string str)
{
if (str.ToUpper() == "true".ToUpper())
return true;
return false;
}
public string GetIsNullOrEmpty(string str)
{
if (string.IsNullOrEmpty(str.Trim()))
return "{>";
return str.Trim();
}
///
/// 读取grid的当前行
///
///
/// 编辑框中的主键名
/// 编辑框中的文本框名
///
///
///
public static (string, string) GetCurrentRow(
XtraTabControl xtraTabControl1
, Label lbGuid
, TextEdit txtName
, GridView gridView1
, string fileName = ""
, int SelectedTabPageIndex = 1)
{
var _strGuid = "";
var _strName = "";
if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex &&
lbGuid.Text.Length > 10)
{
_strGuid = lbGuid.Text.Trim();
_strName = txtName.Text.Trim();
}
else
{
var dr = gridView1.GetFocusedDataRow();
if (dr == null || string.IsNullOrEmpty(dr["guid"].ToString()))
{
}
else
{
_strGuid = dr["guid"].ToString();
if (string.IsNullOrEmpty(fileName))
_strName = dr[1].ToString();
else
_strName = dr[fileName].ToString();
}
}
return (_strGuid, _strName);
}
///
/// 读取TreeView的当前行
///
///
///
///
///
///
///
public static (string, string) GetCurrentRow(
XtraTabControl xtraTabControl1
, Label lbGuid
, TextEdit txtName
, TreeView tlMenu
, int SelectedTabPageIndex = 1)
{
var _strGuid = "";
var _strName = "";
if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex &&
lbGuid.Text.Length > 10)
{
_strGuid = lbGuid.Text.Trim();
_strName = txtName.Text.Trim();
}
else
{
var clickedNode = tlMenu.SelectedNode;
if (clickedNode != null)
{
_strGuid = clickedNode.Name;
_strName = clickedNode.Text.Trim();
}
}
return (_strGuid, _strName);
}
///
/// 读取TreeList的当前行
///
///
///
///
///
///
///
public static (string, string) GetCurrentRow(
XtraTabControl xtraTabControl1
, Label lbGuid
, TextEdit txtName
, TreeList tlMenu
, int SelectedTabPageIndex = 1)
{
var _strGuid = "";
var _strName = "";
if (xtraTabControl1.SelectedTabPageIndex == SelectedTabPageIndex &&
lbGuid.Text.Length > 10)
{
_strGuid = lbGuid.Text.Trim();
_strName = txtName.Text.Trim();
}
else
{
_strGuid = tlMenu.FocusedNode.GetValue("guid").ToString();
_strName = tlMenu.FocusedNode.GetValue(0).ToString();
}
return (_strGuid, _strName);
}
///
/// 读取GridView双击的主键
///
///
///
///
///
public static string GetCurrentDoubleRow(GridView gridView1
, MouseEventArgs e
, string colName)
{
var info = gridView1.CalcHitInfo(e.Location);
if (info.InRow)
{
var view = info.View;
if (view != null)
{
var row = view.GetDataRow(info.RowHandle);
if (row != null)
{
var rowGuid = row[colName].ToString();
return rowGuid;
}
}
}
return "";
}
///
/// 读取GridView双击的主键
///
///
///
///
///
public static string GetCurrentDoubleRow(TreeList tlMenu
, MouseEventArgs e
, string colName)
{
var info = tlMenu.CalcHitInfo(e.Location);
if (info.Node != null)
{
var clickedNode = tlMenu.FocusedNode;
if (clickedNode.FirstNode == null)
{
var rowGuid = clickedNode.GetValue(colName).ToString();
return rowGuid;
}
}
return "";
}
///
///
///
///
///
///
/// 对应的审核字段名称
///
public static void SetCheckIco(object s, PictureBox btnChkIco, Form fm, string fileName = "checkStatus", string icoName = "")
{
GridView dgv = s as GridView;
if (dgv != null)
{
if (dgv.GetSelectedRows() != null)
{
var selectedRow = dgv.GetSelectedRows()[0]; // 获取第一个选中行的索引
if (selectedRow >= 0)
{
var checkStatus = dgv.GetRowCellValue(selectedRow, fileName).ToString(); // 获取指定列的值
btnChkIco.Text = checkStatus;
btnChkIco.Visible = true;
if (checkStatus == "1" || checkStatus.ToUpper() == true.ToString().ToUpper())
{
btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_check;
btnChkIco.Tag = "已审核";
}
else
{
btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_noCheck;
btnChkIco.Tag = "未审核";
}
btnChkIco.Anchor = AnchorStyles.Top | AnchorStyles.Right; // 靠右
btnChkIco.Location = new Point(fm.ClientSize.Width - btnChkIco.Width - 20, 80); // 距离顶部10像素
}
}
}
}
#region 设置搜索
public static string getQueryWord(string str)
{
return str.ToUpper().Replace("query_".ToUpper(), "");
}
public static FilterEntity getFilterEntityWord(string id, string idDec, string val)
{
return new FilterEntity(getQueryWord(id), idDec + ")", " like ", "包含)", "%" + val + "%");
}
public static List GetDilter(GridColumnCollection Columns, GridView gridView1 = null)
{
List fiList = new List();
if (gridView1 != null)
{
bool b = gridView1.ActiveFilterEnabled;
if (b == false)
return fiList;
}
foreach (DevExpress.XtraGrid.Columns.GridColumn col in Columns)
{
ColumnFilterInfo filter = col.FilterInfo;
if (string.IsNullOrEmpty(filter.FilterString))
continue;
// 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;
}
///
/// 根据过滤器,读取查询条件,org表为组织
///
///
///
public static string GetSearchWhere(List _filterList)
{
var _sbSqlWhere = new StringBuilder();
foreach (var itm in _filterList)
{
if (itm.fileId.ToUpper().Contains("org".ToUpper()))
{
if (IsNumeric(itm.fileValue.Replace("%", "")))
_sbSqlWhere.Append(" and org.FNumber " + itm.fileOper + "'" + itm.fileValue + "'");
else
{
_sbSqlWhere.Append(" and org.NAME " + itm.fileOper + "'" + itm.fileValue.Trim() + "'");
}
}
else
_sbSqlWhere.Append(" and " + itm.fileId + itm.fileOper + "'" +
itm.fileValue + "'");
}
return _sbSqlWhere.ToString();
}
public delegate void DelegateGetModel(string guid);
public delegate void DelegateGetList(int currentPage);
///
///
///
/// gridview
/// 图标按钮
///
/// 字段
/// 图标路径
///
public static void SetGridViewParameter(GridView gridView1, PictureBox picCheckBox = null, Form fm = null, string fileName = "checkStatus", string icoName = "", DelegateGetModel action = null)
{
gridView1.OptionsView.ColumnAutoWidth = false;//自动调整列宽
foreach (GridColumn column in gridView1.Columns)
{
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 (column.Tag == null || column.Tag.ToString().Length <= 0)
column.OptionsFilter.AllowAutoFilter = 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.IndicatorWidth = 50;
gridView1.CustomDrawRowIndicator += (s, e) =>
{
//if (e.RowHandle == GridControl.AutoFilterRowHandle)
//{
// e.Info.DisplayText = "筛选行";
//}
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;
bool columnExists = row.Table.Columns.Contains("isRed");
if (columnExists == true)
{
string _isRed = row["isRed"].ToString();
if (_isRed == "1")
{
e.Appearance.BackColor = Color.LightPink;
}
}
}
};
}
private static void ActiveEditor_MouseUp(object sender, MouseEventArgs e)
{
BaseEdit edit = sender as BaseEdit;
edit.MouseUp -= ActiveEditor_MouseUp;
edit.SelectAll();
}
public static void SetTabParameter(GridView gridView1, DevExpress.XtraTab.XtraTabControl xtraTabControl1, UcPageBar pageBar1, DelegateGetModel action = null, DelegateGetList page = null)
{
xtraTabControl1.SelectedPageChanged += (s, e) =>
{
if (xtraTabControl1.SelectedTabPageIndex == 1)
{
int _handle = gridView1.FocusedRowHandle;
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 (xtraTabControl1.SelectedTabPageIndex == 0)
{
// page(pageBar1.CurrentPage);
}
};
}
///
/// 设置明细grid样式
///
///
///
///
///
///
public static void SetGridViewParameterMx(GridView gridView1)
{
gridView1.OptionsView.ColumnAutoWidth = false;//自动调整列宽
gridView1.OptionsFilter.AllowFilterEditor = false;
gridView1.OptionsFilter.ShowCustomFunctions = DevExpress.Utils.DefaultBoolean.False;
gridView1.OptionsCustomization.AllowFilter = false;
gridView1.OptionsFind.ShowSearchNavButtons = false;
gridView1.OptionsView.ShowAutoFilterRow = false;
gridView1.OptionsView.ShowGroupPanel = false;
gridView1.IndicatorWidth = 40;
gridView1.CustomDrawRowIndicator += (s, e) =>
{
if (e.Info.IsRowIndicator && e.RowHandle >= 0)
e.Info.DisplayText = (e.RowHandle + 1).ToString();
};
gridView1.CustomDrawEmptyForeground += (s, e) =>
{
var str = "暂无明细数据!";
var f = new Font("微软雅黑", 16);
var r = new Rectangle(gridView1.GridControl.Width / 2 - 100,
e.Bounds.Top + 45, e.Bounds.Right - 5, e.Bounds.Height - 5);
e.Graphics.DrawString(str, f, Brushes.Gray, r);
};
gridView1.ValidatingEditor += (sender, e) =>
{
//yz_quantity_0
GridView view = sender as GridView;
if (view.FocusedColumn.Tag != null && view.FocusedColumn.Tag.ToString().StartsWith("yz_"))
{
string[] _ary = view.FocusedColumn.Tag.ToString().Split('_');
if (_ary.Length > 2)
{
if (_ary[2] == "0")
{
double price = 0; if (!Double.TryParse(e.Value as String, out price))
{ e.Valid = false; e.ErrorText = "请输入正确的数字."; }
return;
}
}
}
};
}
#endregion
public static bool IsNumeric(string str)
{
Regex regex = new Regex("^[0-9]+$");
return regex.IsMatch(str);
}
}
///
/// 下拉框条目类
///
public class CboItemEntity
{
public CboItemEntity()
{
}
public CboItemEntity(string val, string text)
{
Text = text;
Value = val;
}
///
/// 显示值
///
public object Text { get; set; } = 0;
///
/// 对象值
///
public object Value { get; set; } = "";
public override string ToString()
{
return Text.ToString();
}
}
///
/// 查询框
///
public class FilterEntity
{
///
///
/// 字段名
/// 字段名备注
/// 操作符
/// 操作符备注
///
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; }
}
}