Beispiel #1
0
        private DataType CheckField(GenKeeper keeper, ITablStruct tstruct, string formula)
        {
            keeper.Errors.Clear();
            var parsing = new FieldsParsing(keeper, "поле", formula);

            if (parsing.ResultTree == null)
            {
                return(DataType.Error);
            }
            return(((IExprNode)parsing.ResultTree).Check(tstruct));
        }
Beispiel #2
0
        private ITablStruct CheckSubRule(GenKeeper keeper, TablsList tabls, ITablStruct tstruct, string formula)
        {
            keeper.Errors.Clear();
            var parsing = new SubRuleParsing(keeper, "поле", formula);

            if (parsing.ResultTree == null)
            {
                return(null);
            }
            return(((INodeRTabl)parsing.ResultTree).Check(tabls, tstruct));
        }
Beispiel #3
0
        //Выбрать ряды по условию генерации подтаблицы
        private SubRows[] SelectSubRowsS(GenKeeper keeper, TablsList tabls, ITablStruct tstruct, SubRows rows, string formula)
        {
            keeper.Errors.Clear();
            var parsing = new SubRuleParsing(keeper, "поле", formula);

            if (parsing.ResultTree == null)
            {
                return(null);
            }
            var node = (SubNodeR)parsing.ResultTree;

            node.Check(tabls, tstruct);
            return(node.SelectRows(tabls, rows).ToArray());
        }
Beispiel #4
0
        //Выбрать ряды по условию генерации таблицы, возвращает ряды и, возможно, также структуру
        private SubRows[] SelectRowsS(GenKeeper keeper, TablsList tabls, string formula)
        {
            keeper.Errors.Clear();
            var parsing = new RuleParsing(keeper, "поле", formula);

            if (parsing.ResultTree == null)
            {
                return(null);
            }
            var node = (NodeRTabl)parsing.ResultTree;

            node.Check(tabls, null);
            return(node.SelectRows(tabls, null).ToArray());
        }
Beispiel #5
0
        private IEnumerable <SubRows> SelectRowsStruct(GenKeeper keeper, TablsList tabls, string formula, out ITablStruct tstruct)
        {
            tstruct = null;
            keeper.Errors.Clear();
            var parsing = new RuleParsing(keeper, "поле", formula);

            if (parsing.ResultTree == null)
            {
                return(null);
            }
            var node = (NodeRTabl)parsing.ResultTree;

            tstruct = node.Check(tabls, null);
            return(node.SelectRows(tabls, null));
        }
Beispiel #6
0
 private TablRow[] SelectSubRows(GenKeeper keeper, TablsList tabls, ITablStruct tstruct, SubRows rows, string formula)
 {
     return(SelectSubRowsS(keeper, tabls, tstruct, rows, formula).Cast <TablRow>().ToArray());
 }
Beispiel #7
0
 private TablRow[] SelectRows(GenKeeper keeper, TablsList tabls, string formula)
 {
     return(SelectRowsS(keeper, tabls, formula).Cast <TablRow>().ToArray());
 }
Beispiel #8
0
 private string ParseSub(GenKeeper keeper, string formula)
 {
     keeper.Errors.Clear();
     return(new SubRuleParsing(keeper, "поле", formula).ToTestString());
 }