LazReport: Drittelseite für Fensterkouverts drucken

Rund um die LCL und andere Komponenten
Antworten
charlytango
Beiträge: 1060
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

LazReport: Drittelseite für Fensterkouverts drucken

Beitrag von charlytango »

Hi,

seit Jahren ist eine jährliche Aussendung per Post an Kunden immer wieder ein Krampf.
Versandetiketten drucken (die dann aufkleben etc) oder Adressen direkt auf Kouverts drucken kann den User glatt in den Wahnsinn treiben. (da gibts verschiedene Möglichkeiten dazu :wink: )

Die Version mit den wenigsten Problemen ist für meinen Einsatzzweck auf A4 Format je drei "Allongen" zu drucken wo die Anschrift samt den von der Post geforderten Infos genau im Fenster des Kouverts platziert wird. Bislang wurde das mittels Access Reports gemacht -- auch nicht optimal aber zumindest machbar.

Nun kann man aber nicht einfach die A4Seite dritteln weil einem der obere und untere Rand in die Suppe spuckt. Klar kann man die Papierstreifen ungefär so breit machen wie ein Kouvert und die dann irgendwie an ihren Platz klopfen - ein sauberes Format ohne viel Herumschneiderei wäre das Ziel.

Also drei gleich große Papierstreifen aus einer A4-Seite mit nur zwei Schnitten (Schnittmarken müssen mitgedruckt werden) schneiden. Das bedeutet aber dass das Druckbild nicht gleichmäßig sein darf.

Jetzt bin ich bei Lazreport eher unterbelichtet und frage mal ob und wie das ginge.

Mein erster Ansatz wäre entweder zur Laufzeit die Höhe des Masterbandes beeinflussen oder irgendwie drei Bänder auf der Seite platzieren die unterschiedliche Höhen haben. Dosch beide Ansätze scheitern am mangelnden Wissen.

Benutzeravatar
gladio
Beiträge: 223
Registriert: Sa 21. Jun 2014, 06:15
OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
CPU-Target: 64Bit
Wohnort: Rügen

Re: LazReport: Drittelseite für Fensterkouverts drucken

Beitrag von gladio »

Reports sind immer eine Fummelei.
Ich habe schon viele designet, mit lazreport, Fortesreport, früher Quickreport .... ist jedes mal ein Abendteuer.

Also du kannst das Datenband, müsste wohl ein Detailband sein (ausprobieren) in der Höhe 1/3 der A4-Seite einrichten.
Vermutlich ist genau 1/3 zu groß ... testen.
Das würde dann 3 mal pro Seite ausgegeben, je nach der Anzahl der Datensätze.
Dann würde ich am unteren Rand des Bandes eine Strichellinie platzieren.
Die Adressfelder entsprechend platzieren, dass sie im Fenster des Briefumschlages zu sehen sind und mehr ist auch nicht.
Dann viel probieren bis alles passt.

Soner
Beiträge: 726
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: LazReport: Drittelseite für Fensterkouverts drucken

Beitrag von Soner »

LazReport ist richtig gut, es ist flexibel und sehr erweiterungsfähig.
charlytango hat geschrieben: Di 20. Jun 2023, 09:42 Hi,

seit Jahren ist eine jährliche Aussendung per Post an Kunden immer wieder ein Krampf.
Versandetiketten drucken (die dann aufkleben etc) oder Adressen direkt auf Kouverts drucken kann den User glatt in den Wahnsinn treiben. (da gibts verschiedene Möglichkeiten dazu :wink: )
...
Ich drucke mit Lazreport und Brother QL 700 und QL 800 Adressetiketten für Briefumschläge und Etiketten mit Inhaltsangabe für die Kartons, noch nie Probleme gehabt. Sogar Mitarbeiter die nie Computer benutzt haben können es verwenden. Man kann auch vorgeschnittene oder Endlosetiketten verwenden. Bei Endlospapier kann dein Etikett so lang werden wie du möchtest. Es gibt im Amazon sehr günstige polnische Verkäufer für Etiketten.
charlytango hat geschrieben: Di 20. Jun 2023, 09:42 ..
Nun kann man aber nicht einfach die A4Seite dritteln weil einem der obere und untere Rand in die Suppe spuckt. Klar kann man die Papierstreifen ungefär so breit machen wie ein Kouvert und die dann irgendwie an ihren Platz klopfen - ein sauberes Format ohne viel Herumschneiderei wäre das Ziel.

Also drei gleich große Papierstreifen aus einer A4-Seite mit nur zwei Schnitten (Schnittmarken müssen mitgedruckt werden) schneiden. Das bedeutet aber dass das Druckbild nicht gleichmäßig sein darf.
..
Ich habe es nie Probiert, aber ich denke es müsste gehen.
Eine Lösung wäre Papier in Querformat einstellen, Spaltenanzahl 3 machen und alle Objekt 90° gegen Uhrzeigersinn drehen. Vielleicht ist es die einfachste und beste Lösung.
Du musst bei Lazreport die Bänder richtig einstellen besonders "stretched"-Eigenschaft, wenn du alle Bänder gleichmäßig groß haben willst.
Du kannst sogar ohne Bänder arbeiten, die ganzen Objekte einfach drauf packen, ich mach es bei einem wichtigen komplexen Bericht.

Es gibt genug Hilfe im Internet über LazReport und Vorgänger Freereport. Es gibt sogar Hilfe im LazReport-Ordner.

charlytango
Beiträge: 1060
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: LazReport: Drittelseite für Fensterkouverts drucken

Beitrag von charlytango »

Ich versuche das Problem neu aufzurollen. Dazu habe ich auch eine kleine Testapp erstellt, die auch dazu taugt, andere Reports zu testen. (angelehnt an eine Lazreport Demo, umgebaut auf dynamische Datenbankanbindung und auch SQLite). Beschreibung dazu ->ReportTester.txt

Für den DrittelseitenReport gibt es auch eine kleine Spezifikation -> spec.txt
Soner hat geschrieben: Do 22. Jun 2023, 20:32 Du musst bei Lazreport die Bänder richtig einstellen besonders "stretched"-Eigenschaft, wenn du alle Bänder gleichmäßig groß haben willst.
Das ist ja das Problem -- die Bänder können eigentlich nicht gleich groß sein, weil oberer und unterer nicht druckbarer Bereich zwar vom Drucker berücksichtigt werden, in der Realität dann eine Verschiebung des Druckbereichs im Verhältnis zur Papierseite verursacht.

Die erste Stratehie die ich mir sinnvoll erscheint, ist es, zur Laufzeit des Reports eine unterschiedliche feste Hähe des Detailbandes zu setzen.
Wobei ich dann eine Methode brauche, die entweder direkt im Report (was wohl eleganter wäre) brauche oder das von außerhalb irgendwie gesetzt werden müsste.

Meine erste Frage:
Wie kann ich zur Laufzeit die Höhe eines Bandes setzen.

Irgend etwas wie

Code: Alles auswählen

case <recordnummer> mod 3 of
    1: <bandheight>:= 340;
    2: <bandheight>:= 355;
    0: <bandheight>:= 340;
  end;
wobei ich keine Ahnung habe wo ich so etwas hinscheiben sollte, weil ich immer noch nicht begriffen habe wie LazReport wirklich funktioniert.
Dateianhänge
sql_demo_Etikett.zip
(551.75 KiB) 17-mal heruntergeladen

Soner
Beiträge: 726
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: LazReport: Drittelseite für Fensterkouverts drucken

Beitrag von Soner »

Ich habe dein Beispiel ausprobiert, vorher Bandposition(Top) auf 0 gesetzt und Höhe angepasst (DINA4-Höhe / 3) und ausgedruckt, dann an Schnittpunkten gefaltet, das passt in Fenster-Briefumschläge, das funktioniert wunderbar, was willst du noch? Vielleicht habe ich dein Problem falsch verstanden.
Was mir aufgefallten ist, wähle bei Reportdesign (Menü>File>Reportoptions) niemals einen Drucker, wähle immer "Default Printer" und deaktviere "Select when report loaded", außer bei Speziellen Drucker wie Etikettendrucker, wo es gewünscht ist. Wenn man in Großraumbüros einen Drucker in einem anderen Raum/Stockwerk ausgewählt hat, dann nervt es den Benutzer.

charlytango
Beiträge: 1060
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: LazReport: Drittelseite für Fensterkouverts drucken

Beitrag von charlytango »

@Soner

Danke für die Tips, aber offensichtlich klappt das bei mir nicht.

Keine Ahnung warum, aber wenn ich beim Band Height=99 und Top=0 setze werden die Drittelseiten ungleich groß.
Ich hab es mit allen Rändern auf Null und auch mit "Dont use margins" in den Seiteneinstellungen probiert -- beide Optionen bringen unterschiedliche Ergebnisse (die sind am Schirm gsd gleich wie beim Druck)

In meinem Kopf gibt es einen oberen und unteren Rand, den ein Drucker nicht bedrucken kann -- der ist bei jedem Drucker unterschiedlich, in der Regel 4-5mm soweit ich weiß.
Demnach müsste das Band für das obere und untere Drittel der Seite eine andere Größe haben als das Band für das mittlere Drittel.

Selbst wenn ich die 1,5cm vom unteren Rand für das Kouvertfenster berücksichtige bleiben immer noch die Schnittmarken

Und Schnittmarken des unteren Drittels sollten nicht gedruckt werden

Hab ich da einen Denkfehler ?

Kannst du mir bitte deine korrigierte LRF Datei zur Verfügung stellen?

Soner
Beiträge: 726
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: LazReport: Drittelseite für Fensterkouverts drucken

Beitrag von Soner »

>>In meinem Kopf gibt es einen oberen und unteren Rand, den ein Drucker nicht bedrucken kann
Die Ränder von deinem Druckauftrag sind doch leer, also verlierst du nichts.

>>Kannst du mir bitte deine korrigierte LRF Datei zur Verfügung stellen?
Liegt bei.

>>Und Schnittmarken des unteren Drittels sollten nicht gedruckt werden
Das kannst du auf zwei Wege erreichen, erstens mit "hervorgehobene Attribute" Funktion, vergiss die Einstellungen vom Bild, das ist Screenshot von meinem Report, bei jede zweite Zeile graue Hintergrund, Streifeneffekt. Du könntest es durchsichtig machen:
hervorgehobene Attribute
hervorgehobene Attribute
lazrep-hilite.png (33.19 KiB) 474 mal betrachtet
Oder mit Skript, das Linien-Objekt weder "hervorgehobene Attribute" noch Skript unterstützt, habe ich mit Memo ersetzt und untere Randlinie hinzugefügt:
Skript
Skript
lazrep-skr.png (15.92 KiB) 474 mal betrachtet
Dateianhänge
etikett4.zip
Bericht
(1.46 KiB) 15-mal heruntergeladen

charlytango
Beiträge: 1060
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: LazReport: Drittelseite für Fensterkouverts drucken

Beitrag von charlytango »

Erstmal vielen Dank für deine Mühe.

Aber jetzt wird es spannend -- habe dein LRF File benutzt ohne Änderung und die untere Drittelseite wird nicht gedruckt -- der Report verlängert sich weil einfach nur zwei Records pro Seite angezeigt werden.

Dieses Phänomen hatte ich gestern auch schon als ich selbst getestet hab und das Band (genau wie du) auf 99 gesetzt habe.
Da scheint irgend etwas falsch zu rechnen ???

Kann das etwas mit einem hochauflösenden Bildschirm zu tun haben?

Ich werde das Donnerstag abend auf jeden Fall noch mit einem "normalen" Bildschirm probieren.

Die Idee mit den Schnittmarken als Memo finde ich toll und es klappt auch.

Soner
Beiträge: 726
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: LazReport: Drittelseite für Fensterkouverts drucken

Beitrag von Soner »

>>Kann das etwas mit einem hochauflösenden Bildschirm zu tun haben?
Kann sein. Ich nutze als "Report units"-Pixel, [Menu>Edit>Options].
Als ich zu mm gewechselt habe wurde als Bandhöhe 98.8888888888889 angezeigt.
Ich habe auch bei Laserdrucker ausgedruckt.

charlytango
Beiträge: 1060
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: LazReport: Drittelseite für Fensterkouverts drucken

Beitrag von charlytango »

Habe dein Reportfile ausprobiert und etwas angepasst.
Umgeschaltet auf Pixel
Getestet wie hoch das Band in PPixel sein darf
Und nach deinem Muster ein memo mit oberem Rahmen benutzt, um die obere Grenze des Bandes sichtbar zu machen.

Es ist deutlich zu sehen dass ein oberer und unterer Rand eingehalten wird obwohl der Rand auf Null steht. Bin verwirrt.

Das Ergebnis ist dann aber, dass bei Verwendung der beiden Schnittmarken die Drittelseiten nicht mehr gleich groß sind.

Dieses Verhalten kenne ich auch aus meinen ersten Versuchen, dewegen war ja meine Frage ob ich das Band nicht zur Laufzeit anpassen kann.

....grübel
Dateianhänge
etikett_test.zip
Dateien für den Report
(2.72 KiB) 16-mal heruntergeladen
A4demo.JPG
Aussehen der Seite
(120.19 KiB) Noch nie heruntergeladen

Soner
Beiträge: 726
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: LazReport: Drittelseite für Fensterkouverts drucken

Beitrag von Soner »

Du solltest bei Memo unteren Rand mit Linie versehen und untere Rand auf unterem Rand vom Band liegen.

Deine Bandhöhe von "Etikett_test" ist falsch, es ist 347, es sollte aber 357 sein bei Pixelmaße.

Ich habe die Maße auf mm eingestellt und die Bandhöhe von "Etikett_test" auf 99mm (297mm/3) eingestellt, es wird auch mit mm wird richtig eingeteillt.

Jedenfalls, du machst irgendetwas, falsch.

Antworten