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. 🤗

Zugriff aus WRITER auf Tabelle von BASE

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
jimmy
Beiträge: 10
Registriert: Mi 27. Jun 2012, 20:02

Zugriff aus WRITER auf Tabelle von BASE

Beitrag von jimmy » Mi 27. Jun 2012, 20:09

Hallo zusammen,

ich bin ganz neu hier und habe eine ganz grundlegende Frage.

Ist es möglich, dass ich in einem WRITER-Dokument die benötigte Anschrift für einen Kunden aus einer in BASE erstellten Tabelle auswähle?
Vorzugsweise über die Eingabe eins Kürzels, welches natürlich in der Tabelle hinterlegt ist oder so, dass man die Tabelle zur Auswahl öffnen kann.
Die erhoffte Antwort wäre JA - wenn mir dann aber noch jemand Tipps für die Umsetzung geben könnte, wäre ich sehr dankbar. Bin in OPENOFFICE total neu und soll in meinem neuen Job da so allerhand auf die Reihe bringen... mal sehen.

Vielen Dank schon mal und bis bald,
jimmy
__________________________________________________________________________________________________
LibreOffice 3.5.4.2 unter Windows XP, SP 3

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

Re: Zugriff aus WRITER auf Tabelle von BASE

Beitrag von RobertG » Mi 27. Jun 2012, 20:38

Hallo Jimmy,

ja, das geht. Die einfacherer Version ist allerdings die, sich die Tabelle oberhalb des Dokumentes über den Datenbankbrwser anzeigen zu lassen, und den Datensatz zu markieren, der mit dem Serienbrief verbunden und verschickt werden soll.
Sieh' Dir einmal an: http://wiki.documentfoundation.org/imag ... ng_V33.pdf - die Ersten Schritte Base als *.pdf-Datei, sowie http://wiki.documentfoundation.org/imag ... ng_V35.pdf - die Anbindung von Base an andere Module von LibreOffice bzw. OpenOffice. Auf dieser Seite findest Du auch das komplette Handbuch zu Base, das Dir aber vielleicht im Moment erst einmal zu weit geht: http://de.libreoffice.org/hilfe-kontakt/handbuecher/
Wenn Du nach einer kurzen Lektüre des entsprechenden Kapitels aus den Ersten Schritten bzw. der Kapitels zur Datenbankanbindung in anderen Modulen aus dem Handbuch weitere Fragen hast melde Dich einfach noch einmal.

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

jimmy
Beiträge: 10
Registriert: Mi 27. Jun 2012, 20:02

Re: Zugriff aus WRITER auf Tabelle von BASE

Beitrag von jimmy » Do 28. Jun 2012, 08:58

Hallo Robert,

danke für Deine schnelle und auch noch positive Antwort!

Die von Dir empfohlenen Dokumente habe ich gerade heruntergeladen, wobei ich den letzten Link nicht öffnen konnte.
In den nächsten Tagen schaue ich mir das mal an und dann werden sicher noch einige Fragen auftauchen. Vielen Dank schon mal, auch für das Angebot, mit weiterhin behilflich zu sein.

Bis dahin,
jimmy
__________________________________________________________________________________________________
LibreOffice 3.5.4.2 unter Windows XP, SP 3

jimmy
Beiträge: 10
Registriert: Mi 27. Jun 2012, 20:02

Re: Zugriff aus WRITER auf Tabelle von BASE

Beitrag von jimmy » Mo 9. Jul 2012, 14:10

Hallo Robert,

hoffentlich schaust Du hier nochmal rein.

Die von Dir vorgeschlagene Lösung mit der Kundenauswahl im Dokument mittels F4 kann ich definitiv nicht zum Einsatz bringen. Das ist angeblich eine nicht zumutbare Lösung...

Hast Du noch einen anderen Tipp für mich??? Der Einstieg wird wohl über einen Dialog stattfinden. Kann ich mit dem Listfeld eine BASE-Tabelle anzeigen zur Auswahl? Leider finde ich dazu keine Informationen.

Für Hinweise wie immer sehr dankbar, Gruß,
jimmy
__________________________________________________________________________________________________
LibreOffice 3.5.4.2 unter Windows XP, SP 3

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

Re: Zugriff aus WRITER auf Tabelle von BASE

Beitrag von RobertG » Mo 9. Jul 2012, 17:53

Hallo Jimmy,

über einen Dialog zu gehen halte ich erst einmal nicht für möglich. In Dialogen steht Dir so etwas wie ein Tabellenkontrollfeld nicht zur Verfügung. Du kannst die Daten natürlich in einem Listenfeld anzeigen lassen. Wie die Daten dann noch in das Dokument kommen sollen... Werde darüber wohl etwas brüten müssen.
Der einfachste Weg wäre, dass Du direkt die Druckfunktion wählst. Dann kommt natürlich erst einmal die Auswahlmöglichkeit für die Abfrage oder Tabelle, die dem Serienbrief zugrunde liegt.
Dann gäbe es die Möglichkeit, an einer fest definierten Position z.B. die Anschrift über ein Listenfeld einblenden zu lassen. Das wäre etwas, wenn wirklich nur das Adressfeld auf diese Art ausgefüllt werden muss.
Ich versuche jetzt gerade, den gesamten Serienbrief über Makros zum laufen zu bringen.

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

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

Re: Zugriff aus WRITER auf Tabelle von BASE

Beitrag von RobertG » Di 10. Jul 2012, 18:53

Hallo Jimmy,

ich glaube, dass der folgende Weg wesentlich einfacher zu händeln ist. Das Makro wird von irgendwoher angestoßen, kann also z.B. irgendein Formular sein. Der Prozess wird im Hintergrund ausgeführt. Gegebenenfalls kann also über das Formular mitgeteilt werden, welche Datensätze denn nun gedruckt werden sollen.

Code: Alles auswählen

SUB Serienbriefdruck
	DIM oMailMerge AS OBJECT
	DIM aProps()
	oMailMerge = createunoservice("com.sun.star.text.MailMerge")
	oMailMerge.DataSourceName="Adressen"
	oMailMerge.DocumentURL=ConvertToUrl("home/robby/Dokumente/Serienbrief.odt")
	oMailMerge.CommandType=1
	oMailMerge.Command="Serienbriefabfrage"
	oMailMerge.Filter="""Geschlecht""='m'"
	oMailMerge.OutputType=2
	oMailMerge.OutputUrl=ConvertToUrl("home/robby/Dokumente")
	oMailMerge.FileNameFromColumn=True
	oMailMerge.Filenameprefix="Nachname"
	oMailMerge.execute(aProps())
END SUB
Der Reihe nach kurz erklärt:
Die in LibreOffice angemeldete Datenbank heißt bei mir "Adressen".
Das Dokument, das gedruckt werden soll, liegt in dem beschriebenen DocumentUrl-Pfad (bei Windows: c:\ .... o.ä.)
Der CommandType "1" steht für eine Abfrage aus der Datenbank "Adressen". "0" wäre eine Tabelle, "2" wäre eine direkte SQL-Eingabe.
Mit Command wird der Name der Abfrage mitgeteilt.
Über Filter lege ich fest, dass in diesem Fall der Brief nur an Leute mit dem Geschlecht 'm' rausgeht. An dieser Stelle kann eine Variable eingelesen werden, die von außen gefüttert wird!
OutputType = 2 steht für die Ausgabe in eine Datei, die nachfolgenden 3 Zeilen haben nur mit dem Ort und dem Namen der Ausgabedateien zu tun. Wählst Du hier "1", so rattert unvermittels Dein Drucker los, weil auch das im Hintergrund passiert.
Zum Schluss wird das Kommando ausgeführt.

Probiere einfach einmal ein bisschen damit rum.

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

jimmy
Beiträge: 10
Registriert: Mi 27. Jun 2012, 20:02

Re: Zugriff aus WRITER auf Tabelle von BASE

Beitrag von jimmy » Di 10. Jul 2012, 20:08

Mensch Robert,

das ist ja echt super. DANKE! Momentan verstehe ich zwar nur "Bahnhof", bin aber auch gerade in Eile...
Das werde ich ausprobieren. Irgendwie brauchte ich halt einen Ausgangspunkt.

Für Deine Hilfe bin ich Dir echt sehr dankbar und werde Dich wissen lassen, ob ich es "gebacken" bekommen habe.
Nochmals vielen Dank, auch für die Erläuterungen,
Gruß,
jimmy
__________________________________________________________________________________________________
LibreOffice 3.5.4.2 unter Windows XP, SP 3

jimmy
Beiträge: 10
Registriert: Mi 27. Jun 2012, 20:02

Re: Zugriff aus WRITER auf Tabelle von BASE

Beitrag von jimmy » Do 12. Jul 2012, 18:15

Hallo Robert,

ich konnte es kaum erwarten den Code von Dir zu testen. Leider tritt dabei ein Fehler bei der Ausführung von oMailMerge.execute auf. Im Internet kann ich bei der Suche nach diesem Befehl nichts finden, das mir klar macht, was hier falsch sein soll. Siehst Du den Grund für die Fehlermeldung? Die Hardcopy ist in dem angehängten WRITER-Dokument.

Danke schon mal für Deine Mühe,
Gruß,
jimmy
Dateianhänge
FEHLER oMailMerge.execute.odt
(32.57 KiB) 243-mal heruntergeladen
__________________________________________________________________________________________________
LibreOffice 3.5.4.2 unter Windows XP, SP 3

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

Re: Zugriff aus WRITER auf Tabelle von BASE

Beitrag von RobertG » Do 12. Jul 2012, 21:53

Hallo Jimmy,

ich gehe das einmal einzeln durch:
1. Die Fehlermeldung ist ja äußerst dürftig und lässt keine Schlüsse zu
2. Die Datenbank ist als "DB_Justen" in Deinem System angemeldet?
3. Die Verzeichnisnamen sind sehr lang - vielleicht zum Testen etwas kürzer probieren?
4. Die Tabelle in der Datenbank heißt "Kunden"?
5. Die Tabelle "Kunden" enthält ein Feld "Nachname" (das nicht aus versehen doppelt vorhanden ist)?

Ich habe das bei mir unter LO 3.5.5 mit OpenSuSE 11.4 gerade noch einmal getestet: 4 Dokumente wurden zum Drucken ausgespuckt. Makros dieser Art sind eigentlich systemunabhängig.

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

harald235

Re: Zugriff aus WRITER auf Tabelle von BASE

Beitrag von harald235 » Do 12. Jul 2012, 23:26

Hallo Robert und jimmy,

habe die Sub gerade unter Windows7 und LO 3.5.4.2 getestet, sie läuft einwandfrei.

Vielleicht irgendwo ein Schreibfehler, oder tatsächlich eine falsche Bezeichnung?

Gruß harald

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