using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using Lskj.MyControl; using System.Drawing; using System.Windows.Forms; using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraGrid.Columns; using System.Data.SqlClient; using DevExpress.XtraEditors.Repository; using DevExpress.XtraEditors.Controls; using DevExpress.XtraGrid; using CommonLib; using ControlLib.inh; using Lskj.MyControl.LookUpAdd; using Lskj.MyControl.LookUp; using DevExpress.Utils; using DevExpress.XtraEditors; using Lskj.PubUtils; using System.Text.RegularExpressions; using System.ComponentModel; namespace Lskj.Common { public class TagModel { public TagModel() { } /// /// 是否保存 /// public bool IsSave { get; set; } /// /// 是否为空 /// public bool IsEmpt { get; set; } /// /// 提示信息 /// public string TipMsg { get; set; } /// /// 控件类型 /// public int fieldTypeId { get; set; } /// /// 是否情况 /// public bool IsClear { get; set; } /// /// 默认值 /// public string DefaultValue { get; set; } /// /// 扩展字段 /// public object Tag { get; set; } } public class PubControl { private static GridView pubGridView { get; set; } public static DataTable CreateControl(Control ctr, string sql, string OperatorName) { DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0]; int yHeight = 0; foreach (DataRow row in dt.Rows) { int fieldTypeId = Convert.ToInt32(row["fieldTypeId"]); //日期 if (fieldTypeId == 4) { LabelDateEx labelText = new LabelDateEx(); labelText.LabelText = row["userName"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; labelText.Width = Convert.ToInt32(row["controlWidth"]); yHeight = labelText.Top + labelText.Height; labelText.Name = "txt_" + row["fieldName"]; labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" }; labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); bool edited = Convert.ToBoolean(row["edited"]); if (edited) labelText.GetDateTimePicker.Enabled = false; } //文本 else if (fieldTypeId == 0) { LabelTextEx labelText = new LabelTextEx(); labelText.LabelText = row["userName"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; labelText.Width = Convert.ToInt32(row["controlWidth"]); yHeight = labelText.Top + labelText.Height; labelText.Name = "txt_" + row["fieldName"]; labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" }; labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); bool edited = Convert.ToBoolean(row["edited"]); if (edited) labelText.GetTextBox.ReadOnly = true; } else if (fieldTypeId == ControlType.LabMemoEdit) { // Memo文本 LabelMemoEdit labelText = new LabelMemoEdit(); labelText.LabelText = row["userName"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; labelText.Width = Convert.ToInt32(row["controlWidth"]); yHeight = labelText.Top + labelText.Height; labelText.Name = "txt_" + row["fieldName"]; labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" }; labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); bool edited = Convert.ToBoolean(row["edited"]); if (edited) labelText.getMemoEx.Properties.ReadOnly = true; } else if (fieldTypeId == ControlType.LabPassword) { // 创建密码框 LabelPasswordEx labelText = new LabelPasswordEx(); labelText.LabelText = row["userName"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; labelText.Width = Convert.ToInt32(row["controlWidth"]); yHeight = labelText.Top + labelText.Height; labelText.Name = "txt_" + row["fieldName"]; labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" }; labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); } //下拉框 else if (fieldTypeId == 1 || fieldTypeId == 2) { LabelComboxEx labelText = new LabelComboxEx(); labelText.LabelText = row["userName"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; labelText.Width = Convert.ToInt32(row["controlWidth"]); yHeight = labelText.Top + labelText.Height; labelText.Name = "txt_" + row["fieldName"]; labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" }; string lookupSql = row["lookupSql"].ToString(); bool edited = Convert.ToBoolean(row["edited"]); if (edited) { labelText.getComboBox.DropDownStyle = ComboBoxStyle.DropDownList; labelText.getComboBox.Enabled = false; } if (!string.IsNullOrEmpty(lookupSql)) { string keyField = row["lookupKeyField"] + ""; string resultField = row["lookupResult"] + ""; labelText.setDataSource(lookupSql, keyField, resultField); } labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); } else if (fieldTypeId == 5 || fieldTypeId == 6) { LabelAutoSearcherEx autSearch = new LabelAutoSearcherEx(); autSearch.LabelText = row["userName"].ToString(); autSearch.Parent = ctr; autSearch.Width = Convert.ToInt32(row["controlWidth"]); autSearch.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); ControlLib.inh.AutoSearcher txtUserName = autSearch.GetAutoSearcher; ControlLib.inh.SearcherPropertyCollector searcherPropertyCollector1 = new ControlLib.inh.SearcherPropertyCollector(); ControlLib.inh.TFieldPropertyData tFieldPropertyData1 = new ControlLib.inh.TFieldPropertyData(); ControlLib.inh.TFieldPropertyData tFieldPropertyData2 = new ControlLib.inh.TFieldPropertyData(); txtUserName.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append; //取下拉列表数据 txtUserName.MaxLength = 50; txtUserName.Name = "txt_" + row["fieldName"]; txtUserName.searcherPropertyCollector = searcherPropertyCollector1; txtUserName.TabIndex = 12; txtUserName.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" }; tFieldPropertyData1.FieldCaption = "编码"; tFieldPropertyData1.FieldName = row["lookupKeyField"] + ""; tFieldPropertyData1.FieldWidth = 50; tFieldPropertyData1.ShowColumn = true; tFieldPropertyData2.FieldCaption = "名称"; tFieldPropertyData2.FieldName = row["lookupResult"] + ""; tFieldPropertyData2.FieldWidth = 150; tFieldPropertyData2.ShowColumn = true; searcherPropertyCollector1.ConvertToChineseSpell = true; searcherPropertyCollector1.FieldPropertyList = new ControlLib.inh.TFieldPropertyData[] { tFieldPropertyData1, tFieldPropertyData2 }; searcherPropertyCollector1.KeyField = row["lookupKeyField"] + ""; searcherPropertyCollector1.QueryField = row["lookupResult"] + ""; searcherPropertyCollector1.QuerySQL = row["lookupSql"].ToString(); //searcherPropertyCollector1.ReturnMaxCount = 50; searcherPropertyCollector1.ReturnValueField = row["lookupKeyField"] + ""; searcherPropertyCollector1.SearchMatchWay = ControlLib.inh.TSearchMatchWay.swFuzzy; searcherPropertyCollector1.ShowFormHeight = 230; searcherPropertyCollector1.ShowFormWidth = 230; searcherPropertyCollector1.SQL = row["lookupSql"].ToString(); bool edited = Convert.ToBoolean(row["edited"]); if (edited) { autSearch.GetAutoSearcher.ReadOnly = true; } yHeight = txtUserName.Top + txtUserName.Height; txtUserName.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); } //创建文本域 else if (fieldTypeId == 9) { LabelTextarea labelText = new LabelTextarea(); labelText.LabelText = row["userName"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; if (Convert.ToInt32(row["controlWidth"]) > 0 && Convert.ToInt32(row["controlHeight"]) > 0) { labelText.Width = Convert.ToInt32(row["controlWidth"]); labelText.Height = Convert.ToInt32(row["controlHeight"]); } yHeight = labelText.Top + labelText.Height; labelText.Name = "txt_" + row["fieldName"]; labelText.Tag = "999"; labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" }; labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); } } if (ctr.Height < yHeight) { ctr.Height = yHeight + 5; } return dt; } public static DataTable CreateControl(Control ctr, Control ctr2, string sql, string OperatorName) { DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0]; int yHeight = 0; foreach (DataRow row in dt.Rows) { int fieldTypeId = Convert.ToInt32(row["fieldTypeId"]); //日期 if (fieldTypeId == 4) { LabelDateEx labelText = new LabelDateEx(); labelText.LabelText = row["userName"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; labelText.Width = Convert.ToInt32(row["controlWidth"]); yHeight = labelText.Top + labelText.Height; labelText.Name = "txt_" + row["fieldName"]; labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" }; labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); bool edited = Convert.ToBoolean(row["edited"]); if (edited) labelText.GetDateTimePicker.Enabled = false; } //文本 else if (fieldTypeId == 0) { LabelTextEx labelText = new LabelTextEx(); labelText.LabelText = row["userName"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; labelText.Width = Convert.ToInt32(row["controlWidth"]); yHeight = labelText.Top + labelText.Height; labelText.Name = "txt_" + row["fieldName"]; labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" }; labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); bool edited = Convert.ToBoolean(row["edited"]); if (edited) labelText.GetTextBox.ReadOnly = true; } //下拉框 else if (fieldTypeId == 1 || fieldTypeId == 2) { LabelComboxEx labelText = new LabelComboxEx(); labelText.LabelText = row["userName"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; labelText.Width = Convert.ToInt32(row["controlWidth"]); yHeight = labelText.Top + labelText.Height; labelText.Name = "txt_" + row["fieldName"]; labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" }; string lookupSql = row["lookupSql"].ToString(); bool edited = Convert.ToBoolean(row["edited"]); if (edited) { labelText.getComboBox.DropDownStyle = ComboBoxStyle.DropDownList; labelText.getComboBox.Enabled = false; } if (!string.IsNullOrEmpty(lookupSql)) { string keyField = row["lookupKeyField"] + ""; string resultField = row["lookupResult"] + ""; labelText.setDataSource(lookupSql, keyField, resultField); } labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); } else if (fieldTypeId == 5 || fieldTypeId == 6) { LabelAutoSearcherEx autSearch = new LabelAutoSearcherEx(); autSearch.LabelText = row["userName"].ToString(); autSearch.Parent = ctr; autSearch.Width = Convert.ToInt32(row["controlWidth"]); autSearch.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); ControlLib.inh.AutoSearcher txtUserName = autSearch.GetAutoSearcher; ControlLib.inh.SearcherPropertyCollector searcherPropertyCollector1 = new ControlLib.inh.SearcherPropertyCollector(); ControlLib.inh.TFieldPropertyData tFieldPropertyData1 = new ControlLib.inh.TFieldPropertyData(); ControlLib.inh.TFieldPropertyData tFieldPropertyData2 = new ControlLib.inh.TFieldPropertyData(); txtUserName.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append; //取下拉列表数据 txtUserName.MaxLength = 50; txtUserName.Name = "txt_" + row["fieldName"]; txtUserName.searcherPropertyCollector = searcherPropertyCollector1; txtUserName.TabIndex = 12; txtUserName.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" }; tFieldPropertyData1.FieldCaption = "编码"; tFieldPropertyData1.FieldName = row["lookupKeyField"] + ""; tFieldPropertyData1.FieldWidth = 50; tFieldPropertyData1.ShowColumn = true; tFieldPropertyData2.FieldCaption = "名称"; tFieldPropertyData2.FieldName = row["lookupResult"] + ""; tFieldPropertyData2.FieldWidth = 150; tFieldPropertyData2.ShowColumn = true; searcherPropertyCollector1.ConvertToChineseSpell = true; searcherPropertyCollector1.FieldPropertyList = new ControlLib.inh.TFieldPropertyData[] { tFieldPropertyData1, tFieldPropertyData2 }; searcherPropertyCollector1.KeyField = row["lookupKeyField"] + ""; searcherPropertyCollector1.QueryField = row["lookupResult"] + ""; searcherPropertyCollector1.QuerySQL = row["lookupSql"].ToString(); //searcherPropertyCollector1.ReturnMaxCount = 50; searcherPropertyCollector1.ReturnValueField = row["lookupKeyField"] + ""; searcherPropertyCollector1.SearchMatchWay = ControlLib.inh.TSearchMatchWay.swFuzzy; searcherPropertyCollector1.ShowFormHeight = 230; searcherPropertyCollector1.ShowFormWidth = 230; searcherPropertyCollector1.SQL = row["lookupSql"].ToString(); bool edited = Convert.ToBoolean(row["edited"]); if (edited) { autSearch.GetAutoSearcher.ReadOnly = true; } yHeight = txtUserName.Top + txtUserName.Height; txtUserName.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); } //创建文本域 else if (fieldTypeId == 9) { LabelTextarea labelText = new LabelTextarea(); labelText.LabelText = row["userName"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; if (Convert.ToInt32(row["controlWidth"]) > 0 && Convert.ToInt32(row["controlHeight"]) > 0) { labelText.Width = Convert.ToInt32(row["controlWidth"]); labelText.Height = Convert.ToInt32(row["controlHeight"]); } yHeight = labelText.Top + labelText.Height; labelText.Name = "txt_" + row["fieldName"]; labelText.Tag = "999"; labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" }; labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); } } ctr2.Height = yHeight + 60; return dt; } public static void CreateControlSearch(Control ctr, string sql, string OperatorName) { DataTable dt =SqlHelper.ExecuteDataSet(sql).Tables[0]; int yHeight = 0; foreach (DataRow row in dt.Rows) { int fieldTypeId = Convert.ToInt32(row["controlType"]); //日期 if (fieldTypeId == 4) { LabelDateEx labelText = new LabelDateEx(); labelText.LabelText = row["controlLabel"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; labelText.Width = Convert.ToInt32(row["controlWidth"]); yHeight = labelText.Top + labelText.Height; labelText.Name = row["controlName"].ToString(); labelText.Tag = new String[] { "999", row["checkCond"].ToString(), fieldTypeId.ToString() }; labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); } //文本 else if (fieldTypeId == 0) { LabelTextEx labelText = new LabelTextEx(); labelText.LabelText = row["controlLabel"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; labelText.Width = Convert.ToInt32(row["controlWidth"]); yHeight = labelText.Top + labelText.Height; labelText.Name = row["controlName"].ToString(); labelText.Tag = new String[] { "999", row["checkCond"].ToString(), fieldTypeId.ToString() }; labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); } //下拉框 else if (fieldTypeId == 1) { LabelComboxEx labelText = new LabelComboxEx(); labelText.LabelText = row["controlLabel"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; labelText.Width = Convert.ToInt32(row["controlWidth"]); yHeight = labelText.Top + labelText.Height; labelText.Name = row["controlName"].ToString(); labelText.Tag = new String[] { "999", row["checkCond"].ToString(), fieldTypeId.ToString() }; string sourceSql = row["sourceSql"].ToString(); string keyField = row["keyField"] + ""; string resultField = row["resultField"] + ""; labelText.setDataSource(sourceSql, keyField, resultField); labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); } //创建文本域 else if (fieldTypeId == 9) { LabelTextarea labelText = new LabelTextarea(); labelText.LabelText = row["controlLabel"].ToString(); labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"])); labelText.Parent = ctr; if (Convert.ToInt32(row["controlWidth"]) > 0 && Convert.ToInt32(row["controlHeight"]) > 0) { labelText.Width = Convert.ToInt32(row["controlWidth"]); labelText.Height = Convert.ToInt32(row["controlHeight"]); } yHeight = labelText.Top + labelText.Height; labelText.Name = row["controlName"].ToString(); labelText.Tag = new String[] { "999", row["checkCond"].ToString(), fieldTypeId.ToString() }; labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName); } } if (ctr.Height < yHeight) { ctr.Height = yHeight + 10; } } /// /// 获取默认值 /// /// /// public static string GetDefaultValue(string value, string OperatorName) { string result = value; if (value.IndexOf('@') != -1) { object obj = SqlHelper.ExecuteScalar(CommandType.Text, value.Replace("@", "")); if (obj != null) { result = obj.ToString(); } } if (value.IndexOf("operator", StringComparison.OrdinalIgnoreCase) != -1) { List list = PubClass.GetParamValue(value); foreach (string s in list) { result = value.Replace(s, OperatorName); } } return result; } /// /// 获取默认值 /// /// /// public static string GetDefaultValue(string value, string loginid, string OperatorName) { string result = value; if (value.IndexOf('@') != -1) { object obj = SqlHelper.ExecuteScalar(CommandType.Text, value.Replace("@", "")); if (obj != null) { result = obj.ToString(); } } if (value.IndexOf("loginid", StringComparison.OrdinalIgnoreCase) != -1) { List list = PubClass.GetParamValue(value); foreach (string s in list) { result = value.Replace(s, loginid); } } if (value.IndexOf("loginname", StringComparison.OrdinalIgnoreCase) != -1) { List list = PubClass.GetParamValue(value); foreach (string s in list) { result = value.Replace(s, OperatorName); } } return result; } public static void SetColumns(GridView gridView, string sql) { gridView.Columns.Clear(); DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; GridColumn gridColumn = new GridColumn(); gridColumn.OptionsColumn.AllowMerge = (row["ifMerge"] + ""=="1")?DefaultBoolean.True: DefaultBoolean.False; gridColumn.FieldName = row["fieldname"].ToString(); gridColumn.Name = row["fieldname"].ToString(); gridColumn.VisibleIndex = i; gridColumn.Caption = row["userName"].ToString(); gridColumn.Width = Convert.ToInt32(row["width"]); gridColumn.Visible = true; object obj = dt.Columns["edited"]; if (obj != null && Convert.ToInt32(row["edited"]) == 1) { gridColumn.OptionsColumn.AllowEdit = false; gridColumn.OptionsColumn.ReadOnly = false; } int isSum = Convert.ToInt32(row["isSum"]); //处理统计 if (isSum == 1) { gridColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), "{0}") }); gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), null, "") }); } DataColumn dc = dt.Columns["Accuracy"]; if (dc != null) { string Accuracy = dt.Rows[i]["Accuracy"] + ""; if (!string.IsNullOrEmpty(Accuracy) && Accuracy != "0") { gridColumn.DisplayFormat.FormatType = FormatType.Numeric; gridColumn.DisplayFormat.FormatString = "F2"; } } gridColumn.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; gridView.Columns.Add(gridColumn); } if (gridView.Columns.Count > 0) { GridColumn firstColumn = gridView.Columns[0]; if (firstColumn != null) { gridView.OptionsView.ShowFooter = true; firstColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), "合计: {0:#,###}行") }); gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), null, "合计: {0:#,###}行") }); } } } public static void SetColumns(GridControl gc, string sql) { GridView gridView = (GridView)gc.DefaultView; gridView.Columns.Clear(); DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; GridColumn gridColumn = new GridColumn(); gridColumn.OptionsColumn.AllowMerge = (row["ifMerge"] + "" == "1") ? DefaultBoolean.True : DefaultBoolean.False; gridColumn.FieldName = row["fieldname"].ToString(); gridColumn.Name = row["fieldname"].ToString(); gridColumn.VisibleIndex = i; gridColumn.Caption = row["userName"].ToString(); gridColumn.Width = Convert.ToInt32(row["width"]); gridColumn.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; gridColumn.Visible = true; object obj = dt.Columns["edited"]; if (obj != null && Convert.ToInt32(row["edited"]) == 1) { gridColumn.OptionsColumn.AllowEdit = false; gridColumn.OptionsColumn.ReadOnly = false; } int isSum = Convert.ToInt32(row["isSum"]); //处理统计 if (isSum == 1) { gridColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), "{0}") }); gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), null, "") }); } gridView.Columns.Add(gridColumn); int fieldTypeId = Convert.ToInt32(row["fieldTypeId"]); string lookupSql = row["lookupSql"] + ""; string lookupKeyField = row["lookupKeyField"] + ""; string lookupResult = row["lookupResult"] + ""; string fieldName = row["fieldName"] + ""; if (fieldTypeId == 1 || fieldTypeId == 5) { GetLookUpEdit(lookupSql, lookupKeyField, lookupResult, fieldName, gridColumn, fieldTypeId, gc); } if (fieldTypeId == 2 || fieldTypeId == 6) { GetComboBox(lookupSql, lookupKeyField, lookupResult, fieldName, gridColumn, fieldTypeId); } DataColumn dc = dt.Columns["Accuracy"]; if (dc != null) { string Accuracy = dt.Rows[i]["Accuracy"] + ""; if (!string.IsNullOrEmpty(Accuracy) && Accuracy != "0") { gridColumn.DisplayFormat.FormatType = FormatType.Numeric; gridColumn.DisplayFormat.FormatString = "F2"; } } } if (gridView.Columns.Count > 0) { GridColumn firstColumn = gridView.Columns[0]; if (firstColumn != null) { gridView.OptionsView.ShowFooter = true; firstColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), "合计: {0:#,###}行") }); gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), null, "合计: {0:#,###}行") }); } } } public static void SetColumns(GridControl gc, DataTable dt) { GridView gridView = (GridView)gc.DefaultView; gridView.Columns.Clear(); for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; GridColumn gridColumn = new GridColumn(); gridColumn.OptionsColumn.AllowMerge = (row["ifMerge"] + "" == "1") ? DefaultBoolean.True : DefaultBoolean.False; gridColumn.FieldName = row["fieldname"].ToString(); gridColumn.Name = row["fieldname"].ToString(); gridColumn.VisibleIndex = i; gridColumn.Caption = row["userName1"].ToString(); gridColumn.Width = Convert.ToInt32(row["width"]); gridColumn.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; gridColumn.Visible = true; object obj = dt.Columns["edited"]; string dataFormat = row["DataFormat"] + ""; if (obj != null && Convert.ToInt32(row["edited"]) == 1) { gridColumn.OptionsColumn.AllowEdit = false; gridColumn.OptionsColumn.ReadOnly = false; } int isSum = Convert.ToInt32(row["isSum"]); //处理统计 if (isSum == 1) { gridColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), "{0:" + dataFormat + "}") }); gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), null, "{0:" + dataFormat + "}") }); } gridView.Columns.Add(gridColumn); int fieldTypeId = Convert.ToInt32(row["fieldsqlTag"]); string lookupSql = row["fieldsql"] + ""; string lookupKeyField = row["fieldsqlid"] + ""; string lookupResult = row["fieldsqlname"] + ""; string fieldName = row["fieldName"] + ""; if (fieldTypeId == 1 || fieldTypeId == 5) { GetLookUpEdit(lookupSql, lookupKeyField, lookupResult, fieldName, gridColumn, fieldTypeId, gc); } if (fieldTypeId == 2 || fieldTypeId == 6) { GetComboBox(lookupSql, lookupKeyField, lookupResult, fieldName, gridColumn, fieldTypeId); } //QQ和网址 if (fieldTypeId == 10) { gridColumn.Tag = new TagModel() { Tag="www"}; } if (fieldTypeId == 11) { gridColumn.Tag = new TagModel() { Tag = "qq" }; } CommonUtils.DataFormat(gridColumn, dataFormat, fieldTypeId); DataColumn dc = dt.Columns["Accuracy"]; if (dc != null) { string Accuracy = dt.Rows[i]["Accuracy"] + ""; if (!string.IsNullOrEmpty(Accuracy) && Accuracy != "0") { gridColumn.DisplayFormat.FormatType = FormatType.Numeric; gridColumn.DisplayFormat.FormatString = "F2"; } } } if (gridView.Columns.Count > 0) { GridColumn firstColumn = gridView.Columns[0]; if (firstColumn != null) { gridView.OptionsView.ShowFooter = true; firstColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), "合计: {0:#,###}行") }); gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), null, "合计: {0:#,###}行") }); } } } public static void SetColumns3(GridControl gc, string sql) { GridView gridView = (GridView)gc.DefaultView; gridView.Columns.Clear(); DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; GridColumn gridColumn = new GridColumn(); gridColumn.OptionsColumn.AllowMerge = (row["ifMerge"] + "" == "1") ? DefaultBoolean.True : DefaultBoolean.False; gridColumn.FieldName = row["fieldname"].ToString(); gridColumn.Name = row["fieldname"].ToString(); gridColumn.VisibleIndex = i; gridColumn.Caption = row["userName"].ToString(); gridColumn.Width = Convert.ToInt32(row["width"]); gridColumn.Visible = true; gridColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; gridColumn.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; gridView.Columns.Add(gridColumn); } } public static DataTable SetColumns2(GridControl gc, string sql) { GridView gridView = pubGridView = (GridView)gc.DefaultView; gridView.Columns.Clear(); DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; GridColumn gridColumn = new GridColumn(); gridColumn.OptionsColumn.AllowMerge = (row["ifMerge"] + "" == "1") ? DefaultBoolean.True : DefaultBoolean.False; gridColumn.FieldName = row["fieldname"].ToString(); gridColumn.Name = row["fieldname"].ToString(); gridColumn.VisibleIndex = i; gridColumn.Caption = row["userName"].ToString(); gridColumn.Width = Convert.ToInt32(row["width"]); gridColumn.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; gridColumn.Visible = true; object obj = dt.Columns["isedited"]; string dataFormat = row["DataFormat"] + ""; if (obj != null && Convert.ToInt32(row["isedited"]) == 1) { gridColumn.OptionsColumn.AllowEdit = false; gridColumn.OptionsColumn.ReadOnly = true; } int isSum = Convert.ToInt32(row["isSum"]); //处理统计 if (isSum == 1) { gridColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), "{0:" + dataFormat + "}") }); gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), null, "{0:" + dataFormat + "}") }); } gridView.Columns.Add(gridColumn); int fieldTypeId = Convert.ToInt32(row["fieldTypeId"]); string lookupSql = row["lookupSql"] + ""; string lookupKeyField = row["lookupKeyField"] + ""; string lookupResult = row["lookupResult"] + ""; string fieldName = row["fieldName"] + ""; if (fieldTypeId == 1 || fieldTypeId == 5 || fieldTypeId == 15) { GetLookUpEdit(lookupSql, lookupKeyField, lookupResult, fieldName, gridColumn, fieldTypeId, lookupKeyField, lookupResult); } if (fieldTypeId == 2 || fieldTypeId == 6 || fieldTypeId == 16) { GetLookUpEdit(lookupSql, lookupResult, lookupKeyField, fieldName, gridColumn, fieldTypeId, lookupKeyField, lookupResult); } // 日期时间控件 if (fieldTypeId == 4 || fieldTypeId == 44 || fieldTypeId == 444) { CreateDateTime(gridColumn, fieldTypeId); } if (fieldTypeId == 4444 || fieldTypeId == 4444) { CreateTime(gridColumn, fieldTypeId); } //QQ和网址 if (fieldTypeId == 10) { gridColumn.Tag = new TagModel() { Tag = "www" }; } if (fieldTypeId == 11) { gridColumn.Tag = new TagModel() { Tag = "qq" }; } CommonUtils.DataFormat(gridColumn, dataFormat, fieldTypeId); } if (gridView.Columns.Count > 0) { GridColumn firstColumn = gridView.Columns[0]; if (firstColumn != null) { gridView.OptionsView.ShowFooter = true; firstColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), "合计: {0:#,###}行") }); gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), null, "合计: {0:#,###}行") }); } } return dt; } private void CreateButtonEdit(GridColumn gridColumn, DataRow row) { Lskj.MyControl.LookUp.FrmMain frmMain = new Lskj.MyControl.LookUp.FrmMain(); RepositoryItemButtonEdit btnEdit = new RepositoryItemButtonEdit(); btnEdit.ButtonClick +=new ButtonPressedEventHandler(btnEdit_ButtonClick); gridColumn.ColumnEdit = btnEdit; String SQL = row["fieldsql"].ToString(); SQL = GetDefaultValue(SQL, ERPInfo.Instance.EmployeeId.ToString(), ERPInfo.Instance.EmployeeName); Dictionary Columns = new Dictionary(); Columns.Add(row["fieldsqlid"].ToString(), "编码"); Columns.Add(row["fieldsqlname"].ToString(), "名称"); if (SQL.IndexOf("Remark", StringComparison.OrdinalIgnoreCase) != -1) Columns.Add("Remark", "备注"); frmMain.IsMultiple = true; frmMain.Columns = Columns; int fieldsqlTag = Convert.ToInt32(row["fieldsqlTag"]); frmMain.ValueField = row["fieldsqlid"] + ""; frmMain.TextField = row["fieldsqlname"] + ""; frmMain.IsText = fieldsqlTag; btnEdit.Tag = frmMain; } private static void CreateDateTime(GridColumn gridColumn, int fieldsqlTag) { RepositoryItemDateEdit dateEdit = new RepositoryItemDateEdit(); dateEdit.DisplayFormat.FormatString = dateEdit.EditFormat.FormatString = dateEdit.Mask.EditMask = DateFormatType.GetFormatValue(fieldsqlTag); dateEdit.DisplayFormat.FormatType = dateEdit.EditFormat.FormatType = DevExpress.Utils.FormatType.Custom; dateEdit.Closed += new ClosedEventHandler(dateEdit_Closed); gridColumn.ColumnEdit = dateEdit; } private static void CreateTime(GridColumn gridColumn, int fieldsqlTag) { RepositoryItemTimeEdit timeEdit = new RepositoryItemTimeEdit(); timeEdit.DisplayFormat.FormatString = timeEdit.EditFormat.FormatString = timeEdit.Mask.EditMask = DateFormatType.GetFormatValue(fieldsqlTag); timeEdit.DisplayFormat.FormatType = timeEdit.EditFormat.FormatType = DevExpress.Utils.FormatType.Custom; gridColumn.ColumnEdit = timeEdit; } #region 内部事件处理 private static void dateEdit_Closed(object sender, ClosedEventArgs e) { if (sender is DateEdit) { DateEdit dateEdit = (sender as DateEdit); string dateFormatType = dateEdit.Properties.DisplayFormat.FormatString; dateEdit.EditValue = dateEdit.DateTime.ToString(dateFormatType); } } private static void btnEdit_ButtonClick(object sender, ButtonPressedEventArgs e) { ButtonEdit buttonEdit = (ButtonEdit)sender; Lskj.MyControl.LookUp.FrmMain frmMain = (Lskj.MyControl.LookUp.FrmMain)buttonEdit.Tag; DialogResult dr = frmMain.ShowDialog(); if (dr == DialogResult.OK) { String value = string.Empty; if (frmMain.IsText == 13) { value = frmMain.ReturnValue; } else { value = frmMain.ReturnText; } buttonEdit.Text = value; } } #endregion private static void GetComboBox(string sql, string key, string value, string colum, GridColumn gc, int fieldsqlTag) { RepositoryItemComboBox combobox = new RepositoryItemComboBox(); DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0]; foreach (DataRow item in dt.Rows) combobox.Items.Add(item[value]); combobox.NullText = "[请选择]"; gc.ColumnEdit = combobox; } private static void GetLookUpEdit(string sql, string key, string value, string colum, GridColumn gc, int fieldsqlTag, GridControl gg) { RepositoryItemLookUpEdit combobox = new RepositoryItemLookUpEdit(); combobox.DataSource = SqlHelper.ExecuteDataSet(sql).Tables[0]; combobox.DisplayMember = value; combobox.ValueMember = key; LookUpColumnInfo ci = new LookUpColumnInfo(); ci.Caption = "编号"; ci.FieldName = key; ci.Visible = false; combobox.Columns.Add(ci); LookUpColumnInfo ci2 = new LookUpColumnInfo(); ci2.Caption = "名称"; ci2.FieldName = value; ci2.Visible = true; combobox.Columns.Add(ci2); gg.RepositoryItems.Add(combobox); if (sql.IndexOf("remark", StringComparison.OrdinalIgnoreCase) != -1) { LookUpColumnInfo ci3 = new LookUpColumnInfo(); ci3.Caption = "备注"; ci3.FieldName = "remark"; ci3.Visible = true; combobox.Columns.Add(ci3); } combobox.NullText = "[请选择]"; combobox.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; gc.ColumnEdit = combobox; } /// /// 动态加载数据源 /// /// /// private static void lookUp_QueryPopUp(object sender, CancelEventArgs e) { if (sender is SearchLookUpEdit) { var focusRow = pubGridView.GetDataRow(pubGridView.FocusedRowHandle); if (focusRow != null) { SearchLookUpEdit edit = (sender as SearchLookUpEdit); LookUpTag lookUpTag = edit.Properties.Tag as LookUpTag; if (lookUpTag != null && !string.IsNullOrEmpty(lookUpTag.Sql)) { string sqlValue = lookUpTag.Sql.Replace("#", "").Replace("#", ""); var fieldParams = GetParamValue(sqlValue); for (int i = 0; i < fieldParams.Count; i++) { string fieldName = fieldParams[i].Replace("{", "").Replace("}", ""); string fieldValue = focusRow[fieldName] + ""; sqlValue = sqlValue.Replace(fieldParams[i], fieldValue); } DataTable dtTable = SqlHelper.ExecuteDataSet(sqlValue).Tables[0]; edit.Properties.DataSource = dtTable; } } } } private static void GetLookUpEdit(string sql, string key, string value, string colum, GridColumn gc, int fieldsqlTag, string listKey, string listValue) { sql = GetDefaultValue(sql, ERPInfo.Instance.EmployeeId.ToString(), ERPInfo.Instance.EmployeeName); RepositoryItemSearchLookUpEdit combobox = new RepositoryItemSearchLookUpEdit(); int allWidth = 0; if ((fieldsqlTag == 15 || fieldsqlTag == 16) && sql.Contains("#")) { combobox.Tag = new LookUpTag() { Sql = sql, ValueMember = key, DisplayMember = listValue }; combobox.QueryPopUp += new CancelEventHandler(lookUp_QueryPopUp); sql = Regex.Replace(sql, "#[^##]+#", " 1=1 "); } DataTable dtTable = SqlHelper.ExecuteDataSet(sql).Tables[0]; combobox.DataSource = dtTable; combobox.DisplayMember = listValue; combobox.ValueMember = key; GridColumn ci = new GridColumn(); ci.Caption = "编号"; ci.FieldName = listKey; allWidth += ci.Width = CalcMaxColumnWidth(dtTable, listKey); ci.Visible = true; combobox.View.Columns.Add(ci); GridColumn ci2 = new GridColumn(); ci2.Caption = "名称"; ci2.FieldName = listValue; ci2.Visible = true; allWidth += ci2.Width = CalcMaxColumnWidth(dtTable, listValue); combobox.View.Columns.Add(ci2); if (sql.IndexOf("remark", StringComparison.OrdinalIgnoreCase) != -1) { GridColumn ci3 = new GridColumn(); ci3.Caption = "备注"; ci3.FieldName = "remark"; ci3.Visible = true; allWidth += ci3.Width = CalcMaxColumnWidth(dtTable, "remark"); combobox.View.Columns.Add(ci3); combobox.BestFitMode = BestFitMode.BestFit; // 3列的时候自动计算宽度,否则自动填充满表格 combobox.View.OptionsView.ColumnAutoWidth = false; } else { combobox.BestFitMode = BestFitMode.BestFitResizePopup; } combobox.View.OptionsView.ShowIndicator = false; combobox.View.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center; combobox.PopupBorderStyle = PopupBorderStyles.Flat; combobox.ShowPopupShadow = true; combobox.AllowNullInput = DevExpress.Utils.DefaultBoolean.False; combobox.PopupFormSize = new Size(allWidth, 250); combobox.ShowFooter = false; // 是否显示底部 gc.ColumnEdit = combobox; } /// /// 计算最大宽度 /// private static int CalcMaxColumnWidth(DataTable dTable, string columnName) { int MaxWidth = 0; foreach (DataRow row in dTable.Rows) { int columnWidth = CommonUtils.GetFontWidth(row[columnName] + ""); if (columnWidth > MaxWidth) { MaxWidth = columnWidth; } } return MaxWidth; } /// /// 取指定组件值 /// /// /// public static string GetControlText(Control control) { if (control == null) return ""; ControlModelTag cmTag = control.Tag as ControlModelTag; if (cmTag == null) { return control.Text; } if (cmTag.fieldTypeId == ControlType.LabAutoSeacherText) { return control.Text; } else if ((cmTag.fieldTypeId == ControlType.LabAutoSeacherValue) || (cmTag.fieldTypeId == ControlType.LabComboxValueParam)) { AutoSearcher te = control as AutoSearcher; if (te == null) te = (control as LabelAutoSearcherEx).GetAutoSearcher; return te.ReturnValue.ToString(); } else if (cmTag.fieldTypeId == ControlType.LabMultiSelectValue) { LabelLookUp lookup = control as LabelLookUp; return lookup.ReturnValue; } else if (cmTag.fieldTypeId == ControlType.LabComboxValue) { LabelComboxEx Cb = control as LabelComboxEx; return Cb.getComboBox.SelectedValue + ""; } else if (cmTag.fieldTypeId == ControlType.LabComboxText) { LabelComboxEx Cb = control as LabelComboxEx; return Cb.getComboBox.Text; } else if (cmTag.fieldTypeId == ControlType.LabDate || cmTag.fieldTypeId == ControlType.LabDateTime || cmTag.fieldTypeId == ControlType.LabDateTimeShort || cmTag.fieldTypeId == ControlType.LabTime || cmTag.fieldTypeId == ControlType.LabShortTime) { LabelDateEx Cb = control as LabelDateEx; return Cb.GetDateTimePicker.Value.ToString("yyyy-MM-dd HH:mm:ss"); } else if (cmTag.fieldTypeId == ControlType.LabTextInt) { if ((control.Text.Trim() == "")) return "0"; else return control.Text; } else { if (cmTag.fieldTypeId != 99) { return control.Text; } } return "0"; } /// /// 设置默认值 /// /// /// public static void SetControlText(Control control, string value) { if (control == null) return; ControlModelTag cmTag = control.Tag as ControlModelTag; //MessageBox.Show(cmTag.fieldTypeId.ToString()); if (cmTag.fieldTypeId == ControlType.LabAutoSeacherText) { control.Text = value; } else if ((cmTag.fieldTypeId == ControlType.LabAutoSeacherValue)||(cmTag.fieldTypeId == ControlType.LabComboxValueParam)) { AutoSearcher te = control as AutoSearcher; if (te == null) te = (control as LabelAutoSearcherEx).GetAutoSearcher; //MessageBox.Show(te.Name+"____"+value); te.ReturnValue = value; te.SetValueSilent(value, ""); } else if (cmTag.fieldTypeId == ControlType.LabComboxValue) { LabelComboxEx Cb = control as LabelComboxEx; if (value != "") Cb.getComboBox.SelectedValue = value; else { Cb.getComboBox.SelectedValue = 0; } } else if (cmTag.fieldTypeId == ControlType.LabComboxText) { LabelComboxEx Cb = control as LabelComboxEx; Cb.getComboBox.Text = value; } else if (cmTag.fieldTypeId == ControlType.LabDate || cmTag.fieldTypeId == ControlType.LabDateTime || cmTag.fieldTypeId == ControlType.LabDateTimeShort || cmTag.fieldTypeId == ControlType.LabTime || cmTag.fieldTypeId == ControlType.LabShortTime) { LabelDateEx Cb = control as LabelDateEx; if (string.IsNullOrEmpty(value.Trim())) value = DateTime.Today.ToShortDateString(); Cb.Text = value; Cb.GetDateTimePicker.Value = Convert.ToDateTime(value); } else if (cmTag.fieldTypeId == ControlType.LabMultiSelectValue) { LabelLookUp lookup = control as LabelLookUp; lookup.SetValueText(value); } else if (cmTag.fieldTypeId == ControlType.LabMultiSelectText) { LabelLookUp lookup = control as LabelLookUp; lookup.SetTextValue(value); } else { if (cmTag.fieldTypeId != 99) { control.Text = value; } } if (cmTag.fieldTypeId == ControlType.LabTextInt && string.IsNullOrEmpty(control.Text)) { control.Text = "0"; } return; } #region 获取参数 public static List GetParamValue(string param) { string SqlParamRegex = "{([^{])+}"; List list = new List(); Regex regex = new Regex(SqlParamRegex); MatchCollection mcs = regex.Matches(param); foreach (Match item in mcs) { list.Add(item.Value); } return list; } #endregion } }