1. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Duvida Cláusula Where condicional (usando variável)

Discussão em 'Progress 4GL' iniciado por Clovis_jrj, Maio 9, 2024.

  1. Clovis_jrj

    Clovis_jrj Sem Pontuação

    Bom dia.

    Eu sei que o Progress permite usar uma variável após a cláusula Where do For Each, assim:

    FOR EACH usuar_mestre WHERE {&condicao}:

    onde &condicao = "c-var-usuario MATCHES( '*' + TRIM( usuar_mestre.cod_usuario ) + '*' )" , por exemplo.

    Mas isso parece que tem quer ser feito em códigos fontes separados.
    É possível usar dentro de um mesmo código fonte a cláusula Where seguida de variável? Tem exemplos?
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Tu tem que usar variáveis HANDLE pra isso.

    Exemplo:
    Código:
    DEF VAR bUsuarios AS HANDLE.
    
    CREATE BUFFER bUsuarios FOR TABLE "usuar_mestre".
    
    bUsuarios:FIND-FIRST("WHERE cod_usuario = " + QUOTER("rafael"),NO-LOCK) NO-ERROR.
    
    IF bUsuarios:AVAIL THEN DO:
       MESSAGE bUsuarios:BUFFER-FIELD("nom_usuario"):BUFFER-VALUE
               VIEW-AS ALERT-BOX INFO BUTTONS OK.
    END.
    ELSE DO:
       MESSAGE "Não encontrado registro"
           VIEW-AS ALERT-BOX INFO BUTTONS OK.
    END.
    
  3. Clovis_jrj

    Clovis_jrj Sem Pontuação

    Rafael, achei interessante sua dica.
    Mas quebrei a cabeça aqui para aplicar isso em um comando For Each, e não consegui.
    Partindo deste seu exemplo, como fazer para um For Each mostrar todos os usuários que comecem com a letra "A", por exemplo?
  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Clovis_jrj curtiu isso.

Compartilhe esta Página