Compare commits

..

2 Commits

  1. 14
      src-modules/module/rpta/conf/rpta.xml
  2. 2
      src-modules/module/rpta/masken/48430_felderinfo.unl
  3. 25
      src-modules/module/rpta/masken/48460_felderinfo.unl
  4. 1
      src-modules/module/rpta/masken/48460_maske_system_bez.unl
  5. 7
      src-modules/module/rpta/masken/48460_masken_felder_bez.unl
  6. 119
      src-modules/module/rpta/masken/48460_maskeninfo.unl
  7. 1
      src-modules/module/rpta/masken/48460_sachgeb_maske_bez.unl
  8. 40
      src-modules/module/rpta/masken/48490_felderinfo.unl
  9. 1
      src-modules/module/rpta/masken/48490_maske_system_bez.unl
  10. 18
      src-modules/module/rpta/masken/48490_masken_felder_bez.unl
  11. 258
      src-modules/module/rpta/masken/48490_maskeninfo.unl
  12. 1
      src-modules/module/rpta/masken/48490_sachgeb_maske_bez.unl
  13. 69
      src-modules/module/rpta/schluesseltabellen/bewerbungen_datenblatt_virtuell.sql
  14. 600
      src-modules/module/rpta/schluesseltabellen/finanzen_virtuell.sql
  15. 92
      src-modules/module/rpta/schluesseltabellen/rpta_column_layout__fin_einnahmen_dm_fuellen.sql
  16. 4
      src-modules/module/rpta/schluesseltabellen/sx_stylesheets_einfuegen.sql

14
src-modules/module/rpta/conf/rpta.xml

@ -390,7 +390,18 @@ parent="Berichtsassistent">Abfragen zur Administration von Berichtsassistent </t @@ -390,7 +390,18 @@ parent="Berichtsassistent">Abfragen zur Administration von Berichtsassistent </t
<path>$RPTA_PFAD/masken</path>
</src>
</maske>
<!--<maske tid="48140" name="Leistungen und Studiengänge (Makro)" thema="Berichtsassistent">
<maske tid="48460" name="Kontostände Finanzbuchhaltung" thema="Berichtsassistent">
<description></description>
<src>
<path>$RPTA_PFAD/masken</path>
</src>
</maske>
<maske tid="48490" name="Absolvierende nach Studiengang" thema="Berichtsassistent">
<description></description>
<src>
<path>$RPTA_PFAD/masken</path>
</src>
</maske> <!--<maske tid="48140" name="Leistungen und Studiengänge (Makro)" thema="Berichtsassistent">
<description>Leistungen und Studiengänge</description>
<src>
<path>$RPTA_PFAD/masken</path>
@ -701,6 +712,7 @@ mode="full"> @@ -701,6 +712,7 @@ mode="full">
<customfield name="uniquename" visibleSize="50" nullFieldValue="" />
<customfield name="resultset_id" visibleSize="50" nullFieldValue="" />
<customfield name="whereclause" visibleSize="50" nullFieldValue="" />
<customfield name="sortclause" visibleSize="50" nullFieldValue="" />
<customfield name="description" visibleSize="50" nullFieldValue="" />
<customfield name="sortnr" visibleSize="10" nullFieldValue="" />

2
src-modules/module/rpta/masken/48430_felderinfo.unl

@ -14,7 +14,7 @@ and R.systeminfo_id=130);^ @@ -14,7 +14,7 @@ and R.systeminfo_id=130);^
(select case when tid % 10 = 1 then tid+1 else tid+9 end from semester where today() between sem_beginn and sem_ende)) \
from semester \
where today() between sem_beginn and sem_ende;^
48432^Fächer^30^0^0^130^200^6^integer^1000^0^12^<<SQL>> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^
48432^Fächer^30^0^0^130^200^6^char^1000^0^12^<<SQL>> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^
48433^Abschluss^40^0^0^100^200^3^char^1500^0^12^<<SQL>> select tid,name,sortnr from sichten where art='SOS-Abschluss-Sicht' order by 3,2;^ ^ ^
48434^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^999^^ ^ ^
48435^Semestertyp^22^350^-1^140^80^1^integer^255^0^1^<<SQL>> select 1,'nur Sommersemester' from xdummy union select 2,'nur Wintersemester' from xdummy^ ^ ^

25
src-modules/module/rpta/masken/48460_felderinfo.unl

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
48460^Grafik^1000^300^-1^170^150^1^char^30^0^1^<<SQL>> select uniquename, caption from viz_chart where maskeninfo_id=48460 order by 2;^ ^<<SQL>> select uniquename, caption from viz_chart where maskeninfo_id=48460 order by 2 limit 1;^
48461^Org. Einheit^1^0^0^150^200^1^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art='FIN-Kostenstellen-Sicht' and aktiv=1 order by sortnr;^^^
48462^Haushaltsjahr (HHJ)^2^0^0^100^50^1^integer^30^0^1^<<SQL>> SELECT distinct ord,name FROM aggregierung where kategorie='FIN-Jahr' order by 1;^^ ^
48463^Bis Semester^4^350^-1^140^80^1^integer^30^0^1^<<SQL>> --freemarker template \
select tid, eintrag from semester \
<#if K_VIZ_ZEITR_SEM_ANZ?exists>\
where sem_beginn >= today()-(182*${K_VIZ_ZEITR_SEM_ANZ} )\
</#if>\
and sem_beginn <=today()\
order by tid DESC;^hidden^ ^
48464^tablestylesheet^150^0^0^100^100^1^char^255^1^1^<<SQL>> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=48460 order by ord^ ^<<SQL>> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=48460 order by ord limit 1^
48466^Spaltenlayout^3000^350^-1^140^180^1^char^30^1^1^<<SQL>>SELECT uniquename,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='fin_konto_aggr_gege'\
and R.systeminfo_id=3)\
order by sortnr, caption\
;^^<<SQL>> SELECT uniquename,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='fin_konto_aggr_gege'\
and R.systeminfo_id=3)\
order by sortnr, caption\
;^
48468^Schlüssel anzeigen^150^0^0^100^100^1^integer^30^0^1^<<SQL>> select 1,'Ja' from xdummy union select 0,'Nein' from xdummy^hidden^<<SQL>> select 1,'Ja' from xdummy^

1
src-modules/module/rpta/masken/48460_maske_system_bez.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
48460^200^

7
src-modules/module/rpta/masken/48460_masken_felder_bez.unl

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
48460^48460^
48460^48461^
48460^48462^
48460^48463^
48460^48464^
48460^48466^
48460^48468^

119
src-modules/module/rpta/masken/48460_maskeninfo.unl

@ -0,0 +1,119 @@ @@ -0,0 +1,119 @@
48460^Kontostände Finanzbuchhaltung^--Freemarker Template\
<#include "SQL_lingua_franca"/>\
<#include "SuperX_general"/>\
--\
--Autor D. Quathamer 2024\
<sqlvars>\
<sqlvar name="my_base_rs"><![CDATA[\
select R.uniquename\
from rpta_resultset R, rpta_column_layout L\
where L.resultset_id=R.tid\
and L.uniquename=<<Spaltenlayout>>;]]>\
</sqlvar>\
<sqlvar name="basetable" type="hash"><![CDATA[\
SELECT distinct T.name,\
R.is_virtual,\
name as runtime_tablename\
from sx_tables T, rpta_resultset R \
where T.name=R.uniquename\
and T.name='${my_base_rs}'\
and R.is_virtual=0\
\
union\
select R.uniquename,\
R.is_virtual,\
'tmp_' || R.uniquename as runtime_tablename\
from rpta_resultset R where R.uniquename='${my_base_rs}'\
and R.is_virtual=1\
;\
]]>\
</sqlvar>\
<sqlvar name="rpta_resultset" type="hash"><![CDATA[\
select caption,\
uniquename,\
fieldclause,\
joinclause,\
whereclause,\
systeminfo_id\
from rpta_resultset\
where uniquename='${basetable.name}';\
\
]]></sqlvar>\
<sqlvar name="rpta_column_layout" type="hash"><![CDATA[\
select L.uniquename,\
L.caption,\
L.whereclause,\
R.is_virtual,\
L.sortclause\
from rpta_resultset R, rpta_column_layout L\
where L.resultset_id=R.tid\
and R.uniquename='${basetable.name}'\
and L.uniquename=<<Spaltenlayout>>;\
\
]]></sqlvar>\
<sqlvar name="columns" type="hashsequence"><![CDATA[\
SELECT C.srcfieldname,\
(case when string_not_null(C.targetfieldname)='' then C.srcfieldname else C.targetfieldname end) as targetfieldname,\
T.uniquename as coltype,\
C.is_aggregate,\
(case when string_not_null(CL.caption)='' then C.caption else CL.caption end) as caption,\
CL.is_visible,\
CL.visible_size as visible_width,\
F.sql_code as format_sql,\
F.uniquename as format_uniquename,\
C.col_function as colfunction,\
(case when string_not_null(CL.description)='' then C.description else CL.description end) as description\
FROM rpta_column_layout L, rpta_column C, rpta_column_type T,rpta_column2layout CL \
left outer join rpta_format_code F on (F.tid=CL.format_code_id)\
where L.tid=CL.layout_id\
and C.tid=CL.column_id\
and T.tid=C.column_type\
and L.uniquename=<<Spaltenlayout>>\
/* and C.uniquename in (<<Spalten>>) */\
order by CL.sortnr\
;\
]]></sqlvar>\
<sqlvar name="jahr_filter" ><![CDATA[\
select max(rechnungsjahr) from fin_konto_aggr\
where 1=1\
/* and rechnungsjahr <=<<Haushaltsjahr (HHJ)>> */\
/* and rechnungsjahr<=get_akad_jahr(<<Bis Semester>>,'A') */\
;\
]]></sqlvar>\
</sqlvars>\
\
\
<#assign filter="fin_konto_aggr.rechnungsjahr BETWEEN ("+jahr_filter+"-4) AND "+jahr_filter />\
\
<#if columns?has_content>\
\
<#if basetable.is_virtual==1>\
\
create temp table ${basetable.runtime_tablename} as\
select ${rpta_resultset.fieldclause} \
from ${rpta_resultset.joinclause} \
where 1=1\
<#if rpta_resultset.whereclause != ""> \
${rpta_resultset.whereclause} </#if>\
and ${filter}\
;\
</#if>\
\
\
<@rpta_interpret_column_layout nonvirtualTableFilter=filter/>\
\
\
</#if> --wenn columns?has_content^--Freemarker Template\
XIL List\
sizable_columns horizontal_scrolling\
drop_and_delete movable_columns \
white_space_color=COLOR_WHITE fixed_columns=1\
min_heading_height=55\
<#foreach column in columns>\
<#if column.is_visible!=0>\
Column CID=0 heading_text="${column.caption}" center_heading explanation="${column.description}"\
row_selectable heading_platform readonly\
width=${column.visible_width} text_size=60\
</#if>\
</#foreach>\
@@@^^^Einnahmen / Ausgaben nach Geldgeber^drop table if exists tmp_stud2; drop table if exists tmp_stud3;^^1^600^360^0^^<<SQL>>SELECT description FROM rpta_column_layout where tid=<<Spaltenlayout>>;^

1
src-modules/module/rpta/masken/48460_sachgeb_maske_bez.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
50^48460^

40
src-modules/module/rpta/masken/48490_felderinfo.unl

@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
48490^Köpfe oder Fälle ?^0^0^0^140^150^1^sql^70^0^1^<<SQL>> select apnr, eintrag from koepfe_oder_faelle order by 2^ ^<<SQL>> select apnr, eintrag from koepfe_oder_faelle where eintrag='Fälle';^
48491^Seit Semester^3^0^0^140^80^1^integer^30^0^1^<<SQL>> --freemarker template \
select tid, eintrag from semester \
<#if K_VIZ_ZEITR_SEM_ANZ?exists>\
where sem_beginn >= today()-(182*${K_VIZ_ZEITR_SEM_ANZ} )\
</#if>\
and sem_beginn <=today()\
order by tid DESC;^Eintrag^<<SQL>> select tid,eintrag from semester where today()-(4*365) between sem_beginn and sem_ende;^
48492^Stichtag^1^350^-1^140^100^1^sql^30^0^13^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Prüfungen';^^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Prüfungen' and appl_key='2';^
48493^Staatsangehörigkeit^36^0^0^130^150^10^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art='SOS-Staaten-Sicht' order by 3,2;^hidden^^
48494^Prüfungsstatus^13^0^0^140^70^1^char^30^0^1^<<SQL>> select apnr,druck from sos_k_pstatus;^^<<SQL>> select apnr,druck from sos_k_pstatus where apnr='BE';^
48495^Fächer^9^0^0^130^150^6^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^^^
48497^bis Fachsemester^35^350^-1^140^100^1^integer^30^0^13^^^^
48499^Bis Semester^4^350^-1^140^80^1^integer^30^0^1^<<SQL>> --freemarker template \
select tid, eintrag from semester \
<#if K_VIZ_ZEITR_SEM_ANZ?exists>\
where sem_beginn >= today()-(182*${K_VIZ_ZEITR_SEM_ANZ} )\
</#if>\
and sem_beginn <=today()\
order by tid DESC;^Eintrag^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
48501^Geschlecht^37^0^0^140^80^1^integer^30^0^1^<<SQL>> SELECT apnr,druck FROM cif where key = 9003 and apnr between 1 and 4 order by 1;^^^
48503^Studiengang^6^0^0^140^150^50^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art in ('SOS-Kostenstellen-Sicht', 'SOS-Studiengang-Sicht') order by 3,2;^^^
48504^Jahr^110^0^0^140^80^1^integer^30^0^13^ ^ ^ ^
48505^tablestylesheet^150^0^0^100^100^1^char^255^1^1^<<SQL>> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=48490 order by ord,2^ ^<<SQL>> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=48490 order by ord,2 limit 1^
48508^Spaltenlayout^3000^350^-1^140^180^1^char^30^1^1^<<SQL>>SELECT uniquename,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='rpta_sos_lab_aggr'\
and R.systeminfo_id=7)\
order by sortnr, caption\
;^^<<SQL>>SELECT uniquename,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='rpta_sos_lab_aggr'\
and R.systeminfo_id=7) and uniquename='rpta_sos_lab_aggr_sem';^
48509^Semestertyp^5^350^-1^140^80^1^integer^255^0^1^<<SQL>> select 1,'nur Sommersemester' from xdummy union select 2,'nur Wintersemester' from xdummy^Eintrag^ ^
48510^##line##^30^0^0^100^100^1^char^5000^0^8^^^1^
48511^Abschluss^7^0^0^100^200^3^char^1500^0^12^<<SQL>> select tid,name,sortnr from sichten where art='SOS-Abschluss-Sicht' order by 3,2;^ ^ ^
48512^Matrikel-Nr.^20^350^-1^150^180^1^char^200^0^13^^{InputCheck:matrikelnummern}^^
48513^##line##^40^0^0^100^100^1^char^5000^0^8^^^1^

1
src-modules/module/rpta/masken/48490_maske_system_bez.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
48490^7^

18
src-modules/module/rpta/masken/48490_masken_felder_bez.unl

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
48490^48490^
48490^48491^
48490^48492^
48490^48493^
48490^48494^
48490^48495^
48490^48497^
48490^48499^
48490^48501^
48490^48503^
48490^48504^
48490^48505^
48490^48508^
48490^48509^
48490^48510^
48490^48511^
48490^48512^
48490^48513^

258
src-modules/module/rpta/masken/48490_maskeninfo.unl

@ -0,0 +1,258 @@ @@ -0,0 +1,258 @@
48490^Absolvierende nach Studiengang^--Freemarker Template\
<#include "SQL_lingua_franca"/>\
<#include "SuperX_general"/>\
--\
--Autor D. Quathamer 2024\
<sqlvars>\
<sqlvar name="my_base_rs"><![CDATA[\
select R.uniquename\
from rpta_resultset R, rpta_column_layout L\
where L.resultset_id=R.tid\
and L.uniquename=<<Spaltenlayout>>;]]>\
</sqlvar>\
<sqlvar name="basetable" type="hash"><![CDATA[\
SELECT distinct name,\
0::smallint as is_virtual,\
name as runtime_tablename\
from sx_tables\
where name in ('${my_base_rs}')\
and 0=(select count(*) from rpta_resultset R where R.uniquename='${my_base_rs}')\
union\
select R.uniquename,\
1::smallint as is_virtual,\
'tmp_' || R.uniquename as runtime_tablename\
from rpta_resultset R where R.uniquename='${my_base_rs}'\
;\
]]>\
</sqlvar>\
<sqlvar name="rpta_resultset" type="hash"><![CDATA[\
select caption,\
uniquename,\
fieldclause,\
joinclause,\
whereclause,\
systeminfo_id\
from rpta_resultset\
where uniquename='${basetable.name}';\
\
]]></sqlvar>\
<sqlvar name="rpta_column_layout" type="hash"><![CDATA[\
select L.uniquename,\
L.caption,\
L.whereclause\
from rpta_resultset R, rpta_column_layout L\
where L.resultset_id=R.tid\
and R.uniquename='${basetable.name}'\
and L.uniquename=<<Spaltenlayout>>;\
\
]]></sqlvar>\
<sqlvar name="columns" type="hashsequence"><![CDATA[\
SELECT C.srcfieldname,\
(case when string_not_null(C.targetfieldname)='' then C.srcfieldname else C.targetfieldname end) as targetfieldname,\
T.uniquename as coltype,\
C.is_aggregate,\
(case when string_not_null(CL.caption)='' then C.caption else CL.caption end) as caption,\
CL.is_visible,\
CL.visible_size as visible_width,\
(select F.sql_code from rpta_format_code F where F.tid=CL.format_code_id) as format_sql,\
C.col_function as colfunction,\
(case when string_not_null(CL.description)='' then C.description else CL.description end) as description\
FROM rpta_column_layout L, rpta_column2layout CL, rpta_column C, rpta_column_type T\
where L.tid=CL.layout_id\
and C.tid=CL.column_id\
and T.tid=C.column_type\
and L.uniquename=<<Spaltenlayout>>\
/* and C.uniquename in (<<Spalten>>) */\
order by CL.sortnr\
;\
]]></sqlvar>\
<sqlvar name="endsemester"><![CDATA[\
SELECT max(tid)\
from semester \
where 1=1\
/* and tid >= <<Seit Semester>> */\
/* and tid <= <<Bis Semester>> */\
<#if "<<Semestertyp>>"="1" || "<<Semestertyp>>"="2">\
and substring('' || tid from 5 for 1)='<<Semestertyp>>'\
</#if>\
;\
\
]]></sqlvar>\
</sqlvars>\
\
<#assign jahr_param="" />\
<#assign jahr_filter="1=1" />\
/* <#assign jahr_param="<<Jahr>>" /> */\
--Akad. Jahr 2022: WS + SS - Beispiel: WS 22/23 + SS 2023\
<#if jahr_param !="">\
<#assign jahr_filter="(" />\
<#assign jahr_filter=jahr_filter + "(substring('' || sem_der_pruefung from 5 for 1)='2' and val(substring('' || sem_der_pruefung from 1 for 4))="+jahr_param+")" />\
<#assign jahr_filter=jahr_filter + " or "/>\
<#assign jahr_filter=jahr_filter + "(substring('' || sem_der_pruefung from 5 for 1)='1' and (val(substring('' || sem_der_pruefung from 1 for 4))-1)="+jahr_param+")" />\
<#assign jahr_filter=jahr_filter + ")" />\
</#if>\
\
<#assign semester_filter ="1=1\
/* and sem_der_pruefung >= <<Seit Semester>> */\
/* and sem_der_pruefung <= <<Bis Semester>> */\
" />\
<#if "<<Semestertyp>>"="1" || "<<Semestertyp>>"="2">\
<#assign semester_filter = semester_filter+ " and substring('' || sem_der_pruefung from 5 for 1)='<<Semestertyp>>'" />\
</#if>\
<#if "<<Nur Endsemester>>"="1">\
--nur Endsemester\
<#assign semester_filter = semester_filter+ " and 1=1 and sem_der_pruefung = "+endsemester /> \
</#if>\
\
<#assign filter="<<Köpfe oder Fälle ?>>\
/* and sem_der_pruefung = <<Semester>> */\
/* and stichtag = <<Stichtag>> */\
/* and geschlecht = <<Geschlecht>> */\
/* and fach_sem_zahl <= <<bis Fachsemester>> */\
/* and substring('' || sem_der_pruefung from 5 for 1)='<<Semestertyp>>' */\
/* and pstatus=<<Prüfungsstatus>> */\
" />\
\
<#assign filter= filter + " and " + jahr_filter />\
\
<#assign filter= filter + " and " + semester_filter />\
\
\
<#assign filter = filter + " and 's_' || tid_stg in "+Studiengang.allNeededKeysList /> \
/* <#assign filter = filter + " and '' || ca12_staat in "+Staatsangehörigkeit.allNeededKeysList /> --<<Staatsangehörigkeit>> */\
/* <#assign filter = filter + " and tid_stg in (select L2.tid from lehr_stg_ab L2 where L2.stg in "+Fächer.allNeededKeysList +")" /> --<<Fächer>> */\
/* <#assign filter = filter + " and tid_stg in (select L2.tid from lehr_stg_ab L2 where L2.abschluss in "+Abschluss.allNeededKeysList +")" /> --<<Abschluss>> */\
\
<#if columns?has_content>\
\
<#if basetable.is_virtual==1>\
\
create temp table ${basetable.runtime_tablename} as\
select ${rpta_resultset.fieldclause} \
from ${rpta_resultset.joinclause} \
where 1=1\
<#if rpta_resultset.whereclause != ""> \
${rpta_resultset.whereclause} </#if>\
and ${filter}\
;\
</#if>\
\
\
\
select \
--zuerst die Basisdaten:\
<#foreach column in columns>\
<#if column.coltype="physicalColumn">\
${column.srcfieldname},\
<#elseif column.coltype="logicalColumn">\
${column.colfunction} as ${column.targetfieldname},\
<#elseif column.coltype="lookupColumn">\
(${column.colfunction}) as ${column.targetfieldname},\
<#elseif column.coltype="computedColumn">\
null::decimal(19,6) as ${column.targetfieldname},\
</#if>\
</#foreach>\
null::char(1) as dummycol\
into temp tmp_stud\
from ${basetable.runtime_tablename}\
<#if rpta_column_layout.whereclause !="">\
where ${rpta_column_layout.whereclause}\
</#if>\
;\
\
\
--ergebnistabelle:\
select \
--zuerst die nicht-Aggregate:\
<#assign groupby=0 />\
<#foreach column in columns>\
<#if column.is_aggregate==0>\
<#assign groupby=groupby+1 />\
${column.targetfieldname},\
</#if>\
</#foreach>\
--dann die Aggregate:\
<#foreach column in columns>\
<#if column.is_aggregate==1 && column.coltype!="computedColumn">\
sum(${column.targetfieldname}) as ${column.targetfieldname},\
</#if>\
</#foreach>\
null::char(1) as dummycol\
into temp tmp_stud2\
from tmp_stud\
where 1=1\
/* ${<<Zusatzfilter>>} */\
group by\
<#list 1..groupby as i>${i}\
<#if i != groupby>\
,\
</#if>\
</#list>\
;\
--für Prozentwerte alle Aggregate summieren:\
select <#foreach column in columns>\
<#if column.is_aggregate==1 && column.coltype!="computedColumn">\
sum(${column.targetfieldname})::float as ${column.targetfieldname},\
</#if>\
</#foreach>\
null::char(1) as dummycol\
into temp tmp_gesamt\
from tmp_stud2\
where 1=1\
;\
\
<#assign number_of_visible_colums=0 />\
<#foreach column in columns>\
<#if column.is_visible!=0>\
<#assign number_of_visible_colums=number_of_visible_colums+1 />\
</#if>\
</#foreach>\
<#assign colnr=0 />\
select \
<#foreach column in columns>\
<#if column.is_visible!=0>\
<#assign colnr=colnr+1 />\
<#assign format_sql="" />\
<#if column.format_sql?string != "">\
<#assign format_sql=column.format_sql />\
</#if>\
\
<#if column.coltype=="computedColumn">\
(${column.colfunction})${format_sql} as ${column.targetfieldname}\
<#else>\
${column.targetfieldname}${format_sql} as ${column.targetfieldname}\
</#if>\
\
<#if colnr &lt; number_of_visible_colums>,</#if>\
</#if> --wenn sichtbar\
</#foreach>\
from tmp_stud2\
order by <#list 1..number_of_visible_colums as i>${i}\
<#if i != number_of_visible_colums>\
,\
</#if>\
</#list>\
;\
<#if basetable.is_virtual==1>\
drop table if exists ${basetable.runtime_tablename};\
</#if>\
\
\
drop table if exists tmp_stud;\
drop table if exists tmp_gesamt;\
\
\
</#if> --wenn columns?has_content^--Freemarker Template\
XIL List\
sizable_columns horizontal_scrolling\
drop_and_delete movable_columns \
white_space_color=COLOR_WHITE fixed_columns=1\
min_heading_height=55\
<#foreach column in columns>\
<#if column.is_visible!=0>\
Column CID=0 heading_text="${column.caption}" center_heading explanation="${column.description}"\
row_selectable heading_platform readonly\
width=${column.visible_width} text_size=60\
</#if>\
</#foreach>\
@@@^Altersgruppe^Anzahl^Studienanfänger_innen als Zeitreihe, nach Gesschlecht und Fakultät in verschiedenen Visualisierungen^drop table if exists tmp_stud2; drop table if exists tmp_stud3;^^3^700^360^0^1^^

1
src-modules/module/rpta/masken/48490_sachgeb_maske_bez.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
16^48490^

69
src-modules/module/rpta/schluesseltabellen/bewerbungen_datenblatt_virtuell.sql

@ -9,6 +9,23 @@ select name @@ -9,6 +9,23 @@ select name
</sqlvar>
<sqlvar name="added_tables" type="hashsequence">
select 10::smallint as sortnr,
name, trim(name) ||'_' as prefix,
caption,
'zul_antr_aggr.stg=zul_k_stg.apnr' as joinclause
from sx_tables where name in ('zul_k_stg')
union
select 20::smallint as sortnr,
name, trim(name) ||'_' as prefix,
caption,
'zul_antr_aggr.abschl=zul_k_abint.apnr' as joinclause
from sx_tables where name in ('zul_k_abint')
union
select 30::smallint as sortnr,
name, trim(name) ||'_' as prefix,
caption,
'zul_antr_aggr.stort=zul_k_stort.apnr' as joinclause
from sx_tables where name in ('zul_k_stort')
</sqlvar>
<sqlvar name="fields_target" type="hashsequence"><![CDATA[
@ -74,23 +91,37 @@ foreignkey_uniquename VARCHAR(255) @@ -74,23 +91,37 @@ foreignkey_uniquename VARCHAR(255)
--Vorbereitung:
-- UPDATE sx_tables
-- SET caption = 'Institution'
-- WHERE name='man_organigramm';
-- UPDATE sx_tables
-- SET caption = 'Studienart'
-- WHERE name = 'sos_k_stuart';
-- UPDATE sx_tables
-- SET caption = 'Studiumstyp'
-- WHERE name = 'sos_k_stutyp';
-- UPDATE sx_tables
-- SET caption = 'Studienform'
-- WHERE name = 'sos_k_stufrm';
-- UPDATE sx_tables
-- SET caption = 'Hörerstatus'
-- WHERE name = 'sos_k_hrst';
UPDATE sx_tables
SET caption = 'Abschlüsse'
WHERE name='zul_k_abint';
update sx_fields set caption='Schlüssel Abschluss'
where table_name='zul_k_abint'
and name='apnr';
update sx_fields set caption='Bezeichnung Abschluss'
where table_name='zul_k_abint'
and name='druck';
update sx_fields set caption='Amtlicher Schlüssel Abschluss'
where table_name='zul_k_abint'
and name='astat';
update sx_fields set currentlyused=0
where table_name='zul_k_abint'
and name='tid';
UPDATE sx_tables
SET caption = 'Standorte'
WHERE name='zul_k_stort';
update sx_fields set caption='Schlüssel Standort'
where table_name='zul_k_stort'
and name='apnr';
update sx_fields set caption='Bezeichnung Standort'
where table_name='zul_k_stort'
and name='druck';
update sx_fields set caption='Kurztext Abschluss'
where table_name='zul_k_stort'
and name='kurz';
update sx_fields set currentlyused=0
where table_name='zul_k_stort'
and name='tid';
--drop view if exists sos_stud_astat;
@ -99,11 +130,11 @@ foreignkey_uniquename VARCHAR(255) @@ -99,11 +130,11 @@ foreignkey_uniquename VARCHAR(255)
update sx_fields set
is_sum=0
where table_name='zul_antr_aggr'
and name not in ('value','value1','value2');
and name not in ('summe');
update sx_fields set
is_sum=1
where table_name='zul_antr_aggr'
and name in ('value','value1','value2');
and name in ('summe');
insert into tmp_tables (

600
src-modules/module/rpta/schluesseltabellen/finanzen_virtuell.sql

@ -0,0 +1,600 @@ @@ -0,0 +1,600 @@
--freemarker template
<sqlvars>
<sqlvar name="fin_konto_aggr_exists">
select sp_table_exists('fin_konto_aggr') from xdummy;
</sqlvar>
<sqlvar name="fact_table_source">
select name
from sx_tables where name ='fin_konto_aggr'
</sqlvar>
<sqlvar name="added_tables" type="hashsequence"><![CDATA[
--Vorbereitung:
UPDATE sx_tables
SET caption = 'Kontostände'
WHERE name='fin_konto_aggr';
UPDATE sx_tables
SET caption = 'Geldgeber'
WHERE name='fin_geldgeber';
select 1::smallint as sortnr,
name, trim(name) ||'_' as prefix,
caption,
'fin_geldgeber.ggnr=fin_konto_aggr.titelgruppe_gege' as joinclause
from sx_tables where name in ('fin_geldgeber')
]]></sqlvar>
<sqlvar name="fields_target" type="hashsequence"><![CDATA[
<#if fact_table_source?exists>
select tid, table_name,
name,
name as targetname
from sx_fields where table_name ='${fact_table_source}'
and currentlyused=1
and name in ('dritt','rechnungsjahr','buchungsab_fb','titelgruppe_gege','einnahmen_dr','ausgaben_dr','ch110_institut','fikr')
union
</#if>
select tid,table_name,
name,
'fin_geldgeber_' || name as targetname
from sx_fields where table_name ='fin_geldgeber'
and currentlyused=1
and name in ('ggnr','ggdruck')
]]>
</sqlvar>
</sqlvars>
<#if fin_konto_aggr_exists==1 && fact_table_source?exists >
<#assign fact_table_target = {"name":"fin_konto_aggr_gege", "caption":"Einnahmen/Ausgaben nach Geldgeber"}
/>
CREATE temp table tmp_tables(
name CHAR(255) ,
caption CHAR(255) ,
description CHAR(255) ,
table_type CHAR(255) ,
systeminfo_id INTEGER ,
systeminfo_orig INTEGER ,
thema CHAR(255) ,
sachgebiete_id CHAR(255)
);
CREATE temp TABLE tmp_fields(
tid serial NOT NULL,
table_name VARCHAR(255) not null,
name VARCHAR(255) not null,
caption VARCHAR(255) ,
description VARCHAR(255) ,
field_type VARCHAR(255) not null,
field_size VARCHAR(255) ,
field_not_null smallint,
currentlyused SMALLINT ,
is_primarykey SMALLINT default 0 ,
foreignkey_tab VARCHAR(255) ,
foreignkey_col VARCHAR(255) ,
foreignkey_int VARCHAR(255) ,
foreignkey_cap VARCHAR(255) ,
foreignkey_cond VARCHAR(255) ,
foreignkey_func VARCHAR(255) ,
check_integrity SMALLINT,
is_sum SMALLINT default 1,
foreignkey_uniquename VARCHAR(255)
);
update sx_fields set
is_sum=0
where table_name='fin_konto_aggr'
and name not in ('hhans_tit',
'hhans_dr',
'verfuegbar_tit',
'verfuegbar_dr',
'verfuegbar_geld',
'akt_soll_tit',
'akt_soll_dr',
'sperr_tit',
'sperr_dr',
'reste_tit',
'reste_dr',
'vojs_tit',
'vojs_dr',
'angeordneta_tit',
'angeordneta_dr',
'angeordnete_tit',
'angeordnete_dr',
'festgelegt_tit',
'festgelegt_dr',
'bewegungen',
'ausz_dr',
'ausz_tit',
'ausgaben_dr',
'ausgaben_tit',
'ein_dr',
'ein_tit',
'einnahmen_dr',
'einnahmen_tit',
'ein_a',
'ein_e',
'soll_tit',
'soll_dr',
'offsoll_a_tit',
'offsoll_a_dr',
'offsoll_e_tit',
'offsoll_e_dr',
'offsolle_ohneaa',
'bewill_f_s',
'bewill_f_h',
'bewill_f_sa',
'bewill_f_ab_s',
'bewill_f_ab_h',
'bewill_f_ab_sa',
'bewill_f_u_s',
'bewill_f_u_h',
'bewill_f_u_sa',
'bewill_g_s',
'bewill_g_h',
'bewill_g_sa',
'bewill_g_ab_s',
'bewill_g_ab_h',
'bewill_g_ab_sa',
'bewill_g_u_s',
'bewill_g_u_h',
'bewill_g_u_sa',
'forder_f_s',
'forder_f_h',
'forder_f_sa',
'forder_f_ab_s',
'forder_f_ab_h',
'forder_f_ab_sa',
'forder_f_u_s',
'forder_f_u_h',
'forder_f_u_sa',
'forder_g_s',
'forder_g_h',
'forder_g_sa',
'forder_g_ab_s',
'forder_g_ab_h',
'forder_g_ab_sa',
'forder_g_u_s',
'forder_g_u_h',
'forder_g_u_sa',
'geldbestand_s',
'geldbestand_h',
'geldbestand_sa',
'einzahl_f_s',
'einzahl_f_h',
'einzahl_f_sa',
'einzahl_g_s',
'einzahl_g_h',
'einzahl_g_sa',
'auszahl_s',
'auszahl_h',
'auszahl_sa',
'verbind_s',
'verbind_h',
'verbind_sa',
'verbind_ab_s',
'verbind_ab_h',
'verbind_ab_sa',
'verbind_u_s',
'verbind_u_h',
'verbind_u_sa',
'verpflicht_s',
'verpflicht_h',
'verpflicht_sa',
'verpflicht_ab_s',
'verpflicht_ab_h',
'verpflicht_ab_sa',
'verpflicht_u_s',
'verpflicht_u_h',
'verpflicht_u_sa');
update sx_fields set
is_sum=1
where table_name='fin_konto_aggr'
and name in ('hhans_tit',
'hhans_dr',
'verfuegbar_tit',
'verfuegbar_dr',
'verfuegbar_geld',
'akt_soll_tit',
'akt_soll_dr',
'sperr_tit',
'sperr_dr',
'reste_tit',
'reste_dr',
'vojs_tit',
'vojs_dr',
'angeordneta_tit',
'angeordneta_dr',
'angeordnete_tit',
'angeordnete_dr',
'festgelegt_tit',
'festgelegt_dr',
'bewegungen',
'ausz_dr',
'ausz_tit',
'ausgaben_dr',
'ausgaben_tit',
'ein_dr',
'ein_tit',
'einnahmen_dr',
'einnahmen_tit',
'ein_a',
'ein_e',
'soll_tit',
'soll_dr',
'offsoll_a_tit',
'offsoll_a_dr',
'offsoll_e_tit',
'offsoll_e_dr',
'offsolle_ohneaa',
'bewill_f_s',
'bewill_f_h',
'bewill_f_sa',
'bewill_f_ab_s',
'bewill_f_ab_h',
'bewill_f_ab_sa',
'bewill_f_u_s',
'bewill_f_u_h',
'bewill_f_u_sa',
'bewill_g_s',
'bewill_g_h',
'bewill_g_sa',
'bewill_g_ab_s',
'bewill_g_ab_h',
'bewill_g_ab_sa',
'bewill_g_u_s',
'bewill_g_u_h',
'bewill_g_u_sa',
'forder_f_s',
'forder_f_h',
'forder_f_sa',
'forder_f_ab_s',
'forder_f_ab_h',
'forder_f_ab_sa',
'forder_f_u_s',
'forder_f_u_h',
'forder_f_u_sa',
'forder_g_s',
'forder_g_h',
'forder_g_sa',
'forder_g_ab_s',
'forder_g_ab_h',
'forder_g_ab_sa',
'forder_g_u_s',
'forder_g_u_h',
'forder_g_u_sa',
'geldbestand_s',
'geldbestand_h',
'geldbestand_sa',
'einzahl_f_s',
'einzahl_f_h',
'einzahl_f_sa',
'einzahl_g_s',
'einzahl_g_h',
'einzahl_g_sa',
'auszahl_s',
'auszahl_h',
'auszahl_sa',
'verbind_s',
'verbind_h',
'verbind_sa',
'verbind_ab_s',
'verbind_ab_h',
'verbind_ab_sa',
'verbind_u_s',
'verbind_u_h',
'verbind_u_sa',
'verpflicht_s',
'verpflicht_h',
'verpflicht_sa',
'verpflicht_ab_s',
'verpflicht_ab_h',
'verpflicht_ab_sa',
'verpflicht_u_s',
'verpflicht_u_h',
'verpflicht_u_sa');
insert into tmp_tables (
name,
caption,
description,
table_type,
systeminfo_id,
thema,
sachgebiete_id
)
select
'${fact_table_target.name}',
'${fact_table_target.caption}',
description,
table_type,
systeminfo_id,
thema,
sachgebiete_id
from sx_tables where name='${fact_table_source}'
;
insert into tmp_fields (table_name,
name,
caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename)
select '${fact_table_target.name}' as table_name,
name,
caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename
from sx_fields where table_name ='${fact_table_source}'
and currentlyused=1;
<#foreach added_table in added_tables>
insert into tmp_fields (table_name,
name,
caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename)
select '${fact_table_target.name}' as table_name,
'${added_table.prefix}' || name,
'${added_table.caption}: ' || caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename
from sx_fields where table_name ='${added_table.name}'
and currentlyused=1;
</#foreach>
CREATE temp TABLE tmp_rpta_resultset
(
caption varchar(255),
uniquename varchar(255),
fieldclause text,
joinclause text,
whereclause text,
systeminfo_id integer
);
insert into tmp_rpta_resultset(caption,
uniquename,
systeminfo_id)
select '${fact_table_target.caption}',
'${fact_table_target.name}',
3
;
update tmp_rpta_resultset set fieldclause='
<#foreach field_target in fields_target>
${field_target.table_name}.${field_target.name} as ${field_target.targetname},
</#foreach>
null::varchar as dummy',
joinclause='${fact_table_source}
<#foreach added_table in added_tables>
left outer join ${added_table.name} on (${added_table.joinclause})
</#foreach>';
select * into temp tmp_rs1
from rpta_resultset
;
update rpta_resultset set caption=T.caption,
fieldclause=T.fieldclause,
joinclause=T.joinclause,
whereclause=T.whereclause
from tmp_rpta_resultset T
where T.systeminfo_id=rpta_resultset.systeminfo_id
and T.uniquename=rpta_resultset.uniquename
;
insert into rpta_resultset(caption,
uniquename,
fieldclause,
joinclause,
whereclause,
systeminfo_id)
select caption,
uniquename,
fieldclause,
joinclause,
whereclause,
systeminfo_id
from tmp_rpta_resultset
where 0=(select count(*)
from tmp_rs1 T
where T.systeminfo_id=tmp_rpta_resultset.systeminfo_id
and T.uniquename=tmp_rpta_resultset.uniquename)
;
drop table tmp_rpta_resultset;
drop table tmp_rs1;
delete from sx_tables where name
in (select T.name from tmp_tables T);
insert into sx_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id)
select name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id
from tmp_tables;
delete from sx_fields where table_name
in (select T.table_name from tmp_fields T);
insert into sx_fields (table_name,name,caption,description,field_type,
field_size,
field_not_null,
currentlyUsed,
foreignkey_tab,
foreignkey_col,
foreignkey_cap,
foreignkey_int,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename
)
select
F.table_name,F.name,F.caption,F.description,F.field_type,
F.field_size,
F.field_not_null,
F.currentlyUsed,
F.foreignkey_tab,
F.foreignkey_col,
F.foreignkey_cap,
F.foreignkey_int,
F.foreignkey_cond,
F.foreignkey_func,
F.check_integrity,
F.is_sum,
F.foreignkey_uniquename
from tmp_fields F;
drop table tmp_fields;
drop table tmp_tables;
--rpta_column füllen:
select * into temp tmp_rc1
from rpta_column;
create temp table tmp_rpta_column(
uniquename varchar(255) NOT NULL,
caption varchar(255),
srcfieldname varchar(255),
column_type integer,
col_function text,
is_aggregate smallint,
resultset_id integer,
description text,
custom integer default 0
);
insert into tmp_rpta_column( uniquename,
caption,
srcfieldname,
column_type,
col_function,
is_aggregate,
resultset_id,
description)
select F.name as uniquename,
coalesce(T.caption,T.name) || ' - ' || F.caption,
F.name as srcfieldname,
1 as column_type,
(case when F.is_sum=1 then 'sum' else null::varchar end) as col_function,
(case when F.is_sum=1 then 1 else 0 end) as is_aggregate,
R.tid as resultset_id,
F.description
from rpta_resultset R, sx_fields F left outer join sx_tables T on (T.name=F.table_name)
where F.table_name='${fact_table_target.name}'
and R.uniquename='${fact_table_target.name}'
and F.currentlyused=1
;
update rpta_column set
caption=T.caption,
srcfieldname=T.srcfieldname,
column_type=T.column_type,
col_function=T.col_function,
is_aggregate=T.is_aggregate,
resultset_id=R.tid,
description=T.description,
custom=T.custom
from tmp_rpta_column T, rpta_resultset R
where T.uniquename=rpta_column.uniquename
and rpta_column.resultset_id=R.tid
and R.uniquename='${fact_table_target.name}'
;
insert into rpta_column( uniquename,
caption,
srcfieldname,
column_type,
col_function,
is_aggregate,
resultset_id,
description,
custom)
select T.uniquename,
T.caption,
T.srcfieldname,
T.column_type,
T.col_function,
T.is_aggregate,
R.tid as resultset_id,
T.description,
T.custom
from tmp_rpta_column T, rpta_resultset R
where R.uniquename='${fact_table_target.name}'
and 0=(select count(*) from tmp_rc1 C
where C.uniquename=T.uniquename
and C.resultset_id=R.tid)
;
drop table tmp_rpta_column;
drop table tmp_rc1;
</#if> --wenn fin_konto_aggr_exists=1

92
src-modules/module/rpta/schluesseltabellen/rpta_column_layout__fin_einnahmen_dm_fuellen.sql

@ -0,0 +1,92 @@ @@ -0,0 +1,92 @@
--freemarker template
<#include "RPTA-Makros"/>
<sqlvars>
<sqlvar name="rpta_installed">
select count(*) from systeminfo where tid=330;
</sqlvar>
</sqlvars>
<#assign rpta_column_layout = {"uniquename":"fin_ein_aus_gege",
"caption":"Einnahmen/Ausgaben nach Geldgeber",
"rpta_resultset":"fin_konto_aggr_gege",
"whereclause":"",
"description":"Einnahmen/Ausgaben nach Geldgeber Drittmittel"
}
/>
<#assign rpta_columns = [
{"uniquename":"fibu_cifx_geldgebergruppe",
"caption":"Geldgebergruppe",
"srcfieldname":"fin_geldgeber_ggdruck",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":""
},
{"uniquename":"jahr_minus_4",
"caption":"2012",
"srcfieldname":"",
"targetfieldname":"jahr_minus_4",
"column_type":"logicalColumn",
"col_function":"case when rechnungsjahr = 2012 then einnahmen_dr else 0 end",
"format_code":"",
"is_visible":"1",
"is_aggregate":1,
"visible_size":10,
"description":"2012"
},
{"uniquename":"jahr_minus_3",
"caption":"2013",
"srcfieldname":"",
"targetfieldname":"jahr_minus_3",
"column_type":"logicalColumn",
"col_function":"case when rechnungsjahr = 2013 then einnahmen_dr else 0 end",
"format_code":"",
"is_visible":"1",
"is_aggregate":1,
"visible_size":10,
"description":"2013"
},
{"uniquename":"jahr_minus_2",
"caption":"2014",
"srcfieldname":"",
"targetfieldname":"jahr_minus_2",
"column_type":"logicalColumn",
"col_function":"case when rechnungsjahr = 2014 then einnahmen_dr else 0 end",
"format_code":"",
"is_visible":"1",
"is_aggregate":1,
"visible_size":10,
"description":"2014"
},
{"uniquename":"jahr_minus_1",
"caption":"2015",
"srcfieldname":"",
"targetfieldname":"jahr_minus_1",
"column_type":"logicalColumn",
"col_function":"case when rechnungsjahr = 2015 then einnahmen_dr else 0 end",
"format_code":"",
"is_visible":"1",
"is_aggregate":1,
"visible_size":10,
"description":"2015"
},
{"uniquename":"jahr_minus_0",
"caption":"2016",
"srcfieldname":"",
"targetfieldname":"jahr_minus_0",
"column_type":"logicalColumn",
"col_function":"case when rechnungsjahr = 2016 then einnahmen_dr else 0 end",
"format_code":"",
"is_visible":"1",
"is_aggregate":1,
"visible_size":10,
"description":"2016"
}
]
/>
<#if rpta_installed==1>
<@rpta_column_layout_fuellen />
</#if>

4
src-modules/module/rpta/schluesseltabellen/sx_stylesheets_einfuegen.sql

@ -6,7 +6,9 @@ @@ -6,7 +6,9 @@
{"mask":"48140", "filename":"tabelle_html.xsl", "ord":"10"},
{"mask":"48140", "filename":"tabelle_xls_48140.xsl", "ord":"1"},
{"mask":"48110", "filename":"48110_leistungen_und_studiengaenge.jrxml", "ord":"1"}
{"mask":"48110", "filename":"48110_leistungen_und_studiengaenge_shortcomment.jrxml", "ord":"2"}
{"mask":"48110", "filename":"48110_leistungen_und_studiengaenge_shortcomment.jrxml", "ord":"2"},
{"mask":"48460", "filename":"tabelle_html.xsl", "ord":"10"},
{"mask":"48490", "filename":"tabelle_html.xsl", "ord":"10"}
] />

Loading…
Cancel
Save