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

(Resolvido)Repetir dados de Detail Band Qreport


João Paulo Taraciuk

Pergunta

Olá, estou fazendo manutenção em um sistema onde o cliente necessita do seguinte.

Ele tem um Qreport que imprime um orçamento, quando o orçamento tem menos de seis ítens, ele é feito em meia folha, aí o cliente quer que imprima duas vezes na mesma folha(uma cópia), a estrutura do QReport está assim

|--------------------------------

|

|qrTitle

|_____________________

|

|

|Detail band =Columnheader <--------Aqui vão os dados do cliente

|______________________

|

|Detail band +rbDetail <----------Aqui vai os produtos do orçamento

|_______________________

|

|

|

|este espaço está em branco, reservado para DetailBand rbDetail, pois é onde vão os produtos

|tem somente os Shapes das linhas do orçamento

|

|

|Aqui termina o primeiro orçamento

|________________________________

|

|Aqui começa a segunda parte

|onde iria a cópia

|

|

|

|

|

Mas nessa segunda parte não tem nenhuma QRDetail, somente QRDBTexts, onde ficam os dados do cliente e tudo mais, o que preciso saber, é se tem como, digamos, se der 3 produtos na DetailBand de cima imprimir estes ítens abaixo, nos QRDBText, ou se de repente tiver uma outra dica para realizar este procedimento, eu agradeço.

Editado por João Paulo Taraciuk
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Olá, estou fazendo manutenção em um sistema onde o cliente necessita do seguinte.

Ele tem um Qreport que imprime um orçamento, quando o orçamento tem menos de seis ítens, ele é feito em meia folha, aí o cliente quer que imprima duas vezes na mesma folha(uma cópia)

O que voce está querendo é imprimir a mesma coisa em cada metade da folha, como se fosse uma duplicata ?

e quando o orçamento tem mais de seis ítens ? ... usa uma folha inteira ? ... duplica tambem ?

Link para o comentário
Compartilhar em outros sites

  • 0
O que voce está querendo é imprimir a mesma coisa em cada metade da folha, como se fosse uma duplicata ?

Sim, quero imprimir a mesma coisa,uma via fica com o cliente e a outra fica arquivada na empresa

e quando o orçamento tem mais de seis ítens ? ... usa uma folha inteira ? ... duplica tambem ?

Aí, quando for mais de seis ítens, usa uma folha inteira, e não precisa duplicar não, imprime somente uma via.

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas, a dica o OnNeedData é uma opção, mas na condição que o João Paulo Taraciuk colocou (até 6 itens...), talvez fique mais simples para ele usar um TQRCompositeReport. (eu acho que funcionará)

João, caso você desenhe seu relatório nesta condição em que, havendo apenas 6 itens, sejam possíveis a impressão de dois documentos em uma página, sugiro que você faça um teste com a seguinte dica:

- Você adiciona no form do seu reletório o TQRCompositeReport;

- Então, no evento OnAddReports, você adiciona os dois relatórios.

No evento OnAddReports você faz a inclusão do QuickRep, conforme a situação - no mínimo 1 vez:

procedure TFormReport.QRCompositeReport1AddReports(Sender: TObject);
begin
  QRCompositeReport1.Reports.Add(QuickRep1);  // principal
 // você verifica se haverá até 6 itens, e se for o caso, adiciona o relatório mais uma vez
  if dataset_items.RecordCount <= 6 then
    QRCompositeReport1.Reports.Add(QuickRep1);  // cópia
end;
Na hora de mostrar o relatório, você usa o QRCompositeReport e não o QuickRep, como é o normal:
...
 // consultas (datasets) abertos...
  QRCompositeReport1.Prepare;
  QRCompositeReport1.Preview;
...

É testar para ver se funciona de acordo com o esperado.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, eu coloquei o QRComposite no form, aí, no meu caso ocorre o seguinte, eu tenho apenas três DetailBand no form, um com rbTitle, outra com rbColumnHeader e a outra rbDetail, e o espaço abaixo está com alguns shapes das linhas e lguns QRDBTexts onde saem alguns dados, aí, no Preview, a segunda Impressão do QReport sai exatamente onde termina a rbDetail, ou seja, embaixo dos shapes e outros dados que estão fora de DetailBands,o layout está assim

relatrio1wm7.th.jpg

Aí a segunda impressão sai na pate onde não tem DetailBand, será que eu teria que colocar mais alguma banda, que iria até o final da primeira parte se for o caso que banda eu deveria colocar?

Editado por João Paulo Taraciuk
Link para o comentário
Compartilhar em outros sites

  • 0

Olá pessoal, deu certo aqui, eu coloquei os dados que estaval abaixo da DetailBand, todos dentro de uma SummaryBand, aí eu diminui os espaços entre os componentes, então eu chamei o QuickRep1 duas vezes como o Micheus indicou

procedure TFormReport.QRCompositeReport1AddReports(Sender: TObject);

begin

QRCompositeReport1.Reports.Add(QuickRep1); // principal

// você verifica se haverá até 6 itens, e se for o caso, adiciona o relatório mais uma vez

if dataset_items.RecordCount <= 6 then

QRCompositeReport1.Reports.Add(QuickRep1); // cópia

end;

Aí, funcionou.

Obrigado aí Micheus e Jhonas pela ajuda.

Valeu!!

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,3k
×
×
  • Criar Novo...