This commit is contained in:
Christian Paminger
2014-07-24 04:42:39 +00:00
parent cd17190244
commit 4670cac3f5
4 changed files with 137 additions and 61 deletions
+82 -1
View File
@@ -47,6 +47,12 @@ class statistik extends basis_db
public $studiensemester_kurzbz;// varchar(16)
public $ausbildungssemester;// smallint
// Daten der Statistik
public $data;
public $html;
public $csv;
public $json;
/**
* Konstruktor
*/
@@ -395,5 +401,80 @@ class statistik extends basis_db
return true;
}
/**
* Laedt die Daten einer Statistik (derzeit nur SQL)
* @param $statistik_kurzbz
*/
public function loadData()
{
$this->html='';
$this->csv='';
$this->json=array();
if($this->sql!='')
{
$sql = $this->sql;
foreach($_REQUEST as $name=>$value)
{
$sql = str_replace('$'.$name,addslashes($value),$sql);
}
if($this->data = $this->db_query($sql))
{
$this->html.= '<thead><tr>';
$anzahl_spalten = $this->db_num_fields($this->data);
for($spalte=0;$spalte<$anzahl_spalten;$spalte++)
{
$this->html.= '<th>'.$this->db_field_name($this->data,$spalte).'</th>';
$this->csv.='"'.$this->db_field_name($this->data,$spalte).'",';
}
$this->html.= '</tr></thead><tbody>';
$this->csv=substr($this->csv,0,-1)."\n";
while($row = $this->db_fetch_object($this->data))
{
$this->html.= '<tr>';
$anzahl_spalten = $this->db_num_fields($this->data);
for($spalte=0;$spalte<$anzahl_spalten;$spalte++)
{
$name = $this->db_field_name($this->data,$spalte);
$this->html.= '<td>'.$row->$name.'</td>';
$this->csv.= '"'.$row->$name.'",';
if($spalte>0)
{
$name_spalte_0 = $this->db_field_name($this->data,0);
$this->json[$row->$name_spalte_0][$name]=$row->$name;
}
}
$this->html.= '</tr>';
$this->csv=substr($this->csv,0,-1)."\n";
}
$this->html.= '</tbody>';
}
return true;
}
else
{
$this->error_msg= 'Zu dieser Statistik gibt es keine SQL Abfrage';
return false;
}
}
function getHtmlTable($id, $class='')
{
return '<table class="'.$class.'" id="'.$id.'">'.$this->html.'</table>';
}
function getCSV()
{
return $this->csv;
}
function getJSON()
{
return json_encode($this->json);
}
}
?>
?>
+35 -8
View File
@@ -41,6 +41,33 @@ echo '<H2>DB-Updates!</H2>';
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
// **************** Tabelle public.tbl_filter
if(!$result = @$db->db_query("SELECT filter_id FROM public.tbl_filter LIMIT 1;"))
{
$qry = 'CREATE TABLE public.tbl_filter
(
filter_id serial,
kurzbz character varying(32),
sql text,
valuename character varying(512),
showvalue boolean DEFAULT true,
insertamum Timestamp DEFAULT now(),
insertvon Character varying(32),
updateamum Timestamp DEFAULT now(),
updatevon Character varying(32),
CONSTRAINT tbl_filter_pkey PRIMARY KEY (filter_id)
)
WITH (
OIDS=FALSE
);
';
if(!$db->db_query($qry))
echo '<strong>public.tbl_filter: '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_filter: Tabelle public.tbl_filter hinzugefuegt!<br>';
}
// **************** Spalte scrumsprint_id Tabelle fue.tbl_projekttask
if(!$result = @$db->db_query("SELECT scrumsprint_id FROM fue.tbl_projekttask LIMIT 1;"))
{
@@ -1699,7 +1726,7 @@ $tabellen=array(
"bis.tbl_besqual" => array("besqualcode","besqualbez"),
"bis.tbl_bisfunktion" => array("bisverwendung_id","studiengang_kz","sws","updateamum","updatevon","insertamum","insertvon","ext_id"),
"bis.tbl_bisio" => array("bisio_id","mobilitaetsprogramm_code","nation_code","von","bis","zweck_code","student_uid","updateamum","updatevon","insertamum","insertvon","ext_id","ort","universitaet","lehreinheit_id"),
"bis.tbl_bisverwendung" => array("bisverwendung_id","ba1code","ba2code","vertragsstunden","beschausmasscode","verwendung_code","mitarbeiter_uid","hauptberufcode","hauptberuflich","habilitation","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id"),
"bis.tbl_bisverwendung" => array("bisverwendung_id","ba1code","ba2code","vertragsstunden","beschausmasscode","verwendung_code","mitarbeiter_uid","hauptberufcode","hauptberuflich","habilitation","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id","dv_art"),
"bis.tbl_bundesland" => array("bundesland_code","kurzbz","bezeichnung"),
"bis.tbl_entwicklungsteam" => array("mitarbeiter_uid","studiengang_kz","besqualcode","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id"),
"bis.tbl_gemeinde" => array("gemeinde_id","plz","name","ortschaftskennziffer","ortschaftsname","bulacode","bulabez","kennziffer"),
@@ -1787,7 +1814,7 @@ $tabellen=array(
"lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"),
"lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old"),
"lehre.tbl_lehreinheitgruppe" => array("lehreinheitgruppe_id","lehreinheit_id","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_lehreinheitmitarbeiter" => array("lehreinheit_id","mitarbeiter_uid","lehrfunktion_kurzbz","semesterstunden","planstunden","stundensatz","faktor","anmerkung","bismelden","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id"),
"lehre.tbl_lehreinheitmitarbeiter" => array("lehreinheit_id","mitarbeiter_uid","lehrfunktion_kurzbz","semesterstunden","planstunden","stundensatz","faktor","anmerkung","bismelden","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id","vertrag_id"),
"lehre.tbl_lehrfach" => array("lehrfach_id","studiengang_kz","fachbereich_kurzbz","kurzbz","bezeichnung","farbe","aktiv","semester","sprache","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_lehrform" => array("lehrform_kurzbz","bezeichnung","verplanen"),
"lehre.tbl_lehrfunktion" => array("lehrfunktion_kurzbz","beschreibung","standardfaktor","sort"),
@@ -1802,18 +1829,18 @@ $tabellen=array(
"lehre.tbl_moodle_version" => array("moodle_version","bezeichnung","pfad"),
"lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe","positiv"),
"lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english","seitenanzahl","abgabedatum","kontrollschlagwoerter","schlagwoerter","schlagwoerter_en","abstract", "abstract_en", "sprache"),
"lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id","vertrag_id"),
"lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung"),
"lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","pruefungsanmeldung_id"),
"lehre.tbl_pruefungstyp" => array("pruefungstyp_kurzbz","beschreibung","abschluss"),
"lehre.tbl_studienordnung" => array("studienordnung_id","studiengang_kz","version","gueltigvon","gueltigbis","bezeichnung","ects","studiengangbezeichnung","studiengangbezeichnung_englisch","studiengangkurzbzlang","akadgrad_id","insertamum","insertvon","updateamum","updatevon"),
"lehre.tbl_studienordnung" => array("studienordnung_id","studiengang_kz","version","gueltigvon","gueltigbis","bezeichnung","ects","studiengangbezeichnung","studiengangbezeichnung_englisch","studiengangkurzbzlang","akadgrad_id","insertamum","insertvon","updateamum","updatevon","max_semester"),
"lehre.tbl_studienordnung_semester" => array("studienordnung_semester_id","studienordnung_id","studiensemester_kurzbz","semester"),
"lehre.tbl_studienplan" => array("studienplan_id","studienordnung_id","orgform_kurzbz","version","regelstudiendauer","sprache","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon","semesterwochen","testtool_sprachwahl"),
"lehre.tbl_studienplan_lehrveranstaltung" => array("studienplan_lehrveranstaltung_id","studienplan_id","lehrveranstaltung_id","semester","studienplan_lehrveranstaltung_id_parent","pflicht","koordinator","insertamum","insertvon","updateamum","updatevon"),
"lehre.tbl_studienplatz" => array("studienplatz_id","studiengang_kz","studiensemester_kurzbz","orgform_kurzbz","ausbildungssemester","gpz","npz","insertamum","insertvon","updateamum","updatevon"),
"lehre.tbl_stunde" => array("stunde","beginn","ende"),
"lehre.tbl_stundenplan" => array("stundenplan_id","unr","mitarbeiter_uid","datum","stunde","ort_kurzbz","gruppe_kurzbz","titel","anmerkung","lehreinheit_id","studiengang_kz","semester","verband","gruppe","fix","updateamum","updatevon","insertamum","insertvon"),
"lehre.tbl_stundenplandev" => array("stundenplandev_id","lehreinheit_id","unr","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","mitarbeiter_uid","ort_kurzbz","datum","stunde","titel","anmerkung","fix","updateamum","updatevon","insertamum","insertvon"),
"lehre.tbl_stundenplandev" => array("stundenplandev_id","lehreinheit_id","unr","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","mitarbeiter_uid","ort_kurzbz","datum","stunde","titel","anmerkung","fix","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_zeitfenster" => array("wochentag","stunde","ort_kurzbz","studiengang_kz","gewicht"),
"lehre.tbl_zeugnis" => array("zeugnis_id","student_uid","zeugnis","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_zeugnisnote" => array("lehrveranstaltung_id","student_uid","studiensemester_kurzbz","note","uebernahmedatum","benotungsdatum","bemerkung","updateamum","updatevon","insertamum","insertvon","ext_id"),
@@ -1849,8 +1876,8 @@ $tabellen=array(
"public.tbl_lehrverband" => array("studiengang_kz","semester","verband","gruppe","aktiv","bezeichnung","ext_id","orgform_kurzbz","gid"),
"public.tbl_log" => array("log_id","executetime","mitarbeiter_uid","beschreibung","sql","sqlundo"),
"public.tbl_mitarbeiter" => array("mitarbeiter_uid","personalnummer","telefonklappe","kurzbz","lektor","fixangestellt","bismelden","stundensatz","ausbildungcode","ort_kurzbz","standort_id","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","kleriker"),
"public.tbl_notiz" => array("notiz_id","titel","text","verfasser_uid","bearbeiter_uid","start","ende","erledigt","insertamum","insertvon","updateamum","updatevon"),
"public.tbl_notizzuordnung" => array("notizzuordnung_id","notiz_id","projekt_kurzbz","projektphase_id","projekttask_id","uid","person_id","prestudent_id","bestellung_id","lehreinheit_id"),
"public.tbl_notiz" => array("notiz_id","titel","text","verfasser_uid","bearbeiter_uid","start","ende","erledigt","insertamum","insertvon","updateamum","updatevon","ext_id"),
"public.tbl_notizzuordnung" => array("notizzuordnung_id","notiz_id","projekt_kurzbz","projektphase_id","projekttask_id","uid","person_id","prestudent_id","bestellung_id","lehreinheit_id","ext_id"),
"public.tbl_ort" => array("ort_kurzbz","bezeichnung","planbezeichnung","max_person","lehre","reservieren","aktiv","lageplan","dislozierung","kosten","ausstattung","updateamum","updatevon","insertamum","insertvon","ext_id","stockwerk","standort_id","telefonklappe","content_id"),
"public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"),
"public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre"),
@@ -1914,7 +1941,7 @@ $tabellen=array(
"wawi.tbl_betriebsmitteltyp" => array("betriebsmitteltyp","beschreibung","anzahl","kaution","typ_code","mastershapename"),
"wawi.tbl_budget" => array("geschaeftsjahr_kurzbz","kostenstelle_id","budget"),
"wawi.tbl_zahlungstyp" => array("zahlungstyp_kurzbz","bezeichnung"),
"wawi.tbl_konto" => array("konto_id","kontonr","beschreibung","kurzbz","aktiv","insertamum","insertvon","updateamum","updatevon"),
"wawi.tbl_konto" => array("konto_id","kontonr","beschreibung","kurzbz","aktiv","person_id","insertamum","insertvon","updateamum","updatevon","ext_id"),
"wawi.tbl_konto_kostenstelle" => array("konto_id","kostenstelle_id","insertamum","insertvon"),
"wawi.tbl_kostenstelle" => array("kostenstelle_id","oe_kurzbz","bezeichnung","kurzbz","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","kostenstelle_nr","deaktiviertvon","deaktiviertamum"),
"wawi.tbl_bestellungtag" => array("tag","bestellung_id","insertamum","insertvon"),
+12 -5
View File
@@ -27,6 +27,7 @@
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/statistik.class.php');
require_once('../../include/filter.class.php');
require_once('../../include/functions.inc.php');
if(!isset($_GET['statistik_kurzbz']))
@@ -49,7 +50,7 @@ $statistik = new statistik();
if(!$statistik->load($statistik_kurzbz))
die($statistik->errormsg);
echo '<h2>Statistik - '.$statistik->bezeichnung.'</h2>';
echo '<h2>Report - '.$statistik->bezeichnung.'</h2>';
//Beschreibung zu der Statistik anzeigen
if($statistik->content_id!='')
@@ -96,12 +97,18 @@ echo '
<form action="'.$action.'" method="POST" target="detail_statistik" onsubmit="return doit();">
<table>
';
// Filter parsen
$fltr=new filter();
$fltr->loadAll();
echo '<tr>';
foreach($vars as $var)
{
echo '<tr>';
echo "<td>$var</td><td><input type=\"text\" id=\"$var\" name=\"$var\" value=\"\"></td>";
echo '</tr>';
if ($fltr->isFilter($var))
echo "<td>$var</td><td>".$fltr->getHtmlWidget($var)."</td>\n";
else
echo "<td>$var</td><td><input type=\"text\" id=\"$var\" name=\"$var\" value=\"\"></td>";
}
echo '</tr>';
echo '
<tr>
<td></td>
@@ -138,4 +145,4 @@ function parseVars($value)
}
return array_unique($result);
}
?>
?>
+8 -47
View File
@@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2011 FH Technikum Wien
/* Copyright (C) 2011 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -62,54 +62,15 @@ if(!$statistik->load($statistik_kurzbz))
$html.= '<h2>Statistik - '.$statistik->bezeichnung.'</h2>';
if($statistik->sql!='')
if ($statistik->loadData())
{
$sql = $statistik->sql;
foreach($_REQUEST as $name=>$value)
{
$sql = str_replace('$'.$name,addslashes($value),$sql);
}
$db = new basis_db();
if($result = $db->db_query($sql))
{
$html.= '<table class="tablesorter" id="myTable">';
$html.= '<thead><tr>';
$anzahl_spalten = $db->db_num_fields($result);
for($spalte=0;$spalte<$anzahl_spalten;$spalte++)
{
$html.= '<th>'.$db->db_field_name($result,$spalte).'</th>';
$csv.='"'.$db->db_field_name($result,$spalte).'",';
//$json[$db->db_field_name($result,$spalte)]=array();
}
$html.= '</tr></thead><tbody>';
$csv=substr($csv,0,-1)."\n";
while($row = $db->db_fetch_object($result))
{
$html.= '<tr>';
$anzahl_spalten = $db->db_num_fields($result);
for($spalte=0;$spalte<$anzahl_spalten;$spalte++)
{
$name = $db->db_field_name($result,$spalte);
$html.= '<td>'.$row->$name.'</td>';
$csv.= '"'.$row->$name.'",';
if($spalte>0)
{
$name_spalte_0 = $db->db_field_name($result,0);
$json[$row->$name_spalte_0][$name]=$row->$name;
}
}
$html.= '</tr>';
$csv=substr($csv,0,-1)."\n";
}
$html.= '</tbody></table>';
}
$html.=$statistik->getHtmlTable('myTable','tablesorter');
$csv=$statistik->getCSV();
$json=$statistik->getJSON();
}
else
{
$html.= 'Zu dieser Statistik gibt es keine SQL Abfrage';
}
echo $statistik->error_msg;
switch ($outputformat)
{
case 'html':
@@ -128,6 +89,6 @@ switch ($outputformat)
header("Pragma: no-cache");
header("Expires: 0");
//$array= array_map("str_getcsv",explode("\n", $csv));
echo json_encode($json);
echo $json;
}
?>