BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

ODT/OTT Datei aus Base verändern, bearbeiten

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Benutzeravatar
HeiDieLX2
! Supporter - Spende !
Beiträge: 27
Registriert: Mo 9. Sep 2019, 12:50

ODT/OTT Datei aus Base verändern, bearbeiten

Beitrag von HeiDieLX2 » Mo 30. Mär 2020, 12:34

Hallo Leute,

eine für mich im Moment schwierige Aufgabenstellung.

Es geht um die Bearbeitung von Writer Dokumenten aus Base heraus.
Texte in Felder schreiben, Tabellen mit anderen Texten, Zahlen etc. belegen funktioniert bereits und ist auch verstanden.

Wo es noch gewaltig klemmt ist hier:
Ein acht-seitiges Dokument aus welchem ich je nach Situation alle 8 Seiten, oder nur 1,2,5-8, oder 1,3,4,6-8 benötige.
Wie kann ich das geschickt machen.
Der Makrogenerator in Writer hilft mir da auch nicht wirklich.
Die Lektüre von "BASIC-Makros für OpenOffice und LibreOffice" von Andrew Pitonyak bringt mich auch nicht recht weiter, mir fehlt schlicht das Verständnis.
Habe dieses auch bereits im Bereich Writer geschildert, ist jedoch anscheinend etwas was dort nicht so vorkommt.

Letztlich ist es ein Projekt welches aus Base Angebote erstellen soll. Für jede denkbare Ang-Varinate ein eigenes OTT zu erstellen ist auch nicht zielführend weil es einfach zu viele werden.
MfG
HeiDieLx vom Bienwald

Tumbleweed
postgreSQL 15
LibreOffice 7.6.1.1

Pit Zyclade
Beiträge: 2674
Registriert: Mo 12. Nov 2012, 16:59

Re: ODT/OTT Datei aus Base verändern, bearbeiten

Beitrag von Pit Zyclade » Mo 30. Mär 2020, 12:59

Man kann doch aus Base genauso wie aus anderen Teilen wie calc heraus eine Writerdatei öffnen!
Solange man das per Hand machen will, gibt es keine Probleme.
LO 7.5.8.2 (X86_64) / AOO 4.1.14 / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: ODT/OTT Datei aus Base verändern, bearbeiten

Beitrag von RobertG » Mo 30. Mär 2020, 16:51

Hallo HeiDieLx,

hast Du Dir im Handbuch den Abschnitt zum Drucken aus Base heraus angesehen? Steht in dem Makro-Kapitel. Du kannst das Writerdokument doch einfach laden und dann über die Printer-Option "Pages" die entsprechenden Seiten auswählen. Müsste ähnlich funktionieren wie dort der Druck eines Berichtes. Der Link zur LibreOffice API ist dort auch enthalten.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

F3K Total
Beiträge: 2410
Registriert: So 10. Apr 2011, 10:10

Re: ODT/OTT Datei aus Base verändern, bearbeiten

Beitrag von F3K Total » Mo 30. Mär 2020, 18:17

Moin HeiDieLx,
ich habe deine Idee so verstanden:
Du möchtest, je nachdem welche Seiten in Base ausgewählt wurden, das passende Angebot als Serienbrief drucken. Geht!
Mit Bereichen. Die lassen sich nämlich mit einer DATENBANK-Bedingung ausblenden.
Ich schicke anbei eine Base-Datei mit einer einfachen Tabelle, in der die gewünschten Seiten per Markierfeld ausgewählt werden können.
Base_Tabelle.png
Base_Tabelle.png (21.11 KiB) 5292 mal betrachtet
Wenn du die Datenbank unter Extras/Optionen/LibreofficeBase/Datenbanken registriert hast wird das Writerdokument, dass acht Bereiche (Seiten) enthält, beim Seriendruck jeweils nur die in Base angehakten Bereiche (Seiten) ausdrucken.
Also
Angebot 1 Seiten 1,2,5-8
Angebot 2 Seiten 1-6
Angebot 3 Seiten 1,2,5,6,8
Habe ich als .PDF-Ausdruck mit angehängt.
Natürlich kann man über Filter auch nur das gerade in Bearbeitung befindliche Angebot einzeln drucken.
Gruß R
Dateianhänge
ANGEBOTE_SERIENBRIEF.zip
ENthält .odb Datenbank, .odt-Writer-Serienbrief und eine PDF, der fertige Serienbrief
(16.62 KiB) 139-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO

Benutzeravatar
HeiDieLX2
! Supporter - Spende !
Beiträge: 27
Registriert: Mo 9. Sep 2019, 12:50

Re: ODT/OTT Datei aus Base verändern, bearbeiten

Beitrag von HeiDieLX2 » Di 31. Mär 2020, 18:27

Hallo und danke für die Antworten.

Ich bin inzwischen auch nicht untätig gewesen...
In dem Writerdokument habe ich mal Makroaufzeichnung eingeschaltet um zu sehen was LO da so an Code produziert.

Im meiner Situation kommt dann so was zustande:

Code: Alles auswählen

	' Angebot-Schablone öffnen und Daten rein
	' FileProp(0).Name = "Hidden"   '-- "AsThemplate"
	FileProp(0).Name = "AsThemplate" '-- "Hidden"
	FileProp(0).Value = true
	oHDoc = StarDesktop.loadComponentFromURL(csQuellPfad & "/" & aPfadDatei(2),"_blank", 0, FileProp() )
	oDoc  = oHDoc.CurrentController.Frame
	oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	rem ----------------------------------------------------------------------
	IF aAktValues(HZKJaNein) = "nein" AND aAktValues(FBHJaNein) = "Fussboden" THEN
		' wenn keine Heizkörper dann 
		FOR niX = 1 To 2
			args1(0).Name = "Count"
			args1(0).Value = IIF(niX=1,27,34)
			oDispatcher.executeDispatch(oDoc, ".uno:GoDown", "", 3, args1())
			rem ----------------------------------------------------------------------
			args2(0).Name = "Count"
			args2(0).Value = IIF (niX=1,4,5)
			args2(1).Name = "Select"
			args2(1).Value = true
			oDispatcher.executeDispatch(oDoc, ".uno:GoDown", "", 3, args2())
			oDispatcher.executeDispatch(oDoc, ".uno:Delete", "", 0, Array())
		NEXT
	END IF	
	IF aAktValues(HZKJaNein) = "Heizkoerper" AND aAktValues(FBHJaNein) = "nein" THEN
		' wenn kein Fussboden dann
		args1(0).Name = "Count"
		args1(0).Value = 45
		oDispatcher.executeDispatch(oDoc, ".uno:GoDown", "", 3, args1())
		rem ----------------------------------------------------------------------
		args2(0).Name = "Count"
		args2(0).Value = 8				' 8 löscht zwei Seiten
		args2(1).Name = "Select"
		args2(1).Value = true
		oDispatcher.executeDispatch(oDoc, ".uno:GoDown", "", 3, args2())
		oDispatcher.executeDispatch(oDoc, ".uno:Delete", "", 0, Array())
	END IF
	rem --------------------------------------------------------------------------
	rem grundsätzliche Ang-Dok Anpassung fertig nun kommen die Inhalte
Erst mal Datei (Schablone) öffnen

Code: Alles auswählen

args1(0).Value = IIF(niX=1,27,34)
			oDispatcher.executeDispatch(oDoc, ".uno:GoDown", "", 3, args1())
das sind die Pfleil runter 27 oder 34 mal. Danach kommt 8 mal runter mit gedrückter Shift-Taste, danach der Delete und weg ist die Seite.
Funktioniert richtig gut.
Nachteil: Wenn sich was am Dok. ändert z. B. weitere Zeile in der Tabelle muss der Code bei Anzahl GoDown und/oder bei Shift-GoDown angepasst werden.
Ich benutze diese Möglichkeit nun, verstanden habe ich das jedoch noch nicht, bzw. welche weiteren Möglichkeiten sich damit eröffnen.

@F3K Total: Wenn ich nicht o. s. Lösung hätte wäre dein Vorschlag erste Wahl. Hier ist nur das Problem des Benutzers und der Seitennummerierung. Ohne dein Zip getestet zu haben... ;-)
Mache ich jetzt.
MfG
HeiDieLx vom Bienwald

Tumbleweed
postgreSQL 15
LibreOffice 7.6.1.1

Benutzeravatar
HeiDieLX2
! Supporter - Spende !
Beiträge: 27
Registriert: Mo 9. Sep 2019, 12:50

Re: ODT/OTT Datei aus Base verändern, bearbeiten

Beitrag von HeiDieLX2 » Di 31. Mär 2020, 18:50

Hallo F3K Total,

ich weiß nicht...

Code: Alles auswählen

DATENBANK_ANGEBOTSERSTELLUNG.odb.lck
nur 16 Byte! :?:

Was mache ich da falsch?
MfG
HeiDieLx vom Bienwald

Tumbleweed
postgreSQL 15
LibreOffice 7.6.1.1

F3K Total
Beiträge: 2410
Registriert: So 10. Apr 2011, 10:10

Re: ODT/OTT Datei aus Base verändern, bearbeiten

Beitrag von F3K Total » Di 31. Mär 2020, 19:14

ups, verzipped...sollte eigentlich die ,odb sein...
Gruß R
Dateianhänge
ANGEBOTE_SERIENBRIEF.zip
(19.38 KiB) 149-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten