AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fastreport und Seitenauswahl

Ein Thema von SearchBot · begonnen am 13. Jul 2019 · letzter Beitrag vom 13. Jul 2019
Antwort Antwort
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
272 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Fastreport und Seitenauswahl

  Alt 13. Jul 2019, 02:29
Hallo,

ich habe vor, Etiketten zu drucken (Endlospapierrolle, daher unterschiedliche Formate innerhalb eines Reports möglich). Die Etiketten sind dann jeweils eine Seite, mal horizontal oder vertikal ausgerichtet. Der Drucker kann das.
Dazu habe ich einen Report mit 3 Seiten/Layouts definiert.

Jetzt möchte ich nur je Datensatz die Etiketten 1+2 drucken, weil ich das Etikett 3 zB nicht benötige.
Ich verwende keine Bänder, sondern weise die Inhalte über OnGetValue direkt zu (per Value oder mit c:=frxReport.FindObject('sn'); if c<>nil then TfrxMemoView(c).Text:='bla';).

Problem: es generiert mir die Vorschau eben immer mit allen 3 Seiten.
Durch die Forensuche habe ich die Möglichkeit gefunden, mit PrintOptions.PageNumbers eine Auswahl für den Ausdruck zu definieren zB '1,2,4,5'. Aber das reduziert ja die Vorschau nicht.

Dann habe ich die Methode probiert, die immer wieder im Forum empfohlen wird, in der jede Seite in einer separaten Datei ist:
Code:
       
 frxReport.LoadFromFile('eti1.fr3');
 frxReport.PrepareReport(true);
 frxMainReport.PreviewPages.AddFrom(frxReport); //oder AddPage(...) oder AddSourcePage(...) - was ist der Unterschied??
 frxMainReport.ShowPreparedReport;
Hierbei bekomme ich aber ständig Zugriffsverletzungen - offenbar, weil ich durch die OnGetValue auf Elemente zugreife, die in dem jeweils geladenen Report nicht drin sind. Also habe ich die mit if c<>nil then behandelt, aber die Exceptions treten auch innerhalb der frxXML auf (frxXML.TfrxXLMItem.GetItems(-1)).

Bei meinen ungezählten Versuchen hatte ich es auch schon ohne Exceptions, dann waren die Seiten aber leer.

Was tun?
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
272 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Fastreport und Seitenauswahl

  Alt 13. Jul 2019, 16:34
Naja, ich hab jetzt eine Lösung gefunden:

Ich nehme doch mein Multipage-Report.
In den Report.EngineOptions setze ich DoublePass auf true.
Dann bereite ich in vor.
Danach habe ich die Anzahl der vorberiteten Seiten und lösche diese raus, die ich nicht brauche, bevor ich die Vorschau anzeige...
Delphi-Quellcode:
  
  frxReport.PrintOptions.ShowDialog:=false;
  frxEtiData.RangeEndCount:=Grid1.RowCount-2;
  frxReport.PrepareReport;

  i:=frxReport.PreviewPages.Count;
  repeat
   dec(i);
   if frxReport.PreviewPages.Page[i].Name='pAdressethen
     if not chk_doAdress.Checked then frxReport.PreviewPages.DeletePage(i) else
   else
   if frxReport.PreviewPages.Page[i].Name='pLabelthen
     if not chk_doLabel.Checked then frxReport.PreviewPages.DeletePage(i) else
   else
   if frxReport.PreviewPages.Page[i].Name='pSNthen
     if not chk_doSN.Checked then frxReport.PreviewPages.DeletePage(i);
  until i=0;
  frxReport.ShowPreparedReport;
Bestimmt geht das auch eleganter...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz