Select em 2 ou mais Tabelas - Exportar para Excel

Discussão em 'Progress 4GL' iniciado por Thifabri, Abril 1, 2010.

  1. Thifabri

    Thifabri Sem Pontuação

    Galera mais uma vez recorro aos sábios do mundo Progress, se tem um lugar que só tem fera, é aqui no 4each!

    Vamos lá:

    Estou montando um Relatório que vai exportar direto pro EXCEL isso esta funcionando legal quando não tenho a necessidade de juntar 2 ou mais tabelas do progress.

    Primeiro eu faço um Select Count:
    Código:
    Select count(*) into iNumReg
    from ITEM
    where (ITEM.FM-CODIGO >= c-it-fm-cod-fin
             and  ITEM.FM-CODIGO <= c-it-fm-cod-fin).
    Após, obter o número total de registros começo a montar a tabela temp "tt-item"
    Código:
    For each ITEM fields (it-codigo  desc-item  aliquota-ipi)
    where  (ITEM.FM-CODIGO >= c-it-fm-cod-fin
                   and  ITEM.FM-CODIGO <= c-it-fm-cod-fin) no-lock:

    Chamo a execução de duas procedures
    Código:
    run pi-acompanhar   in h-prog.
    run pi-registro     in h-prog (input ITEM.it-codigo).
    Por fim, crio a tabela e faço a inserção de dados:
    Código:
    create tt-item.
    buffer-copy ITEM using it-codigo desc-item aliquota-ipi
    to tt-item.


    Agora com base no exemplo acima, quero pegar o valor de cada item na PRECO-ITEM. para isso necessito incrementar os comando nos passos a seguir (com excessão do primeiro) para realizar a busca pelo campo "PRECO-VENDA"


    Galera, mais uma vez agradeço a força de todos!
    Abraços e boa páscoa!
  2. Thifabri

    Thifabri Sem Pontuação

    Acho que seria alguma coisa parecido com isso:

    Código:
    for each tb-preco no-lock
             where tb-preco.nr-tabpre >= c-tb-nome-ini and 
                   tb-preco.nr-tabpre <= c-tb-nome-fin,
                   
        each preco-item no-lock
             where preco-item.nr-tabpre = tb-preco.nr-tabpre,
             
        each item no-lock
             where item.it-codigo = preco-item.it-codigo and
                   item.fm-codigo >= c-fm-codigo-ini and 
                   item.fm-codigo <= c-fm-codigo-fin and
                   item.it-codigo >= c-it-codigo-ini and 
                   item.it-codigo <= c-it-codigo-fin,
                   
        each familia no-lock
             where familia.fm-codigo = item.fm-codigo
    Mas, o problema é que não consigo passar esses paramentros para o BufferCopy...

    Alguém tem alguma idéia?

    Abraços
  3. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Caro colega, vê se atende sua necessidade:

    Código:
        select count(*) into iNumReg
          from tb-preco, preco-item, item, familia
         WHERE tb-preco.nr-tabpre  >= c-tb-nome-ini 
           and tb-preco.nr-tabpre  <= c-tb-nome-fin
           and preco-item.nr-tabpre = tb-preco.nr-tabpre
           and item.it-codigo       = preco-item.it-codigo 
           and item.fm-codigo      >= c-fm-codigo-ini 
           and item.fm-codigo      <= c-fm-codigo-fin 
           and item.it-codigo      >= c-it-codigo-ini 
           and item.it-codigo      <= c-it-codigo-fin
           and familia.fm-codigo    = item.fm-codigo.
    

Compartilhe esta Página