KKeine Bearbeitungszusammenfassung |
|||
Zeile 1: | Zeile 1: | ||
= Allgemeine Themen = | = Allgemeine Themen = | ||
==Klassische Verarbeitung ohne Freemarker== | == Dynamische Generierung von SQL == | ||
===1. Klassische Verarbeitung ohne Freemarker=== | |||
Die einzelnen Abfragen (auch synonym Masken genannt) enthalten Platzhalter, wie beispielsweise: | Die einzelnen Abfragen (auch synonym Masken genannt) enthalten Platzhalter, wie beispielsweise: | ||
Zeile 25: | Zeile 26: | ||
</span> | </span> | ||
==FreeMarker-Transformation== | === 2. FreeMarker-Transformation=== | ||
<blockquote> | <blockquote> | ||
Nach der klassischen Transformation mit generateSql folgt ggfs. die FreeMarker Transformation. | Nach der klassischen Transformation mit generateSql folgt ggfs. die FreeMarker Transformation. | ||
Zeile 45: | Zeile 46: | ||
<div id="SichtenAuswahl">{{ImagePara |imgsrc=KomplexesBeispiel.png|width=900|caption=KomplexesBeispiel}}</div> | <div id="SichtenAuswahl">{{ImagePara |imgsrc=KomplexesBeispiel.png|width=900|caption=KomplexesBeispiel}}</div> | ||
</blockquote> | </blockquote> | ||
== Captions - Felderläuterungen == | |||
[https://wiki.his.de/mediawiki/index.php/Glossar_pflegen_%C3%BCber_Captions-HISinOne-BI Captions] | [https://wiki.his.de/mediawiki/index.php/Glossar_pflegen_%C3%BCber_Captions-HISinOne-BI Captions] | ||
== Makros == | |||
[https://wiki.his.de/mediawiki/index.php/Makroberichte_erstellen_-_HISinOne-BI Makros] | |||
= Studierende/Prüfungen = | |||
== Komplexe Gewichtungen == | |||
https://wiki.his.de/mediawiki/index.php/Studierendengewichtungsregeln_-_HISinOne-BI <br> | https://wiki.his.de/mediawiki/index.php/Studierendengewichtungsregeln_-_HISinOne-BI <br> | ||
Anpassung von Berichten:<br> | Anpassung von Berichten:<br> |
Version vom 14. November 2022, 13:44 Uhr
Allgemeine Themen
Dynamische Generierung von SQL
1. Klassische Verarbeitung ohne Freemarker
Die einzelnen Abfragen (auch synonym Masken genannt) enthalten Platzhalter, wie beispielsweise:
select monat,sum(betrag) from cob_busa where monat=<<Monat>>;
Auf der Maske gibt es ein Feld Monat. Vorm Abschicken des SQL wird <<Monat>> durch den gewählten Wert ersetzt. Falls eine Maske Felder enthält, welche optional gefüllt werden können, so wird der Ausdruck zwischen /* und */ gesetzt. Das hat zur Folge, dass dieser entfernt wird, falls kein Wert ausgewählt wurde. Aus beispielsweise
select monat,sum(betrag) from cob_busa where monat=<<Monat>> /* and gege=<<Geldgeber>> */;
wird, falls kein Geldgeber ausgewählt wurde z. B.
select monat,sum(betrag) from cob_busa where monat=1;
, aber falls ein Geldgeber ausgewählt wurde z. B.
select monat,sum(betrag) from cob_busa where monat=1 and gege=3;
Detail:
Der Ausdruck in <<XXX>> darf nur einmal in dem optionalen Block vorkommen. Falls er zweimal benötigt wird, müssen diese auf zwei Blöcke aufgeteilt werden. Z. B.:
/* and (dr in (<<Deckungsring>>) */
/* or dr2 in (<<Deckungsring>>) )*/
2. FreeMarker-Transformation
Nach der klassischen Transformation mit generateSql folgt ggfs. die FreeMarker Transformation. FreeMarker transformiert eine Vorlage (template) mit Hilfe eines Datenmodells (mit Java Objekten) zu einem Ausgabetext.
Sehr oft wird es zur Erzeugung von HTML benutzt, wir produzieren stattdessen SQL. Die Java-Objekte im Datenmodell sind die Felder, die auf der Maske zur Auswahl stehen.
Als einfachsten Anwendungsfall könnten wir also für eine Maske mit einem Monatsfeld statt des klassischen SuperX-Tags
select monat,sum(betrag) from tmp_busa where monat=<<Monat>>
auch die FreeMarker Notation nehmen.
select monat,sum(betrag) from tmp_busa where monat=${Monat}
Innerhalb von Freemarker kann ${} entfallen:
<#if Monat=1> ... </#if>
Ein komplexes Beispiel:
Captions - Felderläuterungen
Makros
Studierende/Prüfungen
Komplexe Gewichtungen
https://wiki.his.de/mediawiki/index.php/Studierendengewichtungsregeln_-_HISinOne-BI
Anpassung von Berichten:
wenn Sie im Quelltext der Vorlage etwas sehen wie
<#assign lehr_stg_ab="lehr_stg_ab"/>
<#assign quelltabelle='sos_stg_aggr'/>
<#if "<<Köpfe oder Fälle ?>>"?index_of("S.gewichtung_id=")!=-1>
<#assign lehr_stg_ab="lehr_stg_ab_gew"/>
<#assign quelltabelle='sos_stud_gewichtung'/>
</#if>
Schauen Sie sich die Anleitung an unter https://wiki.his.de/mediawiki/index.php/Aenderung_von_Abfragen_zur_erweiterten_Gewichtung_-_HISinOne-BI