Sie sind hier

scrlttr2 und MySQL

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? :-)

forum: 

Dem Subject habe ich nichts hinzuzufügen.

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

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.

Comments for "scrlttr2 und MySQL" abonnieren