Definição da Regra de Negócio
Todas as regras abaixo somente serão aplicadas se o pré-processador de negócio BF_FIN_COPCOL_PADR_COL estiver habilitado.
Será criado um botão de cópia no programa MGL007AA (Protótipo 1). Ao chamar este botão serão solicitados dois blocos de informações: Origem e Destino (Protótipo 2).
No bloco Origem será solicitado o código do Padrão de Colunas, uma faixa de colunas (Inicial e Final) e as opções para tratamento das colunas já existentes no Destino: Ignora, Incrementa, Atualiza.
Se a opção Ignora for selecionada e houver a mesma coluna no Padrão de Colunas Destino, não será realizada nenhuma ação para esta coluna.
Se a opção Incrementa for selecionada e houver a mesma coluna no Padrão de Colunas Destino, serão criadas novas colunas com as parametrizações das colunas de origem. Exemplo: Padrão de Coluna de Origem com colunas A e B; Padrão de Colunas Destino com colunas A, B e C; opção Incrementa selecionada. As colunas origem A será copiada para a coluna destino D e a coluna origem B será copiada para a coluna destino E. Assim, o Padrão de Colunas destino ficará com as colunas A, B, C, D e E.
Para determinar o código da próxima coluna a ser criada, utilizar a lógica abaixo, onde, a variável v_cod_ultima_col representa o código da última coluna existente e a variável v_cod_nova_col representa a nova coluna a ser criada.
def var v_cod_ultima_col as char no-undo init "ZZ" /* Exemplo */.
def var v_cod_nova_col as char no-undo.
if substr(v_cod_ultima_col,1,1) = chr(90) and
substr(v_cod_ultima_col,2,1) = chr(32) then do:
assign v_cod_nova_col = chr(65) + chr(65).
end.
else do:
if substr(v_cod_ultima_col,2,1) = chr(90) then do:
assign v_cod_nova_col = chr(asc(substr(v_cod_ultima_col,1,1)) + 1) +
chr(65).
end.
else do:
if substr(v_cod_ultima_col,2,1) <> chr(32) then do:
assign v_cod_nova_col = chr(asc(substr(v_cod_ultima_col,1,1))) +
chr(asc(substr(v_cod_ultima_col,2,1)) + 1).
end.
else do:
assign v_cod_nova_col = chr(asc(substr(v_cod_ultima_col,1,1)) + 1).
end.
end.
end.
Se a opção Atualiza for selecionada e houver a mesma coluna no Padrão de Colunas Destino, esta coluna será atualizada com as informações da coluna origem.
No bloco Destino, será solicitado o código do Padrão de Colunas que será o destino das colunas copiadas, que deverá ter sido cadastrado previamente.
Rotina | Tipo de Operação | Opção de Menu |
[MGL007AA – Padrão Colunas Demonstrativo] | [Cópia] | [Financeiro / Controladoria - Contabilidade Gerencial - Cadastros] |