Objetivo

Este documento tem o objetivo de apresentar o padrão que deverá ser utilizado para customização de campos em telas po-ui.

Esse padrão contempla cadastros (CRUDS), conforme lista publicada, nas seguintes situações:


Local dos fontes específicos e padrão de nomenclatura

Para tratar os campos customizáveis, os fontes específicos do cliente deverão ser armazenados no caminho 'hgp/custom/<nome_da_tela>'. Como exemplo para este documento, vamos utilizar a tela Beneficiário X Fator Multiplicador (hfp.benefMultiplierFactor):


Padrão de nomenclatura para o diretório específico e nome dos programas:


Fluxo para busca e gravação dos campos customizáveis

No padrão denominado Custom Fields, o processo funciona da seguinte maneira:


Forma de utilização:

Deverá ser criado um programa progress no seguinte diretório, conforme explicado anteriormente:

hgp\custom\"nomedomenu"\"nomedoprogramahtml".p(.r)

Exemplo:

hgp\custom\portalempresa\edit-beneficiary.p

Este programa deverá ter os métodos e parâmetros:

Tabelas Temporárias Utilizadas:

define temp-table ttCustomField
    field ds-boolean-false as char serialize-name "booleanFalse" init ?     /*Texto exibido quando o valor do componente for false.*/
    field ds-boolean-true as char serialize-name "booleanTrue" init ?       /*Texto exibido quando o valor do componente for true.*/
    field ds-columns as char serialize-name "columns"  init ?               /*Não disponível*/
    field lg-disabled as logical serialize-name "disabled" init ?           /*Desabilita o campo caso informar o valor true.*/
    field ds-divider as char serialize-name "divider" init ?                /*Exibirá um divisor acima, utilizando o seu conteudo como título.*/
    field nr-grid as int serialize-name "gridColumns" init ?                /*Tamanho de exibição do campo em telas. Deve ser usado o sistema de grid do THF (1 ... 12 c
    field nr-grid-lg-columns as int serialize-name "gridLgColumns" init ?   /*Tamanho de exibição do campo em telas grandes (lg).*/
    field nr-grid-md-columns as int serialize-name "gridMdColumns" init ?   /*Tamanho de exibição do campo em telas médias (md)*/
    field nr-grid-sm-columns as int serialize-name "gridSmColumns" init ?   /*Tamanho de exibição do campo em telas menores (sm)*/
    field nr-grid-xl-columns as int serialize-name "gridXlColumns" init ?   /*Tamanho de exibição do campo em telas extra grandes (xl)*/
    field ds-help as char serialize-name "help" init ?                      /*Texto de ajuda*/
    field lg-key as logical serialize-name "key" init ?                     /*Identificador*/
    field ds-label as char serialize-name "label" init ?                    /*Rótulo*/
    field ds-mask as char serialize-name "mask" init ?                      /*Máscara*/
    field nr-max-length as int serialize-name "maxLength" init ?            /*Tamanho máximo de caracteres.*/
    field ds-max-value as char serialize-name "maxValue" init ?             /*Valor máximo*/
    field nr-min-length as int serialize-name "minLength" init ?            /*Tamanho mínimo*/
    field ds-min-value as char serialize-name "minValue" init ?             /*Valor mínimo*/
    field ds-options as char serialize-name "options" init ?                /*Não disponível*/
    field lg-options-multi as logical serialize-name "optionsMulti" init ?  /* Permite que o usuário faça múltipla seleção */
    field ds-options-service as char serialize-name "optionsService" init ? /* Serviço utilizado para buscar itens */
    field ds-pattern as char serialize-name "pattern" init ?                /*Regex para validação */
    field ds-property as char serialize-name "property" init ?              /*Nome de referência do campo */
    field lg-required as logical serialize-name "required" init ?           /*Indicador de obrigatoriedade*/
    field nr-rows as int serialize-name "rows" init ?                       /*Quantidade de linhas exibidas*/
    field ds-search-service as char serialize-name "searchService" init ?   /*Não disponível*/
    field lg-secret as logical serialize-name "secret" init ?               /*Esconde a informação estilo password, pode ser utilizado quando o tipo de dado for string*/
    field ds-type as char serialize-name "type" init ?.                     /*Tipo do valor do campo. Tipos Válidos: boolean, currency, date, dateTime, number, string e time.*/
 
define temp-table ttCustomValue
    field ds-property as char serialize-hidden /*Referente ao ds-property utilizado anteriormente para criar os campos em tela através da temp-table ttCustomFields*/
    field in-value as int serialize-hidden init ? /*Valor do campo caso seja inteiro*/
    field ds-value as char serialize-hidden init ? /*Valor do campo caso seja string*/
    field lg-value as log serialize-hidden init ? /* Valor do campo caso seja lógico*/
    field dc-value as dec serialize-hidden init ? /* Valor do campo caso seja decimal*/
    field dt-value as date serialize-hidden init ?. /*Valor do campo caso seja data*/