Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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 = "";
        }
Exemplo n.º 3
0
        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          = "";
            }
        }
Exemplo n.º 4
0
        public RuleColumnException(DataRule dr, DataRow row, RuleColumn rc, string message, Exception innerException)
            : base(dr, message, innerException)
        {
            Code += "10";

            mDataRow    = row;
            mRuleColumn = rc;
        }
Exemplo n.º 5
0
        public static void SetPrimaryKey(DataColumn column, bool value)
        {
            RuleColumn rcolumn = GetRuleColumn(column);

            if (rcolumn != null)
            {
                rcolumn.PrimaryKey = value;
            }
        }
Exemplo n.º 6
0
        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;
                }
            }
        }
Exemplo n.º 7
0
        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 = "";
        }
Exemplo n.º 8
0
        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()));
            }
        }
Exemplo n.º 9
0
        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;
        }
Exemplo n.º 10
0
        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);
            }
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
 public abstract Object GetDefaultValue(RuleColumn column);
Exemplo n.º 13
0
        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);
            }
        }
Exemplo n.º 14
0
 public RuleColumnConstraintException(DataRule dr, DataRow row, RuleColumn rc, string message, Exception innerException)
     : base(dr, row, rc, message, innerException)
 {
     Code += "0001";
 }
Exemplo n.º 15
0
 public RuleColumnConstraintException(DataRule dr, DataRow row, RuleColumn rc)
     : base(dr, row, rc, rc.HasErrorMessage ? rc.ErrorMessage : "“" + rc.Label + "”约束出错!")
 {
     Code += "0001";
 }
Exemplo n.º 16
0
        public static bool IsPrimaryKey(DataColumn column)
        {
            RuleColumn rcolumn = GetRuleColumn(column);

            return(rcolumn != null ? rcolumn.PrimaryKey : true);
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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);
        }