Achtung: Diese Dokumentation ist veraltet, bitte rufen Sie die Übersichtsseite auf, um zur aktuellen Dokumentation zu gelangen.

2.4.10.4 dynamische Spaltenanzahl

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&gt;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&gt>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

Zur Superx-Homepage SuperX ist auch ein CampusSource-Projekt. Zur CampusSource-Homepage | Powered by FreeMarker Seite 90 / 190
Letzter Update: 29.1.2024
Impressum| Datenschutz