BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> 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
ODT/OTT Datei aus Base verändern, bearbeiten
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.
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
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 15
LibreOffice 7.6.1.1
-
- Beiträge: 2674
- Registriert: Mo 12. Nov 2012, 16:59
Re: ODT/OTT Datei aus Base verändern, bearbeiten
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.
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.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: ODT/OTT Datei aus Base verändern, bearbeiten
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
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: ODT/OTT Datei aus Base verändern, bearbeiten
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. 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
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. 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
Re: ODT/OTT Datei aus Base verändern, bearbeiten
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:
Erst mal Datei (Schablone) öffnen
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.
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
Code: Alles auswählen
args1(0).Value = IIF(niX=1,27,34)
oDispatcher.executeDispatch(oDoc, ".uno:GoDown", "", 3, args1())
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
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 15
LibreOffice 7.6.1.1
Re: ODT/OTT Datei aus Base verändern, bearbeiten
Hallo F3K Total,
ich weiß nicht...
nur 16 Byte!
Was mache ich da falsch?
ich weiß nicht...
Code: Alles auswählen
DATENBANK_ANGEBOTSERSTELLUNG.odb.lck
Was mache ich da falsch?
MfG
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 15
LibreOffice 7.6.1.1
HeiDieLx vom Bienwald
Tumbleweed
postgreSQL 15
LibreOffice 7.6.1.1
Re: ODT/OTT Datei aus Base verändern, bearbeiten
ups, verzipped...sollte eigentlich die ,odb sein...
Gruß R
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 ❤️