Achtung: Diese Dokumentation ist veraltet, bitte rufen Sie die Übersichtsseite auf, um zur aktuellen Dokumentation zu gelangen.
kann mit Freemarker realisiert werden, Einfaches Beispiel
nur bei FIN_Quellsystem 1 (MBS) Soll Ansatz ausgegeben werden.
abschluss-Select in masken-sql
select name,<#if K_FIN_Quellsystem=1> hhans</#if>, einnahmen, ausgaben from fin;
XIL
Column CID=4 heading_text="Name" center_heading
row_selectable col_selectable rightJust heading_platform readonly
width=10
<#if K_FIN_Quellsystem=1>
Column CID=4 heading_text="Ansatz" center_heading
row_selectable col_selectable rightJust heading_platform readonly
width=10
</#if>
Column CID=4 heading_text="Einnahmen" center_heading
row_selectable col_selectable rightJust heading_platform readonly
width=10
Column CID=4 heading_text="Einnahmen" center_heading
row_selectable col_selectable rightJust heading_platform readonly
width=10
weiteres Beispiel:
Spalte Bewilligung soll nur angezeigt werden, wenn werte größer 0
in masken sql
<sqlvars>
<sqlvar bewilligungen>select sum(bewill) from fin where ins=<<Ins>> </sqlvar>
</sqlvars>
Abschluss-select
select name,ansatz<#if bewilligungen>0> , bewill, </#if> , ausgaben,verfuegbar from tmp_erg.
XilPropliste
XIL
Column CID=4 heading_text="Name" center_heading
row_selectable col_selectable rightJust heading_platform readonly
width=10
<#if bewilligungen>>0 >
Column CID=4 heading_text="bewill" center_heading
row_selectable col_selectable rightJust heading_platform readonly
width=10
</#if>
Column CID=4 heading_text="Ausgaben" center_heading
row_selectable col_selectable rightJust heading_platform readonly
width=10
Column CID=4 heading_text="verfügbar" center_heading
row_selectable col_selectable rightJust heading_platform readonly
width=10
Bisher musste dafür in der XIL-Proplist der sqlvar-Block wiederholt werden, in der aktuellen superx-version stehen aber die sqlvars aus der masken-sql automatisch zu verfügung ;-)
hochschulspezifische Einstellungemöglichkeit
Der Standardbericht sollte so viele Spalten wie max benötigt enthalten, in der Standardauslieferung werden alle Spalten gezeigt.
Beispiel standard schluss-select
select name, akt_soll,einnahmen,aus,verfuegbar from tmp-erg
Wenn eine Hochschule nicht alle Spalten sehen möchte, oder die Spalten in einer anderen Reihenfolge (!), folgendes Vorgehen:
in sx_repository eine Variable definieren CUSTOM_XXXXXX (Maskennummer)
assign der einen Hash definiert
<#assign customize={"resulttable":[
{"field":"name","caption":"Gliederung","width":14},
{"field":"akt_soll","caption":"Ansatz","width":15,"explanation":"Haushaltsansatz inkl.Einnahmen und Reste (Haushalterisch: Aktuelles Soll)"},
{"field":"einnahmen","caption":"Einnahmen","width":10},{"field":"aus","caption":"Ausgaben","width":10},{"field":"fest","caption":"Festgelegt","width":10},
{"field":"verfuegbar","caption":"verfügbar","width":12,"explanation":"@@@fin_verfuegbar@@@"}
]}/>
es wird ein customize-hash defniert, darin sind felder definiert, die angezeigt werden sollen.
(Nach Eingabe/Änderung manager-cache leeren!)
So wie oben ist die gleiche Ausgabe wie Standard.
Reihenfolge ändern: verfügbar nach vorne
<#assign customize={"resulttable":[
{"field":"name","caption":"Gliederung","width":14},
{"field":"verfuegbar","caption":"verfügbar","width":12,"explanation":"@@@fin_verfuegbar@@@"},
{"field":"akt_soll","caption":"Ansatz","width":15,"explanation":"Haushaltsansatz inkl.Einnahmen und Reste (Haushalterisch: Aktuelles Soll)"},
{"field":"einnahmen","caption":"Einnahmen","width":10},{"field":"aus","caption":"Ausgaben","width":10},{"field":"fest","caption":"Festgelegt","width":10}
]}/>
Will eine Hochschule zum verfügbar vorn stehen haben, und akt_soll gar nicht sehen, muss Eintrag so aussehen
<#assign customize={"resulttable":[
{"field":"name","caption":"Gliederung","width":14},
{"field":"verfuegbar","caption":"verfügbar","width":12,"explanation":"@@@fin_verfuegbar@@@"},
{"field":"einnahmen","caption":"Einnahmen","width":10},{"field":"aus","caption":"Ausgaben","width":10},{"field":"fest","caption":"Festgelegt","width":10}
]}/>
field ist Feldname in der tmp_erg-tabelle, caption Spaltenüberschrift, width für xil-proplist und explanation ggfs. auch
man muss genau auf richtige anzahl von { } , achten, sonst kommt beim Maskenaufruf interpretation error
im Masken-sql gegen Ende baut man ein
<#if CUSTOM_xxxxxx?exists>
<#assign inlineTemplate=CUSTOM_xxxxxx?interpret>
<@inlineTemplate/>
</#if>
wenn eine Hochschule ein custom_xxx angelegt hat, wird der Inhalt interpretiert und ein customize-Hash steht zur verfügung
Abschluss-select prüft also
<#if customize?exists> --customize existiert, abschluss select daraus aufbauen
select <#foreach f in customize.resulttable>
${f.field} <#if h_has_next>,</#if>
</#foreach>
from tmp_erg2 ;
<#else> -- kein customize objekt existiert, standard abschluss select
select name,akt_soll,einnahmen,ausgaben,verfügbar from tmp_erg;
</#if>
Für die XIL-Proplist muss es genauso laufen:
XIL List
--freemarker template
<#if CUSTOM_xxxx?exists>
<#assign inlineTemplate=CUSTOM_xxxx?interpret>
<@inlineTemplate/>
</#if>
<#if customize?exists>--wenn Hochschul-customizeobjekt exisit xil dynamisch aufbauen
<#foreach f in customize.resulttable>
Column CID=0 heading_text="${f.caption}" center_heading explanation="<#if f.explanation?exists>${f.explanation}</#if>"
row_selectable col_selectable heading_platform readonly width=${f.width}
</#foreach>
<#else> --standard xil list
Column CID=0 heading_text="Name explanation="" center_heading row_selectable col_selectable heading_platform readonly width=9 text_size=0
Column CID=0 heading_text="aktsoll explanation="" center_heading
row_selectable col_selectable
..
</#if>
complex, but coool, läuft schon mit 3/2010 superx4.0.jar
for the super nerds,
Technik kann man sogar mit eigenen freemarker funktionen verbinden, z.B. dynamsiche spalten nach customizing und Link-Spalten zur Einzelbuchungen nur anzeigen, wenn Rechte für Einzelbuchungen da sind
einfach aus dem Kontext
XIL
<#function isWanted field>
<#assign result=true>
<#if field?starts_with('linkbuch')&&Einzelbuchrecht?exists&&Einzelbuchrecht?is_number&&Einzelbuchrecht=0><#assign result=false/></#if>
<#if (field='einnahmen'||field?starts_with('linkbuchein')||field='offsoll_e'||field?starts_with('linkbuchoffsolle'))&&"<<Einnahmen anzeigen>>"="'nein'">
<#assign result=false/></#if>
<#return result>
<#if customize?exists>
<#foreach f in customize.resulttable>
<#if isWanted(f.field)>
Column CID=2 heading_text="${f.caption}" center_heading explanation="<#if f.explanation?exists>${f.explanation}</#if>"
row_selectable col_selectable heading_platform readonly width=${f.width}
</#if>
</#foreach>
<#else>
...
Druckversion HTML
![]() |
![]() ![]() |
Seite 90 / 190 Letzter Update: 29.1.2024 Impressum| Datenschutz |