![]() |
#27 |
Участник
|
Ниччего не получается
![]() Хочу сделать так, чтобы у отмеченных записей инвертировалось логическое поле Archives. Сделал метод вот такой: X++: public static void main(Args _args) { FormRun fr; FormDatasource fds; PurchReqTable purchReqTableLocal; ; if(!_args) throw error("Класс должен быть вызван с параметрами!"); else { fr = _args.caller(); //info(fr.name()); if (fr) { fds = fr.dataSource(); ttsbegin; for (purchReqTableLocal = fds.getFirst(true) ? fds.getFirst(true) : fds.cursor(); purchReqTableLocal; purchReqTableLocal = fds.getNext()) { purchReqTableLocal.Archives = !purchReqTableLocal.Archives; purchReqTableLocal.doUpdate(); } ttscommit; // делаем проверку, изменилось ли содержимое: for (purchReqTableLocal = fds.getFirst(true) ? fds.getFirst(true) : fds.cursor(); purchReqTableLocal; purchReqTableLocal = fds.getNext()) { info(strfmt("%1, %2", purchReqTableLocal.PurchReqId, purchReqTableLocal.Archives)); } } } } Не работает! "Проверка" проходит нормально, отображаются правильные ключи отмеченных записей с правильным (как бы новым) значением изменяемого поля. Но записи реально не изменяются (убедился через журнал базы данных). При этом, если не отмечать несколько записей, а запускать для просто текущей - оно работает. Пробовал ttsbegin и ttscommit помещать внутрь цикла - не помогло. Помогите, пожалуйста. |
|
|
|