#!/usr/bin/perl -w
use DBI;
$::ENV{'INFORMIXSERVER'} = "twin";
$::ENV{'INFORMIXDIR'} = "/opt/informix";
$::ENV{'DBDATE'} = "dmy4.";
$dbase = "prinz";
my $dbh = DBI->connect("dbi:Informix:$dbase", '', '',
{ AutoCommit => 1, PrintError => 1})
or Carp::confess($DBI::errstr);
$sql_ark = "select id, ";
$sql_ark .= " sequence, ";
$sql_ark .= " bild, ";
$sql_ark .= " SB_column, ";
$sql_ark .= " arkname, ";
$sql_ark .= " arkformat, ";
$sql_ark .= " material, ";
$sql_ark .= " beschreibung, ";
$sql_ark .= " beschreibung1, ";
$sql_ark .= " arkname_e, ";
$sql_ark .= " arkformat_e, ";
$sql_ark .= " material_e, ";
$sql_ark .= " beschreibung_e, ";
$sql_ark .= " beschreibung1_e,";
$sql_ark .= " arkname_f, ";
$sql_ark .= " arkformat_f, ";
$sql_ark .= " material_f, ";
$sql_ark .= " beschreibung_f, ";
$sql_ark .= " beschreibung1_f ";
$sql_ark .= " from ark ";
$sql_ark .= " order by sequence ";
$sql_arkhnd = $dbh->prepare($sql_ark) or Carp::confess("$sql_ark: $DBI::errstr");
$sql_ueb = "select id, ";
$sql_ueb .= " ark_id, ";
$sql_ueb .= " Spalte1, ";
$sql_ueb .= " Spalte2, ";
$sql_ueb .= " Spalte3, ";
$sql_ueb .= " Spalte4, ";
$sql_ueb .= " Spalte5, ";
$sql_ueb .= " Spalte6, ";
$sql_ueb .= " Spalte7, ";
$sql_ueb .= " Spalte1_e, ";
$sql_ueb .= " Spalte2_e, ";
$sql_ueb .= " Spalte3_e, ";
$sql_ueb .= " Spalte4_e, ";
$sql_ueb .= " Spalte5_e, ";
$sql_ueb .= " Spalte6_e, ";
$sql_ueb .= " Spalte7_e, ";
$sql_ueb .= " Spalte1_f, ";
$sql_ueb .= " Spalte2_f, ";
$sql_ueb .= " Spalte3_f, ";
$sql_ueb .= " Spalte4_f, ";
$sql_ueb .= " Spalte5_f, ";
$sql_ueb .= " Spalte6_f, ";
$sql_ueb .= " Spalte7_f ";
$sql_ueb .= " from ueberschrift ";
$sql_ueb .= " where ark_id = ? ";
$sql_uebhnd = $dbh->prepare($sql_ueb) or Carp::confess("$sql_ueb: $DBI::errstr");
$sql_art = "select sequence, ";
$sql_art .= " ausfuehrung.Ausfuehrung, ";
$sql_art .= " ausfuehrung.Ausfuehrung_e, ";
$sql_art .= " ausfuehrung.Ausfuehrung_f, ";
$sql_art .= " farbe.farbe, ";
$sql_art .= " farbe.farbe_e, ";
$sql_art .= " farbe.farbe_f, ";
$sql_art .= " artikel.Laenge, ";
$sql_art .= " artikel.vp, ";
$sql_art .= " artikel.ArtNr, ";
$sql_art .= " artikel.EAN_Code, ";
$sql_art .= " artikel.VE, ";
$sql_art .= " artikel.preis, ";
$sql_art .= " artikel.Einheit ";
$sql_art .= " from ausfuehrung, farbe, artikel ";
$sql_art .= " where artikel.ark_id = ? ";
$sql_art .= " and ausfuehrung.ark_id = artikel.ark_id ";
$sql_art .= " and artikel.farb_id = farbe.id ";
$sql_art .= " order by sequence ";
$sql_arthnd = $dbh->prepare($sql_art) or Carp::confess("$sql_ueb: $DBI::errstr");
$sql_cnt = "select count(*) ";
$sql_cnt .= " from ausfuehrung, farbe, artikel ";
$sql_cnt .= " where artikel.ark_id = ? ";
$sql_cnt .= " and ausfuehrung.ark_id = artikel.ark_id ";
$sql_cnt .= " and artikel.farb_id = farbe.id ";
$sql_cnthnd = $dbh->prepare($sql_cnt) or Carp::confess("$sql_cnt: $DBI::errstr");
$sql_col = "select count(*), ";
$sql_col .= " farbe.farbe ";
$sql_col .= " from ausfuehrung, farbe, artikel ";
$sql_col .= " where artikel.ark_id = ? ";
$sql_col .= " and ausfuehrung.ark_id = artikel.ark_id ";
$sql_col .= " and artikel.farb_id = farbe.id ";
$sql_col .= " group by 2 ";
$sql_colhnd = $dbh->prepare($sql_col) or Carp::confess("$sql_col: $DBI::errstr");
print "\\input Satzmacros.tex";
$sql_arkhnd->execute();
while( ($id,
$sequence,
$Bild,
$SB_column,
$arkname,
$arkformat,
$material,
$beschreibung,
$beschreibung1,
$arkname_e,
$arkformat_e,
$material_e,
$beschreibung_e,
$beschreibung1_e,
$arkname_f,
$arkformat_f,
$material_f,
$beschreibung_f,
$beschreibung1_f) = $sql_arkhnd->fetchrow_array)
{
print "\n\n\\vbox{%\n\\Kopf{%\n";
print "\\ark $arkname", ';;', $arkname_e, ';;', $arkname_f, ";;\n";
print "\\format $arkformat", ";;\n";
print "\\material $material", ';;', $material_e, ';;', $material_f, ";;\n";
print "\\beschreibung $beschreibung", ';;', $beschreibung_e, ';;', $beschreibung_f, ";;\n";
print "\\erklaerung $beschreibung1", ';;', $beschreibung1_e, ';;', $beschreibung1_f, ";;\n";
print "}\n";
print "\n";
print "\\vskip2dd\n";
print "\n";
$sql_uebhnd->execute($id);
while( ($ueb_id,
$ark_id,
$Spalte1,
$Spalte2,
$Spalte3,
$Spalte4,
$Spalte5,
$Spalte6,
$Spalte7,
$Spalte1_e,
$Spalte2_e,
$Spalte3_e,
$Spalte4_e,
$Spalte5_e,
$Spalte6_e,
$Spalte7_e,
$Spalte1_f,
$Spalte2_f,
$Spalte3_f,
$Spalte4_f,
$Spalte5_f,
$Spalte6_f,
$Spalte7_f) = $sql_uebhnd->fetchrow_array)
{
$Bild =~ /(.*?)\s*$/s;
print "\\Tabelle{$1}{%\n";
print "\\SB = 3,5mm\n";
print "\\SB = 9,5mm\n" if $SB_column eq "N";
print "\\ueb $Spalte1", ';;', $Spalte2, ';;', $Spalte3, ';;', $Spalte5, ';;', $Spalte6, ';;', $Spalte7, ";;EUR;; ;;\n";
print "\\ueb $Spalte1_e", ';;', $Spalte2_e, ';;', $Spalte3_e, ';;', $Spalte5_e, ';;', $Spalte6_e, ';;', $Spalte7_e,";; ;; ;;\n";
print "\\ueb $Spalte1_f", ';;', $Spalte2_f, ';;', $Spalte3_f, ';;', $Spalte5_f, ';;', $Spalte6_f, ';;', $Spalte7_f,";; ;; ;;\n";
print "\n";
print "\\vskip8dd\n";
print "\n";
$sql_arthnd->execute($id);
$old_farbe = "NEU";
$old_ausfuehrung = "NEU";
$sql_colhnd->execute($id);
while( ($count,
$farbe) = $sql_colhnd->fetchrow_array)
{
$count =~ s/,/./;
$dieFarbe{$farbe} = $count;
}
$dieFarbe{' '} = 0;
$sql_cnthnd->execute($id);
$Anzahl = $sql_cnthnd->fetchrow_array;
while( ($sequence_a,
$Ausfuehrung,
$Ausfuehrung_e,
$Ausfuehrung_f,
$farbe,
$farbe_e,
$farbe_f,
$Laenge,
$vp,
$ArtNr,
$EAN_Code,
$VE,
$preis,
$Einheit) = $sql_arthnd->fetchrow_array)
{
if ($old_ausfuehrung eq $Ausfuehrung)
{
$Ausfuehrung = ' ';
$Ausfuehrung_e = ' ';
$Ausfuehrung_f = ' ';
}
else
{
$old_ausfuehrung = $Ausfuehrung;
}
if ($old_farbe eq $farbe)
{
$farbe = ' ';
$farbe_e = ' ';
$farbe_f = ' ';
}
else
{
print "\\vskip.9\\baselineskip\n" unless $old_farbe =~ /NEU/;
$old_farbe = $farbe;
}
$table_type = "artikel";
$table_type = "artikelN" if $SB_column eq 'N';
if ( $dieFarbe{$farbe} == 1 && $farbe !~ /' '/ )
{
if ( $Anzahl == 1 )
{
print "\\$table_type\\ausfuehrung $Ausfuehrung", '** ** **;;',
"\\farbe $farbe", '** ** **;;',
$Laenge, ';;', $vp, ';;', $ArtNr, ';;', $EAN_Code, ';;', $VE, ';;', $preis, ';;', $Einheit, ";;\n";
}
else
{
print "\\$table_type\\ausfuehrung $Ausfuehrung", '**', $Ausfuehrung_e, '**', $Ausfuehrung_f, '**;;',
"\\farbe $farbe", '** ** **;;',
$Laenge, ';;', $vp, ';;', $ArtNr, ';;', $EAN_Code, ';;', $VE, ';;', $preis, ';;', $Einheit, ";;\n";
}
}
elsif ( $dieFarbe{$farbe} == 2 && $farbe !~ /' '/ )
{
$farbe_ef = $farbe_e . " / " . $farbe_f;
if ( $Anzahl == 1 )
{
print "\\$table_type\\ausfuehrung $Ausfuehrung", '** ** **;;',
"\\farbe $farbe", '**', $farbe_ef, '** **;;',
$Laenge, ';;', $vp, ';;', $ArtNr, ';;', $EAN_Code, ';;', $VE, ';;', $preis, ';;', $Einheit, ";;\n";
}
else
{
print "\\$table_type\\ausfuehrung $Ausfuehrung", '**', $Ausfuehrung_e, '**', $Ausfuehrung_f, '**;;',
"\\farbe $farbe", '**', $farbe_ef, '** **;;',
$Laenge, ';;', $vp, ';;', $ArtNr, ';;', $EAN_Code, ';;', $VE, ';;', $preis, ';;', $Einheit, ";;\n";
}
}
elsif ( $dieFarbe{$farbe} == 3 && $farbe !~ /' '/ )
{
if ( $Anzahl == 1 )
{
print "\\$table_type\\ausfuehrung $Ausfuehrung", '** ** **;;',
"\\farbe $farbe", '**', $farbe_e, '**', $farbe_f, '**;;',
$Laenge, ';;', $vp, ';;', $ArtNr, ';;', $EAN_Code, ';;', $VE, ';;', $preis, ';;', $Einheit, ";;\n";
}
else
{
print "\\$table_type\\ausfuehrung $Ausfuehrung", '**', $Ausfuehrung_e, '**', $Ausfuehrung_f, '**;;',
"\\farbe $farbe", '**', $farbe_e, '**', $farbe_f, '**;;',
$Laenge, ';;', $vp, ';;', $ArtNr, ';;', $EAN_Code, ';;', $VE, ';;', $preis, ';;', $Einheit, ";;\n";
}
}
else
{
if ( $Anzahl == 1 )
{
print "\\$table_type\\ausfuehrung $Ausfuehrung", '** ** **;;',
"\\farbe $farbe", '**', $farbe_e, '**', $farbe_f, '**;;',
$Laenge, ';;', $vp, ';;', $ArtNr, ';;', $EAN_Code, ';;', $VE, ';;', $preis, ';;', $Einheit, ";;\n";
}
else
{
print "\\$table_type\\ausfuehrung $Ausfuehrung", '**', $Ausfuehrung_e, '**', $Ausfuehrung_f, '**;;',
"\\farbe $farbe", '**', $farbe_e, '**', $farbe_f, '**;;',
$Laenge, ';;', $vp, ';;', $ArtNr, ';;', $EAN_Code, ';;', $VE, ';;', $preis, ';;', $Einheit, ";;\n";
}
}
}
}
print "}\n";
print "}\n";
print "\\vfill\n";
print "\\hrule\n";
print "\\vfill\n";
print "\n";
}
print "\n";
print "\\bye\n\n";
|