<?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>";
 
 
    }
 
}
 
 
 
 
 
?>
 
 
 |