Mudar formato de campo numérico em FRAME

Discussão em 'Progress 4GL' iniciado por cardosomauricio, Setembro 21, 2011.

  1. cardosomauricio

    cardosomauricio Sem Pontuação

    Pessoal,

    Alguém sabe como alterar o formato de display (FRAME) de campo numérico em tempo de execução, ou seja, possuo em um campo de tabela o formato do campo numérico ("9999",">,>>9.99",">>>>9","99999", etc), e em tempo de execução deverei exibir e modificar referido campo no formato informado.
  2. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Testa aí se é isto que deseja:

    Código:
    
    def var de-valor        as decimal      no-undo init "12345.67".
    def var i-format        as integer      init 1  no-undo.
    
    session:data-entry-return = yes.
    
    def var c-format        as character    init  "zzzzz9.99;zzz,zz9.99;999,999.99;999999.99".
    
    repeat:
    
        update  de-valor    label "Valor"
                i-format    label "Formato" with 1 columns.
    
        assign de-valor:format = entry(i-format,c-format,";").
    
        disp de-valor.
    
    end.
    
    
  3. cardosomauricio

    cardosomauricio Sem Pontuação

    Eduardo, obrigado pela resposta, porém, encontrei uma maneira utilizando HANDLE, que acredito que seja mais prático, porém o comando deve ser feito antes de exibir/alterar, de maneira que a exibição e alteração ficam iguais, segue abaixo comando:

    <campo-da-tela>:HANDLE:FORMAT = <formato>.

    Exemplo utilização:

    DEF VAR de-valor AS DECIMAL NO-UNDO.
    DEF VAR i-format AS INTEGER.
    DEF VAR c-format AS CHAR EXTENT 4 INIT [">>>>9","9999",">,>>9.9",">>>>,>>9.9999"].

    DEF FRAME f-main
    de-valor LABEL "Valor"
    WITH 1 COLUMN WIDTH 80.

    DO i-format = 1 TO 4:

    ASSIGN de-valor:HANDLE:FORMAT = c-format[i-format].

    UPDATE
    de-valor
    WITH FRAME f-main.

    END.

    Abraços.

Compartilhe esta Página