🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Seriendruck für einen Katalog (Auktionsartikel)

WRITER hat alles, was Sie von einer modernen, voll ausgestatteten Textverarbeitung erwarten.
Benutzeravatar
Nightskull
! Supporter - Spende !
Beiträge: 13
Registriert: Fr 2. Feb 2024, 07:30

[gelöst] Seriendruck für einen Katalog (Auktionsartikel)

Beitrag von Nightskull » Fr 2. Feb 2024, 21:09

Hallo, vielleicht habt ihr eine Idee wie ich ein Katalog in LO mit Seriendruckfelder aus einer Datenbank (Calc-Tabelle) realisieren kann.

Ich bin schon mal soweit, laut eurem Tipp (SerienbriefCalcdateiAlsDatenquelleEinbindenv2.pdf), wie man die Seriendruckfelder platzieren kann aus eine Datenbank.
2. SDFinWriter.png
2. SDFinWriter.png (46.13 KiB) 1656 mal betrachtet
Jetzt habe ich aber das Problem sobald ich das Writer Dokument drucken will, zunächst alle Seriendruckfelder jeweils auf eine Seite platziert werden.
Es sind ca. 1800 Seiten, soviel wie Auktionsartikel.
Das ist aber nicht sinnvoll, da die einzelnen Auktionsartikel hintereinander mit einer Zeile Zeile Abstand folgen sollten.

So sollte es aussehen:
0. KategorienVorher.png
0. KategorienVorher.png (153.05 KiB) 1656 mal betrachtet
1.KategorienNachher.png
1.KategorienNachher.png (154.66 KiB) 1656 mal betrachtet
Zuletzt geändert von Nightskull am Di 6. Feb 2024, 19:16, insgesamt 2-mal geändert.
Grüße Michael

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Seriendruck für ein Katalog (Auktionsartikel)

Beitrag von mikele » Fr 2. Feb 2024, 21:59

Hallo,
am einfachsten jagst du folgendes Makro über die Datei:

Code: Alles auswählen

Sub Main
	oEnum = ThisComponent.Text.createEnumeration()
	Do While oEnum.hasMoreElements()
		oPar = oEnum.nextElement()
		If oPar.supportsService("com.sun.star.text.Paragraph") Then
			oParTest.PageDescName=""
		End If
	Loop
End Sub
Dadurch werden alle Seitenumbrüche entfernt.
Gruß,
mikele

Benutzeravatar
miesepeter
* LO-Experte *
Beiträge: 2142
Registriert: So 19. Dez 2010, 18:16
Wohnort: Bayern

Re: Seriendruck für ein Katalog (Auktionsartikel)

Beitrag von miesepeter » Sa 3. Feb 2024, 09:46

Seitenumbruch im erzeugten Serienbriefdokument löschen ohne Makro

Beim Serienbrief werden die in einer einzelnen Datei gespeicherten "Ausdrucke" immer über den Seitenumbruch, der im ersten Absatz eines Teildokuments auftritt, gesteuert.

Die Lösung bestände also darin, dem ersten Absatz der mit mit Feldbefehlen gefüllten Seit eine singuläre Absatzvorlage zuzuweisen, also z. B. FließtextErsterAbsatz oder ähnlich.
Nach dem "Ausdruck" in eine Seriendokumentdatei kann man alle diese Absätze für alle "Teildokumente" markieren (z. B. mit SUCHEN&ERSETZEN) und manuell für alle einen Seitenumbruch entfernen/zuweisen/entfernen (u. U. mehrmals, dann geht das schon).

Ciao

Benutzeravatar
Nightskull
! Supporter - Spende !
Beiträge: 13
Registriert: Fr 2. Feb 2024, 07:30

Re: Seriendruck für ein Katalog (Auktionsartikel)

Beitrag von Nightskull » Sa 3. Feb 2024, 11:36

mikele hat geschrieben:
Fr 2. Feb 2024, 21:59
Hallo,
am einfachsten jagst du folgendes Makro über die Datei:

Code: Alles auswählen

Sub Main
	oEnum = ThisComponent.Text.createEnumeration()
	Do While oEnum.hasMoreElements()
		oPar = oEnum.nextElement()
		If oPar.supportsService("com.sun.star.text.Paragraph") Then
			oParTest.PageDescName=""
		End If
	Loop
End Sub
Dadurch werden alle Seitenumbrüche entfernt.
Hallo mikeleb,

habe das Macro versucht, leider ohne Ergebnis. Also es passiert nicht , auch keine Fehlermeldung.
Grüße Michael

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Seriendruck für ein Katalog (Auktionsartikel)

Beitrag von mikele » Sa 3. Feb 2024, 11:44

Hallo,
du hast das Makro in der fertigen Datei laufen lassen?
@miesepeter: ganz coole Idee!
Gruß,
mikele

Benutzeravatar
Nightskull
! Supporter - Spende !
Beiträge: 13
Registriert: Fr 2. Feb 2024, 07:30

Re: Seriendruck für ein Katalog (Auktionsartikel)

Beitrag von Nightskull » Sa 3. Feb 2024, 12:13

mikele hat geschrieben:
Sa 3. Feb 2024, 11:44
Hallo,
du hast das Makro in der fertigen Datei laufen lassen?
@miesepeter: ganz coole Idee!
Hallo,

Ja in der Datei mit den vielen Seiten.
Die Idee von miesepeter habe ich nicht verstanden?
Grüße Michael

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Seriendruck für ein Katalog (Auktionsartikel)

Beitrag von mikele » Sa 3. Feb 2024, 12:29

Hallo,
du könntest meine datei von hier
https://de.openoffice.info/download/file.php?id=20639
nehmen (da sind schon die Absatzvorlagen mit den Formatierungen enthalten, das Makro könnte auch entfernt werden).
Die erste Zeile (mit der Katalog_ID bzw. -bezeichnung) bekommt die Formatvorlage "auktionskategorie".
Dann fügst du die Seriendruckfelder ein und erstellst die Seriendruckdatei. In dieser Datei gehst du dann auf Suchen&Ersetzen und lässt nach der Absatzvorlage "auktionskategorie" suchen ("Alle suchen"). Dadurch werden alle dieses Absätze markiert/ausgewählt.
Über ->Format->Absatz->Textfluss kannst du nun die Umbrüche entfernen.
Gruß,
mikele

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Seriendruck für ein Katalog (Auktionsartikel)

Beitrag von karolus » Sa 3. Feb 2024, 17:07

Hallo

Code: Alles auswählen

oParTest.PageDescName=""
ich nehme an das soll lauten:

Code: Alles auswählen

oPar.Text.PageDescName=""
?!
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Benutzeravatar
Nightskull
! Supporter - Spende !
Beiträge: 13
Registriert: Fr 2. Feb 2024, 07:30

Re: Seriendruck für ein Katalog (Auktionsartikel)

Beitrag von Nightskull » Sa 3. Feb 2024, 18:36

mikele hat geschrieben:
Sa 3. Feb 2024, 12:29

Die erste Zeile (mit der Katalog_ID bzw. -bezeichnung) bekommt die Formatvorlage "auktionskategorie".
Dann fügst du die Seriendruckfelder ein und erstellst die Seriendruckdatei. In dieser Datei gehst du dann auf Suchen&Ersetzen und lässt nach der Absatzvorlage "auktionskategorie" suchen ("Alle suchen"). Dadurch werden alle dieses Absätze markiert/ausgewählt.
Über ->Format->Absatz->Textfluss kannst du nun die Umbrüche entfernen.
hallo @mikele,

dein Tipp war wieder mal für mich hervoragend.
Das hat jetzt so funktioniert.
Ich habe meine Vorlage mit den formatierten Daten aus der DatenbankTabelle mit den Seriendruckfelder genommen.
Dann wie du oben beschrieben ausgeführt.
Das i Tüpfelchen wäre jetzt noch die doppelten Kategorien 1-176 nur einmal in den Dokument erscheinen lassen.
Eventuell mit einem Macro?
Ergebnis.png
Ergebnis.png (857.21 KiB) 1578 mal betrachtet
Grüße Michael

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Seriendruck für ein Katalog (Auktionsartikel)

Beitrag von mikele » Sa 3. Feb 2024, 19:48

Hallo,
@karolus: Danke, das ist der entscheidende Fehler (das kommt, wenn man nachdem man fertig ist noch etwas ändert ... :oops: :oops: :oops: )
So wird es richtig:

Code: Alles auswählen

Sub Main
	oEnum = ThisComponent.Text.createEnumeration()
	Do While oEnum.hasMoreElements()
		oPar = oEnum.nextElement()
		If oPar.supportsService("com.sun.star.text.Paragraph") Then
			oPar.PageDescName=""
		End If
	Loop
End Sub
@NightSkull: Um die wiederholten Kategorien zu entfernen, würde ich die csv-Datei bearbeiten. Ich gehe mal davon aus, dass in der cvs eine Spalte "Kategorie" exististiert und ab Zeile 2 die Werte darin stehen. In der ersten freien Spalte (nehmen wir mal an es wäre die Spalte H) würde ich in H1 eine neue Überschirft setzen (Kategorie_kurz).
In H2 dann die Formel:

Code: Alles auswählen

=WENN(A2=A1;"";A2)
und nach unten ziehen.
Wenn du die Datei dann wieder als csv abspeicherst, werden nur die Werte (nicht die Formel) gespeichert. Diese Spalte kannst du dann als Seriendruckfeld nutzen.
Gruß,
mikele


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten