SuperX

KontaktMail für InfosSuchenLogin

Hochschulspezifische Einstellmöglichkeit

Ein Bericht sollte nur so viel Spalten haben wie maximal benötigt werden. In der Standardauslieferung werden alle Spalten gezeigt. Ein Beispiel für ein Standard-Schluss-select:

select name, akt_soll,einnahmen,aus,fest,verfuegbar from tmp_erg

Wenn eine Hochschule nicht alle Spalten oder die Spalten in einer anderen Reihenfolge sehen möchte, wird in x_repository eine Variable CUSTOM_XXXXXX (Maskennummer) angelegt, welche einen customize-Hash und in diesem die Felder, welche angezeigt werden sollen, definiert. field ist Feldname in der tmp_erg-tabelle, caption Spaltenüberschrift, width für xil-proplist und bei Bedarf kann auch explanation ergänzt werden:

<#assign customize={"resulttable":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@@@"}}/>

Dies wäre die gleich Ausgabe wie im Standard.

Nach Eingabe/Änderung den Manager-Chache leeren

Möchte eine Hochschule beispielsweise verfügbar weiter vorne stehen haben und akt_soll gar nicht sehen, wird der Eintrag folgendermaßen geändert:

<#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}
]}/>

Im Masken-sql gegen Ende baut man ein

<#if CUSTOM_xxxxxx?exists<#if CUSTOM_xxxxxx?exists>
<#assign inlineTemplate=CUSTOM_xxxxxx?interpret<#assign inlineTemplate=CUSTOM_xxxxxx?interpret>
<@inlineTemplate/>


Falls eine Hochschule ein custom_xxxxxx angelegt hat, wird der Inhalt interpretiert und ein customize-Hash steht zur Verfügung.Das Abschluss-select prüft also

<#if customize?exists<#if customize?exists>
select
<#foreach f in customize.resulttable<#foreach f in customize.resulttable>
${f.field} <#if h_has_next<#if h_has_next>,


from tmp_erg2 ;

<#else> -- kein customize objekt existiert, standard abschluss select

select name,akt_soll,einnahmen,ausgaben,fest,verfügbar from tmp_erg;

Für die XIL-Proplist muss es genauso laufen:

XIL List
--freemarker template
<#if CUSTOM_xxxx?exists<#if CUSTOM_xxxx?exists>
<#assign inlineTemplate=CUSTOM_xxxx?interpret<#assign inlineTemplate=CUSTOM_xxxx?interpret>
<@inlineTemplate/>


<#if customize?exists<#if customize?exists>
<#foreach f in customize.resulttable<#foreach f in customize.resulttable>
Column CID=0 heading_text="${f.caption}"   center_heading explanation="<#if f.explanation?exists<#if f.explanation?exists>${f.explanation}"

row_selectable col_selectable heading_platform readonly width=${f.width}

<#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
..

complex, but coool,

for the super nerds,

Technik kann man sogar mit eigenen Freemarker-Funktionen verbinden, z.B. dynamsiche Spalten nach customizing und Link-Spalten zur Einzelbuchung nur anzeigen, wenn Rechte für Einzelbuchungen da sind. Aus dem Kontext, XIL:

<#function isWanted field<#function isWanted field>
<#assign result=true<#assign result=true>
<#if field?starts_with('linkbuch')&&Einzelbuchrecht?exists&&Einzelbuchrecht?is_number&&Einzelbuchrecht=0<#if field?starts_with('linkbuch')&&Einzelbuchrecht?exists&&Einzelbuchrecht?is_number&&Einzelbuchrecht=0><#assign result=false/<#assign result=false/>

<#if (field='einnahmen'||field?starts_with('linkbuchein')||field='offsoll_e'||field?starts_with('linkbuchoffsolle'))&&"<>"="'nein'">

<#assign result=false/<#assign result=false/>

<#return result<#return result>
<#if customize?exists<#if customize?exists>
<#foreach f in customize.resulttable<#foreach f in customize.resulttable>
<#if isWanted(f.field)<#if isWanted(f.field)>
Column CID=2 heading_text="${f.caption}"   center_heading explanation="<#if f.explanation?exists<#if f.explanation?exists>${f.explanation}"

row_selectable col_selectable heading_platform readonly width=${f.width}


<#else>

...