Darstellungsbedingung PDF

Hallo LL-Community,

ich habe das Problem, dass ich ein Briefpapier als PDF hinterlegen möchte, welches jedoch nicht auf jeder Seite gedruckt werden soll.
Da ich keine eindeutige Erkennung für diese bestimmte Seite habe, die Seitenanzahl variiert bzw. beim Druck mehrerer verschiedener Adressen gemeinsam die Seitenzahl immer wieder bei 1 beginnt, kann ich weder Lastpage() verwenden noch eine fixe Seitenanzahl.
Meine Idee war deshalb mit “LL.CountDataThisPage” zu arbeiten und dies für die Darstellungsbedingung zu verwenden.
Es handelt sich um ein PDF im Hintergrund welches eben nur auf jenen Seiten gedruckt werden soll, bei denen es auch Datenzeilen gibt - meine Darstellungsbedigung für das PDF lautet:
IF(LL.CountDataThisPage >0,true,false)
PDF funktioniert weder verlinkt noch eingebettet.
Im Designer selbst funktioniert es scheinbar (Darstellung in der Vorschau korrekt), beim tatsächlichen Ausdruck wird dann jedoch gar nichts mehr ausgegeben. Habe es auch mit einem Textfeld bzw. Barcode mit dieser Darstellungsbedingung ebenfalls versucht (um ein PDF-Problem auszuschließen) aber selber Effekt. Alles korrekt im Designer, aber beim finalen Ausdruck leider gar nicht mehr vorhanden.

Kennt jemand das Problem bzw. gibt es eine Möglichkeit innerhalb einer Gruppierung die Maximale Seitenzahl minus 1 zu ermitteln und nur dort das PDF dann NICHT zu drucken? So in etwa:
IF(Page()<totalpages$(), true, false) → aber das ganze halt je Adressnummer gruppieren um bei jeder Adresse wieder neu zu ermitteln.

Habt ihr noch eine Idee?

Guten Morgen Markus, willkommen im LL Jungle Forum :slight_smile:
So ganz hab ich das nicht verstanden, du willst das Briefpapier nach jedem Gruppenwechsel drucken, oder nicht, oder nur auf der vorletzten Seite?
Wenn ich es mal ganz genau verstehe, gibt es sicher eine Lösung dafür :wink:

Weitere Infos wären auch hilfreich, welche Version, DataBinding oder nicht, Zugriff auf Code oder nur Designer Lösungen erwünscht.
LG

Guten Morgen Erdal,

sorry für die verspätete Antwort, habe keine Erinnerungsmail erhalten.

Es geht darum, dass ich einen Brief erzeugen möchte mit einem Antwortschreiben.
Der Brief an sich wird mit eigenem Briefpapier hinterlegt, das Antwortschreiben natürlich ohne meinem Briefpapier. Im Report selbst verwende ich 1 Berichtscontainer sowie 1 Tabelle.
Ich möchte das Briefpapier innerhalb 1 Adresse auf allen Seiten außer der letzten Drucken (quasi NOT Lastpage() innerhalb dieser Adresse, danach Gruppenwechsel und dort neuerlich “NOT Lastpage ()” wieder innerhalb dieser Adresse usw.).

Beispiel:
Druck von Adresse A erzeugt mir 2 Seiten und 1 Antwortseite. Briefpapier auf ersten 2 Seiten JA, auf Antwortseite NICHT.
Druck von Adresse B erzeugt mir 3 Seiten und 1 Antwortseite. Briefpapier auf ersten 3 Seiten JA, auf Antwortseite NICHT.

Drucke ich jedoch A + B gemeinsam so erhalte ich 2+1 Seite, dann Gruppenwechsel und nochmals 3+1 Seite. Da funktioniert dann meine Darstellungsbedingung aber nicht mehr.

Ich verwende aktuell die Version 25 und würde dies gerne als reine Designer-Lösung am Report ergänzen, da ich keinen Zugriff auf den Code habe bzw. auch DataBinding nicht möglich ist.

Danke und lg,
markus

Kurz dazu - das Forum versendet wegen der DSGVO standardmäßig keine Mails. Das kann in den persönlichen Einstellungen aktiviert werden :slight_smile: - ich habe das hier erklärt.

Alles klar vielen Dank! :slight_smile:

1 Like

Ohne auf die Datenbindung zurückzugreifen (damit wäre das recht einfach) und nur im Designer fällt mir da leider keine stabile Lösung ein. Ideen würden um SetVar und GetVar kreisen, um die Darstellungsbedingung an die Ausgabe bestimmter Textblöcke zu binden. Das ist dann aber sehr timing- und reihenfolgeabhängig und keine saubere Lösung, die ich empfehlen würde.

Erstmal danke für die Info.
Was wäre eine Möglichkeit wenn wir es intern schaffen würden auf die Datenbindung zurückzugreifen?

Dann würde ich mit einer Belegdruck-Funktion arbeiten, in dem Fall kann dann auch LastPage() wie gewohnt verwendet werden. Die einzelnen Gruppen wären jeweils einzelne Datensätze in der Master-Tabelle, die Inhalte/Posten dann relational damit verknüpfte Detail-Daten. Wenn der AutoMasterMode auf AsVariables gesetzt wird wird für jeden Master-Datensatz ein eigenes, auch eigens nummeriertes Dokument erzeugt. Hier findet sich ein kleines Tutorial, der Rechnungsdruck in unserer Demoanwendung zeigt das Ganze in der praktischen Anwendung.

1 Like

Bei einem definierten Ende des Briefes z. B. in der Grußzeile setzte ich mit SetVar(‘briefende’, Page()) dann werden alle Seiten die <= ‘briefende’ sind mit Briefpapier hinterlegt.
Eventuell vor Gruppenwechsel oder nach Ausgabe Antwortschreiben SetVar(‘briefende’, 0) resetten.

1 Like

Vielen Dank für die Info - ich werde das die Tage testen!

Ich verwende SetVar(‘count_pdf’, LL.FCountPrintedData - 17), die minus 17 deshalb, da die Variable immer 17 Seiten mehr hatte, z. B. bei Seite 6 = 23. Funktioniert seit Jahren.
Aus unserer Anwendung können an einem Datensatz eine beliebige Anzahl an Pfade für PDF angegeben werden, die anschließend, in der Datenzeile als PDF eingelesen werden. Für eine Zweitschrift wird das entsprechende PDF zweimal eingebunden. Unterschiedliche Seitenzahlen der PDF spielen durch die Ermittlung der Startseite keine Rolle.
Das Objekt PDF habe ich wegen der jetzt doppelten Ränder (PDF und lst) mit negativen Werten auf Seitengröße (größer als Berichtscontainer) gebracht. In der Fußzeile setze ich anschließend SetVar(‘Startseite’, Page())
Auch kann ich die vom Kunden erstellten fertigen PDF auf der ersten Seite jedes gewünschten PDFs mit Kundendaten (z. B. Adressdaten-Variablen) bedrucken.
Dies geschieht mit Textobjekten in einer eigenen Ebene und der ermittelten Seitenzahl der Startseite, die im Formular an die entsprechende Position verschoben werden können.
Hier die Darstellungsbedingung der Textobjekte:
IF(page() = if(GetVar(‘count_pdf’) >Previous(GetVar(‘count_pdf’)) OR isnullorempty(Previous(GetVar(‘count_pdf’))), val(GetVar(‘Startseite’))+ 1, 0),true)

Und nun der Clou der ganzen Sache. Da die Textobjekte ja vor dem PDF gedruckt werden und dadurch nicht sichtbar sind, haben die zu bedruckenden PDF einen transparenten Hintergrund.
Wir haben bis zu 12 PDF in einem Anschreiben mit unterschiedlichen Seitenzahlen von einer bis zu 8 Seiten.
Wir können somit bei einem Kunden, pro Zähler einen ‘vorausgefüllten’ Vertrag mit Kunden-Zähler-Tarif- und Ablesedaten drucken. Bei den z. B. AGB die nicht bedruckt werden müssen ist der Hintergrund im PDF nicht transparent.
Da die PDF nicht in der lst eingebunden sind bleibt auch die lst performant.

1 Like