![]() |
#2 |
Участник
|
Сильно не вглядывался, но на вскидку примерно так...
Во-первых, объем кода на формах надо "максимально минимизировать". Во-вторых, если и пишете логику на кнопке, выносите эту логику в отдельную функцию и вызывайте ее с OnPush'a В-третьих, не трогайте стандартную кнопку Печать на форме. Вынесите в отдельный MenuItem какой-нибудь. В-четвертых, если решили работать с кнопкой Печать, то вместо вот этого: 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); напишите что-нибудь вроде IF МояФункцияГдеТоНаПросторахТаблицы36 THEN REPORT.RUN(lrc_Belegsteuerung."ID Auftragsbestätigung",TRUE,FALSE,lrc_SalesHeader); Пишите логику на таблицах и кодэюнитах. Ну и про операторы не забывайте: ISEMPTY, FINDFIRST, FINDSET, COUNTAPPROX и все такое прочее... Почитайте по ним мануалы, либо поищите на этом форуме отличия перечисленных от обычных FIND('-') и прочих допотопных. |
|