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

(Resolvido) QuickReport


Eder

Pergunta

Ola..

eu estou usando o QrCompositeReport para gerar relatorios...funciona perfeito desta forma:

procedure TFormCxTrafegoSint.QRCompositeReport1AddReports(Sender: TObject);
begin
 QRCompositeReport1.Reports.Add(QuickRep1);  // contas a receber
 QRCompositeReport1.Reports.Add(QuickRep2);  // contas a pagar
end;
No botão de Imprimir
...
FormCxTrafegoSint.QrDataIni.Caption:=DateToStr(DateTimePicker1.Date);
FormCxTrafegoSint.QrDataFin.Caption:=DateToStr(DateTimePicker2.Date);
FormCxTrafegoSint.QRCompositeReport1.Prepare;
FormCxTrafegoSint.QRCompositeReport1.PREVIEW;
o problema é o seguinte: eu precisaria que antes de dar um preview ele grava-se o arquivo em *.QRP num local do disco... então tentei fazer assim antes do preview:
FormCxTrafegoSint.QRCompositeReport1.Printer.Save((ExtractFilePath(Application.ExeName))+'REL\' + DateRel + '.QRP');

mas ai da erro:

[Error] UnitSaldoCxTrafego.pas(159): Undeclared identifier: 'Printer'

parece que o QRCompositeReport1 não aceita PRINTER.SAVE

eu uso este codigo direto no

quickrep1 e funciona mas no QRCompositeReport1 NÃO FUNCA.

Será que tem alguma maneira para mim salvar??

muito Grato

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

eu estou usando o QrCompositeReport para gerar relatorios...funciona perfeito desta forma:

procedure TFormCxTrafegoSint.QRCompositeReport1AddReports(Sender: TObject);

begin

QRCompositeReport1.Reports.Add(QuickRep1); // contas a receber

QRCompositeReport1.Reports.Add(QuickRep2); // contas a pagar

end;

Uma das opções para salvar seria assim:

Salvar o conjunto de Relatórios obtido com o QRCompositeReport, usando a propriedade ExportToFilte. o QRCompositeReport não tem esta propriedade mas cada Relatório do conjunto a possui.

Salve individualmente cada um de seus relatórios como doc (word).

exemplo:

procedure TForm1.Button1Click(Sender: TObject);

begin

MyQuickRep.ExportToFilter(TQRAsciiExportFilter.Create('C:\QuickRep1'));

MyQuickRep.ExportToFilter(TQRAsciiExportFilter.Create('C:\QuickRep2'));

end;

No word abra o QuickRep1. Coloque o cursor onde desejar no fim do relatório

e na barra de menu escolha Inserir/ Arquivos... Insira então o QuickRep2.

Uma vez no Word você pode formatar e salvar com vários tipos, inclusive rtf, ou se presisar até em pdf .

a outra sugestão seria voce salvar o preview como uma imagem JPEG ... acho que tem alguma coisa a respeito no forum

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Ola..Jonas.

Carinha eu teria que arrumar algo que gravasse em um unico arquivo(prontinho)......como é realmente o relatorio montado no QrCompositeReport

A ideia...do jpg eu já havia tentado, mas da um monte de arquivos...pois ele gera um jpg para cada pagina. como o relatorio é de mais ou menos 10 paginas...vai ficando este lixo la..entende.

Se tiver mais alguma ideia beleza...

mesmo assim..valeu..

vamos tentando por aqui.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
o problema é o seguinte:

eu precisaria que antes de dar um preview ele grava-se o arquivo em *.QRP num local do disco...

então tentei fazer assim antes do preview:

FormCxTrafegoSint.QRCompositeReport1.Printer.Save((ExtractFilePath(Application.ExeName))+'REL\' + DateRel + '.QRP');
mas ai da erro: [Error] UnitSaldoCxTrafego.pas(159): Undeclared identifier: 'Printer' parece que o QRCompositeReport1 não aceita PRINTER.SAVE
Eder, como diz a mensagem, Printer não é um identificador declarado na classe TQRCompositeReport.
eu uso este codigo direto no quickrep1 e funciona
Mesmo no quick, o "correto" é utilizar QRPrinter.
eu teria que arrumar algo que gravasse em um unico arquivo(prontinho)......como é realmente o relatorio montado no QrCompositeReport
vai ser necessário chamar o método Prepare do QRCompositeReport antes de gravar o arquivo. Vai parecer uma coisa meio sem sentido, mas como o QRCompositeReport não oferece referência à QRPrinter, você utiliza um dos QuickReps para gravar o arquivo:
...
with FormCxTrafegoSint do
begin
  QrDataIni.Caption:=DateToStr(DateTimePicker1.Date);
  QrDataFin.Caption:=DateToStr(DateTimePicker2.Date);
  QRCompositeReport1.Prepare;

 // Aqui a "coisa" estranha - você usa um dos quickrep para salvar todo o relatório
  QuickRep1.QRPrinter.Save((ExtractFilePath(Application.ExeName))+'REL\' + DateRel + '.QRP');

  QRCompositeReport1.PREVIEW;
...

(vamos usar o with .. do para simplificar ;) - sendo que se todo este procedimento estiver justamente neste form, então você pode omitir ele.)

Obs: O preview não é obrigatório - você só precisa chamar ele se for realmente mostrar o relatório na tela para o usuário.

Antes que me perguntem de onde tirei isto, foi do arquivo QuickReport FAQ, o qual já fiz referência neste post, ano passado. Eis o que constava lá:

Q. How can we save a composite report to a file (*.QRP) from source code? (We can not access a QRPrinter object for Composite Report (seems to be declared 'private')).

A. You should be able access the qrprinter by referencing the qrprinter of one of the individual reports in the composite report after you call Prepare.

Abraços

Editado por Micheus
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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...