Показать сообщение отдельно
Старый 19.03.2003, 16:17   #6  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Во-первых, для данной ситуации лучше использовать триггер OnAfterGetRecord в форме заголовка. Он выполняется всегда, когда ты получаешь запись из БД. Т.е. если пользователь нажмет Page Up или Page Down, произойдет его выполненте.
Далее, когда ты изменяешь количество в строках, выполняется триггер из таблицы Продажа Строка (Sales Line), в котором и прописаны все изменения в строке, т.е. пересчет скидок, сумм и т.д. Чтобы заставить его выполниться принудительно делаем следующее:
Validate(Quantity,1);
К сожалению, как сделать обратное преобразование, т.е. чтобы при изменении количества в строках изменялась галочка, я не знаю. Возможно, если ты добавишь эти поля (Fin1...Fin10) в таблицу Продажа Заголовок (Sales Header), то тогда в таблице Продажа Строка на триггер OnValidate для поля количества в самом конце можно сделать так:
SalesHeader.get("Document Type","Document No."); //получаем заголовок продажи
{ получаешь номер строки в текущем документе, к примеру, 5
...
}
if SalesHeader.Quantity<>0 then begin
SalesHeader."Fin5":=true;
end else begin
SalesHeader."Fin5":=false;
end;
SalesHeader.modify;