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)); }
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)); }
//Выбрать ряды по условию генерации подтаблицы 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()); }
//Выбрать ряды по условию генерации таблицы, возвращает ряды и, возможно, также структуру 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()); }
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)); }
private TablRow[] SelectSubRows(GenKeeper keeper, TablsList tabls, ITablStruct tstruct, SubRows rows, string formula) { return(SelectSubRowsS(keeper, tabls, tstruct, rows, formula).Cast <TablRow>().ToArray()); }
private TablRow[] SelectRows(GenKeeper keeper, TablsList tabls, string formula) { return(SelectRowsS(keeper, tabls, formula).Cast <TablRow>().ToArray()); }
private string ParseSub(GenKeeper keeper, string formula) { keeper.Errors.Clear(); return(new SubRuleParsing(keeper, "поле", formula).ToTestString()); }