F
Futzel
Hi,
ich habe folgendes Problem.
Für eine Statistik ermittle ich mit ODBC die passenden Daten, welche ich brauche und gebe diese mittels einer Tabelle aus.
Zur Zeit ist jede Spalte der Tabelle ein Mitarbeiter. Es gibt 31 Spalten wobei, dies natürlich von den DAten abhängig ist.
Nun ist es so, dass alle 31 Spalten nebeneinander sind und ein horizontales scrollen nötig ist. Es sollen aber nur maximal 6 Mitarbeiter sein.
Dannach soll die Tabelle unten drunter wieder fortgesetzt werden.
Irgendwie fehlt mir dazu der passende Einfall. DAs ganze wird natürlich durch Summenbildung erschwert.
Das hier wäre der Code, der die gesamte Tabelle erstellt.
Vollständigkeits halber hier noch die beiden Funktionen:
ich habe folgendes Problem.
Für eine Statistik ermittle ich mit ODBC die passenden Daten, welche ich brauche und gebe diese mittels einer Tabelle aus.
Zur Zeit ist jede Spalte der Tabelle ein Mitarbeiter. Es gibt 31 Spalten wobei, dies natürlich von den DAten abhängig ist.
Nun ist es so, dass alle 31 Spalten nebeneinander sind und ein horizontales scrollen nötig ist. Es sollen aber nur maximal 6 Mitarbeiter sein.
Dannach soll die Tabelle unten drunter wieder fortgesetzt werden.
Irgendwie fehlt mir dazu der passende Einfall. DAs ganze wird natürlich durch Summenbildung erschwert.
Das hier wäre der Code, der die gesamte Tabelle erstellt.
PHP:
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
echo "<table border=0 cellspacing=1 cellpadding=0 width=".(($anzahl_bearbeiter+1)*180).">\n";
echo "<tr class=dunkelgrau><td> </td>";
for ($ia=0; $ia<$anzahl_bearbeiter; $ia++) { echo "<th width=180 align=middle><font size=-2>".$allBearbeiter[$ia]."</font></th>"; }
echo "<th align=middle width=180>Summe</th></tr>\n";
reset($beaListe);
while (list($datindex, $aktionList) = each($beaListe)) {
if ($class=="hellgrau") { $class="dunkelgrau"; } else { $class="hellgrau"; }
echo "<tr class=".$class."><td>".translate_date($datindex)."</td>";
$y=substr($datindex,0,4);
$m=substr($datindex,5,2);
$d=substr($datindex,8,2);
$nextdate=date("Y-m-d ".$maxhour,mktime(0,0,0,$m, $d+1, $y));
$linsumBea=0;
$linsumRek=0;
$linsumDir=0;
for ($ia=0; $ia<$anzahl_bearbeiter; $ia++) {
$val=@$beaListe[$datindex][$allBearbeiter[$ia]];
$rek=@$rekListe[$datindex][$allBearbeiter[$ia]];
$dir=@$dirListe[$datindex][$allBearbeiter[$ia]];
$colsumBea[$allBearbeiter[$ia]]=@$colsumBea[$allBearbeiter[$ia]]+$val;
$colsumRek[$allBearbeiter[$ia]]=@$colsumRek[$allBearbeiter[$ia]]+$rek;
$colsumDir[$allBearbeiter[$ia]]=@$colsumDir[$allBearbeiter[$ia]]+$dir;
calc_sums($val, $rek, $dir);
show_count("bearbeiter", $allBearbeiter[$ia], $val, $rek, $dir, $datindex." ".$minhour,$nextdate);
}
show_count("bearbeiter","%",$linsumBea, $linsumRek, $linsumDir, $datindex." ".$minhour,$nextdate);
echo "</tr>";
}
echo "<tr class=".$class." height=30><td align=center>Summe</td>";
for ($ia=0; $ia<$anzahl_bearbeiter; $ia++) {
show_count("bearbeiter", $allBearbeiter[$ia], $colsumBea[$allBearbeiter[$ia]],$colsumRek[$allBearbeiter[$ia]],$colsumDir[$allBearbeiter[$ia]], $mindate,$maxdate);
}
show_count("bearbeiter","%",$totsumBea, $totsumRek, $totsumDir,$mindate,$maxdate);
echo "</table><br>";
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Vollständigkeits halber hier noch die beiden Funktionen:
PHP:
function show_count($wherefield, $wherevalue, $count, $rek, $dir, $mindate, $maxdate) {
global $class, $periodname, $period;
if (empty($count)) { $count=0; }
if (empty($rek)) { $rek=0; }
if (empty($dir)) { $dir=0; }
echo "<td align=right>";
echo "<table border=0 cellspacing=1 cellpadding=0><tr class=$class>"; # same grey-color
echo "<td width=35 align=right><a href=show_incidents_admin.php?wherefield=".urlencode($wherefield)."&wherevalue=".urlencode($wherevalue)."&mindate=".urlencode($mindate)."&maxdate=".urlencode($maxdate)."&periodname=".urlencode($periodname)."&period=".urlencode($period)." title='Summe Aktion'>".$count."</a></td>";
echo "<td width=35 align=right><a href=show_incidents_admin.php?wherefield=".urlencode($wherefield)."&wherevalue=".urlencode($wherevalue)."&mindate=".urlencode($mindate)."&maxdate=".urlencode($maxdate)."&wherefield2=Reklamation&periodname=".urlencode($periodname)."&period=".urlencode($period)." title='Summe Reklamation'>".$rek."</a></td>";
echo "<td width=35 align=right><a href=show_incidents_admin.php?wherefield=".urlencode($wherefield)."&wherevalue=".urlencode($wherevalue)."&mindate=".urlencode($mindate)."&maxdate=".urlencode($maxdate)."&wherefield2=".urlencode("Direktlösung")."&periodname=".urlencode($periodname)."&period=".urlencode($period)." title='Summe Direktlösung'>".$dir."</a></td>";
echo "</tr></table></td>\n";
}
function calc_sums($val, $rek, $dir) {
global $linsumBea, $linsumRek, $linsumDir, $totsumBea, $totsumRek, $totsumDir;
$linsumBea=$linsumBea+$val;
$linsumRek=$linsumRek+$rek;
$linsumDir=$linsumDir+$dir;
$totsumBea=$totsumBea+$val;
$totsumRek=$totsumRek+$rek;
$totsumDir=$totsumDir+$dir;
}