OnDeleteLine - Событие на удаление строки в табличной части документа
Событие на удаление строки в табличной части документа
Событие OnDeleteLine - приходит к документу после ручного удаления строки в табличной части документа. При удалении строки все низлежащие строки автоматически сдвигаются вверх ( номер строки уменьшается на 1 ). Вы можете перенумеровать поле "Номер строки" в табличной части, а также пересчитать итоговую сумму по документу, после удаления строки из табличной части.
Вы можете также програмным способом удалять строки из табличной части. Для этого служит функция src/kernel/del_line.p. Или удалить всю табличную часть. Для этого служит функция src/kernel/deltable.p.
Синтаксис события:
PROCEDURE OnDeleteLine:
define input parameter rid-doc as integer.
define input parameter frm as character.
define input parameter row as integer.
Где rid-doc - внутренний номер документа, frm - номер области табличной части документа для которой пришло событие (Документ может иметь несколько табличных частей), row - Номер удаляемой строки в табличной части документа.
Пример Использования:
PROCEDURE OnDeleteLine :
define input parameter rid-doc as integer.
define input parameter frm as character.
define input parameter row as integer.
define variable i as integer.
define variable rows as integer.
define variable sum as decimal.
define variable nds as decimal.
run src/kernel/get_tr.p ( 2, rid-doc, OUTPUT rows ).
DO i = row to rows:
run src/kernel/set_ftv.p ( "2:1", rid-doc, i, STRING ( i ) ).
END.
run src/kernel/get_tfun.p ( "2:5", rid-doc, 1, OUTPUT sum ).
run src/kernel/set_ffv.p ( "1:12", rid-doc, STRING ( sum ) ).
run src/kernel/get_tfun.p ( "2:6", rid-doc, 1, OUTPUT nds ).
run src/kernel/set_ffv.p ( "1:6", rid-doc, STRING ( nds ) ).
END.