Ademir
30/01/2008 - 16:44
Boa Tarde,
talvez vocês possam ajudar. Criei 3 relatórios diferentes utilizando o QuickReports e usei o componente QRComposite para juntar os três relatórios, até ai funcionou corretamente, mas ao terminar o conteúdo do segundo relatório, e ao começar o terceiro, este sai junto com os dados do segundo relatório.
Li em algumas mensagem para ativar a prorpiedade ForceNewPage mas não resolveu nada.
alguém teria alguma idéia de como resolver isso
obrigado
Jhonas
30/01/2008 - 20:32
moifique o codigo para as suas necessidades ... é só um exemplo
CODE
procedure TForm1Report.QRCompositeReport1AddReports(Sender: TObject);
begin
with QRCompositeReport1 do
begin
reports.Add(Form1.QuickRep1);
reports.Add(Form2.QuickRep2);
reports.Add(Form3.QuickRep3);
end;
end;
e no botao imprimir do seu form, você coloca:
QRCompositeReport1.Preview; ou
QRCompositeReport1.Print;
e no evento QuickRepEndPage de cada report coloque respectivamente
CODE
// primeiro report
procedure TQuickReport1.QuickRepEndPage(Sender: TCustomQuickRep);
begin
QuickReport1.ForceNewPage;
end;
// segundo repórt
procedure TQuickReport2.QuickRepEndPage(Sender: TCustomQuickRep);
begin
QuickReport2.ForceNewPage;
end;
// terceiro report
procedure TQuickReport3.QuickRepEndPage(Sender: TCustomQuickRep);
begin
QuickReport3.ForceNewPage;
end;
abraço
Ademir
31/01/2008 - 09:52
Jhonas,
valeu pela dica mas não funcionou, estou utilizando o delphi 5 e não possue essa propriedade (QuickReport2.ForceNewPage;
) para o componente quickreport só possue essa QRtermoenc.NewPage
obriga
amigo.....só pra completar a ideia do JOnas...
Eu faço assim e funciona legal:
Insira no form:QUOTE
2 quickrep
Duas Query´s uma para cada Quickrep e aponte o Dataset
Agora monte os dois relatorio...
Agora Insira o componente do Quickreport chamado QRCompositeReport no form
Va na propriedade dele chamada: OnAddReport e insira o codigo:
CODE
QRCompositeReport1.Reports.Add(QuickRep1); // contas a receber
QRCompositeReport1.Reports.Add(QuickRep2); // contas a pagar
No Botão de imprimir ao invés de form2.quickrep1.preview coloque assim: CODE
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.Query1.Active:=true;
form2.Query2.Active:=true;
FORM2.QRCompositeReport1.Prepare;
FORM2.QRCompositeReport1.Preview;
end;
Espero que te ajude...
valeu
Micheus
31/01/2008 - 10:09
Ademir, é este mesmo que você deve utilizar (NewPage), o Jhonas deve apenas ter se confundido, com a propriedade ForceNewPage. Mas o procedimento é basicamente este que ele lhe passou.
Apenas acrescentaria, que se o avanço da página dever ocorrer apenas entre um relatório e outro, o evento mais adequado seria o AfterPrint - que ocorre depois que todo o relatório é impresso, então avançaria a página e iria imprimir o próximo relatório.
Abraços
Ademir
31/01/2008 - 15:48
Micheus,
valeu pela dica, mas também não funcionou, na passagem do 2º relatório para o 3º ainda fica mostrando na metade da página do 2º relatório
obrigado
Micheus
31/01/2008 - 17:55
QUOTE(Ademir @ 31/01/2008 - 15:48)

valeu pela dica, mas também não funcionou, na passagem do 2º relatório para o 3º ainda fica mostrando na metade da página do 2º relatório
Experimenta o contrário. Nos 2º e 3º relatórios, no BeforePrint e BeforePreview chame o NewPage.
Teste esta situação.
Visitante
03/03/2008 - 17:08
Normalmente, no segundo/terceiro... relatório, eu coloco uma banda com tamanho 1 no início do relatório e no evento BEFOREPRINT desta banda, eu dou um Relatorio.NEWPAGE;
ricado ferreira
18/03/2010 - 08:59
Olá pessoal,
No caso aqui não está funcionando , pois eu estou utilizando apenas 1 quickreport, existe um FOR q preenche os campos dele, mostrando todos os resultados da "lista" normalmente são encontrados mais de 100 resultados para imprimir, seria inviavel criar quickreps desta maneira:
com isso eu tentei:
QRCompositeReport1.Reports.Add(QuickRep1);(colocando somente estalinha para repetir ao abrir o preview o programa trava)
QuickRep1.NewPage;(quando eu coloco este comando sempre da um erro na memoria),
Adicionar este comando ao final do meu FOR;
e não pegou alguma solução ou opinião???
Se realmente for nescessario por essecomando no evento OnAddReports, como eu posso fazer para chamar esse evento dentro do meu FOR, e conseguir adicionar o comando.
Jhonas
19/03/2010 - 19:45
QUOTE
estou utilizando apenas 1 quickreport, existe um FOR q preenche os campos dele, mostrando todos os resultados da "lista" normalmente são encontrados mais de 100 resultados para imprimir
se voce usar uma banda de detail com os campos necessarios dentro dele, haverá quebra automatica de paginas
nesse caso ( com apenas 1 quickreport ) não é aconselhavel utilizar o QrCompositeReport ... use somente o quickreport
faça uma busca no forum
http://scriptbrasil.com.br/forum/index.php...ite=quickreportabraço
ricado ferreira
20/03/2010 - 21:35
Jhonas para q um mesmo quick report imprima todos os dados da lista , eu teria de usar BDE?? e os componentes QRDBLAbel?
pois meu sistema está todo pronto, usando QRLabels normais , e o select no Banco de Dados é Feito com comando sql .
assim retorna o valor , mais eu não estou sabendo como organizar.
por exemplo no banco de dados as data são armazenada 10/03/2010 mas na impressão ela tem q ter a formatação(10 de março de 2010);
eu não posso converter antes de por no banco pois esse sistema é gerador automatico de documentos , por exemplos a média dele são 100-150 inserções no banco com 1 click(e o sistema foi totalmente reduzido para q essa função de adicionar ocorrece o mais rápido possível.(ele consegue adicionar 350 registros em 3-4 segundos de uma vez) ). e depois é necessário imprimir todos os arquivos gerados, (cabem 2 registro em um página A4. )
eu já tentei por um QuickRep, usando os QRBD, mas não deu certo.
e outra surgio outro problema o qr está adicionando um folhe em branco antes da impressão e como o sistema manda gerar seguidas impressões isso é inviavel(pois puxa o dobro de folhas.)
ricado ferreira
20/03/2010 - 22:35
Valeu consegui , agora só me falta raciocinar como farei as formatações de texto e mode de exibição de data , valor e outras cosias mais isso é coisa simples , abrigado pela ajuda.
agora só falta descobrir como exibir um foto como fundo de uma prewie mas q não apareça na impressão.....
já tentei os eventos afterPrint e beforePrint.
fdefod
06/01/2012 - 10:23
Pessoal já tentei tudo deste tópico mesmo assim não estou conseguindo fazer meu 2º relatório sair no lugar certo. Estou usando dois relatórios com duas query destintas, meu segundo relatório se eu colocar uma banda do tipo title ele sai só o título no lugar certo e o resto do relatório sai em cima do 1º o que pode estar acontecendo?:??????
Jhonas
07/01/2012 - 17:22
o que voce precisa está descrito exatamente nesse post
http://scriptbrasil.com.br/forum/index.php...st&p=469894abraço
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor
clique aqui.