Bom dia senhores... Estou pensando em fazer o seguinte desenvolvimento: Quero guardar em um campo de uma tabela trechos de lógica, de validação, que variam de acordo com o tipo do registro da tabela. Só estou com uma pulga atrás da orelha, tem como eu executar esta logica depois? Exemplo: tabela.tipo = 1 tabela.logica = "item.ge-codigo <> 3" Como faço para criar um IF THEN onde a condição seja o que está no campo tabela.logica? Obrigado. Att, Anderson
Já vi desenvolverem e funcionar, a criação de tabelas com informações de: Nome de programa, campos, indices... e à partir destas informações fizeram um programa que FAZ PROGRAMA EM CARACTER. O único problema que tiveram era sobre o tipo de campo, mas resolveram acessando o _field._data-type (interno do banco de dados). If _field._data-type begins "dec" then put unformatted "decimal (campo.tabela)". Acredito que você consegue utilizando os comandos cativos do Progress. O Eduardo do Suporte postou alguma coisa à uns tempos atrás.
se vc for utilizar na consulta vc pode adicionar sua lógica dentro de uma query dinamica... /* Se for utilizado dentro de uma consulta monte uma query dinamica.... */ def var qh-teste as handle. def var bh-teste as handle. CREATE BUFFER bh-teste FOR TABLE "emitente". CREATE QUERY qh-teste. qh-teste:SET-BUFFERS(bh-teste). qh-teste:QUERY-PREPARE("for each emitente no-lock"). /* clausula WHERE vai aqui */ qh-teste:QUERY-OPEN(). REPEAT: qh-teste:GET-NEXT(). IF qh-teste:QUERY-OFF-END THEN LEAVE. disp bh-teste:BUFFER-FIELD("nome-abrev"):BUFFER-VALUE. END.
No caso criavam um programa dinamicamente usando as regras das tabelas, isso? Acho que vai ser a melhor alternativa... A idéia da query é legal, mas não me atende... Obrigado a todos.