public GenRow(ModuleGenerator generator, //Ссылка на генератор TablsList dataTabls, //Исходные таблицы для генерации GenTemplateTable table, DaoRec rec, //Рекортсет и поля таблицы GenTemplateTable subTable, DaoRec subRec) //Рекордсет и и поля подтаблицы : base(generator, table, rec) { Id = rec.GetInt(table.IdField); var dataTabl = Rule == null ? null : ((NodeRTabl)Rule).Check(dataTabls, null); foreach (var key in Fields.Keys) { Keeper.SetFieldName(key); Fields[key].Check(dataTabl); } if (subRec != null && !subRec.EOF) { Keeper.SetFieldName(""); bool subErr = false; while (subRec.GetInt(subTable.ParentIdField) == Id) { var row = new GenSubRow(generator, dataTabls, dataTabl, subTable, subRec); if (row.Keeper.Errors.Count != 0 && !subErr) { Keeper.AddError("Ошибки в рядах подтаблицы", (IToken)null); subErr = true; } SubRows.Add(row); if (!subRec.MoveNext()) { break; } } } rec.Put(table.ErrField, Keeper.ErrMess); }
public GenSubRow(ModuleGenerator generator, //Ссылка на генератор TablsList dataTabls, //Исходные таблицы для генерации ITablStruct dataTabl, //Таблица - шаблон генерации GenTemplateTable table, //Поля таблицы - шаблона генерации DaoRec rec) //Рекордсет таблицы результатов : base(generator, table, rec) { var subTabl = Rule == null ? dataTabl : ((INodeRTabl)Rule).Check(dataTabls, dataTabl); foreach (var key in Fields.Keys) { Keeper.SetFieldName(key); Fields[key].Check(subTabl); } rec.Put(table.ErrField, Keeper.ErrMess); }