CSV Datenbank von Writer-Makro ansprechen

Das Textverarbeitungsprogramm

Moderator: Moderatoren

Asterix-Ac
**
Beiträge: 25
Registriert: Sa, 08.09.2012 18:22

CSV Datenbank von Writer-Makro ansprechen

Beitrag von Asterix-Ac »

Hallo Gemeinde,

seid einiger Zeit schlage ich mich mit LO und Makro's herum - obwohl ich nicht behaupten kann, dass ich der beste Programmierer bin ;-)
Mein Aktuelles Problem ist folgend:

Ich habe in Base eine CSV Datei als Datenbank angemeldet und nutze diese nun als KundenDatenbank.
Nun soll für einen einzelnen Kunden eine Rechung im PDF-Format gespeichert werden - Speichern geht auch schon :-)
Doch wie komme ich an den einzelnen Datensatz von Herrn Jupp Meier?

Die einzelen Adressfelder konnte ich einfach auf das Blatt ziehen und mit STRG+F9 identifizieren sich die Felder als Adressen.Kunden.Vorname Adressen.Kunden.Nachname usw.
Vielleicht kan mir jamand einen Stupps in die richtige Richtung geben.

Asterix
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: CSV Datenbank von Writer-Makro ansprechen

Beitrag von pmoegenb »

Der einfachste Weg:
  • - Datenbank-Übersicht/Ansicht mit F4 öffnen
    - Datensatz markieren
    - Auf Schalter Daten in Felder klicken
    - Dokument als PDF exportieren
Machst Du das immer so, gleichlautende Anfragen in 2 Foren zu starten ? Dann musst Du damit rechnen keine Antworten zu erhalten.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Asterix-Ac
**
Beiträge: 25
Registriert: Sa, 08.09.2012 18:22

Re: CSV Datenbank von Writer-Makro ansprechen

Beitrag von Asterix-Ac »

@pmoegenb : Ich wusste nicht, dass das verboten ist, aber ich erhoffte mehr Antworten und nicht mehr Kritik.
Deine Antwort hat nichts mit meiner Frage zutun.

Ich suche also immer noch nach der Möglichkeit, eine CSV-Datenbank aus einem Makro heraus anzusprechen

Asterix
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: CSV Datenbank von Writer-Makro ansprechen

Beitrag von Karolus »

Man macht das aber trotzdem immer noch so wie von Peter beschrieben mit einem Serienbriefdokument in Writer ohne Makro
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Asterix-Ac
**
Beiträge: 25
Registriert: Sa, 08.09.2012 18:22

Re: CSV Datenbank von Writer-Makro ansprechen

Beitrag von Asterix-Ac »

Gut, nun weiß ich, dass man es nicht macht, und ich werde es mir beim nächsten Mal zu Herzen nehmen.

Also, warum ich hier bin und nicht in Makro und Datenbank, kann ich schnell beantworten.
Ziel ist ein Symbolleisten-Knopf von einem Makro, der das aktuelle Dokument speichert und zwar unter folgender Vorgabe:
Dateiname -> Datenbank->Vorname_Datenbank->Nachname_AktuellesDatum.odt

Ich möchte nicht jedesmal den Vor- und Nachnamen sowie das aktuelle Datum eintippen müssen.
Klar, hat natürlich auch mit Makro und Datenbank zu tun.
Aber aus Writer heraus, und dort scheinen die com.sun.star... irgendetwas anders zu sein als unter base oder calc.
Da ich kein guter Programmierer bin, kann ich es auch nur so erklären

Asterix
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: CSV Datenbank von Writer-Makro ansprechen

Beitrag von Stephan »

Wenn die entsprechenden Felder in einem Textdokument sind und die Angaben des aktuellen Datensatzes angezeigt werden läßt sich der gewünschte Dateiname so ermitteln/zusammensetzen:

Code: Alles auswählen

Sub dateiname_erzeugen()
oEnum = ThisComponent.getTextFields().createEnumeration()
Do While oEnum.hasMoreElements()
	oField = oEnum.nextElement()
	If Left((LCase(oField.TextFieldMaster.InstanceName)), 38) = "com.sun.star.text.fieldmaster.database" Then
		If oField.TextFieldMaster.DataColumnName = "Vorname" Then
				Vorname = oField.CurrentPresentation
			ElseIf oField.TextFieldMaster.DataColumnName = "Nachname" Then
				Nachname = oField.CurrentPresentation
		End If
	End If
Loop
dateiname = Nachname & "_" & Vorname & "_" & Date & ".odt"
'...
End Sub
Gruß
Stephan
Asterix-Ac
**
Beiträge: 25
Registriert: Sa, 08.09.2012 18:22

Re: CSV Datenbank von Writer-Makro ansprechen

Beitrag von Asterix-Ac »

Hallo Stephan,

genau so etwas habe ich gesucht. Das funktioniert auch schon mit dem Nachnamen, da ich den für die Biefanrede verwende.
Doch für die Anschrift verwende ich mit dem Bedingten Text entweder Organisation oder Anzeigename.
Hier der Header von der CSV

Code: Alles auswählen

Vorname,Nachname,Anzeigename,Spitzname,PrimäreEMailAdresse,SekundäreEMailAdresse,MessengerName,Teldienstlich,Telprivat,FaxNummer,PagerNummer,MobilTelNr,PrivatAdresse,PrivatAdresse2,PrivatOrt,PrivatBundesland,PrivatPLZ,PrivatLand,DienstlichAdresse,DienstlichAdresse2,DienstlichOrt,DienstlichBundesland,DienstlichPLZ,DienstlichLand,Arbeitstitel,Abteilung,Organisation,Webseite1,Webseite2,Geburtsjahr,Geburtsmonat,Geburtstag,Benutzerdef1,Benutzerdef2,Benutzerdef3,Benutzerdef4,Notizen,
Und hier der Bedingte Text im Anschriftsfeld

Code: Alles auswählen

Bedingter Text Adressen.Kunden.Organisation != "" Adressen.Kunden.Organisation : Adressen.Kunden.Anzeigename
Wenn ich den Anzeigenamen im Bedingten Text wandeln und kombinieren könnte in Vor- Nachname, wären die Felder in der Datei vorhanden.
Ich müsste im Makro nur eine Abfrage starten, ob zum Datensatz Organisation, oder Vor- und Nachname gefüllt sind.

Bisher hast Du mir schon sehr geholfen.

Asterix
Asterix-Ac
**
Beiträge: 25
Registriert: Sa, 08.09.2012 18:22

[gelöst] Re: CSV Datenbank von Writer-Makro ansprechen

Beitrag von Asterix-Ac »

Die letzte Frage poste ich in einem neuen Thread
Antworten