Relatório Pedido x Cotação - Via Output

Discussão em 'Progress 4GL' iniciado por Thifabri, Março 29, 2010.

  1. Thifabri

    Thifabri Sem Pontuação

    Boa tarde!

    Estou desenvolvendo uma extração de dados para um arquivo TXT mto simples, porém me deparei com um problema envolvendo Cotação/Pedido.

    A idéia é saber quantos PEDIDOS estão em aberto, apenas um controle gerencial de vendas.

    Segue o código:
    Código:
    output to value ('c:\pedidos.txt').
    
    for each ped-venda no-lock 
    where ped-venda.dt-entrega >= date('01/12/2009') and
          ped-venda.dt-entrega <= date('31/12/2009'),
    
    each ped-item of ped-venda no-lock, 
    
    each emitente fields(cod-emitente nome-emit nome-abrev) 
    where emitente.cod-emitente = ped-venda.cod-emitente no-lock:
    
    put ped-venda.nome-abrev at 1
    ped-venda.cod-emitente at 15
    ped-venda.nr-pedcli at 30
    ped-venda.vl-tot-ped at 55.
    
    if ped-venda.cod-sit-ped = 1 then
    put "Em aberto" at 75.
    else if ped-venda.cod-sit-ped = 2 then
    put "Atendido parcial" at 75.
    else if ped-venda.cod-sit-ped = 3 then
    put "Atendido Total" at 75.
    
    if ped-venda.cod-sit-ped = 1  or
    ped-venda.cod-sit-ped = 2 or
    ped-venda.cod-sit-ped = 3 then do:
    
    find first nota-fiscal where nota-fiscal.nome-ab-cli = emitente.nome-abrev and
    nota-fiscal.nr-pedcli = ped-venda.nr-pedcli no-lock no-error.
    if avail nota-fiscal and ped-item.cod-sit-item <> 1 then do:
    put nota-fiscal.nr-nota-fis at 100.
    
    end.
    end.
    
    end. 
    output close.

    O que acontece: como eu devo tratar as Cotações de Venda? No código acima ele apresenta o relatório contendo Cotações e Pedidos.

    Onde eu deveria utilizar o FIND FIRST, para trazer somente o primeiro registro de cada?

    Agradeço qq ajuda.
    abraços e obrigado
  2. mcarril

    mcarril Membro Participativo

    Porque você esta com a instrução abaixo se não utiliza ?

    each ped-item of ped-venda no-lock,


    Você não precisa entrar no detalhe se precisa saber somente os pedidos que estão pendentes...


    Abraços,
  3. Thifabri

    Thifabri Sem Pontuação

    Obrigado pelo retorno,

    Acho que não entendi... ou talvez vc não me entendeu...

    O problema é que o código acima, esta aprensentando duplicidade dos registros trazidos e tb as Cotações misturadas, sendo que deveria apresentar somente os Pedidos.

    Agradeço,
  4. mcarril

    mcarril Membro Participativo

    Exatamente isto, se você tirar a instrução vai passar a imprimir o pedido e não os ítens do pedido...
  5. Thifabri

    Thifabri Sem Pontuação

    Marly Carril, mais uma vez obrigado..

    Caso, tenha como executar a rotina, vc vai ver que ele não esta apresentando os itens. Ele apresenta as informações dos PEDIDOS (correto) junto com aquilo que ainda não é pedido (Cotação - errado). E ainda, os pedidos aparecem duplicados, veja abaixo o meu resultado:

  6. Thifabri

    Thifabri Sem Pontuação

    Achei! É o seguinte:

    Para separar os PEDIDOS das COTAÇÕES, basta setar na condição Where o campo ped-venda.completo=TRUE

    Obrigado a todos!

Compartilhe esta Página