Código fonte Wiki de Comandos para formulários

Última modificação por FlowFast em 2026/03/30 14:24

Mostrar últimos autores
1 === Variáveis para alterar comportamento do formulário ===
2
3 |=Variável|=Descrição
4 |{<ID_FORM>_ADICIONAR}|Habilita ou Desabilita a possibilidade de incluir e remover novas linhas manualmente no formulário.
5 |{<ID_FORM>_REMOVER}|Habilita ou Desabilita a possibilidade de remover linhas já gravadas do formulário.
6 |{<ID_FORM>_REMOVER_NOVOS}|Habita o remover para linhas adicionadas por programação quando o botão ADICIONAR não está habilitado.
7
8 Exemplos:
9 Bloquear a remoção de linhas que vieram de tarefas anteriores (ou seja que já estejam gravadas na tarefa), mas permitir incluir e remover manualmente novas linhas.
10 Defina:
11 {FORM_ITENS_REMOVER} := NAO;
12
13
14 Bloquear a adição e remoção mas deixar a possibilidade de editar as linhas existentes.
15 {FORM_ITENS_ADICIONAR} := NAO;
16 {FORM_ITENS_REMOVER} := NAO;
17
18
19 Bloquear a adição manual de novas linhas e permitir a remoção de todas linhas inclusive as que forem incluidas por programação.
20 Defina:
21 {FORM_ITENS_ADICIONAR} := NAO;
22 {FORM_ITENS_REMOVER_NOVOS} := SIM;
23
24 === Funções para manipular formulários ===
25
26 |=Função|=Descrição
27 |WFL_FORM_QTD_FNC(IN_SEQ_EXECUCAO, IN_FORM)|Retorna a quantidade de linhas presentes no formulário.
28 |WFL_FORM_GET_IDX_FNC(IN_SEQ_EXECUCAO, IN_FORM)|Retorna o índice da linha corrente do formulário, iniciando em 1.
29 |WFL_FORM_SET_IDX_PRC(IN_SEQ_EXECUCAO, IN_FORM, IN_IDX)|Define o índice da linha corrente do formulário, iniciando em 1.
30 |WFL_FORM_ADD_PRC(IN_SEQ_EXECUCAO, IN_FORM)|Adiciona uma linha no form e define o índice corrente já para a linha adicionada.
31 |WFL_FORM_DEL_PRC(IN_SEQ_EXECUCAO, IN_FORM, IN_IDX)|Remover linha do form, onde índice inicial é 1.
32 |WFL_FORM_GET_VLR_FNC(IN_SEQ_EXECUCAO, IN_FORM, IN_CAMPO)|Retorna o valor de um campo do tipo numérico da linha corrente.
33 |WFL_FORM_GET_TXT_FNC(IN_SEQ_EXECUCAO, IN_FORM, IN_CAMPO)|Retorna o valor de um campo do tipo texto da linha corrente.
34 |WFL_FORM_GET_DTA_FNC(IN_SEQ_EXECUCAO, IN_FORM, IN_CAMPO)|Retorna o valor de um campo do tipo data da linha corrente.
35 |WFL_FORM_SET_VLR_PRC(IN_SEQ_EXECUCAO, IN_FORM, IN_CAMPO, IN_VALOR)|Define o valor de um campo do tipo numérico da linha corrente.
36 |WFL_FORM_SET_TXT_PRC(IN_SEQ_EXECUCAO, IN_FORM, IN_CAMPO, IN_VALOR)|Define o valor de um campo do tipo texto da linha corrente.
37 |WFL_FORM_SET_DTA_PRC(IN_SEQ_EXECUCAO, IN_FORM, IN_CAMPO, IN_VALOR)|Define o valor de um campo do tipo data da linha corrente.
38 |WFL_FORM_GET_SUM_VLR_FNC(IN_SEQ_EXECUCAO, IN_FORM, IN_CAMPO)|Retorna o somatório de todas as linhas de um campo do tipo numérico.
39 |WFL_FORM_SET_ALL_VLR_PRC(IN_SEQ_EXECUCAO, IN_FORM, IN_DES_CAMPO, IN_VALOR)|Define o valor de um campo do tipo numérico da linha corrente.
40 |WFL_FORM_SET_ALL_TXT_PRC(IN_SEQ_EXECUCAO, IN_FORM, IN_DES_CAMPO, IN_VALOR)|Define o valor de um campo do tipo texto da linha corrente.
41 |WFL_FORM_SET_ALL_DTA_PRC(IN_SEQ_EXECUCAO, IN_FORM, IN_DES_CAMPO, IN_VALOR)|Define o valor de um campo do tipo data da linha corrente.
42
43 === Exemplos ===
44
45 Popular um formulário a partir de um select
46 ORACLE:
47
48 (((
49 {{code language="SQL" layout="LINENUMBERS"}}
50 FOR rlin IN (SELECT e.COD_CIDADE
51 , e.DES_CIDADE
52 FROM ADM_CIDADE e
53 WHERE e.cod_uf = 'RS') LOOP
54
55 wfl_form_add_prc(in_seq_execucao => {XCP_SEQ_EXECUCAO}, in_form => 'FORM_CIDADES');
56
57 wfl_form_set_vlr_prc(in_seq_execucao => {XCP_SEQ_EXECUCAO}
58 ,in_form => 'FORM_CIDADES'
59 ,in_campo => 'COD_CIDADE'
60 ,in_valor => rlin.cod_cidade);
61
62 wfl_form_set_txt_prc(in_seq_execucao => {XCP_SEQ_EXECUCAO}
63 ,in_form => 'FORM_CIDADES'
64 ,in_campo => 'DES_CIDADE'
65 ,in_valor => rlin.des_cidade);
66
67 END LOOP;
68 {{/code}}
69 )))
70
71 POSTGRES:
72
73 (((
74 {{code language="SQL" layout="LINENUMBERS"}}
75 FOR rlin IN (SELECT e.COD_CIDADE
76 , e.DES_CIDADE
77 FROM ADM_CIDADE e
78 WHERE e.cod_uf = 'RS') LOOP
79
80 execute wfl_form_add_prc(in_seq_execucao => {XCP_SEQ_EXECUCAO}, in_form => 'FORM_CIDADES');
81
82 execute wfl_form_set_vlr_prc(in_seq_execucao => {XCP_SEQ_EXECUCAO}
83 ,in_form => 'FORM_CIDADES'
84 ,in_campo => 'COD_CIDADE'
85 ,in_valor => rlin.cod_cidade);
86
87 execute wfl_form_set_txt_prc(in_seq_execucao => {XCP_SEQ_EXECUCAO}
88 ,in_form => 'FORM_CIDADES'
89 ,in_campo => 'DES_CIDADE'
90 ,in_valor => rlin.des_cidade);
91
92 END LOOP;
93 {{/code}}
94 )))
95
96 Lê um formulário e insere em uma tabela
97
98 ORACLE:
99 (((
100 {{code language="SQL" layout="LINENUMBERS"}}
101 DECLARE
102 wqtd NUMBER;
103 wuf VARCHAR2(2);
104 wcid NUMBER;
105 wdes VARCHAR2(4000);
106 BEGIN
107 wqtd := wfl_form_qtd_fnc({XCP_SEQ_EXECUCAO}, 'FORM_N1');
108
109 FOR i IN 1..wqtd LOOP
110 wfl_form_set_idx_prc({XCP_SEQ_EXECUCAO}, 'FORM_N1', i);
111
112 wuf := wfl_form_get_txt_fnc({XCP_SEQ_EXECUCAO}, 'FORM_N1', 'COD_UF');
113 wcid := wfl_form_get_vlr_fnc({XCP_SEQ_EXECUCAO}, 'FORM_N1', 'COD_CID');
114 wdes := wfl_form_get_txt_fnc({XCP_SEQ_EXECUCAO}, 'FORM_N1', 'DES_CID');
115
116 INSERT INTO cidades VALUES (wuf, wcid, wdes);
117 END LOOP;
118
119 END;
120 {{/code}}
121 )))
122
123 POSTGRES:
124 (((
125 {{code language="SQL" layout="LINENUMBERS"}}
126 DECLARE
127 wqtd NUMERIC;
128 wuf VARCHAR;
129 wcid NUMERIC;
130 wdes VARCHAR;
131 BEGIN
132 wqtd := wfl_form_qtd_fnc({XCP_SEQ_EXECUCAO}, 'FORM_N1');
133
134 FOR i IN 1..wqtd LOOP
135 execute wfl_form_set_idx_prc({XCP_SEQ_EXECUCAO}, 'FORM_N1', i);
136
137 wuf := wfl_form_get_txt_fnc({XCP_SEQ_EXECUCAO}, 'FORM_N1', 'COD_UF');
138 wcid := wfl_form_get_vlr_fnc({XCP_SEQ_EXECUCAO}, 'FORM_N1', 'COD_CID');
139 wdes := wfl_form_get_txt_fnc({XCP_SEQ_EXECUCAO}, 'FORM_N1', 'DES_CID');
140
141 INSERT INTO cidades VALUES (wuf, wcid, wdes);
142 END LOOP;
143
144 END;
145 {{/code}}
146 )))