Exemplo n.º 1
0
        public PageManager(DataTable table, DataRule dr)
        {
            mDataTable = table;
            mDataRule  = dr;

            this.SetPageInfo(TableUtil.GetPageInfo(table));
        }
Exemplo n.º 2
0
        public RuleException(DataRule dr, string message)
            : base(message)
        {
            Code += "50";

            mDataRule = dr;
        }
Exemplo n.º 3
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.º 4
0
        public RuleException(DataRule dr, string message, Exception innerException)
            : base(message, innerException)
        {
            Code += "50";

            mDataRule = dr;
        }
Exemplo n.º 5
0
        public static DataRule LoadDataInfo(DataTable table, String rulename, String paramvalue, String pageinfo, String defwhere, String dsname)
        {
            try
            {
                InParams  inparams  = SDPClient.NewInParams();
                OutParams outparams = SDPClient.NewOutParams();

                inparams.SetRequestBody("ServiceName", "DataServices");
                inparams.SetRequestBody("ServiceItem", "LoadDataInfo");
                inparams.SetRequestBody("RuleName", rulename);
                inparams.SetRequestBody("DefWhere", defwhere);
                inparams.SetRequestBody("PageInfo", pageinfo);
                inparams.SetRequestBody("DataSource", dsname);
                inparams.SetRequestParams(paramvalue);

                SDPClient.CallService(inparams, outparams);

                DataRule rule = new DataRule(rulename, outparams);
                SystemContext.RuleManager.AppendDataRule(rule);

                DataTable resulttable = outparams.GetTableParam(rulename).GetDataTableValue();

                DataUtil.InitTableSchemaFromDataRule(table, rule);

                DataUtil.CopyTable(resulttable, table);

                return(rule);
            }
            catch (Exception e)
            {
                System.Console.Out.WriteLine("DataServices.LoadDataInfo Exception: {0}", e);
                throw e;
            }
        }
Exemplo n.º 6
0
        public PageManager(DataTable table)
        {
            mDataTable = table;
            mDataRule  = TableUtil.GetDataRule(mDataTable);

            this.SetPageInfo(TableUtil.GetPageInfo(table));
        }
Exemplo n.º 7
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.º 8
0
        public LinkedTypeUnitTestsDataRuleRegistrar(Lifetime lifetime, DataContexts dataContexts)
        {
            var dataRule = new DataRule <UnitTestElements> .DesperateDataRule(
                "ProjectModelToUnitTestElements",
                UnitTestDataConstants.UnitTestElements.SELECTED,
                LinkedTypeUnitTestsDataRule);

            dataContexts.RegisterDataRule(lifetime, dataRule);
        }
Exemplo n.º 9
0
        public void NotADataRow()
        {
            Order order = ExampleUsage.GetOrder();
            Rule  rule  = DataRule.Create <int>("Customer", mreOperator.Equal, "123");

            MRE  engine = new MRE();
            var  c1_123 = engine.CompileRule <Order>(rule);
            bool passes = c1_123(order);

            Assert.IsTrue(false);       // should not get here.
        }
Exemplo n.º 10
0
        public void RemoveTable(DataTable table)
        {
            if (table != null && mDataTableList.Contains(table))
            {
                mDataTableList.Remove(table);

                DataRule dr = TableUtil.GetDataRule(table);
                if (dr != null)
                {
                    dr.OnRuleExceptionEvent -= new RuleExceptionEventHandle(SendRuleExceptionEvent);
                }
            }
        }
Exemplo n.º 11
0
        public void AddTable(DataTable table)
        {
            if (table != null && !mDataTableList.Contains(table))
            {
                TableUtil.SetProperty(table, AUTOCOMMIT, "1");
                mDataTableList.AddLast(table);

                DataRule dr = TableUtil.GetDataRule(table);
                if (dr != null)
                {
                    dr.OnRuleExceptionEvent -= new RuleExceptionEventHandle(SendRuleExceptionEvent);
                    dr.OnRuleExceptionEvent += new RuleExceptionEventHandle(SendRuleExceptionEvent);
                }
            }
        }
Exemplo n.º 12
0
        public void DataRowTest()
        {
            var dr = GetDataRow();

            Rule rule = DataRule.Create <int>("Column2", mreOperator.Equal, "123") & DataRule.Create <string>("Column1", mreOperator.Equal, "Test");

            MRE  engine = new MRE();
            var  c1_123 = engine.CompileRule <DataRow>(rule);
            bool passes = c1_123(dr);

            Assert.IsTrue(passes);

            dr["Column2"] = 456;
            dr["Column1"] = "Hello";
            passes        = c1_123(dr);
            Assert.IsFalse(passes);
        }
Exemplo n.º 13
0
        public void DataRowTest_RuntimeType()
        {
            var dt = CreateEmptyDataTable();

            Rule rule = DataRule.Create("Column2", MreOperator.Equal, 123, dt.Columns["Column2"].DataType);

            Mre engine = new Mre();
            var c1123  = engine.CompileRule <DataRow>(rule);

            var  dr     = GetDataRow(dt);
            bool passes = c1123(dr);

            Assert.IsTrue(passes);

            dr["Column2"] = 456;
            dr["Column1"] = "Hello";
            passes        = c1123(dr);
            Assert.IsFalse(passes);
        }
Exemplo n.º 14
0
        public void DataRowTest_DBNull()
        {
            Rule rule = DataRule.Create <int?>("Column2", MreOperator.Equal, (int?)null) &
                        DataRule.Create <string>("Column1", MreOperator.Equal, null);

            Mre engine = new Mre();
            var c1123  = engine.CompileRule <DataRow>(rule);

            var dt = CreateEmptyDataTable();
            var dr = GetDataRowDbNull(dt);

            bool passes = c1123(dr);

            Assert.IsTrue(passes);

            dr["Column2"] = 456;
            dr["Column1"] = "Hello";
            passes        = c1123(dr);
            Assert.IsFalse(passes);
        }
Exemplo n.º 15
0
        public void DataRowTest_OldSytntax()
        {
            var dr = GetDataRow();

            Rule rule = new DataRule
            {
                Type        = "System.Int32",
                TargetValue = "123",
                Operator    = "Equal",
                MemberName  = "Column2"
            };

            Mre  engine = new Mre();
            var  c1123  = engine.CompileRule <DataRow>(rule);
            bool passes = c1123(dr);

            Assert.IsTrue(passes);

            dr["Column2"] = 456;
            dr["Column1"] = "Hello";
            passes        = c1123(dr);
            Assert.IsFalse(passes);
        }
Exemplo n.º 16
0
        public static void InitDataGridViewColumns(DataGridView grid, DataTable table)
        {
            if (grid == null || table == null)
            {
                return;
            }

            //if (grid.Columns.Count > 0)
            //    grid.Columns.Clear();

            if (grid.Columns.Count == 0)
            {
                grid.EditingControlShowing -= new DataGridViewEditingControlShowingEventHandler(DataGridViewEditingControlShowing);
                grid.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(DataGridViewEditingControlShowing);

                DataRule dr = TableUtil.GetDataRule(table);
                if (dr != null)
                {
                    DataColumnCollection columns = table.Columns;
                    if (columns.Count > 0)
                    {
                        DataGridViewColumn gcolumn;
                        RuleColumn         rcolumn;
                        foreach (DataColumn column in columns)
                        {
                            rcolumn = TableUtil.GetRuleColumn(column);
                            if (rcolumn != null)
                            {
                                gcolumn = CreateDataGridViewColumn(rcolumn);
                                grid.Columns.Add(gcolumn);
                            }
                            else
                            {
                                InitDataGridViewColumns(grid, dr);
                                break;
                            }
                        }
                    }
                    else
                    {
                        InitDataGridViewColumns(grid, dr);
                    }
                }
                else if (table.Columns.Count > 0)
                {
                    DataGridViewColumn gcolumn;

                    foreach (DataColumn column in table.Columns)
                    {
                        if (TableUtil.StrProperty(column, "Visible").Equals("0"))
                        {
                            continue;
                        }

                        gcolumn = null;

                        string datatype = column.DataType.ToString();

                        if (datatype.Equals("System.Boolean"))
                        {
                            gcolumn              = new DataGridViewCheckBoxColumn();
                            gcolumn.Width        = column.MaxLength > 50 ? column.MaxLength : 50;
                            gcolumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
                        }
                        else if (datatype.Equals("System.DateTime"))
                        {
                            gcolumn              = new CalendarColumn("yyyy-MM-dd HH:mm:ss");
                            gcolumn.Width        = 130;
                            gcolumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
                        }
                        else
                        {
                            string mapInfo = TableUtil.StrProperty(column, "MapInfo");
                            if (!mapInfo.Equals(""))
                            {
                                DataMap dm = SystemContext.MapManager.FromMapInfo(mapInfo);
                                if (dm != null)
                                {
                                    DataTable mtable = dm.GetMapTable(null);
                                    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";
                                        }
                                    }
                                }
                            }

                            if (gcolumn == null)
                            {
                                gcolumn              = new DataGridViewTextBoxColumn();
                                gcolumn.Width        = column.MaxLength > 100 ? column.MaxLength : 100;
                                gcolumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
                            }
                        }

                        gcolumn.Name             = column.ColumnName;
                        gcolumn.HeaderText       = column.Caption;
                        gcolumn.DataPropertyName = column.ColumnName;

                        //gcolumn.Width = column.MaxLength;
                        //gcolumn.Width = column.MaxLength > 100 ? column.MaxLength : 100;

                        //gcolumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;

                        grid.Columns.Add(gcolumn);
                    }
                }

                grid.AutoGenerateColumns = false;
                grid.DataSource          = GetBindingSource(table);
            }
            else
            {
                DataColumn column;
                string     mapInfo;
                foreach (DataGridViewColumn gcolumn in grid.Columns)
                {
                    column = table.Columns[gcolumn.DataPropertyName];
                    if (column != null)
                    {
                        mapInfo = TableUtil.StrProperty(column, "MapInfo");
                        if (!mapInfo.Equals(""))
                        {
                            DataMap dm = SystemContext.MapManager.FromMapInfo(mapInfo);
                            if (dm != null)
                            {
                                DataTable mtable = dm.GetMapTable(null);
                                if (mtable != null && mtable.Rows.Count > 0)
                                {
                                    DataGridViewComboBoxCell combboxcell = gcolumn.CellTemplate as DataGridViewComboBoxCell;
                                    if (combboxcell != null)
                                    {
                                        combboxcell.DataSource    = mtable;
                                        combboxcell.ValueMember   = "Key";
                                        combboxcell.DisplayMember = "Value";
                                    }
                                }
                            }
                        }
                    }
                }

                grid.AutoGenerateColumns = false;
                grid.DataSource          = GetBindingSource(table);
            }

            grid.CellLeave -= new DataGridViewCellEventHandler(DataGridView_CellLeave);
            grid.CellLeave += new DataGridViewCellEventHandler(DataGridView_CellLeave);
        }
Exemplo n.º 17
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.º 18
0
 public static bool InitTableSchemaFromDataRule(DataTable table, DataRule dr)
 {
     return(InitTableSchemaFromDataRule(table, dr, ""));
 }
Exemplo n.º 19
0
 public RuleColumnConstraintException(DataRule dr, DataRow row, RuleColumn rc)
     : base(dr, row, rc, rc.HasErrorMessage ? rc.ErrorMessage : "“" + rc.Label + "”约束出错!")
 {
     Code += "0001";
 }
Exemplo n.º 20
0
 public RuleColumnConstraintException(DataRule dr, DataRow row, RuleColumn rc, string message, Exception innerException)
     : base(dr, row, rc, message, innerException)
 {
     Code += "0001";
 }