Será que é possível eu fazer um for each com instruções variáveis ? Por exemplo: def var c-tipo as char format "x(2)". update c-tipo. /* tipos: >= <= = <> */ For each ped-venda where ped-venda.cod-sit-ped c-tipo 3 no-lock. disp ped-venda.cod-sit-ped with width 500. end. A princípio não vejo como fazer isto, ou se é possível fazer isto. Alguém saberia alguma forma ??? Obrigado !
Bom dia tandujar, Você pode usar Query Dinamica. Segue um exemplo: Código: DEFINE VARIABLE qh AS HANDLE. DEFINE VARIABLE bh AS HANDLE. DEFINE VARIABLE c-tipo AS CHARACTER NO-UNDO. CREATE QUERY qh. CREATE BUFFER bh FOR TABLE "emitente". UPDATE c-tipo. qh:SET-BUFFERS(bh). qh:QUERY-PREPARE("for each emitente where emitente.cod-emitente " + c-tipo + "1"). qh:QUERY-OPEN. DO WHILE (qh:GET-NEXT = YES): DISP bh:BUFFER-FIELD(2):BUFFER-VALUE./*BUFFER-FIELD(2) = nome-abrev*/ PAUSE. END.
Prezados, bom dia. Aproveitando a dúvida do jdchaves, pergunto: como resolveria a query abaixo? Para mim está dando erro. ** Substituindo a linha "query-prepare" ** qh:QUERY-PREPARE("for each emitente where substring(emitente.nom-emitente,1,1) " + c-tipo + "M"). Parace que o progress não está aceitando qualquer coisa que seja diferente de um nome de coluna.
@marcelo.delphos Olha no outro tópico que vc criou, http://www.4each.com.br/threads/query-dinâmica.7745/ Abs.