|
|
|
#!/usr/bin/perl -w
use DBI;
$server = 'localhost';
$dbase = "ets";
my ($id1, $id2, $id3, $id4, $Bildbeschreibung, $Pictobeschreibung, $count);
my $dbh = DBI->connect("dbi:mysql:$dbase:$server",'','')
or Carp::confess($DBI::errstr);
$sql_ARK = qq(select Artikelkopf.id,
Artikelname,
Kommentar
from Artikelkopf
order by Artikelkopf.id);
$sql_ARK_hnd = $dbh->prepare($sql_ARK) or Carp::confess("$sql_ARK: $DBI::errstr");
$sql_LB = qq(select Zwischenzeile.id,
Zwischenzeile.Text
from Zwischenzeile
where Zwischenzeile.Artikelkopf = ?
order by Zwischenzeile.id );
$sql_LB_hnd = $dbh->prepare($sql_LB) or Carp::confess("$sql_LB: $DBI::errstr");
$sql_LI = qq(select Beschreibung.id,
Beschreibung.Text
from Beschreibung
where Beschreibung.Artikelkopf = ?
order by Beschreibung.id);
$sql_LI_hnd = $dbh->prepare($sql_LI) or Carp::confess("$sql_LI: $DBI::errstr");
$sql_TR = qq(select Technische_Daten.id,
Technische_Daten.Eigenschaft,
Technische_Daten.Spezifikation
from Technische_Daten
where Technische_Daten.Artikelkopf = ?
order by Technische_Daten.id );
$sql_TR_hnd = $dbh->prepare($sql_TR) or Carp::confess("$sql_TR: $DBI::errstr");
$sql_ART = qq(select Artikel.id,
Artikel.Artikelbezeichnung,
Artikel.Attribut,
Artikel.Bestellnummer,
Artikel.EANNummer,
Artikel.Verkaufspreis
from Artikel
where Artikel.Artikelkopf = ?
order by Artikel.id );
$sql_ART_hnd = $dbh->prepare($sql_ART) or Carp::confess("$sql_ART: $DBI::errstr");
$sql_BILDER = qq(select Bilder.id,
Bilder.Bildbeschreibung,
Bilder.Bildreferenz
from Bilder
where Bilder.Artikelkopf = ?
order by Bilder.id );
$sql_BILDER_hnd = $dbh->prepare($sql_BILDER) or Carp::confess("$sql_BILDER: $DBI::errstr");
$sql_PICTOS = qq(select Pictos.id,
Pictos.Pictobeschreibung,
Pictos.Pictoreferenz
from Pictos
where Pictos.Artikelkopf = ?
order by Pictos.id );
$sql_PICTOS_hnd = $dbh->prepare($sql_PICTOS) or Carp::confess("$sql_PICTOS: $DBI::errstr");
print "\\input Style.tex\n\n";
$sql_ARK_hnd->execute();
while( ($id, $Artikelname, $Kommentar) = $sql_ARK_hnd->fetchrow_array()) { $j++ }
$j--;
$sql_ARK_hnd->execute();
while( ($id, $Artikelname, $Kommentar) = $sql_ARK_hnd->fetchrow_array())
{
@Bilder = ();
$sql_BILDER_hnd->execute($id);
while( ($id1, $Bildbeschreibung, $Bildreferenz) = $sql_BILDER_hnd->fetchrow_array())
{
push @Bilder, $Bildreferenz;
}
if ( @Bilder )
{
print "\\PRODUKT\\BILDER ", join ';', map { $_ } @Bilder;
print ";\n";
}
else
{
print "\\PRODUKT\\relax\n";
}
@Pictos = ();
$sql_PICTOS_hnd->execute($id);
while( ($id1, $Pictobeschreibung, $Pictoreferenz) = $sql_PICTOS_hnd->fetchrow_array())
{
push @Pictos, code($Pictoreferenz);
}
if ( @Pictos )
{
print "\\hbox\{%\n";
if (scalar(@Pictos) > 5)
{
$i = 1;
foreach $Picto (@Pictos)
{
if ($i == 1)
{
print "\\vbox to 26,3mm{\\Picto{$Picto}\\vfill";
$i = 2;
}
else
{
print "\\Picto{$Picto}}\\hskip4dd%\n";
$i = 1;
}
}
print "}" if $i == 2;
}
else
{
foreach $Picto (@Pictos)
{
print "\\Picto{$Picto}\\hskip4dd%\n";
}
}
print "}\n";
}
$sql_LB_hnd->execute($id);
while( ($id1, $Text) = $sql_LB_hnd->fetchrow_array())
{
print "\\LB **",code($Text),"**\n";
}
print "\\ARK **",code($Artikelname),"**",code($Kommentar),"**\n";
$sql_LI_hnd->execute($id);
while( ($id3, $Text) = $sql_LI_hnd->fetchrow_array())
{
print "\\LI **", code($Text), "**\n";
}
@Technische_Daten = ();
$sql_TR_hnd->execute($id);
while( ($id2, $Eigenschaft, $Spezifikation) = $sql_TR_hnd->fetchrow_array())
{
if ($Eigenschaft eq "TEXT" )
{
push @Technische_Daten, "\\REM **",code($Spezifikation),"**\n\n";
}
else
{
push @Technische_Daten, "\\TR **",code($Eigenschaft),"**",code($Spezifikation),"**\n\n";
}
}
if (@Technische_Daten)
{
print "\\HR\n\\TABLE\n", join '', map { $_ } @Technische_Daten;
}
print "\n";
print "\\ARTTABLE\n";
$sql_ART_hnd->execute($id);
while( ($id4, $Artikelbezeichnung,
$Attribut, $Bestellnummer,
$EANNummer, $Verkaufspreis) = $sql_ART_hnd->fetchrow_array())
{
print "\\ART **",code($Artikelbezeichnung),
"**",code($Attribut),
"**",$Bestellnummer,
"**",$EANNummer,
"**",$Verkaufspreis,"**\n\n";
}
print "\n\n";
print "\\vfill\n" if $count++ < $j;
}
print "\\eject\n\\end\n";
sub code
{
$_ = shift @_;
s/%/\\char37/g;
s/
/\\LF /g;
s/®/\\R/g;
s/°/\\char202\\ /g;
return $_;
}
|