OnChoose - Событие нажатия кнопки документа
Событие нажатия кнопки документа.
Событие OnChoose - событие приходящее к полям типа кнопка при нажатии ее пользователем.
Вы можете писать сложные обработчики на событие нажатие кнопки. Если документ имеет несколько кнопок, то нужный обработчик внутри события можно определить по коду нажатой кнопки из поля fld.
Замечание: Поля типа кнопка могут быть определены только для нетабличной части документа.
Синтаксис вызова события :
PROCEDURE OnChoose:
define input parameter rid-doc as integer.
define input parameter fld as character.
Где rid-doc - внутренний номер редактируемого в форме документа,
fld - поле для которого пришло данное событие.
Пример использования:
define temp-table res no-undo
field item as char format "X(7)" /* показатель */
field sum-opr as decimal
field sum-prv as decimal
field is-sum as logical init no
index i0 is primary item ascending .
define temp-table resa no-undo
field item as char format "X(7)" /* показатель */
field count as char format "X(10)" /* счет */
FIELD plus-minus as character format "x(2)"
FIELD formula as character format "x(15)"
field sum-beg as decimal format
field sum-val as decimal format
field sum-end as decimal format
index i0 item count .
PROCEDURE OnChoose :
define input parameter rid-doc as integer.
define input parameter fld as character.
define variable i as integer.
define variable j as integer.
define variable d-beg as date.
define variable d-end as date.
define variable rid-per as integer. /* rid периода */
define variable rid-per-prev as integer. /* rid пред. периода */
define variable id-curr as integer. /* валюта */
define variable append-file as character.
run src/kernel/get_ffv.p ( "1:1", rid-doc ).
doc-date = date (return-value).
run src/kernel/get_ffv.p ( "1:4", rid-doc ). /* период */
if return-value = "" then do:
run src/message_alert.p ( "Не задан период").
return.
end.
rid-per = INTEGER ( RETURN-VALUE ).
run src/kernel/get_ffv.p ( "1:11", rid-doc ). /* накоп. период */
rid-per-prev = INTEGER ( RETURN-VALUE ).
run src/kernel/get_ffv.p ( "1:5", rid-doc ). /* валюта */
id-curr = integer ( RETURN-VALUE ).
run src/kernel/get_ffv.p ( "1:9", rid-doc ).
append-file = RETURN-VALUE.
run src/kernel/get_ffv.p ( "1:13", rid-doc ).
d-beg = date ( RETURN-VALUE ).
run src/kernel/get_ffv.p ( "1:14", rid-doc ).
d-end = date ( RETURN-VALUE ).
run src/kernel/get_ffv.p ( "1:10", rid-doc ).
report-type = RETURN-VALUE.
run calc ( append-file, rid-per,rid-per-prev,id-curr, OUTPUT TABLE res, OUTPUT TABLE resa ).
ModifyMode = no.
i = 1.
run src/kernel/deltable.p ( 2, rid-doc ).
run src/kernel/deltable.p ( 3, rid-doc ).
for each res by res.item:
run src/kernel/set_ftv.p ("2:1", rid-doc,i ,res.item ).
run src/kernel/set_ftv.p ("2:2", rid-doc,i ,string(round(res.sum-opr / 1000, 1)) ).
run src/kernel/set_ftv.p ("2:3", rid-doc,i ,string(round(res.sum-prv / 1000, 1)) ).
i = i + 1.
end.
i = 1.
for each resa:
run src/kernel/set_ftv.p ("3:1", rid-doc,i ,resa.item ).
run src/kernel/set_ftv.p ("3:2", rid-doc,i ,string(resa.count )).
run src/kernel/set_ftv.p ("3:3", rid-doc,i ,string(resa.plus-minus )).
run src/kernel/set_ftv.p ("3:4", rid-doc,i ,string(resa.formula )).
run src/kernel/set_ftv.p ("3:5", rid-doc,i ,string(resa.sum-beg )).
run src/kernel/set_ftv.p ("3:6", rid-doc,i ,string(resa.sum-end )).
run src/kernel/set_ftv.p ("3:7", rid-doc,i ,string(resa.sum-val )).
i = i + 1.
end.
ModifyMode = yes.
END.



