Показать сообщение отдельно
Старый 04.11.2010, 13:59   #1  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Дня доброго коллегам и профессионалам этого форума.
Очень рассчитываю на Вашу помощь. Я в Навижн новичок (пока). Но надеюсь (в т.ч. и помощью форума) овладеть сиим мощным "орудием".
Проблема у меня в следующем:
Есть документ (н-р, счет-фактура). В нем в табл.части есть колонка "Print", в которой юзер ставит галочки в тех строках, которые должны быть выведены на печать. Но тут возникает опасность: распечатаны будут не все строки, которые будут реально проведены, т.е. в рез-те клиент получит счет на одну сумму, а по бухгалтерии будет проведена совсем другая.
Чтобы предотвратить эту коллизию предлагается следующее: при нажатии на кнопку "Печать", осуществлять проверку строк документа, и если есть строки без крыжика "Print", но с "Кол-во к отгрузке" или "Кол-во к фактурированию" не равными 0, то выдавать соответствующее предупреждение.

Вопрос: в какое место впихнуть эту проверку? и какими средствами ее осуществлять?
Я сделала пока так:
1)В форме Fxxxxx (счета-фактуры) добавила переменные OK(boolean), QtySum(decimal), VerkZeilen(Record.Sales Line), Text001(Text).
2) В модуле для MenuButton "Печать" в триггер OnPush() вставлен след.код:

VerkZeilen.SETRANGE("Document Type","Document Type");
VerkZeilen.SETFILTER("Document No.", "No.");
VerkZeilen.SETRANGE(drucken,FALSE);
OK := TRUE;
IF VerkZeilen.FIND('-') THEN
BEGIN
CLEAR(QtySum);
REPEAT
QtySum := QtySum + ABS(VerkZeilen."Qty. to Invoice") + ABS(VerkZeilen."Qty. to Ship");
UNTIL VerkZeilen.NEXT = 0;
IF QtySum <> 0 THEN OK := CONFIRM(Text001);
END;
IF OK THEN
REPORT.RUN(lrc_Belegsteuerung."ID Auftragsbestätigung",TRUE,FALSE,lrc_SalesHeader);

Не судите строго, это моя т.с. первая проба пера Подскажите, плиз, более корректное и изящное решение описанной проблемы? (что я сделала неправильно, что лишнее и т.д.?)
Вроде работает, но я не уверена, что это "высокий стиль"