From be0998503dc0b4d0826d901b97807abf22786e46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 12 Mar 2009 10:23:11 +0000 Subject: [PATCH] --- content/fas.xul.php | 7 + content/fasoverlay.js.php | 43 ++ content/statistik/studentenexport.xls.php | 4 +- .../statistik/studentenexportextended.xls.php | 487 ++++++++++++++++++ locale/de-AT/fas.dtd | 4 + 5 files changed, 543 insertions(+), 2 deletions(-) create mode 100644 content/statistik/studentenexportextended.xls.php diff --git a/content/fas.xul.php b/content/fas.xul.php index cb1de0384..a9318a376 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -98,6 +98,7 @@ echo ''; + @@ -278,6 +279,12 @@ echo ''; label = "&menu-statistic-fehlendedokumente.label;" command = "menu-statistic-fehlendedokumente:command" accesskey = "&menu-statistic-fehlendedokumente.accesskey;"/> + content/statistik/mitarbeiterstatistik.php?stsem='+stsem,'Mitarbeiterstatistik'); } +function StatistikPrintStudentExportExtended() +{ + var tree = document.getElementById('student-tree'); + var data=''; + //Wenn nichts markiert wurde -> alle exportieren + if(tree.currentIndex==-1) + { + if(tree.view) + var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln + else + return false; + + for (var v=0; v < items; v++) + { + prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v); + data = data+';'+prestudent_id; + } + } + else + { + var start = new Object(); + var end = new Object(); + var numRanges = tree.view.selection.getRangeCount(); + var paramList= ''; + var anzahl=0; + + //alle markierten personen holen + for (var t = 0; t < numRanges; t++) + { + tree.view.selection.getRangeAt(t,start,end); + for (var v = start.value; v <= end.value; v++) + { + prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v); + data = data+';'+prestudent_id; + } + } + } + + stsem = getStudiensemester(); + action = 'content/statistik/studentenexportextended.xls.php?studiensemester_kurzbz='+stsem; + OpenWindowPost(action, data); +} + // **** // * Zeigt HTML Seite zur Bearbeitung der Reihungstests an // **** diff --git a/content/statistik/studentenexport.xls.php b/content/statistik/studentenexport.xls.php index 56c78de44..9a1869ba4 100644 --- a/content/statistik/studentenexport.xls.php +++ b/content/statistik/studentenexport.xls.php @@ -278,10 +278,10 @@ loadVariables($conn, $user); $i++; } else - $i+=3; + $i+=4; } else - $i+=3; + $i+=4; //Geburtsdatum if(strlen($row->gebdatum)>$maxlength[$i]) diff --git a/content/statistik/studentenexportextended.xls.php b/content/statistik/studentenexportextended.xls.php new file mode 100644 index 000000000..127c8c03e --- /dev/null +++ b/content/statistik/studentenexportextended.xls.php @@ -0,0 +1,487 @@ +, + * Andreas Oesterreicher , + * Rudolf Hangl and + * Gerald Simane-Sequens . + */ +/** + * Exportiert die Daten von Prestudenten und Studenten in ein Excel File. + * + * Parameter: + * GET: + * studiensemester_kurzbz ... Studiensemester + * POST: + * data ... Liste der PrestudentIDs der Personen die im Export aufscheinen sollen getrennt durch ',' + */ +require_once('../../vilesci/config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/person.class.php'); +require_once('../../include/benutzer.class.php'); +require_once('../../include/student.class.php'); +require_once('../../include/prestudent.class.php'); +require_once('../../include/datum.class.php'); +require_once('../../include/Excel/excel.php'); + +// Datenbank Verbindung +if (!$conn = pg_pconnect(CONN_STRING)) + $error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!'; + +$user = get_uid(); +$datum_obj = new datum(); +loadVariables($conn, $user); + + //Parameter holen + $data = $_REQUEST['data']; + $studiensemester_kurzbz = $_GET['studiensemester_kurzbz']; + //$typ = $_GET['typ']; + $maxlength= array(); + $zeile=1; + $zgv_arr=array(); + $zgvmas_arr=array(); + + //ZGV laden + $qry = "SELECT * FROM bis.tbl_zgv ORDER BY zgv_kurzbz"; + if($result = pg_query($conn, $qry)) + { + while($row = pg_fetch_object($result)) + { + $zgv_arr[$row->zgv_code]=$row->zgv_kurzbz; + } + } + + //ZGV Master laden + $qry = "SELECT * FROM bis.tbl_zgvmaster ORDER BY zgvmas_kurzbz"; + if($result = pg_query($conn, $qry)) + { + while($row = pg_fetch_object($result)) + { + $zgvmas_arr[$row->zgvmas_code]=$row->zgvmas_kurzbz; + } + } + + // Creating a workbook + $workbook = new Spreadsheet_Excel_Writer(); + + // sending HTTP headers + $workbook->send("Studenten". "_" . date("d_m_Y") . ".xls"); + + // Creating a worksheet + $worksheet =& $workbook->addWorksheet("Studenten"); + + $format_bold =& $workbook->addFormat(); + $format_bold->setBold(); + + $format_title =& $workbook->addFormat(); + $format_title->setBold(); + // let's merge + $format_title->setAlign('merge'); + + //Zeilenueberschriften ausgeben + $i=0; + $zeile=1; + + $worksheet->write($zeile,$i,"ANREDE", $format_bold); + $maxlength[$i]=6; + $worksheet->write($zeile,++$i,"TITELPRE", $format_bold); + $maxlength[$i]=8; + $worksheet->write($zeile,++$i,"NACHNAME", $format_bold); + $maxlength[$i]=8; + $worksheet->write($zeile,++$i,"VORNAME", $format_bold); + $maxlength[$i]=7; + $worksheet->write($zeile,++$i,"TITELPOST", $format_bold); + $maxlength[$i]=9; + $worksheet->write($zeile,++$i,"EMail Privat", $format_bold); + $maxlength[$i]=12; + $worksheet->write($zeile,++$i,"GEBURTSDATUM", $format_bold); + $maxlength[$i]=12; + $worksheet->write($zeile,++$i,"PERSONENKENNZEICHEN", $format_bold); + $maxlength[$i]=19; + $worksheet->write($zeile,++$i,"STAATSBÜRGERSCHAFT", $format_bold); + $maxlength[$i]=16; + $worksheet->write($zeile,++$i,"SVNR", $format_bold); + $maxlength[$i]=4; + $worksheet->write($zeile,++$i,"ERSATZKENNZEICHEN", $format_bold); + $maxlength[$i]=17; + $worksheet->write($zeile,++$i,"GESCHLECHT", $format_bold); + $maxlength[$i]=10; + + $worksheet->write($zeile,++$i,"SEMESTER", $format_bold); + $maxlength[$i]=8; + $worksheet->write($zeile,++$i,"VERBAND", $format_bold); + $maxlength[$i]=7; + $worksheet->write($zeile,++$i,"GRUPPE", $format_bold); + $maxlength[$i]=6; + + $worksheet->write($zeile,++$i,"ZGV", $format_bold); + $maxlength[$i]=10; + $worksheet->write($zeile,++$i,"ZGV Ort", $format_bold); + $maxlength[$i]=14; + $worksheet->write($zeile,++$i,"ZGV Datum", $format_bold); + $maxlength[$i]=6; + $worksheet->write($zeile,++$i,"ZGV Master", $format_bold); + $maxlength[$i]=10; + $worksheet->write($zeile,++$i,"ZGV Master Ort", $format_bold); + $maxlength[$i]=14; + $worksheet->write($zeile,++$i,"ZGV Master Datum", $format_bold); + $maxlength[$i]=16; + + $worksheet->write($zeile,++$i,"STATUS", $format_bold); + $maxlength[$i]=6; + $worksheet->write($zeile,++$i,"STATI IN ANDEREN STUDIENGÄNGEN", $format_bold); + $maxlength[$i]=8; + $worksheet->write($zeile,++$i,"EMail Intern", $format_bold); + $maxlength[$i]=12; + $worksheet->write($zeile,++$i,"TELEFON", $format_bold); + $maxlength[$i]=3; + $worksheet->write($zeile,++$i,"GRUPPEN", $format_bold); + $maxlength[$i]=3; + $worksheet->write($zeile,++$i,"UID", $format_bold); + $maxlength[$i]=3; + $worksheet->write($zeile,++$i,"ORGFORM", $format_bold); + $maxlength[$i]=7; + $worksheet->write($zeile,++$i,"VORNAMEN", $format_bold); + $maxlength[$i]=8; + $worksheet->write($zeile,++$i,"RT_PUNKTE1", $format_bold); + $maxlength[$i]=10; + $worksheet->write($zeile,++$i,"RT_PUNKTE2", $format_bold); + $maxlength[$i]=10; + $worksheet->write($zeile,++$i,"RT_GESAMTPUNKTE", $format_bold); + $maxlength[$i]=18; + + $zeile++; + + $ids = explode(';',$data); + $prestudent_ids = ''; + + foreach ($ids as $id) + { + if($id!='') + { + if($prestudent_ids!='') + $prestudent_ids .= ','; + $prestudent_ids .= "'$id'"; + } + } + // Student holen + $qry = "SELECT *, tbl_prestudent.studiengang_kz as prestgkz FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student USING(prestudent_id) WHERE prestudent_id in($prestudent_ids) ORDER BY nachname, vorname"; + + if($result = pg_query($conn, $qry)) + while($row = pg_fetch_object($result)) + { + draw_content($row); + $zeile++; + } + + function draw_content($row) + { + global $maxlength, $datum_obj; + global $zeile, $worksheet, $conn; + global $zgv_arr, $zgvmas_arr; + global $studiensemester_kurzbz; + + $prestudent = new prestudent($conn, null, null); + $prestudent->getLastStatus($row->prestudent_id); + $status = $prestudent->rolle_kurzbz; + $orgform = $prestudent->orgform_kurzbz; + + $i=0; + + //Anrede + if(strlen($row->anrede)>$maxlength[$i]) + $maxlength[$i] = strlen($row->anrede); + $worksheet->write($zeile,$i, $row->anrede); + $i++; + + //Titelpre + if(strlen($row->titelpre)>$maxlength[$i]) + $maxlength[$i] = strlen($row->titelpre); + $worksheet->write($zeile,$i, $row->titelpre); + $i++; + + //Nachname + if(strlen($row->nachname)>$maxlength[$i]) + $maxlength[$i] = strlen($row->nachname); + $worksheet->write($zeile,$i, $row->nachname); + $i++; + + //Vorname + if(strlen($row->vorname)>$maxlength[$i]) + $maxlength[$i] = strlen($row->vorname); + $worksheet->write($zeile,$i, $row->vorname); + $i++; + + //Titelpost + if(strlen($row->titelpost)>$maxlength[$i]) + $maxlength[$i] = strlen($row->titelpost); + $worksheet->write($zeile,$i, $row->titelpost); + $i++; + + //Email Privat + //ZustellEmailAdresse aus der Datenbank holen und dazuhaengen + $qry_1 = "SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id='$row->person_id' AND zustellung=true ORDER BY kontakt_id DESC LIMIT 1"; + if($result_1 = pg_query($conn, $qry_1)) + { + if($row_1 = pg_fetch_object($result_1)) + { + if(strlen($row_1->kontakt)>$maxlength[$i]) + $maxlength[$i]=strlen($row_1->kontakt); + $worksheet->write($zeile,$i, $row_1->kontakt); + } + } + $i++; + + //Geburtsdatum + if(strlen($row->gebdatum)>$maxlength[$i]) + $maxlength[$i] = strlen($row->gebdatum); + $worksheet->write($zeile,$i, $datum_obj->convertISODate($row->gebdatum)); + $i++; + + //Personenkennzeichen + if(isset($row->matrikelnr)) + { + if(strlen($row->matrikelnr)>$maxlength[$i]) + $maxlength[$i] = strlen($row->matrikelnr); + $worksheet->writeString($zeile,$i, $row->matrikelnr); + } + $i++; + + //Staatsbuergerschaft + if(strlen($row->staatsbuergerschaft)>$maxlength[$i]) + $maxlength[$i] = strlen($row->staatsbuergerschaft); + $worksheet->write($zeile,$i, $row->staatsbuergerschaft); + $i++; + + //SVNR + if(strlen($row->svnr)>$maxlength[$i]) + $maxlength[$i] = strlen($row->svnr); + $worksheet->write($zeile,$i, $row->svnr); + $i++; + + //Ersatzkennzeichen + if(strlen($row->ersatzkennzeichen)>$maxlength[$i]) + $maxlength[$i] = strlen($row->ersatzkennzeichen); + $worksheet->write($zeile,$i, $row->ersatzkennzeichen); + $i++; + + //Geschlecht + if(strlen($row->geschlecht)>$maxlength[$i]) + $maxlength[$i] = strlen($row->geschlecht); + $worksheet->write($zeile,$i, $row->geschlecht); + $i++; + + $qry = "SELECT * FROM public.tbl_studentlehrverband JOIN public.tbl_student USING(student_uid) WHERE prestudent_id='$row->prestudent_id' AND studiensemester_kurzbz='$studiensemester_kurzbz'"; + if($result_sem = pg_query($conn, $qry)) + { + if($row_sem = pg_fetch_object($result_sem)) + { + $semester = $row_sem->semester; + $verband = $row_sem->verband; + $gruppe = $row_sem->gruppe; + } + else + { + $semester = ''; + $verband = ''; + $gruppe = ''; + } + } + //Semester + if(isset($semester)) + { + if(strlen($semester)>$maxlength[$i]) + $maxlength[$i] = strlen($semester); + $worksheet->write($zeile,$i, $semester); + } + $i++; + + //Verband + if(isset($verband)) + { + if(strlen($verband)>$maxlength[$i]) + $maxlength[$i] = strlen($verband); + $worksheet->write($zeile,$i, $verband); + } + $i++; + + //Gruppe + if(isset($gruppe)) + { + if(strlen($gruppe)>$maxlength[$i]) + $maxlength[$i] = strlen($gruppe); + $worksheet->write($zeile,$i, $gruppe); + } + $i++; + + //ZGV + if($row->zgv_code!='' && isset($zgv_arr[$row->zgv_code])) + { + if(strlen($zgv_arr[$row->zgv_code])>$maxlength[$i]) + $maxlength[$i] = strlen($zgv_arr[$row->zgv_code]); + $worksheet->write($zeile,$i, $zgv_arr[$row->zgv_code]); + } + $i++; + + //ZGV Ort + if(strlen($row->zgvort)>$maxlength[$i]) + $maxlength[$i] = strlen($row->zgvort); + $worksheet->write($zeile,$i, $row->zgvort); + $i++; + + //ZGV Datum + if(strlen($row->zgvdatum)>$maxlength[$i]) + $maxlength[$i] = strlen($row->zgvdatum); + $worksheet->write($zeile,$i, $row->zgvdatum); + $i++; + + //ZGV Master + if($row->zgvmas_code!='' && isset($zgvmas_arr[$row->zgvmas_code])) + { + if(strlen($zgvmas_arr[$row->zgvmas_code])>$maxlength[$i]) + $maxlength[$i] = strlen($zgvmas_arr[$row->zgvmas_code]); + $worksheet->write($zeile,$i, $zgvmas_arr[$row->zgvmas_code]); + } + $i++; + + //ZGV Master Ort + if(strlen($row->zgvmaort)>$maxlength[$i]) + $maxlength[$i] = strlen($row->zgvmaort); + $worksheet->write($zeile,$i, $row->zgvmaort); + $i++; + + //ZGV Master Datum + if(strlen($row->zgvmadatum)>$maxlength[$i]) + $maxlength[$i] = strlen($row->zgvmadatum); + $worksheet->write($zeile,$i, $row->zgvmadatum); + $i++; + + //Status + if(strlen($status)>$maxlength[$i]) + $maxlength[$i] = strlen($status); + $worksheet->write($zeile,$i, $status); + $i++; + + //Stati in anderen Studiengaengen + $stati=''; + $qry_1 = "SELECT UPPER(typ::varchar(1) || kurzbz) as stg, get_rolle_prestudent(prestudent_id, null) as status FROM + public.tbl_prestudent JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE person_id='$row->person_id' AND tbl_prestudent.studiengang_kz<>'$row->prestgkz'"; + + if($result_1 = pg_query($conn, $qry_1)) + { + while($row_1 = pg_fetch_object($result_1)) + { + if($stati!='') + $stati.=', '; + $stati.= $row_1->status.' ('.$row_1->stg.')'; + } + } + if(strlen($stati)>$maxlength[$i]) + $maxlength[$i] = strlen($stati); + $worksheet->write($zeile,$i, $stati); + $i++; + + //Email Intern + if(isset($row->student_uid)) + { + if(strlen($row->student_uid.'@'.DOMAIN)>$maxlength[$i]) + $maxlength[$i] = strlen($row->student_uid.'@'.DOMAIN); + $worksheet->write($zeile,$i, $row->student_uid.'@'.DOMAIN); + } + $i++; + + //Telefon + $qry_1 = "SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp in('mobil','telefon','so.tel') AND person_id='$row->person_id' AND zustellung=true LIMIT 1"; + if($result_1 = pg_query($conn, $qry_1)) + { + if($row_1 = pg_fetch_object($result_1)) + { + if(strlen($row_1->kontakt)>$maxlength[$i]) + $maxlength[$i]=strlen($row_1->kontakt); + $worksheet->writeString($zeile,$i, $row_1->kontakt); + } + } + $i++; + + //Spezialgruppen + $grps=''; + $qry_1 = "SELECT gruppe_kurzbz FROM public.tbl_student JOIN public.tbl_benutzergruppe ON (student_uid=uid) WHERE tbl_student.prestudent_id='$row->prestudent_id' AND tbl_benutzergruppe.studiensemester_kurzbz='$studiensemester_kurzbz'"; + if($result_1 = pg_query($conn, $qry_1)) + { + while($row_1 = pg_fetch_object($result_1)) + { + if($grps!='') + $grps.=','; + + $grps.=$row_1->gruppe_kurzbz; + } + } + if(strlen($grps)>$maxlength[$i]) + $maxlength[$i]=strlen($grps); + $worksheet->write($zeile,$i, $grps); + $i++; + + //UID + if(isset($row->student_uid)) + { + if(strlen($row->student_uid)>$maxlength[$i]) + $maxlength[$i] = strlen($row->student_uid); + $worksheet->write($zeile,$i, $row->student_uid); + } + $i++; + + //Orgform + if(strlen($orgform)>$maxlength[$i]) + $maxlength[$i] = strlen($orgform); + $worksheet->write($zeile,$i, $orgform); + $i++; + + //Vornamen + if(strlen($row->vornamen)>$maxlength[$i]) + $maxlength[$i] = strlen($row->vornamen); + $worksheet->write($zeile,$i, $row->vornamen); + $i++; + + + //RT_Punkte1 + if(strlen($row->rt_punkte1)>$maxlength[$i]) + $maxlength[$i] = strlen($row->rt_punkte1); + $worksheet->write($zeile,$i, $row->rt_punkte1); + $i++; + + //RT_Punkte2 + if(strlen($row->rt_punkte2)>$maxlength[$i]) + $maxlength[$i] = strlen($row->rt_punkte2); + $worksheet->write($zeile,$i, $row->rt_punkte2); + $i++; + + //RT_Gesamtpunkte + if(strlen($row->rt_gesamtpunkte)>$maxlength[$i]) + $maxlength[$i] = strlen($row->rt_gesamtpunkte); + $worksheet->write($zeile,$i, $row->rt_gesamtpunkte); + $i++; + } + + + //Die Breite der Spalten setzen + foreach($maxlength as $i=>$breite) + $worksheet->setColumn($i, $i, $breite+2); + + $workbook->close(); + +?> diff --git a/locale/de-AT/fas.dtd b/locale/de-AT/fas.dtd index 27b980c71..12ec5b11a 100644 --- a/locale/de-AT/fas.dtd +++ b/locale/de-AT/fas.dtd @@ -148,6 +148,10 @@ + + + +