Ruyfreis Postado Julho 26, 2007 Denunciar Share Postado Julho 26, 2007 Ola Pessoal... Estou com um probleminha em um relatório no Quick Report....O relatório deve ser em meia pagina.. Ok é so diminuir o Height.. mas o problema é que deve sair duas vezes na mesma FOLHA....Tem como fazer isso???Um Forte abraço... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Jonas -- Postado Julho 26, 2007 Denunciar Share Postado Julho 26, 2007 Ola Pessoal... Estou com um probleminha em um relatório no Quick Report....O relatório deve ser em meia pagina.. Ok é so diminuir o Height.. mas o problema é que deve sair duas vezes na mesma FOLHA....Tem como fazer isso???Um Forte abraço...Se voce estier usando uma impressora matricial é facil ( é so definir o tamhanho da folha ) mas se for jato de tinta voce tem que duplicar os campos na outra metade do Quick Report ( isto porque na impressora jato de tinta a folha sera ejetada mesmo que imprima metade da folha ). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ruyfreis Postado Julho 27, 2007 Autor Denunciar Share Postado Julho 27, 2007 (editado) Ok.. isso eu já tinha pensado .. mas... Como que eu vou duplicar as bandas... sendo que um folha so pode ter um Head, um Footer, um Detail....Ou existe alguma forma???... se você souber posta aii.. please.... meu chefe ta me apertando nisso....Muito Obrigado...Valeuuu..... Editado Julho 27, 2007 por Ruyfreis Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Jonas -- Postado Julho 27, 2007 Denunciar Share Postado Julho 27, 2007 Ok.. isso eu já tinha pensado .. mas... Como que eu vou duplicar as bandas... sendo que um folha so pode ter um Head, um Footer, um Detail....Ou existe alguma forma???... se você souber posta aii.. please.... meu chefe ta me apertando nisso....Muito Obrigado...Valeuuu.....Amigo. engano seu ... voce pode colocar quantas bandas voce quiser, entretanto dependendo de como sera a disposição do impresso é que voce deve escolher qual a disposição das bandas e dos componentes a serem usados ... vamos imaginar o seguinte exemplo : uma duplicata. a meneira de montar fica um tanto trabalhosa pois você vai usar apenas uma banda de titulo que devera ser esticada ate o final da pagina, nesta banda voce colocara os componentes QRLabel ( Titulos ), QRDbText ( para os campos da tabela ), QRShape ( Desenhos ) , etc ..., então você monta a duplicata usando ate o meio da folha. uma vez acabado seleciona-se todos os componetes, copia-se e cola-se na parte de baixo da banda , faz-se os ajustes necessarios e está pronto.Outra maneira que usei sem fazer isto, foi o controle da impressão dos componentes que deu muito mais trabalho e ficaria inviavel te explicar como. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Julho 30, 2007 Denunciar Share Postado Julho 30, 2007 Ruyfreis, uma outra maneira, seria definir a banda detalhe ocupando metade da folha (ou um pouco menos), colocar todos os TQRLabel's e TQRText's necessários - exatamente como qualquer relatório.Entretanto, você não liga a propriedade Dataset do QuickReport ao seu dataset (Table ou Query), ou seja, deixa esta propriedade "em brando".Então, você define uma variável na sessão private do seu form (do relatório) para controlar quantas vezes você imprimirá o registro em questão. Inicializa ele antes da impressão (BeforePrint) e manipula (incrementa e testa) no evento OnNeedData do QuickRep:type TRelatorio = class.... ... public procedure ShowPreview; private QtImpresso :byte; end; implementation ... // supondo a existência de um procedimento que mostre seu relatório... procedure TRelatorio.ShowPreview; begin QryConsulta.Open; QuickRep1.Preview; QryConsulta.Close; end; procedure TRelatorio.Quickrep1BeforePrint(Sender :TObject); begin QtImpresso := 0; end; procedure TRelatorio.Quickrep1NeedData(Sender :TObject; var NeedData :boolean); begin // incrementa o contador de impressão Inc(QtImpresso); // NeedData dirá ao quickreport ainda há dados a serem impressos, enquanto QtImpresso não for 2 NeedData := QtImpresso < 2; end; Quando manipulamos o evento OnNeedData, o quickreport não controla mais o avanço do dataset (por isso, não definimos a respectiva propriedade no mesmo) - nós temos que controlar este avanço na mão. Enquanto não avançarmos o dataset (via método Next), a cada vez que setarmos o parâmetro NeedData para TRUE, as informações referentes ao registro atual serão repetidos. Assim, no exemplo acima, enquanto QtImpresso não for 2, ele repitirá a impressão dos dados sem qualquer alteração. Para o caso de uma impressão de "n" registros do dataset, onde tenham que ser impressos, para cada um, duas cópias, então deve ser gerenciado o posicionamento e avanço do dataset nos eventos mencionados. procedure TRelatorio.Quickrep1BeforePrint(Sender :TObject); begin QryConsulta.First; // posiciona no primeiro registro do dataset QtImpresso := 0; end; procedure TRelatorio.Quickrep1NeedData(Sender :TObject; var NeedData :boolean); begin // incrementa o contador de impressão Inc(QtImpresso); // NeedData dirá ao quickreport ainda há dados a serem impressos, enquanto QtImpresso não for 2 NeedData := QtImpresso < 2; // se NeedData é falso, sinal que já foram impressos as duas cópias if not NeedData then begin // tentamos avançar ao próximo registro QryConsulta.Next; // verificamos se há mais registros a imprimir if not QryConsulta.EOF then begin // há o que imprimir, então reiniciamos o contador e ajustamos o retorno do parâmetro QtImpresso := 0; NeedData := True; end; end; end;Seria algo mais ou menos assim, apenas escrevi o código nos eventos, não o testei.No caso de impressão de apenas o registro atual (apenas um), haveria ainda a opção de utilizar um TQRComposite. Você cria o relatório normalmente e adiciona a ele o componente TQRComposite. Então, você inclui na lista Reports do composite o seu QuickRep1 duas vezes e chama o preview deste componente. Veja este post.O TQRComposite tem a finalidade de agregar relatórios.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ruyfreis Postado Agosto 5, 2007 Autor Denunciar Share Postado Agosto 5, 2007 Noosssaaaa... Valeu mesmo michels.. alem de você ter resolvido meu problema.. deu pra aprender muita coisa que eu tinha curiosidade... heh.. muito obrigado mesmooooo....o que eu achei que vai me salvar é o do post com o TQRComposite...brigado mesmooo.. você sempre me salvando..hehehehbrigaduu... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Nei D. Lopez Postado Fevereiro 3, 2009 Denunciar Share Postado Fevereiro 3, 2009 Sei que o post é antigo, desculpem, mas não podia deixar de agradecer (e elogiar) a resposta do Micheus:Cara, só faltei chorar quando li seu post, me ajudou MUITO. OBRIGADO. PARABÉNS! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Ruyfreis
Ola Pessoal... Estou com um probleminha em um relatório no Quick Report....
O relatório deve ser em meia pagina.. Ok é so diminuir o Height.. mas o problema é que deve sair duas vezes na mesma FOLHA....
Tem como fazer isso???
Um Forte abraço...
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
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.