#!/usr/bin/perl -w
# Hauptvariablen; sie sind an andere Anforderungen anzupassen.
	$LatexFile="Einladung.tex";
	$Abfrage='select * from adressen';
	$OutFile="Einl_";
	$WhatToDo="tv";
	
	# Mal eben die LaTeX-Datei einlesen
	open(LATEX, "< $LatexFile");
	$j="";
	while(defined($i=<LATEX>))
	{
		$j.=$i;
	}
	close(LATEX);

   use Pg;# Das PosgreSQL-Modul wird geladen.
	
	# Die Datenbank-Verbindung wird aufgebaut.
    $conn = Pg::connectdb("dbname=adressen");
   Pg::doQuery($conn, $Abfrage, \@ary); # Referenz der Antwort-Tabelle wird übergeben. 
			# Das Ergebnis wird als "Liste von Listen" zurückgegeben.


    for $i ( 0 .. $#ary )
	 {
        for $j ( 0 .. $#{$ary[$i]} )
		  {
		  	# Überflüssige Leerzeichen werden entfernt.
            $ary[$i][$j]=~ s/\s*(.*)\s*/$1/;
        }
    }
   for $i ( 0 .. $#ary )
	{
	# Variablen werden aus der Datenbank mit Werten gefüllt.
		($Vorname, $Nachname, $Abteilung, $Organisation, $Strasse, $Hausnummer, $Postfach, $Postleitzahl, $Ort, $Tel, $Fax, $email, $HTTP, $weiblich)=@{$ary[$i]};
		# Sonderinhalte werden speziell verändert.
		$Abteilung=&ol($Abteilung); $Organisation=&ol($Organisation); $Postfach=&ol($Postfach);
		# Das Ergebnis wird ausgegeben.
		&drucke_Einladung;
	}

sub drucke_Einladung()
{
	$PostgresAdresse="$Vorname $Nachname\\\\\n$Abteilung$Organisation$Strasse $Hausnummer\\\\\n$Postfach$Postleitzahl $Ort";
#	print $PostgresAdresse;

	if($weiblich eq "t")
	{
		$PostgresAnrede="Sehr geehrte Frau $Vorname $Nachname,";
	}
	else
	{
		$PostgresAnrede="Sehr geehrter Herr $Vorname $Nachname,";
	}
#	print $PostgresAnrede;
	# Hier werden die "$Postgres"-Zeichen in der LaTeX-Datei interpretiert.
	($out=$j)=~ s/PostgresAdresse/$PostgresAdresse/gs;
	($out=$out)=~ s/PostgresAnrede/$PostgresAnrede/gs;
	open(LATEXOUT, "> $OutFile$i.tex");
	print LATEXOUT ("$out");
	close(LATEXOUT);
	system("$WhatToDo $OutFile$i.tex");
}

sub tw
{
	my $a=shift;
	$a =~ /\s*(.*)\s*/;
	
	return $1;
}

sub ol
{
	my $a=shift;
	if(defined($a) && length($a)!=0)
	{
		$a.="\\\\\n";
	}
	return $a;
}
