Geração relatório movto_tit_ap

Discussão em 'EMS , HCM e Totvs 11' iniciado por Arthur G, Dezembro 5, 2024.

  1. Arthur G

    Arthur G Sem Pontuação

    Estou tentando fazer um output da tit_ap e movto_tit_ap, meu objetivo é extrair um relatório onde consigo o número do título e usuário que implantou e baixou, porém não estou conseguindo, não está achando o movimento de implantação/baixa do título, segue meu código:

    OUTPUT TO L:\TI\arquivos\Arthur\titulos-apb.csv CONVERT TARGET "iso8859-1".
    DEF BUFFER b-movto_tit_ap FOR movto_tit_ap.
    PUT "Titulo ;
    movto_tit_ap.ind_trans_ap ; "
    SKIP.
    FOR EACH tit_ap WHERE tit_ap.dat_transacao = 09/09/2024:
    FIND movto_tit_ap WHERE movto_tit_ap.ind_trans_ap = 'Baixa' NO-LOCK NO-ERROR.
    IF AVAIL movto_tit_ap THEN DO:
    FIND b-movto_tit_ap WHERE movto_tit_ap.ind_trans_ap = 'Implantação' NO-LOCK NO-ERROR.
    END.
    PUT tit_ap.cod_tit_ap ";"
    // IF AVAIL b-movto_tit_ap.cod_espec_docto ";"
    // movto_tit_ap.dat_transacao ";"
    movto_tit_ap.ind_trans_ap ";" //transação
    //movto_tit_ap.val_movto_ap ";"
    // movto_tit_ap.cod_usuario ";"
    SKIP.
    END.
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    bem, por onde começar, ler o movimento de um titulo vc precisa relacionar uma tabela com a outra, no seu exemplo vc está simplesmente fazendo um find por "baixa", e nem está usando um find first, isso é uma leitura aleatoria na verdade porque está lendo um registro qualquer com a opção baixa, como existem varios registros com isso, o find retorna erro, se usar o um find first, traz dados, mas no seu caso seria um primeiro registro no banco com essa informação e não o registro associado ao tit_ap, mesmo caso para b-movto_tit_ap "Implantação"
    então tem que fazer um join entre as tabelas (leitura relacionadas), o comando put ira te entregar um campo sem formatação, ou seja, por padrão o progress usa tamanho 8 para caracteres, o campo cod_tit_ap tem 10 caracteres, vai cortar o final da infomação, tem formatar as saidas.

Compartilhe esta Página