<?php
class SuperTable
{
// description: Show a table filled with database-values by sqlquery.
// Order-by and many other options available.
// files: Use with class_forms.php.
// Use with class_windowlink.php.
// Make a rootfolder images with edit16.gif,del16.gif,order16.gif.
// version: 2.4
// author: Ing. M. van Oort
// history: 26-05-2003 Delquery-debug.
// 15-12-2003 Format floats 2-decimal.
// 25-01-2005 Extra-uri also at edits.
// 26-01-2005 Popup-text from column.
var $Name;
var $Borderwidth = 1;
var $Cellpadding = 1;
var $Cellspacing = 1;
var $Background_color = "white";
var $Connection = 13;
var $SQLQuery;
var $ID_column = 1; // Column-name or number.
var $Popup_text_column = 1; // Column-name or number.
var $Font = "Arial";
var $Font_size = 2;
var $Font_color = "black";
var $Row_color_odd = "white";
var $Row_color_even = "D6E3D3";
var $Header_fields = array();
var $Header_color = "336633";
var $Cell_align = array();
var $Header_font = "Arial";
var $Header_font_size = 2;
var $Header_font_color = "white";
var $Header_font_bold = 1;
var $Edits = 0;
var $Edits_icon_url = "/images/edit16.gif";
var $Edits_page = "wijzig.php";
var $Edits_id_var = "wijzig_id";
var $Edits_win_width = 600;
var $Edits_win_height = 400;
var $Edits_win_left = 200;
var $Edits_win_top = 200;
var $Deletes = 0;
var $Deletes_icon_url = "/images/del16.gif";
var $Delete_question = 1;
var $Current_page;
var $SQLQuery_delete;
var $Session_varname;
var $Session_id;
var $Extra_URI = ""; // Keep empty, set with SuperTable(params)
var $SQLQuery_new_row;
var $Hidecols = array(); // kolomnummers die niet getoond moeten worden
var $Hide_zeros = 0;
var $Order_columns = array();
var $Order_icon_url = "/images/order16.gif";
var $Order_by_col_nr;
function SuperTable($current_page,$extrauri = "",$delquestion = 0)
{
$this->Current_page = $current_page;
$this->Extra_URI = $extrauri;
if ($delquestion == 1)
{
print"<script language=\"Javascript\">\n";
print"function rusure(id,txt)\n";
print"{\n";
print"question = confirm(\"Weet u zeker dat u \"+txt+\" wilt verwijderen ?\")\n";
print"if (question !=\"0\")\n";
print"{\n";
print"top.location = \"".$this->Current_page."?del_id=\"+id+'".$extrauri."'\n";
print"}\n";
print"}\n";
print"</script>";
}
}
function Show()
{
// maak vast een edit-window-object
$winEen = new WindowLink();
$winEen->Image = $this->Edits_icon_url;
$winEen->Description = "";
$winEen->Scrollbar = "yes";
$winEen->Width = $this->Edits_win_width;
$winEen->Height = $this->Edits_win_height;
$winEen->Left = $this->Edits_win_left;
$winEen->Top = $this->Edits_win_top;
$winEen->WindowStyle = 1;
// handel deletes af
if (!empty($this->SQLQuery_delete))
{
// SQL Query voor verwijderen
odbc_exec($this->Connection,$this->SQLQuery_delete);
}
// handel niewe rij af
if (!empty($this->SQLQuery_new_row))
{
// SQL Query voor nieuwe rij
odbc_exec($this->Connection,$this->SQLQuery_new_row);
}
// html table definitie
print"<table";
print" border=".$this->Borderwidth;
print" cellpadding=".$this->Cellpadding;
print" cellspacing=".$this->Cellspacing;
print" bgcolor=".$this->Background_color;
print">";
// toon header
if (!empty($this->Header_fields))
{
print"<tr";
print" bgcolor=".$this->Header_color;
print">";
$size = sizeof($this->Header_fields);
for ($i = 0; $i < $size; $i++)
{
print"<td>";
print"<font";
print" face='".$this->Header_font."'";
print" size=".$this->Header_font_size;
print" color='".$this->Header_font_color."'";
print">";
if ($this->Header_font_bold) print"<b>";
print $this->Header_fields[$i];
if ($this->Header_font_bold) print"</b>";
print"</font>";
// order-icons and links
if (in_array($i+1,$this->Order_columns))
{
print "<a href='".$this->Current_page."?orderby=".($i+1).$this->Extra_URI."'><img src='".$this->Order_icon_url."' border=0></a>";
}
print"</td>";
}
print"</tr>";
}
// use order_by_col_nr
if (!empty($this->Order_by_col_nr))
{
$this->SQLQuery = $this->SQLQuery." order by ".$this->Order_by_col_nr.";";
//print $this->SQLQuery; // TOON QUERY BIJ ORDERBY-FUNCTIE TESTEN
}
// do the query
$result = odbc_exec($this->Connection,$this->SQLQuery);
$nrfields = odbc_num_fields($result);
// show rows
$rownr = 0;
while (odbc_fetch_row($result))
{
print"<tr>";
$rownr++;
// show fields
for ($i = 1; $i <= $nrfields; $i++)
{
if (!in_array($i,$this->Hidecols))
{
// show field
print"<td";
// cell-style
print" bgcolor=";
if ($rownr%2) print $this->Row_color_odd;
else print $this->Row_color_even;
if (!empty($this->Cell_align[$i-1]))
print" align=".$this->Cell_align[$i-1];
else print" align=right";
print">";
print"<font";
print" face='".$this->Font."'";
print" size=".$this->Font_size;
print" color='".$this->Font_color."'";
print">";
// show value
$dbveld = odbc_result($result,$i);
$fieldtype = odbc_field_type($result,$i);
if ($this->Hide_zeros == 1)
{
if ($dbveld == 0) $dbveld = " ";
}
if ($fieldtype == "datetime")
{
$jaar = substr($dbveld,0,4);
$maand = substr($dbveld,5,2);
$dag = substr($dbveld,8,2);
$showvar = sprintf("%s-%s-%s",$dag,$maand,$jaar);
}
else if ($fieldtype == "float")
{
$showvar = round($dbveld,2);
}
else
$showvar = $dbveld; // onbekend type, gewone kopie
print $showvar;
print"</font>";
print"</td>";
}
}
// edits-column tonen
if ($this->Edits == 1)
{
print "<td";
print" bgcolor=";
if ($rownr%2) print $this->Row_color_odd;
else print $this->Row_color_even;
print ">";
$winEen->URL = $this->Edits_page."?".$this->Edits_id_var."=".odbc_result($result,$this->ID_column).$this->Extra_URI;
$winEen->Show();
print "</td>";
}
// deletes-column tonen
if ($this->Deletes == 1)
{
print "<td";
print" bgcolor=";
if ($rownr%2) print $this->Row_color_odd;
else print $this->Row_color_even;
print ">";
// hyperlink voor delete
if ($this->Delete_question == 1)
{
print"<a href='' onClick=\"rusure('".odbc_result($result,$this->ID_column)."','".odbc_result($result,$this->Popup_text_column)."'); return false;\">";
}
else
print"<a href='".$this->Current_page."?del_id=".odbc_result($result,$this->ID_column).$extrauri."'>\n";
print"<img src='".$this->Deletes_icon_url."' border=0></a>\n";
print "</td>";
}
print"</tr>";
}
print"</table>";
}
}
?>
|