Guten Morgen, da draußen,
hat jemand Erfahrung, wie man Serienbriefe erstellt, in denen die
Daten (z. B. Adresse) aus einer MySQL-Datenbank eingelesen werden?
\LaTeX und MySQL kann ich zwar schön mit SQLTeX zusammenarbeiten lassen, aber mehr als ne Tabelle oder einzelne SQL-Abfragen hab ich noch nicht bekommen.
Gruß
Peter.
@Markus Kohm: wär das nicht mal ne nette Erweiterung für scrlttr2? :-)
Wohl kaum
Dem Subject habe ich nichts hinzuzufügen.
Hat ja eigentlich auch nix mit KOMA zu tun...
...bei genauerem Überlegen.
Die Datenbankeinbindung ist natürlich auch ne reine Latex-Geschichte in erster Linie.
Also, ab mit dem Thread ins Off-Topic.
Jetzt mach ichs halt so mit meinem Sereinbrief:
ich habe:
Name, Vorname, Adresse, Datenfeld, DF, DF, DF, DF, ....
Ne SQL-Abfrage mit geschickten CONCATs, damit ich neben den Namens- und Adressdaten nur noch 4 Felder habe. Das ganze exportiert in ein ASCII-File. Dann mit nem Perl-Script in ein Addrentry-kompatibles Format gebracht und dann \addrentry.....
Ich würd mir halt gern das Script sparen, Naja, bin halt faul.
Läßt sich möglicherweise \addrentry[9] auf beliebig viele Felder erweitern?
(Doch wieder Topic.)
Gruß
Peter
TeX-Makros haben maximal 9 Argumente
Da TeX nur die Argumente #1 bis #9 bietet, kann das Prinzip nicht auf mehr Argumente erweitert werden. Man müsste dann schon etwas wie:
\newcommand{\xviarguments}[9]{% \def\argi{#1}\def\argii{#2}\def\argiii{#3}\def\argiv{#4}% \def\argv{#5}\def\argvi{#6}\def\argvii{#7}\def\argviii{#8}% \def\argix{#9}\moreargument} \newcommand{\morearguments}[9]{% \def\argx{#1}\def\argxi{#2}\def\argxii{#3}\def\argxiii{#4}% \def\argxiv{#5}\def\argxv{#6}\def\argxvi{#7}\def\argxvii{#8}% \def\argxviii{#9}\processargs} \newcommand*{\processargs}{% Arg 1 was \ærgi. Arg 2 was \argii ... Arg 9 was \argix ... Arg 18 was \argxviii.}machen.
Da blickt dann aber ohnehin niemand mehr durch. Deshalb würde ich in dem Fall eher mit benannten Argumenten, statt mit nummerierten arbeiten. Dazu verwendet man das keyval-Paket. Zunächst definiert man die entsprechende Optionen:
\define@key{ARG}{beispiel}{\def\ARG@beispiel{#1}} \newcommand*{\usearg}[#1]{\@nameuse{ARG@#1}}Dann definiert man eine Anweisung, die das nutzt:
\newcommand{\adresse}[1]{% \setkeys{ARG}{#1}% \Brief } \newcommand*{\Brief}{% Argument "`Beispiel"' hat den Wert \usearg{Beispiel}. }Die Adressdatei sieht dann so aus:
\adresse{beispiel={erstes Beispiel},example={eine andere Variable}} \adresse{beispiel={zweites Beispiel},oderauch={eine andere Variable}}Natürlich sollten alle verwendeten Schlüssel (im Beispiel also "beispiel", "example" und "oderauch") definiert sein.