Olá pessoal.. estou precisando de uma ajuda bem básica. Sou novo no assunto. Preciso relacionar 3 tabelas porém exibir no Display campos de apenas 2 tabelas mediante uma condição. Vejam a lógica abaixo.. acho que dá para entender. FOR EACH TABELA 1 SE TABELA1.CHAVE = TABELA2.CHAVE ENTÃO DISP TABELA1.CHAVE TABELA2.CHAVE SENÃO DISP TABELA1.CHAVE TABELA3.CHAVE END. Abraços
Bom dia, Tenta desta forma: Código: For each tabela1 no-lock: find first tabela2 no-lock where tabela2.chave = tabela1.chave no-error. if avail tabela2 then disp tabela1.chave tabela2.chave. else do: find first tabela3 no-lock where tabela3.chave = tabela1.chave no-error. if avail tabela3 then disp tabela1.chave tabela3.chave. end. end. Como você não mencionou a pesquisa da tabela3 eu deduzi desta forma. Qualquer coisa posta mais informações. T+
Nâo ficou claro mas pra mim vc tem problemas em exbir os dados porque depende dos mesmos para realizar a "condição" que determina ou não. Passe o problema todo e onde vc pretende chegar, ficaria mais facil. Nâo sendo isso ou é coisa pior eu nem deveria ser dúvida, pois, usar IF, DISPLAY, etc. é basico demais. IMO
Opa obrigado! A questão é básica mesmo. Ainda estou me familiarizando com a sintaxe progress e fixando conhecimento. Rodou de boa por aqui. O meu próximo passo é definir variavel para input de dados. O Programa será rodado e o usuário irá informar parâmetros do tipo data e estabelecimento por exemplo. Alguém pode me dar um help quanto a esse ponto? de informe de parâmetros com um exemplo prático. Vou verificar o material que tenho aqui. mto Obrigado!
vc pode fazer assim: Código: def var dt-data as date. def var cod-estab as char. /* ou int */ update dt-data cod-estab. For each tabela1 no-lock where tabela.data = dt-data and tabela.estab = cod-estab: find first tabela2 no-lock where tabela2.chave = tabela1.chave no-error. if avail tabela2 then disp tabela1.chave tabela2.chave. else do: find first tabela3 no-lock where tabela3.chave = tabela1.chave no-error. if avail tabela3 then disp tabela1.chave tabela3.chave. end. end.