Árvore de páginas


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.