mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Excel-export for aliquote reduction
This commit is contained in:
@@ -77,7 +77,7 @@ echo '
|
||||
}
|
||||
else
|
||||
{
|
||||
die(result);
|
||||
die(res.message);
|
||||
}
|
||||
|
||||
}).fail(function(jqXHR, status)
|
||||
|
||||
@@ -28,6 +28,8 @@ require_once(dirname(__FILE__).'/../../include/studiengang.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/studiensemester.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/prestudent.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/studienplatz.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/Excel/excel.php');
|
||||
require_once(dirname(__FILE__).'/../../include/dokument.class.php');
|
||||
|
||||
|
||||
$user = get_uid();
|
||||
@@ -110,8 +112,135 @@ switch($action)
|
||||
returnAJAX(true, "");
|
||||
break;
|
||||
|
||||
default:
|
||||
returnAJAX(false,"eine Aktion erhalten");
|
||||
case "dlTable":
|
||||
|
||||
if(!isset($_REQUEST["students"]))
|
||||
die("keine Studenten erhalten");
|
||||
$students = json_decode($_REQUEST["students"]);
|
||||
|
||||
|
||||
|
||||
// Creating a workbook
|
||||
$workbook = new Spreadsheet_Excel_Writer();
|
||||
|
||||
// sending HTTP headers
|
||||
$workbook->send('aliquote_reduktion_'.$studiengang_kz.'.xls');
|
||||
$workbook->setVersion(8);
|
||||
|
||||
// Creating a worksheet
|
||||
$worksheet =& $workbook->addWorksheet("Tabelle");
|
||||
$worksheet->setInputEncoding('utf-8');
|
||||
|
||||
$format_bold =& $workbook->addFormat();
|
||||
$format_bold->setBold();
|
||||
|
||||
$format_float =& $workbook->addFormat();
|
||||
$format_float->setNumFormat("0.0000");
|
||||
|
||||
|
||||
$spalte=0;
|
||||
$zeile=0;
|
||||
|
||||
$worksheet->write($zeile,$spalte,'ID',$format_bold);
|
||||
$maxlength[$spalte]=3;
|
||||
$worksheet->write($zeile,++$spalte,'Nachname',$format_bold);
|
||||
$maxlength[$spalte]=7;
|
||||
$worksheet->write($zeile,++$spalte,'Vorname',$format_bold);
|
||||
$maxlength[$spalte]=7;
|
||||
$worksheet->write($zeile,++$spalte,'ZGV Gruppe',$format_bold);
|
||||
$maxlength[$spalte]=8;
|
||||
$worksheet->write($zeile,++$spalte,'Reihung',$format_bold);
|
||||
$maxlength[$spalte]=8;
|
||||
$worksheet->write($zeile,++$spalte,'RT Gesamt',$format_bold);
|
||||
$maxlength[$spalte]=8;
|
||||
$worksheet->write($zeile,++$spalte,'Status',$format_bold);
|
||||
$maxlength[$spalte]=8;
|
||||
$worksheet->write($zeile,++$spalte,'Auswahl',$format_bold);
|
||||
$maxlength[$spalte]=8;
|
||||
|
||||
|
||||
usort($students, "studentsSort");
|
||||
foreach($students as $s)
|
||||
{
|
||||
$zeile++;
|
||||
$spalte=0;
|
||||
|
||||
$worksheet->writeNumber($zeile,$spalte,$s->prestudent_id);
|
||||
if(mb_strlen($s->prestudent_id)>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen($s->prestudent_id);
|
||||
|
||||
$worksheet->write($zeile,++$spalte,$s->nachname);
|
||||
if(mb_strlen($s->nachname)>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen($s->nachname);
|
||||
|
||||
$worksheet->write($zeile,++$spalte, $s->vorname);
|
||||
if(mb_strlen($s->vorname)>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen($s->vorname);
|
||||
|
||||
if(isset($s->bezeichnung) && $s->bezeichnung)
|
||||
{
|
||||
$worksheet->write($zeile,++$spalte, $s->bezeichnung);
|
||||
if(mb_strlen($s->bezeichnung)>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen($s->bezeichnung);
|
||||
}
|
||||
else
|
||||
{
|
||||
$worksheet->write($zeile,++$spalte, "");
|
||||
if(mb_strlen("")>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen("");
|
||||
}
|
||||
|
||||
$worksheet->writeNumber($zeile,++$spalte, $s->seqPlace);
|
||||
if(mb_strlen($s->seqPlace)>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen($s->seqPlace);
|
||||
|
||||
if(isset($s->rt_gesamtpunkte) && $s->rt_gesamtpunkte)
|
||||
{
|
||||
$worksheet->writeNumber($zeile,++$spalte, $s->rt_gesamtpunkte, $format_float);
|
||||
if(mb_strlen($s->rt_gesamtpunkte)>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen($s->rt_gesamtpunkte);
|
||||
}
|
||||
else
|
||||
{
|
||||
$worksheet->write($zeile,++$spalte, "");
|
||||
if(mb_strlen("")>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen("");
|
||||
}
|
||||
|
||||
$worksheet->write($zeile,++$spalte, $s->laststatus);
|
||||
if(mb_strlen($s->laststatus)>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen($s->laststatus);
|
||||
|
||||
if(isset($s->selected) && $s->selected)
|
||||
{
|
||||
$worksheet->write($zeile,++$spalte, "x");
|
||||
if(mb_strlen("x")>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen("x");
|
||||
}
|
||||
else
|
||||
{
|
||||
$worksheet->write($zeile,++$spalte, "");
|
||||
if(mb_strlen("")>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=mb_strlen("");
|
||||
}
|
||||
}
|
||||
|
||||
//Die Breite der Spalten setzen
|
||||
foreach($maxlength as $i=>$breite)
|
||||
$worksheet->setColumn($i, $i, $breite+2);
|
||||
|
||||
$workbook->close();
|
||||
break;
|
||||
|
||||
default:
|
||||
returnAJAX(false,"unknown action: " . $action);
|
||||
}
|
||||
|
||||
|
||||
function studentsSort($a, $b)
|
||||
{
|
||||
return $a->seqPlace > $b->seqPlace;
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
aqr.studiensemester = [];
|
||||
aqr.studienplaetze = [];
|
||||
aqr.actualSequence = 1;
|
||||
SERVICE_TARGET = "aliquote_reduktion.json.php"
|
||||
SERVICE_TARGET = "aliquote_reduktion.json.php";
|
||||
|
||||
if(!aqr.studiensemester_kurzbz)
|
||||
die("Es wurde kein Studiensemester angegeben");
|
||||
@@ -330,6 +330,49 @@
|
||||
aqr.recursiveChoose(needed, zgvElems);
|
||||
}
|
||||
}
|
||||
|
||||
aqr.download = function()
|
||||
{
|
||||
var filteredStudents = [];
|
||||
|
||||
|
||||
aqr.studenten.forEach(function(i)
|
||||
{
|
||||
if(i.applicant)
|
||||
{
|
||||
filteredStudents.push(i);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
var form = document.createElement("form");
|
||||
form.setAttribute("method", "post");
|
||||
form.setAttribute("action", "aliquote_reduktion.json.php");
|
||||
form.setAttribute("target", "view");
|
||||
|
||||
var hiddenField = document.createElement("input");
|
||||
hiddenField.setAttribute("type", "hidden");
|
||||
hiddenField.setAttribute("name", "action");
|
||||
hiddenField.setAttribute("value", "dlTable");
|
||||
form.appendChild(hiddenField);
|
||||
|
||||
var hiddenField = document.createElement("input");
|
||||
hiddenField.setAttribute("type", "hidden");
|
||||
hiddenField.setAttribute("name", "studiengang_kz");
|
||||
hiddenField.setAttribute("value", aqr.selectedStudiengang.studiengang_kz);
|
||||
form.appendChild(hiddenField);
|
||||
|
||||
var hiddenField = document.createElement("input");
|
||||
hiddenField.setAttribute("type", "hidden");
|
||||
hiddenField.setAttribute("name", "students");
|
||||
hiddenField.setAttribute("value", JSON.stringify(filteredStudents));
|
||||
form.appendChild(hiddenField);
|
||||
|
||||
document.body.appendChild(form);
|
||||
|
||||
|
||||
form.submit();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
@@ -349,8 +392,8 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th ts-criteria="prestudent_id">ID</th>
|
||||
<th ts-criteria="vorname">Vorname</th>
|
||||
<th ts-criteria="nachname">Nachname</th>
|
||||
<th ts-criteria="vorname">Vorname</th>
|
||||
<th ts-criteria="bezeichnung">ZGV Gruppe</th>
|
||||
<th ts-criteria="seqPlace|parseInt" ts-default="ascending">Reihung</th>
|
||||
<th ts-criteria="rt_gesamtpunkte|parseFloat" ts-default="ascending">RT Gesamt</th>
|
||||
@@ -362,8 +405,8 @@
|
||||
<tbody>
|
||||
<tr ng-repeat="stud in aqr.studenten track by stud.prestudent_id" ng-if="stud.applicant" ng-click="aqr.countChoosen()" ts-repeat ts-hide-no-data ng-class="{true:'applicant', false:'no_applicant', undefined:'no_applicant'}[stud.applicant]"><!-- "{applicant, no_applicant : stud.applicant}">-->
|
||||
<td>{{stud.prestudent_id}}</td>
|
||||
<td>{{stud.vorname}}</td>
|
||||
<td>{{stud.nachname}}</td>
|
||||
<td>{{stud.vorname}}</td>
|
||||
<td ng-if="stud.bezeichnung">{{stud.bezeichnung}}</td>
|
||||
<td ng-if="!stud.bezeichnung" style="font-weight: bold;">Keine Angabe</td>
|
||||
<td>{{stud.seqPlace}}</td>
|
||||
@@ -378,14 +421,15 @@
|
||||
</table>
|
||||
|
||||
<input style="float:right;" type="button" value="Annehmen" ng-click="aqr.submit()"/>
|
||||
<input style="float:right;" type="button" value="Download" ng-click="aqr.download()"/>
|
||||
|
||||
<h3>Bereits aufgenommene</h3>
|
||||
<table ts-wrapper>
|
||||
<thead>
|
||||
<tr>
|
||||
<th ts-criteria="prestudent_id">ID</th>
|
||||
<th ts-criteria="vorname">Vorname</th>
|
||||
<th ts-criteria="nachname">Nachname</th>
|
||||
<th ts-criteria="vorname">Vorname</th>
|
||||
<th ts-criteria="bezeichnung">ZGV Gruppe</th>
|
||||
<th ts-criteria="seqPlace|parseInt" ts-default="ascending">Reihung</th>
|
||||
<th ts-criteria="rt_gesamtpunkte|parseFloat">RT Gesamt</th>
|
||||
@@ -396,8 +440,8 @@
|
||||
<tbody>
|
||||
<tr ng-repeat="stud in aqr.studenten track by stud.prestudent_id" ng-if="!stud.applicant" ng-click="aqr.countChoosen()" ts-repeat ts-hide-no-data ng-class="{true:'applicant', false:'no_applicant', undefined:'no_applicant'}[stud.applicant]"><!-- "{applicant, no_applicant : stud.applicant}">-->
|
||||
<td>{{stud.prestudent_id}}</td>
|
||||
<td>{{stud.vorname}}</td>
|
||||
<td>{{stud.nachname}}</td>
|
||||
<td>{{stud.vorname}}</td>
|
||||
<td ng-if="stud.bezeichnung">{{stud.bezeichnung}}</td>
|
||||
<td ng-if="!stud.bezeichnung" style="font-weight: bold;">Keine Angabe</td>
|
||||
<td>{{stud.seqPlace}}</td>
|
||||
|
||||
Reference in New Issue
Block a user