Erro de comando não disponivel

Discussão em 'Progress 4GL' iniciado por turks, Dezembro 28, 2009.

  1. turks

    turks Membro Participativo

    Bom Dia Galera, estou com o seguinte problema:

    - Na execução do relatório que estou criando aparece os erros anexo.
    E também o skip, no final não está fazendo pular a linha, alguem será que poderia me dar uma luz?

    a Lógica é essa:

    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 FIRST 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".
        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.data-base                        ";"
            item.preco-repos                      ";"
            item.data-ult-rep                     ";"
            item.preco-ul-ent                     ";"
            item.data-ult-ent                     ";"
            preco-item.preco-venda                ";"
            preco-medio                           ";"
            item.preco-fiscal                     ";"
            item.class-fiscal                     ";"
            item.aliquota-ipi                    SKIP.
    
    END.

    Arquivos Anexados:

    • erro.JPG
      erro.JPG
      Tamanho:
      18.3 KB
      Visitas:
      100
  2. felix

    felix Membro Participativo

    Ola.

    Antes de vc fazer o put, teste se existe a tabela com o registro desejado, caso não exista não deixe continuar o programa. quanto ao SKIP, tente mudar para chr(13).

    Espero ter ajudado.

    []'s
  3. turks

    turks Membro Participativo

    Felix, primeiramente obrigado pelo retorno.

    Agora, eu quero que apareça sem valor quando o registro estiver zerado.
    Também tentei usar o CHR(13) e também não deu certo.

    Atenciosamente
  4. felix

    felix Membro Participativo

    Ola Turks.

    Quando vc da um put em uma tabela, a mesma deve existir para que vc possa mostrar os dados. se eu entendi o que vc deseja faça o seguinte, crie duas variaveis que são os campos do put no qual vc esta colocando e atribua valor somente quando existir dados na tabela.

    Algo do tipo assim.

    find tabela1 where tabela1.codigo = x no-lock no-error.
    find tabela2 where tabela2.codigo = x no-lock no-error.

    if avail tabela1 then
    assign x-dados1 = tabela1.x-codigo
    x-dados2 = tabela2.x-preco.

    put tabela2.teste
    x-dados1
    x-dados2
    skip.

    Não esqueça de zerar as variaveis.

    Espero ter ajudado

    []'s
  5. neumir

    neumir Sem Pontuação

    Ou, no comando PUT, verifique se o registro está disponivel:

    Código:
    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.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.
    Espero ter ajudado.
  6. turks

    turks Membro Participativo

    Bom Dia!

    Obrigado pelo retorno.
    As duas formas que tentei deu certo.

    Obrigado pessoal!

Compartilhe esta Página