public static void InitDataGridViewColumns(DataGridView grid, DataRule dr) { if (grid == null || dr == null) { return; } grid.VirtualMode = true; DataTable table = dr.GetFieldRule(); if (table != null) { DataGridViewColumn gcolumn; DataRowCollection rows = table.Rows; if (grid.Columns.Count > 0) { grid.Columns.Clear(); } foreach (DataRow row in rows) { gcolumn = CreateDataGridViewColumn(RuleColumn.FromDataRow(row)); if (gcolumn != null) { grid.Columns.Add(gcolumn); } } grid.EditingControlShowing -= new DataGridViewEditingControlShowingEventHandler(DataGridViewEditingControlShowing); grid.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(DataGridViewEditingControlShowing); } }
public static void BindMaskedTextBox(MaskedTextBox box, DataColumn column) { if (box == null || column == null) { return; } BindingSource bs = GetBindingSource(column.Table); if (bs != null) { box.DataBindings.Add("Text", bs, column.ColumnName); } box.Tag = column; box.Leave -= new EventHandler(ControlLeave); box.Leave += new EventHandler(ControlLeave); RuleColumn rc = TableUtil.GetRuleColumn(column); if (rc != null) { box.Mask = rc.Mask; } box.Text = ""; }
public static void BindComboBox(ComboBox box, DataColumn column) { if (box == null || column == null) { return; } BindingSource bs = GetBindingSource(column.Table); if (bs != null) { box.DataBindings.Add("SelectedValue", bs, column.ColumnName); } box.Tag = column; box.Leave -= new EventHandler(ControlLeave); box.Leave += new EventHandler(ControlLeave); RuleColumn rcolumn = TableUtil.GetRuleColumn(column); if (rcolumn != null) { InitComboBox(box, rcolumn); } else { box.ValueMember = column.ColumnName; box.DisplayMember = column.ColumnName; box.Text = ""; } }
public RuleColumnException(DataRule dr, DataRow row, RuleColumn rc, string message, Exception innerException) : base(dr, message, innerException) { Code += "10"; mDataRow = row; mRuleColumn = rc; }
public static void SetPrimaryKey(DataColumn column, bool value) { RuleColumn rcolumn = GetRuleColumn(column); if (rcolumn != null) { rcolumn.PrimaryKey = value; } }
public static void BindDateTimePicker(DateTimePicker picker, DataColumn column) { if (picker == null || column == null || !column.DataType.ToString().Equals("System.DateTime")) { return; } BindingSource bs = GetBindingSource(column.Table); if (bs != null) { picker.DataBindings.Add("Text", bs, column.ColumnName); } picker.Tag = column; picker.Leave -= new EventHandler(ControlLeave); picker.Leave += new EventHandler(ControlLeave); if (picker.CustomFormat == null || picker.CustomFormat.Equals("")) { RuleColumn rcolumn = TableUtil.GetRuleColumn(column); if (rcolumn != null) { switch (rcolumn.DataType) { case DataTypes.dtDateTime: picker.CustomFormat = "yyyy-MM-dd HH:mm:ss"; break; case DataTypes.dtDate: picker.CustomFormat = "yyyy-MM-dd"; break; case DataTypes.dtTime: picker.CustomFormat = "HH:mm:ss"; break; default: return; } picker.Format = DateTimePickerFormat.Custom; } } }
private static void InitComboBox(ComboBox box, RuleColumn rcolumn) { if (box == null || rcolumn == null) { return; } if (rcolumn.HasMapInfo) { DataMap dm = SystemContext.MapManager.FromMapInfo(rcolumn.MapInfo); if (dm != null) { box.DataSource = dm.GetMapTable(rcolumn.GetLocalType()); box.ValueMember = "Key"; box.DisplayMember = "Value"; } } box.Text = ""; }
public static string FieldValueToString(object value, RuleColumn rc) { if (value == null) { return(""); } else if (rc != null) { switch (rc.DataType) { case DataTypes.dtBLOB: return(BCUtil.Encode(value as byte[])); case DataTypes.dtLONG: return(BCUtil.Encode(value as byte[])); case DataTypes.dtCLOB: return(BCUtil.Encode(value.ToString())); case DataTypes.dtXMLType: return(BCUtil.Encode(value.ToString())); case DataTypes.dtBoolean: return(BCUtil.Encode((bool)value == true ? "1" : "0")); default: return(BCUtil.Encode(value.ToString())); } } else if (value is byte[]) { return(BCUtil.Encode(value as byte[])); } else { return(BCUtil.Encode(value.ToString())); } }
public static void BindCheckBox(CheckBox box, DataColumn column) { if (box == null || column == null || !column.DataType.ToString().Equals("System.Boolean")) { return; } BindingSource bs = GetBindingSource(column.Table); if (bs != null) { box.DataBindings.Add("Checked", bs, column.ColumnName); } box.Tag = column; box.Leave -= new EventHandler(ControlLeave); box.Leave += new EventHandler(ControlLeave); if (box.Name.Equals("") || box.Name.StartsWith("checkBox")) { RuleColumn rcolumn = TableUtil.GetRuleColumn(column); if (rcolumn != null) { box.Text = rcolumn.Label; string labelname = box.Name.Replace("checkBox", "label"); Control[] ctrls = box.Parent is CommonEditBox?box.Parent.Parent.Controls.Find(labelname, false) : box.Parent.Controls.Find(labelname, false); if (ctrls.Length > 0) { ctrls[0].Text = ""; } } } box.Checked = false; }
public static bool InitTableSchemaFromSql(DataTable table, string sql, string paramvalue, string pageinfo, string dsname, string alias) { if (table == null || sql == null || sql.Equals("")) { return(false); } DataServices.OpenSql(table, sql, paramvalue, pageinfo, dsname); try { TableUtil.SetProperty(table, SysConstant.scSQL, sql); TableUtil.SetProperty(table, SysConstant.scParamValue, paramvalue); TableUtil.SetProperty(table, SysConstant.scBindAlias, alias); TableUtil.SetProperty(table, SysConstant.scPageManager, new PageManager(table)); TableUtil.SetProperty(table, SysConstant.scPrimaryKey, ""); DataColumn column; RuleColumn rcolumn; int count = table.Columns.Count; for (int i = 0; i < count; i++) { column = table.Columns[i]; rcolumn = RuleColumn.FromDataColumn(column); rcolumn.WhereOpt = "n"; TableUtil.SetProperty(column, SysConstant.scRuleColumn, rcolumn); } return(true); } catch (Exception e) { throw new Exception("SDP-ST02 填充元数据出错:" + e.Message); } }
public static DataGridViewColumn CreateDataGridViewColumn(RuleColumn rcolumn) { if (rcolumn == null) { return(null); } DataGridViewColumn gcolumn = null; switch (rcolumn.DataType) { case DataTypes.dtBoolean: gcolumn = new DataGridViewCheckBoxColumn(); break; case DataTypes.dtDateTime: gcolumn = new CalendarColumn("yyyy-MM-dd HH:mm:ss"); break; case DataTypes.dtDate: gcolumn = new CalendarColumn("yyyy-MM-dd"); break; case DataTypes.dtTime: gcolumn = new CalendarColumn("HH:mm:ss"); break; case DataTypes.dtBLOB: gcolumn = new DataGridViewImageColumn(); break; default: if (rcolumn.HasMapInfo) { DataMap dm = SystemContext.MapManager.FromMapInfo(rcolumn.MapInfo); if (dm != null) { DataTable mtable = dm.GetMapTable(rcolumn.GetLocalType()); if (mtable != null && mtable.Rows.Count > 0) { gcolumn = new DataGridViewComboBoxColumn(); DataGridViewComboBoxCell combboxcell = gcolumn.CellTemplate as DataGridViewComboBoxCell; if (combboxcell != null) { combboxcell.DataSource = mtable; combboxcell.ValueMember = "Key"; combboxcell.DisplayMember = "Value"; } } } } else if (rcolumn.HasMask) { gcolumn = new MaskedTextBoxColumn(rcolumn.Mask); } else { switch (rcolumn.UiCtrOpt) { case UICtrOpt.TextButton: gcolumn = new TextBoxButtonColumn(); break; default: gcolumn = new DataGridViewTextBoxColumn(); break; } } break; } if (gcolumn == null) { gcolumn = new DataGridViewTextBoxColumn(); } gcolumn.Name = rcolumn.ColumnName; gcolumn.HeaderText = rcolumn.Label; gcolumn.DataPropertyName = rcolumn.ColumnName; gcolumn.Width = rcolumn.Width; gcolumn.Visible = rcolumn.ListCtrlVision; //rcolumn.Visible; gcolumn.SortMode = DataGridViewColumnSortMode.Automatic; if (rcolumn.HasDisplayFormat) { gcolumn.CellTemplate.Style.Format = rcolumn.DisplayFormat; } if (gcolumn.Visible && gcolumn.Width < 100) { if (gcolumn.Width == 0) { gcolumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader; } else { gcolumn.Width = 100; } } return(gcolumn); }
public abstract Object GetDefaultValue(RuleColumn column);
public static bool InitTableSchemaFromDataRule(DataTable table, DataRule dr, string alias) { if (table == null || dr == null) { return(false); } try { DataTable ruletable = dr.GetFieldRule(); if (ruletable == null) { return(false); } DataRule olddr = TableUtil.GetDataRule(table); if (olddr != null) { table.TableNewRow -= new DataTableNewRowEventHandler(olddr.OnTableNewRow); table.ColumnChanged -= new DataColumnChangeEventHandler(olddr.OnColumnChanged); } table.TableNewRow += new DataTableNewRowEventHandler(dr.OnTableNewRow); table.ColumnChanged += new DataColumnChangeEventHandler(dr.OnColumnChanged); table.TableName = dr.RuleName; TableUtil.SetProperty(table, SysConstant.scDataRule, dr); TableUtil.SetProperty(table, SysConstant.scBindAlias, alias); TableUtil.SetProperty(table, SysConstant.scPageManager, new PageManager(table)); DataColumnCollection columns = table.Columns; DataColumn column; RuleColumn rulecolumn; DataRowCollection rows = ruletable.Rows; if (columns.Count > 0) { if (table.Rows.Count > 0) { table.Rows.Clear(); } columns.Clear(); } for (int i = 0; i < rows.Count; i++) { rulecolumn = RuleColumn.FromDataRow(rows[i]); column = new DataColumn(rulecolumn.ColumnName); TableUtil.SetProperty(column, SysConstant.scRuleColumn, rulecolumn); column.Caption = rulecolumn.Label; column.DataType = DataTypes.ToType(rulecolumn.DataType); if (rulecolumn.DataType == DataTypes.dtString) { column.MaxLength = rulecolumn.Size; } if (rulecolumn.HasDefValue) { column.AllowDBNull = rulecolumn.IsNullable; } columns.Add(column); } return(true); } catch (Exception e) { throw new Exception("SDP-ST02 填充元数据出错:" + e.Message); } }
public RuleColumnConstraintException(DataRule dr, DataRow row, RuleColumn rc, string message, Exception innerException) : base(dr, row, rc, message, innerException) { Code += "0001"; }
public RuleColumnConstraintException(DataRule dr, DataRow row, RuleColumn rc) : base(dr, row, rc, rc.HasErrorMessage ? rc.ErrorMessage : "“" + rc.Label + "”约束出错!") { Code += "0001"; }
public static bool IsPrimaryKey(DataColumn column) { RuleColumn rcolumn = GetRuleColumn(column); return(rcolumn != null ? rcolumn.PrimaryKey : true); }
public static bool CheckConstraints(object value, RuleColumn rc, ref string message) { if (value == null && !rc.IsNullable) { message = "“" + rc.Label + "”不能为空值!"; return(false); } if (rc != null && rc.HasConstraints) { string constraints = rc.Constraints.Trim(); message = rc.ErrorMessage.Trim(); if (constraints.ToUpper().StartsWith("REGEXP:")) { return(ExecRegexp(constraints.Substring(7, constraints.Length - 7), (string)value, ref message)); } else if (constraints.ToUpper().StartsWith("NEGREGEXP:")) { return(ExecNegRegexp(constraints.Substring(10, constraints.Length - 10), (string)value, ref message)); } else if (constraints.ToUpper().StartsWith("JAVASCRIPT:")) { string script = constraints.Substring(11, constraints.Length - 11); if (script != null && !script.Equals("")) { return(ExecScript("JavaScript", script, (string)value, ref message)); } } else if (constraints.ToUpper().IndexOf("</CHECK>") > 0) { string[] checks = StrUtil.GetSplitList(constraints, "</CHECK>"); if (checks != null && checks.Length > 0) { string scripttype, script; int index; foreach (string check in checks) { scripttype = ""; script = ""; index = check.ToUpper().IndexOf("<CHECK TYPE=\""); if (index >= 0) { script = check.Substring(index + 13, check.Length - index - 13); index = script.ToUpper().IndexOf("\">"); if (index >= 0) { scripttype = script.Substring(0, index).Trim().ToUpper(); script = script.Substring(index + 2, script.Length - index - 2); } } if (script != null && !script.Equals("")) { if (scripttype.Equals("REGEXP")) { if (!ExecRegexp(script, (string)value, ref message)) { return(false); } } else if (scripttype.Equals("NEGREGEXP")) { if (!ExecNegRegexp(script, (string)value, ref message)) { return(false); } } else if (scripttype != null && !scripttype.Equals("")) { if (!ExecScript(scripttype, script, (string)value, ref message)) { return(false); } } } } } } else { return(ExecRegexp(constraints, (string)value, ref message)); } } return(true); }
public override Object GetDefaultValue(RuleColumn column) { String defvalue = column.DefaultValue; if (defvalue != null && !defvalue.Equals("")) { if (defvalue.StartsWith("SEQ(")) { return(GetSEQValue(defvalue)); } else if (defvalue.StartsWith("GetValueFromRemoteService(")) { return(GetValueFromService(defvalue)); } else if (defvalue.StartsWith("GetValueFromDataRule(")) { return(GetValueFromDataRule(defvalue)); } else if (defvalue.Equals("ServerTime")) { return(GetServerDateTime()); } else if (defvalue.Equals("ClientTime")) { return(GetClientDateTime()); } else if (defvalue.Equals("GUID")) { return(StrUtil.NewGuid()); } else if (defvalue.Equals("LoginID")) { return(SystemContext.LoginId); } else if (defvalue.Equals("UserID")) { return(SystemContext.UserId); } else if (defvalue.Equals("UserCode")) { return(SystemContext.UserCode); } else if (defvalue.Equals("UserName")) { return(SystemContext.UserName); } else if (defvalue.Equals("DeptID")) { return(SystemContext.DeptId); } else if (defvalue.Equals("DeptCode")) { return(SystemContext.DeptCode); } else if (defvalue.Equals("DeptName")) { return(SystemContext.DeptName); } else if (defvalue.Equals("UnitID")) { return(SystemContext.UnitId); } else if (defvalue.Equals("UnitCode")) { return(SystemContext.UnitCode); } else if (defvalue.Equals("UnitName")) { return(SystemContext.UnitName); } else if (defvalue.Equals("ProID")) { return(SystemContext.ProId); } else if (defvalue.Equals("ProCode")) { return(SystemContext.ProCode); } else if (defvalue.Equals("ProName")) { return(SystemContext.ProName); } else { return(defvalue); } } return(null); }