using System;
|
using System.Collections.Generic;
|
using System.Configuration;
|
using System.Data;
|
using System.Drawing;
|
using System.IO;
|
using System.Linq;
|
using System.Net;
|
using System.Net.Cache;
|
using System.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.Utils.DirectXPaint;
|
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 OracleInternal.Sharding;
|
using UserControls.Data;
|
using static System.Windows.Forms.Control;
|
|
|
namespace Gs.DevApp.ToolBox
|
{
|
/// <summary>
|
/// 通用类
|
/// </summary>
|
public class UtilityHelper
|
{
|
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;
|
}
|
}
|
}
|
|
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;
|
}
|
|
/// <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)
|
{
|
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;
|
}
|
|
/// <summary>
|
/// 初始化一个表
|
/// </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()
|
{
|
var userGuid =
|
string.IsNullOrEmpty(LoginInfoModel.CurrentUser.LoginUserGuid)
|
? Guid.NewGuid().ToString()
|
: LoginInfoModel.CurrentUser.LoginUserGuid;
|
var token = userGuid;
|
return token;
|
}
|
|
/// <summary>
|
/// 服务返回的json转为ReturnModel-->包含TablePage分页,
|
/// </summary>
|
/// <param name="strReturn"></param>
|
/// <returns></returns>
|
public static ReturnModel<PageListModel> ReturnToTablePage(
|
string 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());
|
var array = new JArray();
|
var d = json["rtnData"]["list"];
|
foreach (var a in d) array.Add(a);
|
var dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
|
rto.rtnData.list = dt;
|
return rto;
|
}
|
|
/// <summary>
|
/// 服务返回的json返回ReturnModel,
|
/// </summary>
|
/// <param name="strReturn"></param>
|
/// <returns></returns>
|
public static ReturnModel<dynamic> ReturnToDynamic(string 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"];
|
return rto;
|
}
|
|
/// <summary>
|
/// 服务返回的json串返回ReturnModel-->仅仅有list,不分页,
|
/// </summary>
|
/// <param name="strReturn"></param>
|
/// <returns></returns>
|
public static ReturnModel<DataTable> ReturnToList(string 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();
|
var array = new JArray();
|
var d = json["rtnData"];
|
foreach (var a in d) array.Add(a);
|
var dt = JsonConvert.DeserializeObject<DataTable>(array.ToString());
|
rto.rtnData = dt;
|
return rto;
|
}
|
|
/// <summary>
|
/// 根据对象批量设置文本框的值
|
/// </summary>
|
/// <param name="controls">controls:为groupBox1.Controls/panel1.Controls</param>
|
/// <param name="dynamicObject">对像</param>
|
/// <param name="isEdt">是否可编辑</param>
|
/// <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)
|
{
|
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;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 清空容器里面的控件
|
/// </summary>
|
/// <param name="controls">controls:为groupBox1.Controls/panel1.Controls</param>
|
/// <param name="isEdt">是否可编辑</param>
|
/// <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)
|
{
|
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;
|
if (txt.Tag != null && txt.Tag.ToString().Length > 0 && txt.Tag.ToString().StartsWith("moren"))
|
{
|
txt.Checked = bool.Parse(txt.Tag.ToString().Replace("moren.", ""));
|
}
|
else
|
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;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 禁用或启用容器里面的控件
|
/// </summary>
|
/// <param name="controls">controls:为groupBox1.Controls/panel1.Controls</param>
|
/// <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)
|
{
|
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;
|
}
|
/// <summary>
|
/// 切换选项卡
|
/// </summary>
|
/// <param name="tabControl">选项卡容器</param>
|
/// <param name="idx">从0开始,如果是999,则全部可用</param>
|
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;
|
}
|
|
|
/// <summary>
|
/// tab跳转:0查看,1退出,2删除,3修改,4新增加
|
/// </summary>
|
/// <param name="tabControl"></param>
|
/// <param name="idx">0查看,1退出,2删除,3修改,4新增加</param>
|
public static void JumpTab(XtraTabControl tabControl, int action)
|
{
|
|
if (action == 0)
|
{
|
tabControl.TabPages[0].PageEnabled = true;
|
tabControl.TabPages[1].PageEnabled = true;
|
tabControl.SelectedTabPageIndex = 1;
|
return;
|
}
|
if (action == 1)
|
{
|
tabControl.TabPages[0].PageEnabled = true;
|
tabControl.TabPages[1].PageEnabled = true;
|
tabControl.SelectedTabPageIndex = 0;
|
return;
|
}
|
if (action == 2)
|
{
|
tabControl.TabPages[0].PageEnabled = true;
|
tabControl.TabPages[1].PageEnabled = true;
|
tabControl.SelectedTabPageIndex = 0;
|
return;
|
}
|
if (action == 3)
|
{
|
tabControl.TabPages[0].PageEnabled = false;
|
tabControl.TabPages[1].PageEnabled = true;
|
tabControl.SelectedTabPageIndex = 1;
|
return;
|
}
|
if (action == 4)
|
{
|
tabControl.TabPages[0].PageEnabled = false;
|
tabControl.TabPages[1].PageEnabled = true;
|
tabControl.SelectedTabPageIndex = 1;
|
return;
|
}
|
if (action == 5)
|
{
|
tabControl.TabPages[0].PageEnabled = true;
|
tabControl.TabPages[1].PageEnabled = true;
|
tabControl.SelectedTabPageIndex = 1;
|
return;
|
}
|
}
|
|
/// <summary>
|
/// TreeView联动选择
|
/// </summary>
|
/// <param name="e"></param>
|
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);
|
}
|
}
|
|
/// <summary>
|
/// 转驼峰命名
|
/// </summary>
|
/// <param name="input"></param>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <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 decimal ToDecimal(string str)
|
{
|
try
|
{
|
return decimal.Parse(str);
|
}
|
catch (Exception)
|
{
|
|
return 0;
|
}
|
}
|
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;
|
}
|
|
|
/// <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() || checkStatus == "已审核")
|
{
|
btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_check;
|
btnChkIco.Tag = "已审核";
|
}
|
else
|
{
|
btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_noCheck;
|
btnChkIco.Tag = "未审核";
|
}
|
btnChkIco.Anchor = AnchorStyles.Top | AnchorStyles.Right; // 靠右
|
btnChkIco.Location = new Point(fm.ClientSize.Width - btnChkIco.Width - 20, 80); // 距离顶部10像素
|
}
|
}
|
}
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="gridView1"></param>
|
/// <param name="zdChk">chk字段</param>
|
/// <param name="zdChkUser">chk user</param>
|
/// <param name="zdCkDate">chk date</param>
|
/// <param name="btnChkIco"></param>
|
/// <param name="fm">当前窗体</param>
|
/// <param name="fileName">1为审核,0为反审核</param>
|
/// <param name="icoName"></param>
|
public static void SetCheckIco(GridView gridView1, string zdChk, string zdChkUser, string zdCkDate, PictureBox btnChkIco, Form fm, string fileName, string icoName = "")
|
{
|
if (fileName == "1" || fileName.ToUpper() == true.ToString().ToUpper())
|
{
|
btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_check;
|
btnChkIco.Tag = "已审核";
|
if (!string.IsNullOrEmpty(zdChkUser))
|
gridView1.SetFocusedRowCellValue(zdChkUser, "已审核");
|
if (!string.IsNullOrEmpty(zdCkDate))
|
gridView1.SetFocusedRowCellValue(zdCkDate, DateTime.Now.ToString());
|
if (!string.IsNullOrEmpty(zdChk))
|
gridView1.SetFocusedRowCellValue(zdChk, true);
|
}
|
else
|
{
|
btnChkIco.Image = global::Gs.DevApp.Properties.Resources.ico_noCheck;
|
btnChkIco.Tag = "未审核";
|
if (!string.IsNullOrEmpty(zdChkUser))
|
gridView1.SetFocusedRowCellValue(zdChkUser, "");
|
if (!string.IsNullOrEmpty(zdCkDate))
|
gridView1.SetFocusedRowCellValue(zdCkDate, "");
|
if (!string.IsNullOrEmpty(zdChk))
|
gridView1.SetFocusedRowCellValue(zdChk, false);
|
}
|
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, GridView gridView1 = null)
|
{
|
List<FilterEntity> fiList = new List<FilterEntity>();
|
if (gridView1 != null)
|
{
|
bool b = gridView1.ActiveFilterEnabled;
|
if (b == false)
|
return fiList;
|
}
|
foreach (DevExpress.XtraGrid.Columns.GridColumn col in Columns)
|
{
|
ColumnFilterInfo filter = col.FilterInfo;
|
if (string.IsNullOrEmpty(filter.FilterString))
|
continue;
|
// 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();
|
}
|
|
|
public delegate void DelegateGetModel(string guid);
|
public delegate void DelegateGetList(int currentPage);
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="gridView1">gridview</param>
|
/// <param name="picCheckBox">图标按钮</param>
|
/// <param name="fm"></param>
|
/// <param name="fileName">字段</param>
|
/// <param name="icoName">图标路径</param>
|
/// <param name="action"></param>
|
public static void SetGridViewParameter(GridView gridView1, PictureBox picCheckBox = null, Form fm = null, string fileName = "checkStatus", string icoName = "", DelegateGetModel action = null, string namespaceFullName = "")
|
{
|
getGridViewConfig(gridView1, namespaceFullName);
|
gridView1.Appearance.HeaderPanel.ForeColor = DevExpress.LookAndFeel.DXSkinColors.ForeColors.ControlText;
|
gridView1.OptionsView.ColumnAutoWidth = false;//自动调整列宽
|
foreach (GridColumn column in gridView1.Columns)
|
{
|
column.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
|
column.OptionsColumn.AllowEdit = true;
|
column.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Contains;
|
column.OptionsFilter.AutoFilterCondition = DevExpress.XtraGrid.Columns.AutoFilterCondition.Contains;
|
column.OptionsFilter.ImmediateUpdateAutoFilter = false;
|
if (column.Tag == null || column.Tag.ToString().EndsWith("edit"))
|
column.OptionsColumn.ReadOnly = false;
|
else
|
column.OptionsColumn.ReadOnly = true;
|
if (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.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.ForeColor = Color.Tomato;
|
}
|
}
|
// 设置焦点行的背景色
|
if (gridView1.GetRow(e.RowHandle) == gridView1.GetFocusedRow())
|
{
|
e.Appearance.BackColor = Color.Azure;
|
e.Appearance.BackColor2 = Color.LightSkyBlue;
|
}
|
//else if (gridView1.IsRowHotTracked(e.RowHandle))
|
//{
|
// // 设置鼠标悬停行的背景色
|
// e.Appearance.BackColor = Color.LightBlue;
|
// e.Appearance.BackColor2 = Color.LightBlue;
|
//}
|
}
|
};
|
|
}
|
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);
|
}
|
};
|
}
|
|
/// <summary>
|
/// 设置明细grid样式
|
/// </summary>
|
/// <param name="gridView1"></param>
|
/// <param name="btnChkIco"></param>
|
/// <param name="fm"></param>
|
/// <param name="fileName"></param>
|
/// <param name="icoName"></param>
|
public static void SetGridViewParameterMx(GridView gridView1)
|
{
|
// gridView1.OptionsView.Alignment = DataGridViewContentAlignment.MiddleLeft;
|
foreach (GridColumn column in gridView1.Columns)
|
{
|
// column.DefaultCellStyle.Alignment = true;
|
column.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
|
}
|
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);
|
}
|
|
private static void getGridViewConfig(GridView gridView1, string namespaceFullName)
|
{
|
gridView1.OptionsView.ShowGroupPanel = false;
|
// gridView1.OptionsMenu.EnableColumnMenu = false;
|
gridView1.OptionsCustomization.AllowGroup = false;
|
if (string.IsNullOrEmpty(namespaceFullName)) return;
|
var _obj = new
|
{
|
formPath = namespaceFullName,
|
};
|
try
|
{
|
string strJson = UtilityHelper.HttpPost("", "Fm/GetModel", JsonConvert.SerializeObject(_obj));
|
ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson);
|
if (_rtn.rtnCode > 0)
|
{
|
JObject _job = JObject.Parse(strJson);
|
JArray array = new JArray();
|
foreach (var a in _job["rtnData"]["list"])
|
{
|
array.Add(a);
|
}
|
foreach (GridColumn column in gridView1.Columns)
|
{
|
JToken john = array.FirstOrDefault(t => t["controlId"].ToString().ToUpper() == column.Name.ToString().Trim().ToUpper());
|
if (john != null)
|
{
|
string controlIdx = john["controlIdx"].ToString();
|
string controlVisible = john["controlVisible"].ToString();
|
if (!string.IsNullOrEmpty(controlIdx))
|
column.VisibleIndex = int.Parse(controlIdx);
|
if (!string.IsNullOrEmpty(controlVisible))
|
column.Visible = bool.Parse(controlVisible);
|
}
|
}
|
}
|
else
|
ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg);
|
}
|
catch (Exception ex)
|
{
|
ToolBox.MsgHelper.Warning("提示:" + ex.Message);
|
}
|
}
|
}
|
|
/// <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; }
|
}
|
}
|