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.
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.