using System; using System.Collections.Generic; using System.Linq; using System.Text; using Infragistics.Win.UltraWinGrid; using System.Drawing; using CoreFS.CA06; using Infragistics.Win.UltraWinEditors; using System.Data; using System.Windows.Forms; using Core.Mes.Client.Comm.Server; using Infragistics.Win.UltraWinMaskedEdit; using System.Collections; using Infragistics.Win; using System.Text.RegularExpressions; namespace Core.StlMes.Client.YdmStuffManage { public class BaseMethod { /// /// 初始化下拉框 /// /// 下拉框 /// 请求的服务 /// 值成员 /// ob对象 /// 是否有空行 public static void InitComboEditor(UltraComboEditor uce, string methodId, string valueMember, OpeBase ob, bool isEmpty) { DataTable dt = ServerHelper.GetData(methodId, null, ob); if (dt != null && dt.Rows.Count > 0) { if (isEmpty) { Object[] obj = new Object[] { "", "" }; DataRow dr = dt.NewRow(); dr.ItemArray = obj; dt.Rows.InsertAt(dr, 0); } uce.DataSource = dt; uce.ValueMember = valueMember; SetComboItemHeight(uce); } } /// /// 初始化下拉框 --带参数的 /// /// /// /// /// /// /// public static void InitComboEditorWithParmArr(UltraComboEditor uce, string methodId, string valueMember, OpeBase ob, bool isEmpty, params object[] parm) { DataTable dt = ServerHelper.GetData(methodId, parm, ob); if (dt != null && dt.Rows.Count > 0) { if (isEmpty) { Object[] obj = new Object[] { "", "" }; DataRow dr = dt.NewRow(); dr.ItemArray = obj; dt.Rows.InsertAt(dr, 0); } uce.DataSource = dt; uce.ValueMember = valueMember; uce.SelectedIndex = -1; SetComboItemHeight(uce); } } /// /// 设置UltraComboEditor中的中文和非中文统一高度。 /// /// public static void SetComboItemHeight(UltraComboEditor cmb) { foreach (ValueListItem item in cmb.Items) { if (Regex.IsMatch(item.DisplayText, @"[\u4e00-\u9fa5]+")) { item.Appearance.FontData.SizeInPoints = 9.0F; } else { item.Appearance.FontData.SizeInPoints = 10.5F; } } } /// /// UltraGrid可读 /// /// UltraGrid /// 可编辑列 public static void setOtherColumnReadOnly(UltraGrid ugr, string[] keys) { keys.ToArray(); foreach (UltraGridColumn ugc in ugr.DisplayLayout.Bands[0].Columns) { if (!keys.Contains(ugc.Key)) { ugc.CellActivation = Activation.ActivateOnly; } } } /// /// UltraGrid激活某行 /// /// UltraGrid /// 列名 /// 对应的值 public static void UltraGridLocation(UltraGrid ug, String[] keys, String[] values) { if (ug.Rows.Count == 0) { return; } if (keys.Length == 0 || values.Length == 0 || values.Length != keys.Length) { return; } foreach (UltraGridRow ugr in ug.Rows) { Boolean flag = true; for (int i = 0; i < keys.Length; i++) { if (!ugr.Cells[keys[i]].ToString().Equals(values[i])) { flag = false; } } if (flag == true) { ugr.Activate(); return; } } } /// /// 设置列字段显示位置在右 /// /// UltraGrid /// 要设置的列 public static void InitCellPosition(UltraGrid ug, string[] columnsKeys) { columnsKeys.ToArray(); foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns) { if (columnsKeys.Contains(ugc.Key.ToString())) { ugc.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right; } } } /// /// 设置列字段显示位置在右 /// /// UltraGrid /// 要设置的列 public static void InitCellPosition(UltraGrid ug, string[] columnsKeys,int dex) { columnsKeys.ToArray(); foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[dex].Columns) { if (columnsKeys.Contains(ugc.Key.ToString())) { ugc.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right; } } } /// /// 列求和 /// /// UltraGrid /// 列数组 public static void GridColumnSum(UltraGrid ug, string[] columnKeys) { if (columnKeys.Length == 0) { return; } for (int i = 0; i < columnKeys.Length; i++) { ug.DisplayLayout.Bands[0].Summaries.Add(SummaryType.Sum, ug.DisplayLayout.Bands[0].Columns[columnKeys[i]], SummaryPosition.UseSummaryPositionColumn); } } /// /// 设置UltraGrid行颜色 /// /// UltraGrid /// 列 /// 值 /// 颜色 public static void SetUltraGridRowColor(UltraGrid ug, string[] columnKeys, string[] values, Color color) { if (ug.Rows.Count == 0 || columnKeys.Length == 0 || values.Length == 0 || color == null || values.Length != columnKeys.Length) { return; } foreach (UltraGridRow ugr in ug.Rows) { Boolean flag = true; for (int i = 0; i < columnKeys.Length; i++) { if (!ugr.Cells[columnKeys[i]].Value.ToString().Equals(values[i])) { flag = false; } } if (flag) { ugr.Appearance.BackColor = color; } } } /// /// 合并单元格 /// /// /// public static void MergedCell(UltraGrid ug, string[] columnKeys) { if (columnKeys.Length == 0) { return; } ug.DisplayLayout.Override.MergedCellStyle = MergedCellStyle.Never; for (int i = 0; i < columnKeys.Length; i++) { ug.DisplayLayout.Bands[0].Columns[columnKeys[i]].MergedCellStyle = MergedCellStyle.Always; } } /// /// 仓库数据权限 /// /// 页面配制信息(自定义参数) /// 用户数据权限 /// 可查看仓库组成的字符串 public static string[] WarehousePermissions(String customInfo, String[] validDataPurviewIds, OpeBase ob) { string storageType = "";//仓库类别 string storageAttr = "";//仓库类型 if (customInfo.Length >= 0 && customInfo.Contains(",")) { string[] strflg = customInfo.ToString().Split(new char[] { ',' }); storageType = strflg[0]; storageAttr = strflg[1]; } DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.base.WarehousePermissions.getWarehousePermissions", new object[] { storageType, storageAttr, validDataPurviewIds }, ob); if (dt != null && dt.Rows.Count > 0) { string[] storages = new string[dt.Rows.Count]; for (int i = 0; i < dt.Rows.Count; i++) { storages[i] = dt.Rows[i]["STORAGE_NO"].ToString(); } return storages; } else { return new string[1] { "" }; } } /// /// 仓库数据权限(用于报表) /// /// 页面配制信息(自定义参数) /// 用户数据权限 /// 可查看仓库组成的字符串 public static string[] WarehousePermissionsStore(String[] validDataPurviewIds, OpeBase ob) { DataTable dt = ServerHelper.GetData("Core.LgMes.Server.Stuffmanage.WarehousePermissions.getWarehousePermissionsStore", new object[] { validDataPurviewIds }, ob); if (dt != null && dt.Rows.Count > 0) { string[] storages = new string[dt.Rows.Count]; for (int i = 0; i < dt.Rows.Count; i++) { storages[i] = dt.Rows[i]["STORAGE_NO"].ToString(); } return storages; } else { return new string[1] { "" }; } } /// /// 初始化仓库号下拉框 /// /// /// /// /// public static void InitStorage(UltraComboEditor uce, String customInfo, String[] validDataPurviewIds, OpeBase ob) { string storageType = "";//仓库类别 string storageAttr = "";//仓库类型 if (customInfo.Length >= 0 && customInfo.Contains(",")) { string[] strflg = customInfo.ToString().Split(new char[] { ',' }); storageType = strflg[0]; storageAttr = strflg[1]; } DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.base.WarehousePermissions.getWarehousePermissions", new object[] { storageType, storageAttr, validDataPurviewIds }, ob); if (dt != null && dt.Rows.Count > 0) { uce.DataSource = dt; uce.DisplayMember = "STORAGE_NAME"; uce.ValueMember = "STORAGE_NO"; uce.SelectedIndex = 0; } else { uce.DataSource = null; } } /// /// 初始化下拉框仓库名称 /// /// /// public static void InitGpStorage(UltraComboEditor uce, OpeBase ob) { DataTable dtMapStatus = ServerHelper.GetData("Core.LgMes.Server.Stuffmanage.FrmBaseInformation.doQueryStorage", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dtMapStatus, "BASENAME", "BASECODE"); } /// /// 初始化下拉框外购坯厂家 /// /// /// public static void InitGpSource(UltraComboEditor uce, OpeBase ob) { DataTable dtMapStatus = ServerHelper.GetData("Core.LgMes.Server.Stuffmanage.FrmBaseInformation.doQuerySource", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dtMapStatus, "BASENAME", "BASECODE"); } /// /// 初始化下拉框材料类别 /// /// /// public static void InitProducFlagCom(UltraComboEditor uce, OpeBase ob) { DataTable dtProducFlag = ServerHelper.GetData("Core.LgMes.Server.Stuffmanage.FrmBaseInformation.queryMaterialSTyle", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dtProducFlag, "BASENAME", "BASECODE"); } /// /// 初始化下拉框材料状态 /// /// /// public static void InitMapStatusCom(UltraComboEditor uce, OpeBase ob) { DataTable dtMapStatus = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeMagement.queryMaterialStatus", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dtMapStatus, "BASENAME", "BASECODE"); } /// /// 初始化下拉框材料状态 /// /// /// public static void InitMapStatusCom(UltraComboEditor uce, OpeBase ob, string flag) { DataTable dtMapStatus = ServerHelper.GetData("Core.LgMes.Server.Stuffmanage.FrmBaseInformation.queryMaterialStatus", new object[] { flag }, ob); BaseMethod.InitComboEditor(uce, dtMapStatus, "BASENAME", "BASECODE"); } /// /// 初始化下拉框管坯物料码 /// /// /// public static void InitMaterialCom(UltraComboEditor uce, OpeBase ob) { DataTable dtMapStatus = ServerHelper.GetData("Core.LgMes.Server.Stuffmanage.FrmBaseInformation.doQueryMaterial", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dtMapStatus, "BASENAME", "BASECODE"); } /// /// 初始下拉框 /// /// /// /// /// public static void InitComboEditor(UltraComboEditor uce, DataTable dt, String showName, String hideValue) { uce.DataSource = dt; uce.DisplayMember = showName; uce.ValueMember = hideValue; } /// /// 初始下拉框 /// /// /// /// /// public static void InitComboEditor1(UltraComboEditor uce, DataTable dt, String showName, String hideValue) { uce.DataSource = dt; uce.DisplayMember = showName; uce.ValueMember = hideValue; uce.SelectedIndex = 1; } /// /// 初始化下拉框产线 /// /// /// public static void InitPline(UltraComboEditor uce, OpeBase ob) { DataTable dtPline = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeInventoryIn.getPline", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dtPline, "PLINE_NAME", "PLINE_CODE"); } /// /// 初始化下拉框材料来源 /// /// /// public static void InitSourse(UltraComboEditor uce, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeInventoryIn.getSourse", new object[] { "8013" }, ob); BaseMethod.InitComboEditor1(uce, dt, "BASENAME", "BASECODE"); } /// /// 初始化下拉框钢种 /// /// /// public static void InitGrade(UltraComboEditor uce, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeEnter.getGrade", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dt, "GRADENAME", "GRADECODE"); } /// /// 获取规格 /// /// /// public static void InitSpec(UltraComboEditor uce, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeEnter.getSpec", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dt, "SPEC_NAME", "SPEC_CODE"); } /// /// 获取扣型 /// /// /// public static void InitModel(UltraComboEditor uce, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeEnter.getModel", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dt, "MODEL_DESC", "MODEL_CODE"); } /// /// 获取品名 /// /// /// public static void InitProcduce(UltraComboEditor uce, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.base.BaseOperations.getProcduce", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dt, "PRODUC_JX", "PRODUCCODE"); } /// /// 获取钢级 /// /// /// public static void InitSteel(UltraComboEditor uce, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.base.BaseOperations.getSteel", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dt, "STEELNAME", "STEELCODE"); } /// /// 获取标准类别 /// /// /// public static void InitStdStyle(UltraComboEditor uce, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.base.BaseOperations.getStdStyle", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dt, "STD_STYLE_DESC", "STD_STYLE"); } /// /// 初始化下拉框原因 /// /// /// public static void InitReason(UltraComboEditor uce, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeInventoryIn.getSourse", new object[] { "8012" }, ob); BaseMethod.InitComboEditor(uce, dt, "BASENAME", "BASECODE"); } /// /// 初始化下拉框综合判断结果 /// /// /// public static void InitJustResult(UltraComboEditor uce, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeInventoryIn.getSourse", new object[] { "407407" }, ob); BaseMethod.InitComboEditor(uce, dt, "BASENAME", "BASECODE"); } /// /// 初始化下拉框所属权单位 /// /// /// public static void InitBelongCode(UltraComboEditor uce, OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.FrmPipeInventoryIn.getBelongCode", new object[] { }, ob); BaseMethod.InitComboEditor(uce, dt, "DEPARTNAME", "DEPARTID"); } /// /// 销售组织权限 /// /// 数据权限 /// /// 字符串数组 public static string[] InitPermissions(string[] validDataPurviewIds, OpeBase ob) { string[] arr = null; DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.base.WarehousePermissions.getSalgPermissions", new object[] { validDataPurviewIds }, ob); if (dt != null && dt.Rows.Count > 0) { arr = new string[dt.Rows.Count]; for (int i = 0; i < dt.Rows.Count; i++) { arr[i] = dt.Rows[i][0].ToString(); } } return arr; } /// /// 炼钢权限 /// /// 数据权限 /// /// 字符串数组 public static string[] InitLgPermissions(string[] validDataPurviewIds,string processNo, OpeBase ob) { string[] arr = null; DataTable dt = ServerHelper.GetData("Core.LgMes.Server.Common.ComLgValidDataPurviewIds.getLgPermissions", new object[] { validDataPurviewIds, processNo }, ob); if (dt != null && dt.Rows.Count > 0) { arr = new string[dt.Rows.Count]; for (int i = 0; i < dt.Rows.Count; i++) { arr[i] = dt.Rows[i][0].ToString(); } } return arr; } /// /// 获取PCode /// /// user_depatment /// public static string GetPCode(string Department, OpeBase ob) { string Pcode = ""; DataTable dt = ServerHelper.GetData("Core.LgMes.Server.Common.ComLgValidDataPurviewIds.getPCode", new Object[] { Department }, ob); if (dt.Rows.Count > 0) { Pcode = dt.Rows[0]["pline_code"].ToString(); } return Pcode; } /// /// 设置列显示位数 /// /// /// public static void setUltraGridColumnMaxInput(UltraGrid ug, string[] arr) { if (ug == null || arr == null || arr.Length == 0) { return; } arr.ToArray(); foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns) { if (arr.Contains(ugc.Key.ToString())) { ugc.MaskClipMode = MaskMode.IncludeLiterals; ugc.MaskInput = "{LOC}nn,nnn,nnn.nnn"; } } } /// /// 键盘按下Ctrl+D,拷贝活动单元格的数据到所有已勾选的此列的单元格中 /// /// UltraGrid /// /// 可以进行列名称 public static void setGridCopyActColumn(UltraGrid ugrid, KeyEventArgs e, params string[] strs) { if (e.Control && e.KeyCode == Keys.D) { if (ugrid != null && ugrid.ActiveRow != null) { UltraGridRow ugr = ugrid.ActiveRow; foreach (string colName in strs) { if (ugrid.ActiveCell.Column.Key.Equals(colName)) { if (ugr.Cells[colName].Activation != Activation.AllowEdit) { return; } ugrid.UpdateData(); ArrayList list = new ArrayList(); IQueryable checkRows = ugrid.Rows.AsQueryable().Where("CHK = 'True' "); if (checkRows.Count() == 0) { return; } foreach (UltraGridRow uRow in checkRows) { if (uRow != ugr && uRow.Cells[colName].Activation == Activation.AllowEdit) { uRow.Cells[colName].Value = ugr.Cells[colName].Value; } } } } } } }/// /// 初始年份 /// /// public static void InitYear(UltraComboEditor uce) { DataTable dtYear = new DataTable(); dtYear.Columns.Add("YEAR"); for (int i = 2000; i < 2200; i++) { DataRow dr = dtYear.NewRow(); dr["YEAR"] = i.ToString(); dtYear.Rows.Add(dr); } uce.DataSource = dtYear; uce.DisplayMember = "YEAR"; uce.ValueMember = "YEAR"; } /// /// 初始月份 /// /// public static void InitMonth(UltraComboEditor uce) { DataTable dtMonth = new DataTable(); dtMonth.Columns.Add("MONTH"); for (int i = 1; i < 13; i++) { DataRow dr = dtMonth.NewRow(); dr["MONTH"] = string.Format("{0:00}", i); dtMonth.Rows.Add(dr); } uce.DataSource = dtMonth; uce.DisplayMember = "MONTH"; uce.ValueMember = "MONTH"; } /// /// 键盘按下Ctrl+D,拷贝活动单元格的数据到所有已勾选的此列的单元格中 /// /// UltraGrid /// /// 可以进行列名称 public static void setGridCopyActColumn1(UltraGrid ugrid, KeyEventArgs e, params string[] strs) { if (e.Control && e.KeyCode == Keys.D) { if (ugrid != null && ugrid.ActiveRow != null) { UltraGridRow ugr = ugrid.ActiveRow; foreach (string colName in strs) { if (ugrid.ActiveCell.Column.Key.Equals(colName)) { if (ugr.Cells[colName].Activation != Activation.AllowEdit) { return; } ugrid.UpdateData(); ArrayList list = new ArrayList(); IQueryable checkRows = ugrid.Rows.AsQueryable().Where("CHOOSE = 'True' "); if (checkRows.Count() == 0) { return; } foreach (UltraGridRow uRow in checkRows) { if (uRow != ugr && uRow.Cells[colName].Activation == Activation.AllowEdit) { uRow.Cells[colName].Value = ugr.Cells[colName].Value; } } } } } } } /// /// 获取表格中 /// /// 返回类 /// 数据表 /// 输入类 /// public static T GetTableToEntity(DataTable dt, T t) { String[] strColumns = null; DataRow dr = dt.Rows[0]; try { if (dt.Columns.Count > 0) { int columnNum = 0; columnNum = dt.Columns.Count; strColumns = new string[columnNum]; for (int i = 0; i < dt.Columns.Count; i++) { strColumns[i] = dt.Columns[i].ColumnName.Replace("_", ""); } System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo item in pro) { for (int i = 0; i < strColumns.Length; i++) { if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0) { if (item.PropertyType == typeof(int?)) { item.SetValue(t, Convert.ToInt32(dr[i].ToString3()), null); } else if (item.PropertyType == typeof(decimal?)) { item.SetValue(t, Convert.ToDecimal(dr[i].ToString3()), null); } else { item.SetValue(t, dr[i].ToString(), null); } } } } } else { } } catch (Exception e) { System.Windows.Forms.MessageBox.Show("出错:", e.ToString()); } return t; } /// /// 获取数据源中第一行数据赋到类中(grid 带下划线) /// /// 返回类 /// 输入带数据的数据源 /// 输入类 /// public static T GetUltraGridToEntityNEW(UltraGrid _grid, T t) { String[] strColumns = null; String[] strColumnsNew = null; UltraGridRow dr = _grid.Rows[0]; int columnNum = dr.Cells.Count; strColumns = new String[columnNum]; strColumnsNew = new String[columnNum]; for (int i = 0; i < columnNum; i++) { strColumns[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString().Replace("_", ""); strColumnsNew[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString(); } System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo item in pro) { for (int i = 0; i < strColumns.Length; i++) { if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0) { if (item.PropertyType == typeof(int?)) { item.SetValue(t, Convert.ToInt32(dr.Cells[strColumnsNew[i]].Value.ToString3()), null); } else if (item.PropertyType == typeof(decimal?)) { item.SetValue(t, Convert.ToDecimal(dr.Cells[strColumnsNew[i]].Value.ToString3()), null); } else { item.SetValue(t, Convert.ToString(dr.Cells[strColumnsNew[i]].Value.ToString()), null); } } } } return t; } } }