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?
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.
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?
No caso de um FOR EACH tu tem que usar QUERY dinamica Aqui tem um exemplo: https://stackoverflow.com/questions/45832144/dynamic-query-in-openedge