Combo-box duvida

Discussão em 'Progress 4GL' iniciado por flavio.campos, Setembro 29, 2009.

  1. flavio.campos

    flavio.campos Sem Pontuação

    Bom dia.

    Tenho uma combo-box, populo ela, depois verifico se o campo na base tem valor e preencho caso contrário deixo com a primeira opção (vazio), mas quando passo para outro usuario e o mesmo esta vazio ele fica na combo o valor do registro do anterior.
    Onde estou errando?

    grato

    Flávio Campos


    ds-orgao-emissor-ident-aux:add-first("") in frame deca5100.
    ds-orgao-emissor-ident-aux:add-last("CARTEIRA DE IDENTID. CLASSISTA") in frame deca5100.
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.CORRETORES IMOVEIS").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE ADMINISTRACAO").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE CONTABILIDADE").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE FARMACIA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE MEDICINA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE ODONTOLOGIA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE PSICOLOGIA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE QUIMICA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.ENFERMAGEM").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.ENG.ARQ. E AGRONOMIA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.FISIOT.TERAPIA OCUP.").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.MEDICINA VETERINARIA").
    ds-orgao-emissor-ident-aux:add-last("DOCUMENTOS ESTRANGEIROS").
    ds-orgao-emissor-ident-aux:add-last("MINISTERIO DA AERONAUTICA").
    ds-orgao-emissor-ident-aux:add-last("MINISTERIO DA MARINHA").
    ds-orgao-emissor-ident-aux:add-last("MINISTERIO DO EXERCITO").
    ds-orgao-emissor-ident-aux:add-last("ORDEM DOS ADVOGADOS DO BRASIL").
    ds-orgao-emissor-ident-aux:add-last("ORDEM DOS MUSICOS DO BRASIL").
    ds-orgao-emissor-ident-aux:add-last("OUTROS EMISSORES").
    ds-orgao-emissor-ident-aux:add-last("POLICIA FEDERAL").
    ds-orgao-emissor-ident-aux:add-last("SSP-SECRET.SEGURANCA PUBLICA").



    if usuario.ds-orgao-emissor-ident <> '' then
    assign ds-orgao-emissor-ident-aux:screen-value in frame deca5100 = usuario.ds-orgao-emissor-ident.
    else
    assign ds-orgao-emissor-ident-aux:screen-value in frame deca5100 = ds-orgao-emissor-ident-aux:entry(1) .
  2. eriutoncharles

    eriutoncharles Membro Participativo

    Bom Dia.

    Tenta assim pra ver.
    ds-orgao-emissor-ident-aux:screen-value in frame deca5100 = ?.
  3. af.dums

    af.dums Membro Ativo

    Você está colocando lógica no local-display-fields para ele alterar o valor da combo?
  4. flavio.campos

    flavio.campos Sem Pontuação

    Prezados.

    grato pela atenção, mas não funcionou colocar ?, e não entendi o "local-display-fields".
    Tentei a cada vez que monto a Tela excluir todos os itens e recria-los... Minha idéia de como deveria funcionar:
    1) Popular o combo;
    2) Posicionar no registro do Banco progress;
    3) Se achei preencho o combo, caso contrario fica vazio;
    4) Se escolheu algo faço atribuição Text do combo para o campo;

    Abaixo meu código

    procedure popular-combo:
    def var i as int no-undo.
    do i = 1 to ds-orgao-emissor-ident-aux:num-items in frame deca5100:
    ds-orgao-emissor-ident-aux:delete(i) in frame deca5100.
    end.

    do i = 1 to uf-emissor-doc-aux:num-items in frame deca5100:
    uf-emissor-doc-aux:delete(i) in frame deca5100.
    end.

    ds-orgao-emissor-ident-aux:add-first("") in frame deca5100.
    ds-orgao-emissor-ident-aux:add-last("CARTEIRA DE IDENTID. CLASSISTA") in frame deca5100.
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.CORRETORES IMOVEIS").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE ADMINISTRACAO").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE CONTABILIDADE").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE FARMACIA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE MEDICINA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE ODONTOLOGIA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE PSICOLOGIA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE QUIMICA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.ENFERMAGEM").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.ENG.ARQ. E AGRONOMIA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.FISIOT.TERAPIA OCUP.").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.MEDICINA VETERINARIA").
    ds-orgao-emissor-ident-aux:add-last("DOCUMENTOS ESTRANGEIROS").
    ds-orgao-emissor-ident-aux:add-last("MINISTERIO DA AERONAUTICA").
    ds-orgao-emissor-ident-aux:add-last("MINISTERIO DA MARINHA").
    ds-orgao-emissor-ident-aux:add-last("MINISTERIO DO EXERCITO").
    ds-orgao-emissor-ident-aux:add-last("ORDEM DOS ADVOGADOS DO BRASIL").
    ds-orgao-emissor-ident-aux:add-last("ORDEM DOS MUSICOS DO BRASIL").
    ds-orgao-emissor-ident-aux:add-last("OUTROS EMISSORES").
    ds-orgao-emissor-ident-aux:add-last("POLICIA FEDERAL").
    ds-orgao-emissor-ident-aux:add-last("SSP-SECRET.SEGURANCA PUBLICA").


    uf-emissor-doc-aux:add-first("") in frame deca5100.
    uf-emissor-doc-aux:add-last("AC") in frame deca5100.
    uf-emissor-doc-aux:add-last("AL") in frame deca5100.
    uf-emissor-doc-aux:add-last("AM") in frame deca5100.
    uf-emissor-doc-aux:add-last("AP") in frame deca5100.
    uf-emissor-doc-aux:add-last("BA") in frame deca5100.
    uf-emissor-doc-aux:add-last("CE") in frame deca5100.
    uf-emissor-doc-aux:add-last("DF") in frame deca5100.
    uf-emissor-doc-aux:add-last("ES") in frame deca5100.
    uf-emissor-doc-aux:add-last("GO") in frame deca5100.
    uf-emissor-doc-aux:add-last("MA") in frame deca5100.
    uf-emissor-doc-aux:add-last("MG") in frame deca5100.
    uf-emissor-doc-aux:add-last("MS") in frame deca5100.
    uf-emissor-doc-aux:add-last("MT") in frame deca5100.
    uf-emissor-doc-aux:add-last("PA") in frame deca5100.
    uf-emissor-doc-aux:add-last("PB") in frame deca5100.
    uf-emissor-doc-aux:add-last("PE") in frame deca5100.
    uf-emissor-doc-aux:add-last("PI") in frame deca5100.
    uf-emissor-doc-aux:add-last("PR") in frame deca5100.
    uf-emissor-doc-aux:add-last("RJ") in frame deca5100.
    uf-emissor-doc-aux:add-last("RN") in frame deca5100.
    uf-emissor-doc-aux:add-last("RO") in frame deca5100.
    uf-emissor-doc-aux:add-last("RS") in frame deca5100.
    uf-emissor-doc-aux:add-last("SC") in frame deca5100.
    uf-emissor-doc-aux:add-last("SE") in frame deca5100.
    uf-emissor-doc-aux:add-last("SP") in frame deca5100.
    uf-emissor-doc-aux:add-last("TO") in frame deca5100.

    assign ds-orgao-emissor-ident-aux:screen-value in frame deca5100 = ?
    uf-emissor-doc-aux:screen-value in frame deca5100 = ?.
    end procedure.

    procedure mostra-tela:

    if avail usuario then do:

    run popular-combo.

    assign cd-modalidade-aux = usuario.cd-modalidade
    nr-ter-adesao-aux = usuario.nr-ter-adesao
    cd-usuario-aux = usuario.cd-usuario.
    if usuario.ds-orgao-emissor-iden <> '' then
    ds-orgao-emissor-ident-aux:screen-value in frame deca5100 = usuario.ds-orgao-emissor-ident.
    if usuario.uf-emissor-doc <> '' then
    uf-emissor-doc-aux:screen-value in frame deca5100 = usuario.uf-emissor-doc.
    display cd-modalidade-aux
    nr-ter-adesao-aux
    cd-usuario-aux
    usuario.nm-usuario
    usuario.nm-mae
    usuario.cd-cpf format "999.999.999-99"
    usuario.nr-identidade
    ds-orgao-emissor-ident-aux
    uf-emissor-doc-aux
    usuario.nm-pais
    usuario.dt-emissao-doc
    usuario.nr-telefone1
    usuario.nr-telefone2
    usuario.nm-email
    usuario.dt-atualizacao
    usuario.cd-userid
    usuario.cd-controle-oper-ans
    with frame deca5100.
    end.

    end.
  5. eriutoncharles

    eriutoncharles Membro Participativo

    Se teu problema é só zerar o combo então faz uma Procedure... só pra popular isto...
    Ou ainda não entendi o que realmente vc tah precisando.


    tipo assim...
    Código:
    PROCEDURE PopularCombo:
    
    /* Zera Tudo.... e Popula Novamente * /
    ASSIGN INPUT frame deca5100 ds-orgao-emissor-ident-aux:LIST-ITEMS = ?.
    
    ds-orgao-emissor-ident-aux:add-first("") in frame deca5100.
    ds-orgao-emissor-ident-aux:add-last("CARTEIRA DE IDENTID. CLASSISTA") in frame deca5100.
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.CORRETORES IMOVEIS").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE ADMINISTRACAO").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE CONTABILIDADE").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE FARMACIA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE MEDICINA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE ODONTOLOGIA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE PSICOLOGIA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.DE QUIMICA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.ENFERMAGEM").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.ENG.ARQ. E AGRONOMIA").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.FISIOT.TERAPIA OCUP.").
    ds-orgao-emissor-ident-aux:add-last("CONS.REG.MEDICINA VETERINARIA").
    ds-orgao-emissor-ident-aux:add-last("DOCUMENTOS ESTRANGEIROS").
    ds-orgao-emissor-ident-aux:add-last("MINISTERIO DA AERONAUTICA").
    ds-orgao-emissor-ident-aux:add-last("MINISTERIO DA MARINHA").
    ds-orgao-emissor-ident-aux:add-last("MINISTERIO DO EXERCITO").
    ds-orgao-emissor-ident-aux:add-last("ORDEM DOS ADVOGADOS DO BRASIL").
    ds-orgao-emissor-ident-aux:add-last("ORDEM DOS MUSICOS DO BRASIL").
    ds-orgao-emissor-ident-aux:add-last("OUTROS EMISSORES").
    ds-orgao-emissor-ident-aux:add-last("POLICIA FEDERAL").
    ds-orgao-emissor-ident-aux:add-last("SSP-SECRET.SEGURANCA PUBLICA").
    
    
    END PROCEDURE.
    
    Dai lá no Else vc dar um RUN PopularCombo.
    Código:
    if usuario.ds-orgao-emissor-ident <> '' then
    assign ds-orgao-emissor-ident-aux:screen-value in frame deca5100 = usuario.ds-orgao-emissor-ident.
    else
    RUN PopularCombo.
    
    Att,
    Eriuton Charles
  6. flavio.campos

    flavio.campos Sem Pontuação

    Boa tarde Eriuton Charles.

    Deu certo, grato.

    Flávio Campos

Compartilhe esta Página