, * Andreas Oesterreicher and * Rudolf Hangl . */ /** * Exportiert die Studentendaten in ein Excel File. * Die zu exportierenden Spalten werden per GET uebergeben. * Die Adressen werden immer dazugehaengt */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/datum.class.php'); require_once('../../include/studiensemester.class.php'); require_once('../../include/Excel/excel.php'); $db = new basis_db(); $user = get_uid(); $datum_obj = new datum(); loadVariables($user); function writecol($zeile, $i, $content) { global $worksheet, $maxlength; $worksheet->write($zeile, $i, $content); if(mb_strlen($content)>$maxlength[$i]) $maxlength[$i]=mb_strlen($content); } //Parameter holen $studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''; $semester = isset($_GET['semester'])?$_GET['semester']:''; $studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:''; $maxlength= array(); $zeile=1; // Creating a workbook $workbook = new Spreadsheet_Excel_Writer(); // sending HTTP headers $workbook->send("Abschlusspruefung". "_" . date("d_m_Y") . ".xls"); $workbook->setVersion(8); // Creating a worksheet $worksheet =& $workbook->addWorksheet("Abschlusspruefung"); $worksheet->setInputEncoding('utf-8'); $format_bold =& $workbook->addFormat(); $format_bold->setBold(); $format_title =& $workbook->addFormat(); $format_title->setBold(); // let's merge $format_title->setAlign('merge'); $stsem = new studiensemester(); $stsem->load($studiensemester_kurzbz); //Zeilenueberschriften ausgeben $headline=array('Titelpre','Vorname','Nachname','Titelpost','Vorsitz','Pruefer1','Pruefer2','Pruefer3', 'Abschlussbeurteilung','Typ','Datum','Sponsion','Anmerkung'); $i=0; foreach ($headline as $title) { $worksheet->write(0,$i,$title, $format_bold); $maxlength[$i]=mb_strlen($title); $i++; } // Daten holen $qry = "SELECT titelpre, vorname, nachname, titelpost, (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=vorsitz) as vorsitz, (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer1) as pruefer1, (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer2) as pruefer2, (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer3) as pruefer3, (SELECT bezeichnung FROM lehre.tbl_abschlussbeurteilung WHERE tbl_abschlussbeurteilung.abschlussbeurteilung_kurzbz=tbl_abschlusspruefung.abschlussbeurteilung_kurzbz) as bezeichnung, tbl_pruefungstyp.beschreibung, datum, sponsion, tbl_abschlusspruefung.anmerkung FROM lehre.tbl_abschlusspruefung, public.tbl_studentlehrverband, public.tbl_benutzer, public.tbl_person, lehre.tbl_pruefungstyp WHERE tbl_abschlusspruefung.student_uid=public.tbl_studentlehrverband.student_uid AND tbl_studentlehrverband.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND tbl_studentlehrverband.studiengang_kz='".addslashes($studiengang_kz)."' AND tbl_benutzer.uid = tbl_abschlusspruefung.student_uid AND tbl_person.person_id = tbl_benutzer.person_id AND tbl_abschlusspruefung.pruefungstyp_kurzbz = tbl_pruefungstyp.pruefungstyp_kurzbz "; if($semester!='') $qry.= " AND tbl_studentlehrverband.semester='".addslashes($semester)."'"; $qry.=' ORDER BY nachname, vorname'; $zeile=1; if($db->db_query($qry)) { while($row = $db->db_fetch_object()) { $i=0; writecol($zeile, $i++, $row->titelpre); writecol($zeile, $i++, $row->vorname); writecol($zeile, $i++, $row->nachname); writecol($zeile, $i++, $row->titelpost); writecol($zeile, $i++, $row->vorsitz); writecol($zeile, $i++, $row->pruefer1); writecol($zeile, $i++, $row->pruefer2); writecol($zeile, $i++, $row->pruefer3); writecol($zeile, $i++, $row->bezeichnung); writecol($zeile, $i++, $row->beschreibung); writecol($zeile, $i++, $row->datum); writecol($zeile, $i++, $row->sponsion); writecol($zeile, $i++, $row->anmerkung); $zeile++; } } else die('Fehler in Qry: '.$qry); //Die Breite der Spalten setzen foreach($maxlength as $i=>$breite) $worksheet->setColumn($i, $i, $breite+2); $workbook->close(); ?>