Conteúdo
01. Visão Geral
Alguns programas não foram, ou foram parcialmente, convertidos para a harmonização 2023.
Essa alteração era para ser automática mas em algumas situações elas não foram aplicadas, esse documento cita alguma situações que encontramos e a forma corrrigir.
02. Os casos que encontramos:
- O facelift não é aplicado
Característica(s):
O programa não possui as includes do DDK.
Ao executar o programa não executa nada do btb901zo que é o programa que aplica o facelift responsável pela harmonização 2023.
Forma(s) de correção:
Possivelmente esse programa não usou o DDK para ser construido ou as chamadas ao ddk foram removidas, para forçar a execução do facelift, pode incluir as seguintes linhas:
//liga o facelift &GLOBAL-DEFINE aplica_facelift YES //instancia o programa de facelift {include/i_fcldef.i} //aplica o facelift na frame indicada, essa frame deve ser aquela que contem o objeto alvo do facelift {include/i_fclfrm.i NOME-FRAME}
o código é colocado após a definição da window:
Exemplo:
PER001.w
- Algum retângulo no programa não aplica a harmonização 2023
Característica(s):
O programa possui as includes do DDK.
Ao executar o programa não executa nada do btb901zo que é o programa que aplica o facelift responsável pela harmonização 2023.
Algum retângulo dentro do programa não fica com a cor da harmonização.
Forma(s) de correção:
O facelift não altera todos os retângulos da frame caso tenha criado um retângulo com outro nome que não um padrão do DDK esse não será alterado, olhe a procedure pi_altera_rectangle do btb/btb901zo.p (prgtec/btb/btb901zo para o ems5) lá verá quais os retângulos são afetados, caso o nome do seu não esteja na lista pode renomeá-lo para um da lista.
Caso o retângulo seja de nome padrão e mesmo assim ele não foi afetado pode ser que a frame onde está o retângulo foi customizada e não está passando pelo facelift, essa situação pode ser corrigida incluindo-se a linha:
{include/i_fclfrm.i <nome_da_frame>}
Essa linha força a aplicação do facelift na frame, inclua a linha na sessão Included-Libraries do seu programa abaixo da chamada da include do ddk ou baixo da criação da Window do programa.
Exemplo:
im0041.w
ri0301.w
cn9030.w
- Os botões que crio dinamicamente no meu programa não são afetados pelo programa de facelift
Característica(s):
O programa possui as includes do DDK.
Ao executar o programa executa o btb901zo que é o programa que aplica o facelift responsável pela harmonização 2023.
Os botões dinâmicos não são afetados pela harmonização 2023
Forma(s) de correção:
Possivelmente o facelift é aplicado antes da criação dinâmica dos botões, pode mudar o momento da criação dinâmica, ou caso isso não seja possível forçar uma nova aplicação do facelift na frame:
{include/i_fclfrm.i <nome_da_frame>}
Essa linha força a aplicação do facelift na frame, inclua a linha logo após a criação de seus objetos dinâmicos, e ao clirar esses objetos coloque o mínimo de propriedades possível pois o facelift ajusta as propriedades do botão.
Exemplo:
mi0307.w
- O programa possui retângulos e frames de nome padrão mesmo assim não aplica a harmonização
Característica(s):
O programa possui as includes do DDK.
Ao executar o programa executa o btb901zo que é o programa que aplica o facelift responsável pela harmonização 2023.
Algum retângulo dentro do programa não fica com a cor da harmonização 2023.
Forma(s) de correção:
O facelift é desativado na frame caso os pre processadores page0KeyFields e page0Fields estiverem vazios (page1KeyFields e page1Fields ... ) .
Nesse caso é necessário informar algum valor ali, eu usei um campo que estava em outra frame inclusive e alterei dessa forma:
Essa alteração foi suficiente para que o facelift fosse aplicado.
Outra situação envolvendo pre processador, caso não seja indicada uma frame para aba o facelift também não é aplicado:
Exemplo:
re0122.w
fr5843.w
- Está tudo correto mas mesmo assim não aplica a harmonização
Característica(s):
Verifiquei os itens acima e o programa não aplica a harmonização
Forma(s) de correção:
Veja se o programa possui uma dessas includes:
i_prdvers.i
i-prgvrs.i
E se a release retornada e igual ou superior a 12.1.x.2307 no ambiente em que está compilando o programa, como na imagem:
A harmonização possui travas para não funcionar em versões anteriores.