Ir para conteúdo
Fórum Script Brasil
  • 0

Gerar relatorio com quebra de paginas a partir de txt


fajo

Pergunta

Olá

preciso imprimir um arquivo txt gerado por um relatório de um outro programa, esse arquivo já é gerado com toda a formatação, e querem ainda que eu coloque o logo da empresa, então copiei o conteúdo do arquivo para um dbrichedit q está associado a um clientdataset temporário com um único campo que recebe todo o contéudo do arquivo, então gero um relatório no quickreport, beleza, só que o problema é que preciso fazer a quebra de página no relatorio e não estou conseguindo, então o q preciso é localizar uma string no meu relatório(qrdbrichtext) e inserir uma quebra de página nesse ponto, isso tudo lógico antes de mostrar o preview do relatório, complicado? Espero a ajuda de vocês.

Obrigado

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
um único campo que recebe todo o contéudo do arquivo, então gero um relatório no quickreport, beleza, só que o problema é que preciso fazer a quebra de página no relatorio e não estou conseguindo

Num quickreport coloque uma banda de detalhe e defina o seu tamanho. Coloque o componente QRDBRichText1 (linke o DataField e o DataSet ) na banda de detalhe. Na proriedade AutoStretch deixe true, a quebra da pagina será automatica.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Já está assim, a questão é que no txt existe as numerção das páginas devido à geração do outro relatorio, então é necessário q eu repasse a quebra de página nesse mesmo local.

neste caso voce tem algumas opções... a primeira montar uma rotina para procurar e apagar a numeração das paginas e então no quickreport criar nova numeração e deixar o quickreport fazer as quebras de páginas automaticamente.( neste caso seria mais simples de fazer)

a segunda opção é criar uma rotina para procurar cada uma das numerações de páginas e copiar de um ponto ao outro o texto e e salvar cada parte do texto em um registro em uma tabela temporaria, e depois ler o registro pelo quickreport, sendo que cada registro representa uma pagina a ser impressa ( o que daria mais trabalho para fazer)

me lembro de ter visto um componente que fazia isto, mas não me lembro onde.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
preciso imprimir um arquivo txt gerado por um relatório de um outro programa, esse arquivo já é gerado com toda a formatação

outra solução: já que voce tem um arquivo txt gerado com toda a formatação, então porque não usar o word para imprimi-lo ?

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   OpenDialog1.Execute;
   edit1.Text := OpenDialog1.FileName;

   if FileExists(trim(Edit1.Text)) then
      begin
         Label1.Caption := 'Abrindo o Arquivo ... Aguarde';
         Label1.Refresh;

         WinExec(pchar('C:\Arquivos de programas\Microsoft Office\Office10\WINWORD.EXE ' + trim(Edit1.Text)), 0);

         // ou pode usar um componente  OleContainer1      
         //OleContainer1.CreateLinkToFile(trim(Edit1.Text),TRUE);
         //OleContainer1.SetFocus;

         Label1.Caption := '';
         Label1.Refresh;
      end
   else
      MessageDlg('Arquivo não encontrado!!!' , mtInformation,[mbOk], 0);
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
um arquivo txt gerado por um relatório de um outro programa, esse arquivo já é gerado com toda a formatação, e querem ainda que eu coloque o logo da empresa (...).

fajo, como você disse que este relatório foi criado por outro programa (aparentemente com formatação no estilo dos arquivos DOS), por acaso você não observou se há após a numeração da pagina algum caracter estranho? Era comum gerar este tipo de arquivo que poderia ser mandado direto para impressora, e o caracter de salto de página era inserido neles.

Ainda com relação a formatação já presente (provavelmente colunas, também), vale lembrar que você deverá utilizar uma fonte de tamanho fixo, como o Courier, para que ela seja respeitada.

Bom, em se tratando de quickreport, não poderia deixar de dar mais uma opção ainda não citada aqui. ;)

Caso você opte por remover do texto a numeração de página. Utilizando o quick, você poderia fazer uso da banda TQRStringsBand em combinação com o componente TQRExpr. Procedimento:

1 - no seu relatório, apenas com a banda PageHeader, onde você botará o logo, adicione uma TQRStringsBand; Não há necessidade de ajustar nada nela;

2 - com ela selecionada, adicione um TQRExpr a esta banda e inicialize as propriedades:

a. Autosize = False;

b. AutoStretch = True;

c. Expression = click no totãozinho [...] e selecione a opção (botão) Variable. Na lista localize e selecione a banda TQRStringsBand (p.e. QRSTRINGSBAND1);

d. Width = ajuste para a largurada banda;

3 - na codificação, antes de mostrar seu relatório (via Preview), carregue o arquivo texto na propriedade Items da TQRStringsBand. Se for carregar direto, pode fazer assim:

QRStringsBand1.Items.LoadFromFile(<nome do arquivo txt>);

caso, você carregue o arquivo para uma variável TStringList de modo a processar as linhas e remover alguma coisa, após isto feito, você pode atribuir o conteúdo desta variável para a banda da seguinte forma:

QRStringsBand1.Items.AddStrings(<variável stringlist processada>);

4 - agora é só chamar o método Preview para visualizar o relatório.

Observe, que ser você tiver sorte, de o relatório estiver bem formatado e couber na sua página do quickreport (com as margens definidas para o mínimo possível), pode ser até que você mantendo o texto da página, a mesma possa ser impressa corretamente. O espaçamento que o QRStringsBand vai usar será fixo, mas você poderá manipular as margens de modo a tentar enquadrar a página do arquivo na página do quick.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...