Ultimo registro de estabelecimento

Discussão em 'Progress 4GL' iniciado por turks, Janeiro 7, 2010.

  1. turks

    turks Membro Participativo

    Bom Dia Pessoal!

    Olha, estou com o seguinte problema, tenho uma tabela a pr-it-per, nessa tabela, aparecem varios registros do mesmo código e mesmo estabelecimento, porem eu preciso saber se é possivel eu criar uma rotina que me mostre o ultimo registro de cada código e se tiver 2 estabelecimentos para esse código me mostre também o ultimo registro de cada estabelecimento.

    É possivel isso?
    Alguem sabe me responder?

    Obrigado!!
  2. mepossamai

    mepossamai Sem Pontuação

    Olá turks..

    por um acaso vc nao pode citar a chave desta tabela? ou se vc puder simular um exemplo de dados... quem sabe posso te ajudar com a logica..

    como sempre digo aqui na empresa, nada que um for each sem no-lock na tabela de mercadorias, com um delete depois nao resolva =P ... hehehehe
  3. turks

    turks Membro Participativo

    Marcos, primeiramente, obrigado pelo retorno.
    Na verdade o que estou tentando fazer é o seguinte:

    - For each na Tabela item.
    - Alguns Find, inclusive na tabela pr-it-per, pois preciso calcular o preço médio, porem na tabela pr-it-per tem vários registros do mesmo item, com valores diferentes.
    - Na verdade eu preciso que apareça o ultimo registro de cada estabel e de cada código, pois o ultimo registro contem o valor preço base.

    A Lógica que eu fiz é a seguinte:

    Código:
    FOR EACH item NO-LOCK WHERE item.it-codigo >= c-ini-codigo 
                            AND item.it-codigo <= c-fim-codigo:
    
        run pi-acompanhar in h-acomp ('Itens: ' + STRING(ITEM.it-codigo)).
    
        FIND FIRST item-uni-estab NO-LOCK WHERE item-uni-estab.it-codigo = ITEM.it-codigo NO-ERROR.
        FIND FIRST familia        NO-LOCK WHERE familia.fm-codigo        = item.fm-codigo NO-ERROR.
        FIND LAST  pr-it-per      NO-LOCK WHERE pr-it-per.it-codigo      = ITEM.it-codigo NO-ERROR.
        FIND FIRST preco-item     NO-LOCK WHERE preco-item.it-codigo     = ITEM.it-codigo NO-ERROR.
    
        
        ASSIGN CF = IF item.compr-fabric = 1 THEN "Comprado" ELSE "Fabricado".
        IF AVAIL pr-it-per THEN ASSIGN preco-medio = pr-it-per.val-unit-ggf-m[1] + pr-it-per.val-unit-mat-m[1] + pr-it-per.val-unit-mob-m[1].
    
    PUT STREAM str-rp     
            ITEM.it-codigo                        ";"
            item.desc-item                        ";"
            ITEM.cod-estabel                      ";"
            item.fm-codigo                        ";"
            familia.descricao                     ";"
            ITEM.un                               ";"
            CF /* <--- Comprado ou Fabricado */   ";"
            item-uni-estab.preco-base             ";"
            item-uni-estab.data-base              ";"
            item.preco-repos                      ";"
            item.data-ult-rep                     ";"
            item.preco-ul-ent                     ";"
            item.data-ult-ent                     ";"
            IF AVAIL preco-item THEN preco-item.preco-venda ELSE 0 ";"
            preco-medio                           ";"
            item.preco-fiscal                     ";"
            item.class-fiscal                     ";"
            item.aliquota-ipi                    SKIP.
            
    END. 

Compartilhe esta Página