Benutzer-Werkzeuge

Webseiten-Werkzeuge


addons:reports

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
addons:reports [2016/12/19 14:05]
oesi
addons:reports [2019/08/13 13:48] (aktuell)
Zeile 1: Zeile 1:
 +[[:start| zurück zum Hauptmenü]]\\
 +
 ====== Reports ====== ====== Reports ======
  
Zeile 5: Zeile 7:
 ===== Installation ===== ===== Installation =====
 ==== Report Generierung ==== ==== Report Generierung ====
-Damit die Generierung ​von Reports funktioniert,​ müssen folgende Pakete auf dem System installiert ​werden:\\+Damit das Generieren ​von Reports funktioniert,​ müssen folgende Pakete auf dem System installiert ​sein:\\
 \\ \\
 <​code>​apt-get install texlive-lang-cyrillic</​code>​ <​code>​apt-get install texlive-lang-cyrillic</​code>​
Zeile 22: Zeile 24:
 Zusätzlich wird die Datei [[https://​github.com/​FH-Complete/​FHC-AddOn-Reports/​blob/​master/​vendor/​FHC-vendor/​highcharts/​exporting-server/​phantomjs/​highcharts-convert.js|highcharts-convert.js]] benötigt, welche auf dem Zielgerät vorhanden sein muss.\\ Zusätzlich wird die Datei [[https://​github.com/​FH-Complete/​FHC-AddOn-Reports/​blob/​master/​vendor/​FHC-vendor/​highcharts/​exporting-server/​phantomjs/​highcharts-convert.js|highcharts-convert.js]] benötigt, welche auf dem Zielgerät vorhanden sein muss.\\
 \\ \\
-Sollten alle Voraussetzungen erfüllt sein, kann der Prozess mittels <​code>​phantomjs /​pfad/​zur/​highcharts-convert.js -host 0.0.0.0 -port 3003</​code>​gestartet werden, wobei der Pfad, die IP Adresse und optional der Port angepasst werden müssen. Als IP MUSS die Eigene Adresse angegeben werden, andernfalls wird der Export nicht funktionieren!\\+Sollten alle Voraussetzungen erfüllt sein, kann der Prozess mittels <​code>​phantomjs /​pfad/​zur/​highcharts-convert.js -host 0.0.0.0 -port 3003</​code>​gestartet werden, wobei der Pfad, die IP-Adresse und optional der Port angepasst werden müssen. Als IP-Adresse **muss** ​die Eigene ​IP-Adresse angegeben werden, andernfalls wird der Export nicht funktionieren!\\
 In der Datei "​FHC/​addons/​reports/​reports.config.inc.php"​ muss die Konstante "​PHANTOM_SERVER"​ mit der selben Adresse(IP oder DNS) und dem selben Port eingetragen werden.\\ In der Datei "​FHC/​addons/​reports/​reports.config.inc.php"​ muss die Konstante "​PHANTOM_SERVER"​ mit der selben Adresse(IP oder DNS) und dem selben Port eingetragen werden.\\
-Sollte der Prozess korrekt laufen, kann nun ein Chart Exportiert ​werden:+Sollte der Prozess korrekt laufen, kann nun ein Chart exportiert ​werden:
  
 {{ :​addons:​hc_export.png?​direct |}} {{ :​addons:​hc_export.png?​direct |}}
  
-ACHTUNGzum Testen sollte entweder PNG oder JPEG verwendet weren, da bei SVG der PhantomJS ​NICHT verwendet wird und bei PDF der Dokumentenexport involviert ist und somit unoconv benötigt wird!\\ +{{:icon_achtung.png?​25 |}} Zum Testen sollte entweder PNG oder JPEG verwendet weren, da bei SVG der PhantomJS ​**nicht** ​verwendet wird und bei PDF der Dokumentenexport involviert ist und somit unoconv benötigt wird!\\ 
-Sollte nun ein Bild heruntergeladen worden ​seien, funktioniert der Export.+ 
 +Sollte nun ein Bild heruntergeladen worden ​sein, funktioniert der Export.
 {{ :​addons:​hc_export_generated_picture.png?​direct |}} {{ :​addons:​hc_export_generated_picture.png?​direct |}}
  
-Sollte der erste Export ​Funktionieren, gibt es nun 2 Möglichkeiten,​ um den Phantomjs prozess ​Dauerhaft ​laufen zu lassen+ 
 +Sollte der erste Export ​funktionieren, gibt es nun 2 Möglichkeiten,​ um den Phantomjs prozess ​dauerhaft ​laufen zu lassen:
  
 === Systemd === === Systemd ===
Zeile 46: Zeile 50:
  
 [Service] [Service]
-ExecStart=/​usr/​bin/​phantomjs /​pfad/​zur/​highcharts-convert.js -host 0.0.0.0 -port 3003+Environment="​QT_QPA_FONTDIR=/​usr/​share/​fonts/​truetype/​dejavu"​ 
 +ExecStart=/​usr/​bin/​phantomjs /​pfad/​zur/​highcharts-convert.js -host 0.0.0.0 -port 3003 -platform offscreen
 KillMode=process KillMode=process
 Restart=on-failure on-abort Restart=on-failure on-abort
Zeile 59: Zeile 64:
  
 <​code>​systemctl daemon-reload</​code>​ <​code>​systemctl daemon-reload</​code>​
-ACHTUNG: dieser Befehl muss nach jeder Änderung der Datei erneut ausgeführt werden! 
  
 +{{:​icon_achtung.png?​25 |}} Dieser Befehl muss nach jeder Änderung der Datei erneut ausgeführt werden!
  
 +\\
 == C - Dienst starten == == C - Dienst starten ==
  
Zeile 67: Zeile 73:
 Username muss ersetzt werden! Username muss ersetzt werden!
  
 +\\
 == D - Status des Dienstes == == D - Status des Dienstes ==
  
Zeile 73: Zeile 79:
 Im Idealfall sollte hier nun "​active (running)"​ ausgegeben werden.\\ Im Idealfall sollte hier nun "​active (running)"​ ausgegeben werden.\\
 {{ :​addons:​systemd_active_output.png?​direct&​300 |}} {{ :​addons:​systemd_active_output.png?​direct&​300 |}}
-Sollte der Dienst nun NICHT aktiv sein, fehlen dem Benutzer/​der Gruppe wahrscheinlich diverse Rechte. Um dieses Problem testweise zu umgehen, kann die Gruppe und/oder der User in der Service-Datei auf root geändert ​werden(Schritt B nicht vergessen!) und der Dienst mittels <​code>​systemctl restart phantomjs@[USERNAME]</​code>​ neu gestartet werden. +Sollte der Dienst nun **nicht** ​aktiv sein, fehlen dem Benutzer/​der Gruppe wahrscheinlich diverse Rechte. Um dieses Problem testweise zu umgehen, kann die Gruppe und/oder der Benutzer ​in der Service-Datei auf //root// geändert (Schritt B nicht vergessen!) und der Dienst mittels <​code>​systemctl restart phantomjs@[USERNAME]</​code>​ neu gestartet werden.
  
 +\\
 == E - Dauerhaft einstellen == == E - Dauerhaft einstellen ==
 Um den Dienst automatisch zu starten, muss Um den Dienst automatisch zu starten, muss
Zeile 81: Zeile 87:
 ausgeführt werden. ausgeführt werden.
  
 +\\
 == Mehr Info == == Mehr Info ==
 [[:​systemd|SystemD - Wiki]] [[:​systemd|SystemD - Wiki]]
  
  
 +\\
 === Fork === === Fork ===
-Die einfache ​variante ​wäre, den Prozess mittels <​code>​phantomjs /​pfad/​zur/​highcharts-convert.js -host 0.0.0.0 -port 3003 &</​code>​ zu forken. ​Dollte ​der Prozess jedoch abstürzenoder der Server ​rebooten, muss er jedes mal von Hand neu gestartet werden.+Die einfache ​Variante ​wäre, den Prozess mittels <​code>​phantomjs /​pfad/​zur/​highcharts-convert.js -host 0.0.0.0 -port 3003 &</​code>​ zu forken. ​Sollte ​der Prozess jedoch abstürzen oder ein Server-Reboot erforderlich sein, muss er jedes mal manuell ​neu gestartet werden.
  
 ===== Ablauf ===== ===== Ablauf =====
Zeile 98: Zeile 105:
 \\ \\
 \\ \\
-Normale Charts:\\ + 
-\\+=== Normale Charts:===
 1. Spalte = Kategorie = X Unterteilungen / Gruppen\\ 1. Spalte = Kategorie = X Unterteilungen / Gruppen\\
-2-x. Spalte = Serien\\+2- x. Spalte = Serien\\
 Value = Punkt\\ Value = Punkt\\
 \\ \\
Zeile 121: Zeile 128:
 Hier ein Beispiel für den Aufbau der Statistik mit den Studiensemestern als Kategorie und 3 Serien für die Studierendenanzahl:​ Hier ein Beispiel für den Aufbau der Statistik mit den Studiensemestern als Kategorie und 3 Serien für die Studierendenanzahl:​
 <​code>​ <​code>​
- Anzahl ​Studenten M W+ Anzahl ​Studierende M W
 WS2016 50 50 0 WS2016 50 50 0
 WS2017 70 50 20 WS2017 70 50 20
Zeile 127: Zeile 134:
 </​code>​ </​code>​
  
-Bei dieser Art von Statistik muss die Bezeichnung der Serien fixiert sein. Wenn die Serien dynamisch ​auf Grund des Inhalts erstellt werden sollen, ​dann muss die Option FHCSeriesType (yz) verwendet werden.+Bei dieser Art von Statistik muss die Bezeichnung der Serien fixiert sein. Wenn die Serien dynamisch ​aufgrund ​des Inhalts erstellt werden sollen, muss die Option FHCSeriesType (yz) verwendet werden.
 Statistiken von Charts mit dieser Option benötigen folgenden Aufbau: Statistiken von Charts mit dieser Option benötigen folgenden Aufbau:
  
Zeile 146: Zeile 153:
 WS2018 '​W'​ 30 1 WS2018 '​W'​ 30 1
 </​code>​ </​code>​
-z muss hierbei angegeben werden, hat jedoch derzeit keine Auswirkung+//"z"// ​muss hierbei angegeben werden, hat jedoch derzeit keine Auswirkung
  
 ===== Charts ===== ===== Charts =====
Zeile 155: Zeile 162:
 In diesem Beispiel wird die Rotation der Labels an der X-Achse auf 90° geändert. In diesem Beispiel wird die Rotation der Labels an der X-Achse auf 90° geändert.
 In "​series"​ wird die Anzeige des Datensatzes "​Gesamt"​ auf ein Balkendiagramm geändert und "​Inland"​ auf ein Tortendiagramm. In "​series"​ wird die Anzeige des Datensatzes "​Gesamt"​ auf ein Balkendiagramm geändert und "​Inland"​ auf ein Tortendiagramm.
-Mit "​center"​ und "​size"​ kann das Zentrum und die Größe manipuliert werden. Hier werden Prozentwerte angegeben, ​jedoch kann man, mit dem weglassen ​des "​%"​ Zeichens ​auch Pixelwerte ​verwenden+Mit "​center"​ und "​size"​ kann das Zentrum und die Größe manipuliert werden. Hier werden Prozentwerte angegeben, ​durch Weglassen ​des "​%"​-Zeichens ​können jedoch ebenso ​Pixelwerte ​verwendet werden
-Mit der Einstellung "​zIndex" ​kann manipuliert werden, ob der entsprechende Chart weiter in den Vordergrund oder in den Hintergrund gerückt werden soll.\\ +Mit der Einstellung "​zIndex" ​lässt sich manipulierrn, ob der entsprechende Chart weiter in den Vordergrund oder in den Hintergrund gerückt werden soll.\\ 
-Mehrere Achsen können ​mit dem Array "​yAxis"​ angegeben werden. Hier kann per '"​opposite":​ true' angegeben werden, dass sie auf der rechten Seite gezeichnet wird. Später kann bei "​series"​ eine Serie per z.B.: "​yAxis":​0 auf die erste Achse gehängt werden.\\ +Mehrere Achsen können ​mithilfe des Arrays ​"​yAxis"​ angegeben werden. Hier kann per '"​opposite":​ true' angegeben werden, dass sie auf der rechten Seite gezeichnet wird. Später kann bei "​series"​ eine Serie per z.B.: "​yAxis":​0 auf die erste Achse gehängt werden.\\ 
-ACHTUNGWenn eine Serie auf eine nicht existente Achse gehängt ​wird, funktioniert der Chart nicht! -> in der JS-Konsole wird der Highcharts-Fehler #18 ausgegeben.\\ + 
-Sollte keine yAchse definiert werden, wird automatisch eine ohne Namen hinzugefügt.\\ + 
-Standardmäßig werden Serien auf die Achse #0 gehängt.\\+{{:icon_achtung.png?​25 |}} Wird eine Serie auf eine nicht existente Achse gehängt, funktioniert der Chart nicht!\\ (-> in der JS-Konsole wird der Highcharts-Fehler #18 ausgegeben)  
 +\\ 
 + 
 +Sollte keine yAchse definiert werden, wird automatisch eine ohne Namen hinzugefügt. Standardmäßig werden Serien auf die Achse #0 gehängt.\\
  
 <code Javascript>​ <code Javascript>​
Zeile 198: Zeile 208:
 </​code>​ </​code>​
  
-Im Folgenden Beispiel wird das Zoomen verhindert und der generelle Typ des Charts auf ein Tortendiagramm verändert. Der generelle Typ sollte ​NUR bei Drilldown Charts manipuliert werden. Bei allen anderen kann dieser über "​Vilesci ​-> Addons -> Reports -> Chart -> (gewünschter Chart) -> Type" ​geändert werden.+Im Folgenden Beispiel wird das Zoomen verhindert und der generelle Typ des Charts auf ein Tortendiagramm verändert. Der generelle Typ sollte ​**nur bei Drilldown-Charts** manipuliert werden. Bei allen anderen kann dieser über //​VileSci ​-> Addons -> Reports -> Chart -> (gewünschter Chart) -> Type// geändert werden.
  
 <code Javascript>​ <code Javascript>​
Zeile 222: Zeile 232:
 </​code>​ </​code>​
 wird. wird.
 +
 === Boxplot === === Boxplot ===
 Bei Boxplots muss darauf geachtet werden, dass 5 Spalten übergeben werden. Diese repräsentieren der Reihe nach unsere Boxplots: unterer Strich -> Anfang der Box -> Strich in der Box -> Ende der Box -> oberer Strich.\\ Bei Boxplots muss darauf geachtet werden, dass 5 Spalten übergeben werden. Diese repräsentieren der Reihe nach unsere Boxplots: unterer Strich -> Anfang der Box -> Strich in der Box -> Ende der Box -> oberer Strich.\\
-Anschließend muss in den Preferences der Typ "​boxplot",​ wie im Beispiel gesetzt werden.\\ + 
-Mit der Option "​FHCBoxplotType"​ kann die Matritze der Boxplots gedreht werden.\\ +Anschließend muss in den Preferences der Typ "​boxplot",​ wie im Beispiel gesetzt werden. Mit der Option "​FHCBoxplotType"​ kann die Matritze der Boxplots gedreht werden. Bei einem "​Tick"​ handelt es sich um eine Hilfslinie im Chart 
-Bei einem "​Tick"​ handelt es sich um eine Hilfslinie im Chart+
 <code javascript>​ <code javascript>​
 { {
Zeile 245: Zeile 256:
 } }
 </​code>​ </​code>​
 +
 +\\
 +
 ===== Pivot ===== ===== Pivot =====
 ==== Preferences ==== ==== Preferences ====
Zeile 259: Zeile 273:
 Mit dem String ''​rendererName''​ kann der Standard-Renderer angepasst werden.\\ Mit dem String ''​rendererName''​ kann der Standard-Renderer angepasst werden.\\
 Mit dem String ''​aggregatorName''​ kann der Standard-Aggregator angepasst werden.\\ Mit dem String ''​aggregatorName''​ kann der Standard-Aggregator angepasst werden.\\
-Mit dem Array ''​vals''​ kann der Standard-Wert angepasst werden(ist handelt sich zwar um einen Array, jedoch wird immer nur der Erste benutzt!).\\+Mit dem Array ''​vals''​ kann der Standard-Wert angepasst werden(handelt sich zwar um einen Array, jedoch wird immer nur der Erste benutzt!).\\
 Mit dem Array ''​hiddenAttributes''​ können Attribute versteckt werden.\\ Mit dem Array ''​hiddenAttributes''​ können Attribute versteckt werden.\\
-Mit dem Objekt ''​aggregators''​ können neue Aggregatoren hinzugefügt werden(Alte werden dabei überschrieben!).\\ +Mit dem Objekt ''​aggregators''​ können neue Aggregatoren hinzugefügt werden (bisherige ​werden dabei überschrieben!).\\ 
-Mit ''​deFormat''​ wird das Deutsche ​Format erzwungen(z.B.:​ Komma statt Punkt)\\ +Mit ''​deFormat''​ wird das deutsche ​Format erzwungen(z.B.:​ Komma statt Punkt)\\ 
-Mit ''​deFormatInt''​ wird das Deutsche ​Ganzzahlen-Format erzwungen\\+Mit ''​deFormatInt''​ wird das deutsche ​Ganzzahlen-Format erzwungen\\
  
 <code javascript>​ <code javascript>​
Zeile 289: Zeile 303:
 } }
 </​code>​ </​code>​
-AchtungWie man hier sieht, ​müssen ​Umlaute mit ihrem HTML-Code ​eingegeben ​werden. ​Auch bei jedem mal neu Speichernmüssen die Umlaute erneut geändert werden! Es bietet ​sich an den Code in einem Editior zu schreiben und jedes mal neu in die Preferences ​hinein ​zu kopieren.+ 
 +{{:icon_achtung.png?​25 |}} Umlaute ​müssen ​in ihrem HTML-Code ​angegeben ​werden. ​Dies ist bei jedem Speichervorgang erneut durchzuführendaher empfiehlt es sichden Code zuerst ​in einem Editior zu schreiben und anschließend ​jedes Mal neu in die Preferences zu kopieren. 
 {{ :​addons:​pivot_all_preferences.png?​direct |}} {{ :​addons:​pivot_all_preferences.png?​direct |}}
/var/www/wiki/data/attic/addons/reports.1482152758.txt.gz · Zuletzt geändert: 2019/08/13 13:49 (Externe Bearbeitung)