Browse Source

Maske XCUBE Bewerber, Einbau Parameter und Dimensionen

xcube0.1
Marlies Winterstein 1 year ago
parent
commit
a80e8eb7fc
  1. 31
      src-modules/module/xcube/masken/21250_felderinfo.unl
  2. 1
      src-modules/module/xcube/masken/21250_maske_system_bez.unl
  3. 21
      src-modules/module/xcube/masken/21250_masken_felder_bez.unl
  4. 430
      src-modules/module/xcube/masken/21250_maskeninfo.unl
  5. 1
      src-modules/module/xcube/masken/21250_sachgeb_maske_bez.unl
  6. 27
      src-modules/module/xcube/schluesseltabellen/xcube_dims_install.sql
  7. 76
      src-modules/module/xcube/schluesseltabellen/xcube_install.sql
  8. 14
      src-modules/module/xcube/schluesseltabellen/xcube_install_restrictions.sql

31
src-modules/module/xcube/masken/21250_felderinfo.unl

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
21250^Zulassungsstatus^12^0^0^150^150^5^char^30^0^1^<<SQL>> select apnr,druck from zul_adm_status order by 2^^^
21251^Seit Semester^5^300^-1^100^100^1^integer^30^0^1^<<SQL>> select tid, eintrag from zul_semester order by tid DESC;^^<<SQL>> select tid,eintrag from zul_semester where today()+180 between sem_beginn and sem_ende;^
21252^Fächer^8^0^0^150^200^6^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art='ZUL-Fächer-Sicht' order by 3,2;^^^
21253^Abschluss^9^0^0^150^200^5^char^30^0^1^<<SQL>> select apnr, druck from zul_k_abint order by 2;^^^
21254^Alter (von)^34^0^0^150^50^1^integer^30^0^0^^^^
21255^Bewerbungen^1^0^0^150^200^1^sql^30^1^1^<<SQL>> select 'fachnr=1 and antrnr=1','Köpfe' from xdummy union select 'fachnr=1','Anträge' from xdummy union select 'fachnr=fachnr and antrnr=1','Hauptantragsfächer' from xdummy union select 'fachnr=fachnr','Antragsfächer' from xdummy order by 2;^^<<SQL>> select 'fachnr=1 and antrnr=1','Köpfe' from xdummy;^
21256^Hochschulzugangsber.^40^330^-1^130^200^1^sql^30^0^1^<<SQL>>\
select 'hzbart=1','Allg. Hochschulreife' from xdummy union\
select 'hzbart=4','Allg. Hochschulreife im Ausland' from xdummy union\
select 'hzbart in (3,4)','Allg.u.fach(geb.) HSReife im Ausland' from xdummy union\
select 'hzbart in (1,2,5,6)','Allg.u.fach(geb.) HSReife im Inland' from xdummy union\
select 'hzbart=3','Fach(geb.) Hochschulreife im Ausl.' from xdummy union\
select 'hzbart=6','Fachgeb.HS-Reife' from xdummy union\
select 'hzbart=2','Fachhochschulreife' from xdummy union\
select 'hzbart=5','Sonstige' from xdummy order by 2;^apnr, eintrag^^
21257^Staatsangehörigkeit^39^0^0^150^150^10^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art='ZUL-Staaten-Sicht' order by 3,2;^^^
21258^Alter (bis)^35^310^-1^100^50^1^integer^30^0^0^^^^
21259^Bis Semester^6^300^-1^100^100^1^integer^30^0^1^<<SQL>> select tid, eintrag from zul_semester order by tid DESC;^^<<SQL>> select tid,eintrag from zul_semester where today()+180 between sem_beginn and sem_ende;^
21260^Bewerbernummer^210^300^-1^100^180^1^integer^30^0^0^ ^ ^ ^
21261^Fachkennz.^32^300^-1^100^180^1^char^30^0^1^<<SQL>> select apnr, druck from zul_k_kzfa order by 1^^^
21262^Filter Zulassung^37^0^0^150^200^1^sql^20^0^1^<<SQL>> SELECT content,caption from sx_repository where aktiv =1 and today() between gueltig_seit and gueltig_bis and art='ZUL_BEW_FILTER' order by 2;^^^
21263^Studiengänge^7^300^-1^100^170^1^integer^30^0^999^<<SQL>> select 1,'anzeigen' from xdummy union select 2,'ausblenden' from xdummy;^^<<SQL>> select 1,'anzeigen' from xdummy^
21264^Ansicht in Ergebniszeilen^121^0^0^100^200^1^char^200^1^1^<<SQL>> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_rowdim=1 order by 2^^<<SQL>> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_rowdefault=1^
21265^Ansicht in Ergebnisspalten^2001^0^0^100^150^1^char^200^1^1^<<SQL>> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_coldim=1 order by 2^^<<SQL>> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_coldefault=1^
21266^Leere Zeilen ausblenden^130^350^-1^140^80^1^char^30^0^1^<<SQL>> select 'ja','ja' from xdummy union select 'nein','nein' from xdummy^ ^<<SQL>> select 'ja','ja' from xdummy^
21267^Leere Spalten ausblenden^2020^0^0^100^100^1^char^30^0^1^<<SQL>> select 'ja','ja' from xdummy union select 'nein','nein' from xdummy^^<<SQL>> select 'ja','ja' from xdummy^
21268^Spaltenvisualisierung^10000^0^0^140^80^1^char^30^0^1^<<SQL>> select '_graph','Balken (horiz. linksb.)' from xdummy\
union select '_graphbarright','Balken (horiz. rechtsb.)' from xdummy\
union select '_graphbaralternating','Balken (horiz. rechtsb./linksb.)' from xdummy^^^
21269^Zeilenfilter bis Ebene^140^0^0^140^80^1^integer^30^0^0^ ^^^
21270^Kennzahl^3000^350^-1^150^180^1^integer^200^1^1^<<SQL>> select tid,name from xcube_kennzahl where maskeninfo_id=${Maskennummer} order by sortnr,name;^hidden^<<SQL>> select tid,name from xcube_kennzahl where maskeninfo_id=${Maskennummer} and is_default=1^

1
src-modules/module/xcube/masken/21250_maske_system_bez.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
21250^130^

21
src-modules/module/xcube/masken/21250_masken_felder_bez.unl

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
21250^21250^
21250^21251^
21250^21252^
21250^21253^
21250^21254^
21250^21255^
21250^21256^
21250^21257^
21250^21258^
21250^21259^
21250^21260^
21250^21261^
21250^21262^
21250^21263^
21250^21264^
21250^21265^
21250^21266^
21250^21267^
21250^21268^
21250^21269^
21250^21270^

430
src-modules/module/xcube/masken/21250_maskeninfo.unl

@ -0,0 +1,430 @@ @@ -0,0 +1,430 @@
21250^Bewerbungen/Zulassungen Xcube^--freemarker template\
-- Maskenfelder -Leere Zeilen ausblenden, leere SPalten ausblenden?\
<sqlvars>\
<sqlvar name="table_name">select table_name from xcube where maskeninfo_id=${Maskennummer}</sqlvar>\
<sqlvar name="aggrfunction">select aggrfunction from xcube_kennzahl where maskeninfo_id=${Maskennummer} and tid=<<Kennzahl>></sqlvar>\
<sqlvar name="aggrfunction_restriction">select nvl(restriction,''::char(1)) from xcube_kennzahl \
where maskeninfo_id=${Maskennummer} and tid=<<Kennzahl>>\
</sqlvar>\
<sqlvar name="datatype">select nvl(datatype,'decimal(17,2)'::varchar(30)) from xcube_kennzahl \
where maskeninfo_id=${Maskennummer} and tid=<<Kennzahl>></sqlvar>\
--benoetigt falls Kennzahlen in Zeilen oder Spalten\
<sqlvar name="kennzahlen" type="hashsequence">select apnr,aggrfunction,\
nvl(restriction,''::char(1)) as restriction \
from xcube_kennzahl where maskeninfo_id=${Maskennummer}</sqlvar>\
<sqlvar name="restriction" type="string"><![CDATA[<sximport>select restriction from xcube where maskeninfo_id=<<Maskennummer>></sximport>]]></sqlvar>\
<sqlvar name="coldef" type="hash"><![CDATA[select name,\
caption,\
foreignkey_tab,\
foreignkey_col,\
foreignkey_cap,\
nvl(foreignkey_cond,''::varchar(1))\
as foreignkey_cond,\
--nvl(C.specific_restriction,''::varchar(1)) as specific_restriction,\
sortfield,\
is_sicht,\
calc_gesamt,\
is_virtual,\
vcsql,\
nvl(attrib_nachbearbeitung,''::char(1)) as attrib_nachbearbeitung\
from xcube_dimconfig where \
maskeninfo_id=${Maskennummer} \
and name=<<Ansicht in Ergebnisspalten>>]]>\
</sqlvar>\
<sqlvar name="nichtsicht_ergspalten" type='hashsequence'><![CDATA[\
<#if coldef.is_sicht=0>\
select distinct ${coldef.foreignkey_col}::varchar(255) as apnr,\
${coldef.foreignkey_cap} as name,\
1::smallint as detailgesamtsort,\
${coldef.sortfield} as tmp_sortfield\
from ${coldef.foreignkey_tab} where \
1=1 \
<#if coldef.foreignkey_cond!=''> and ${coldef.foreignkey_cond} </#if>\
--{coldef.specific_restriction} \
--ausblenden von Spalten, die gar nicht in konkretem Teilergebnis vorkommen, geht derzeit nicht für virtuelle Spalten und nachbearbeitung, -> Kernmodul\
<#if coldef.is_virtual?number=0&&coldef.attrib_nachbearbeitung=''&&"<<Leere Spalten ausblenden>>"="'ja'">\
and ${coldef.foreignkey_col}::varchar(255) in (select distinct ${coldef.name}::varchar(255) from ${table_name} where \
${restriction} \
)\
</#if>\
<#if coldef.calc_gesamt?number=1> \
union\
select 'gesamt','Gesamt',\
2::smallint as detailgesamtsort,\
null as tmp_sortfield from xdummy\
</#if>\
order by detailgesamtsort,\
tmp_sortfield,\
name;\
<#else>\
select 'Sichtspalten aktiv' from xdummy;\
</#if>\
]]>\
</sqlvar>\
\
\
\
<sqlvar name="rowdef" type="hash"><![CDATA[select name,caption,is_sicht,calc_gesamt,foreignkey_tab,foreignkey_col,foreignkey_cap,\
nvl(foreignkey_cond,''::varchar(1)) as foreignkey_cond,\
--nvl(C.specific_restriction,''::varchar(1)) as specific_restriction,\
sortfield,is_virtual,vcsql,nvl(attrib_nachbearbeitung,''::char(1)) as attrib_nachbearbeitung\
from xcube_dimconfig C where maskeninfo_id=${Maskennummer} and name=<<Ansicht in Ergebniszeilen>>]]>\
</sqlvar>\
--nur bei wenn Ergzeilen_def nicht vom Typ Sicht relevant\
<sqlvar name="nichtsicht_ergzeilen" type='hashsequence'><![CDATA[\
<#if rowdef.is_sicht=0>\
select 1::smallint as level, \
${rowdef.foreignkey_col}::varchar(255) as key,--hier wird zur Vereinheitlichung mit Sichten Bezeichung "key" für eigentlichen Schluessel benoetigt\
${rowdef.foreignkey_cap} as name,\
${rowdef.sortfield} as tmp_sortfield \
from ${rowdef.foreignkey_tab}\
where 1=1\
<#if rowdef.foreignkey_cond!=''> and ${rowdef.foreignkey_cond} </#if>\
--{rowdef.specific_restriction} \
<#if rowdef.calc_gesamt?number=1>\
union\
select 2,'gesamt','Gesamt',null as ${rowdef.sortfield} from xdummy\
</#if>\
order by level,tmp_sortfield; \
<#else>\
select 'nicht relevant' from xdummy;</#if>\
]]>\
</sqlvar>\
\
<sqlvar name="zweiteRowDef" type="hash"><![CDATA[\
<#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">\
select name,caption,\
is_sicht,\
calc_gesamt,\
foreignkey_tab,\
foreignkey_col,\
foreignkey_cap,\
nvl(foreignkey_cond,''::varchar(1)) as foreignkey_cond,\
--nvl(C.specific_restriction,''::varchar(1)) as specific_restriction,\
C.sortfield\
from xcube_dimconfig where maskeninfo_id=${Maskennummer} and name=<<2.Ansicht in Zeilen>>\
<#else>\
select 'keine zweite RowDef' from xdummy;\
</#if>\
]]>\
</sqlvar>\
--nur bei wenn Ergzeilen_def nicht vom Typ Sicht relevant\
<sqlvar name="zweiteRow_nichtsicht_ergzeilen" type='hashsequence'><![CDATA[\
<#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>"&&zweiteRowDef.is_sicht=0>\
select 1::smallint as level, \
${zweiteRowDef.foreignkey_col}::varchar(255) as key,--hier wird zur Vereinheitlichung mit Sichten Bezeichung "key" für eigentlichen Schluessel benoetigt\
${zweiteRowDef.foreignkey_cap} as name,\
${zweiteRowDef.sortfield} as tmp_sortfield \
from ${zweiteRowDef.foreignkey_tab}\
where 1=1\
<#if zweiteRowDef.foreignkey_cond!=''> and ${zweiteRowDef.foreignkey_cond} </#if>\
--{zweiteRowDef.specific_restriction} \
<#if zweiteRowDef.calc_gesamt?number=1>\
union\
select 2,'gesamt','Gesamt',null as ${zweiteRowDef.sortfield} from xdummy\
</#if>\
order by level,tmp_sortfield; \
<#else>\
select 'nicht relevant' from xdummy;</#if>\
]]>\
</sqlvar>\
\
\
</sqlvars>\
\
<#function kennzahlInRowOrCol>\
--TODO auch 2. Dimension in Zeilen/Spalten\
<#if coldef.name="xckennzahl"||rowdef.name="xckennzahl"> <#return 1><#else> return <#return 0> </#if>\
</#function>\
\
<#function hasVirtualColumns>\
--TODO auch 2. Dimension in Zeilen/Spalten\
<#if coldef.is_virtual?number=1||rowdef.is_virtual?number=1> <#return 1><#else> return <#return 0> </#if>\
</#function>\
<#assign graph_col= "col" />\
/* <#assign graph_col=<<Spaltenvisualisierung>> /> */\
\
create temp table tmp_cellmax (maxvalue ${datatype} );\
insert into tmp_cellmax values(0);\
\
\
<#if hasVirtualColumns()=1||kennzahlInRowOrCol()=1>\
select * into temp tmp_rohdaten from \
${table_name}\
where \
${restriction};\
<#if coldef.is_virtual?number=1> alter table tmp_rohdaten add column ${coldef.name} varchar(255); ${coldef.vcsql}; </#if>\
<#if rowdef.is_virtual?number=1> alter table tmp_rohdaten add column ${rowdef.name} varchar(255); ${rowdef.vcsql}; </#if>\
--create index ix_tmp_r1 on tmp_rohdaten(${coldef.name},${rowdef.name}); --Todo nicht xckennzahl ggfs. für 2. Dimension in Spalten\
</#if>\
\
\
<#if kennzahlInRowOrCol()=0>\
create temp table tmp_cache (\
colattrib varchar(255), <@addcomment comment=coldef.caption/>\
rowattrib varchar(255), <@addcomment comment=rowdef.caption/>\
row2attrib varchar(255),\
value decimal(17,5));\
insert into tmp_cache (colattrib,rowattrib,<#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">row2attrib, </#if> value)\
select ${coldef.name}::varchar(255), \
${rowdef.name}::varchar(255),\
<#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">${zweiteRowDef.name}::varchar(255),</#if>\
${aggrfunction}\
\
<#if hasVirtualColumns()=0> \
from ${table_name} where \
${restriction}\
<#if (aggrfunction_restriction?length>0)> and ${aggrfunction_restriction} </#if>\
<#else>\
from tmp_rohdaten\
</#if>\
\
group by 1,2 <#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">,${zweiteRowDef.name}</#if> ;\
create index ix_tmp_roh1 on tmp_cache (colattrib,rowattrib,row2attrib);\
</#if>\
\
--moegliche attrib_nachbearbeitung\
<#if kennzahlInRowOrCol()=0> \
<#assign tmp_table="tmp_cache"/> <#assign rowfield="rowattrib"/> <#assign colfield="colattrib"/> \
<#else>\
<#assign tmp_table="tmp_rohdaten"/> <#assign rowfield=rowdef.name/> <#assign colfield=coldef.name/> \
</#if>\
\
<#if (rowdef.attrib_nachbearbeitung?length>1)>\
${rowdef.attrib_nachbearbeitung?replace("<<tmp_table>>",tmp_table)?replace("<<col>>",rowfield)};\
-- z.B. update tmp_cache R set rowattrib='s_'||rowattrib;\
</#if>\
<#if (coldef.attrib_nachbearbeitung?length>1)>\
${coldef.attrib_nachbearbeitung?replace("<<tmp_table>>",tmp_table)?replace("<<col>>",colfield)};\
-- z.B. update tmp_cache R set rowattrib='s_'||rowattrib;\
</#if>\
\
\
\
\
<#if coldef.is_sicht&gt;0>\
<#assign ergspalten=.vars[coldef.caption].elements/>\
<#else>\
<#assign ergspalten=nichtsicht_ergspalten/>\
</#if>\
create temp table tmp_erg (\
ebene integer,\
col1 varchar(255),\
name varchar(255),\
<#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">col2 varchar(255),</#if>\
<#assign i=0/>\
<#foreach spalte in ergspalten>\
<#assign i=i+1/>\
c${i} decimal(17,5) default 0, <@addcomment comment=spalte.name/>\
\
</#foreach>\
sortnr integer\
) <@informixnolog/>;\
\
create index ix_tmp_erg on tmp_erg (sortnr);\
\
<#if rowdef.is_sicht&gt;0> \
<#assign zeilendef=.vars[rowdef.caption].elements/> --ermittelt des SichtObjekts anhand des Feldnames (aus felderinfo)\
<#else>\
<#assign zeilendef=nichtsicht_ergzeilen/>\
</#if>\
<#assign sortnr=0/>\
<#foreach zeile in zeilendef>\
<#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">\
<#foreach zeile2 in zweiteRow_nichtsicht_ergzeilen>\
<#assign sortnr=sortnr+1/>\
insert into tmp_erg (ebene,col1,name,col2,sortnr)\
values (${zeile.level},'${zeile.key}','${zeile.name}','${zeile2.name}',${sortnr});\
<#assign i=0/>\
<#foreach spalte in ergspalten>\
<#assign i=i+1/>\
<@updateval i=i col=spalte row=zeile row2=zeile2 sortnr=sortnr/>\
</#foreach>\
</#foreach>\
<#else>\
/* <#if zeile.level &lt;= <<Zeilenfilter bis Ebene>> > */\
<#assign sortnr=sortnr+1/>\
insert into tmp_erg (ebene,col1,name,sortnr)\
values (${zeile.level},'${zeile.key}','${zeile.name}',${sortnr});\
<#assign i=0/>\
<#foreach spalte in ergspalten>\
<#assign i=i+1/>\
<@updateval i=i col=spalte row=zeile row2='' sortnr=sortnr/>\
</#foreach>\
/* </#if> --<<Zeilenfilter bis Ebene>> */\
</#if> \
</#foreach>\
\
<#macro updateval i col row row2 sortnr>\
update tmp_erg T set c${i}=\
<#if kennzahlInRowOrCol()=0>\
(select nvl(sum(value),0) from tmp_cache R where 1=1 \
<@colrestriction col=col/>\
<@rowrestriction row=row row2=row2/>\
) \
<#else> -- Kennzahl ist in Zeile oder Spalte\
(select <@kennzahlSelect row=row col=col/>\
from tmp_rohdaten R where 1=1 \
<#if rowdef.name="xckennzahl"> <@kennzahlrestrict row=row col=col/> <#else> <@rowrestriction row=row row2=row2 rowattribname=rowdef.name/></#if>\
<#if coldef.name="xckennzahl"> <@kennzahlrestrict row=row col=col/> <#else> <@colrestriction col=col colattribname=coldef.name/></#if>\
\
)\
</#if>\
where T.sortnr='${sortnr}'\
;\
</#macro>\
\
<#macro kennzahlrestrict row col>\
<#if coldef.name="xckennzahl">\
<#foreach k in kennzahlen>\
<#if (col.apnr=k.apnr&&k.restriction?length>0)> and ${k.restriction} </#if>\
</#foreach>\
</#if>\
<#if rowdef.name="xckennzahl">\
<#foreach k in kennzahlen>\
<#if (row.key=k.apnr&&k.restriction?length>0)> and ${k.restriction} </#if>\
</#foreach>\
</#if>\
</#macro>\
\
<#macro kennzahlSelect row col>\
<#if coldef.name="xckennzahl">\
<#foreach k in kennzahlen>\
<#if col.apnr=k.apnr> ${k.aggrfunction} </#if>\
</#foreach>\
</#if>\
<#if rowdef.name="xckennzahl">\
<#foreach k in kennzahlen>\
<#if row.key=k.apnr> ${k.aggrfunction} </#if>\
</#foreach>\
</#if>\
\
\
</#macro>\
\
\
\
<#macro colrestriction col colattribname='R.colattrib'>\
<#if coldef.is_sicht==1>\
and ${colattribname}::varchar(255) in ${col.subkeys}\
<#elseif coldef.is_sicht=2>\
and (${col.strukturStr?replace('$1',' '+colattribname+"::varchar(255)")}) \
<#else>\
<#if col.apnr!='gesamt'>\
and ${colattribname}::varchar(255)='${col.apnr}' \
</#if>\
</#if>\
</#macro>\
\
<#macro rowrestriction row row2 rowattribname='R.rowattrib' >\
<#if rowdef.is_sicht==1>\
and ${rowattribname}::varchar(255) in ${row.subkeys}\
<#elseif rowdef.is_sicht==2>\
and ( ${row.strukturStr?replace('$1',' '+rowattribname+"::varchar(255)")} ) \
<#else>\
<#if row.key!='gesamt'> and ${rowattribname}::varchar(255)='${row.key}' </#if>\
</#if>\
<#if row2?is_hash> and R.row2attrib='${row2.key}' </#if> \
</#macro>\
\
drop table if exists tmp_cache;\
\
drop table if exists tmp_rohdaten;\
\
-- Kennzahl in Spalten/Zeilen ggfs. null\
<#assign i=0/>\
<#foreach spalte in ergspalten>\
<#assign i=i+1/>\
update tmp_erg set c${i}=0 where c${i} is null; \
</#foreach>\
<#assign lastcol=i />\
\
--Wenn Grafikfunktion eingeschaltet ist, wird Maximalwert ermittelt:\
<#if i != 0 && graph_col != "col" >\
\
<#assign i=0/>\
<#foreach spalte in ergspalten>\
<#assign i=i+1/>\
<#if i == lastcol>\
update tmp_cellmax set maxvalue = (select max(c${i}) from tmp_erg) \
where tmp_cellmax.maxvalue < (select max(c${i}) from tmp_erg) ;\
</#if> \
</#foreach>\
\
</#if>\
\
<#if "<<Leere Zeilen ausblenden>>"="'ja'">\
delete from tmp_erg where 1=1\
<#assign i=0/>\
<#foreach spalte in ergspalten>\
<#assign i=i+1/>\
and c${i}=0\
</#foreach>;\
</#if>\
<#if "<<Ansicht in Ergebniszeilen>>"="'institution'">\
update tmp_erg set name=replace(name,col1||' - ','');\
update tmp_erg set col1=(select max(uniquename) from organigramm where col1=trim(key_apnr))\
where substring(col1 from 1 for 1)='_';\
--vorher war ggfs _3 zu O005030, auch O005030 in Namen ersetzen\
update tmp_erg set name=replace(name,col1||' - ','');\
</#if> \
\
\
\
\
select \
<#if rowdef.is_sicht&gt;0>ebene,</#if>\
name\
<#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">,col2</#if>\
<#assign i=0/>\
<#assign i=0/>\
<#foreach spalte in ergspalten>\
<#assign i=i+1/>\
<#if i != lastcol && graph_col != "col" >\
<#if graph_col == "_graphbaralternating">\
--bei symmetr. Balken jeder 2. Balken rechtsbündig\
<#if i % 2 == 0>\
, '' || c${i}::${datatype} || '|' || tmp_cellmax.maxvalue as _graph${i}\
<#else>\
, '' || c${i}::${datatype} || '|' || tmp_cellmax.maxvalue as _graphbarright${i}\
</#if>\
<#else>\
, '' || c${i}::${datatype} || '|' || tmp_cellmax.maxvalue as ${graph_col}${i}\
</#if>\
\
<#else>\
, c${i}::${datatype} as col${i}\
</#if>\
\
</#foreach>\
from tmp_erg, tmp_cellmax order by sortnr;^--freemarker Template\
XIL List\
sizable_columns horizontal_scrolling\
drop_and_delete movable_columns\
white_space_color=COLOR_WHITE fixed_columns=1\
min_heading_height=35\
<#if rowdef.is_sicht&gt;0>\
Column CID=0 heading_text="Ebene" center_heading\
row_selectable heading_platform readonly explanation="Hierarchieebene"\
width=5 text_size=8\
</#if>\
Column CID=20 heading_text="${.vars["Ansicht in ErgebniszeilenObject"].selectedItems[0].name}" center_heading\
row_selectable heading_platform readonly explanation="Schlüssel: ${.vars["Ansicht in ErgebniszeilenObject"].selectedItems[0].name}Nr"\
width=30 text_size=30\
<#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">\
Column CID=20 heading_text="${.vars["2.Ansicht in ZeilenObject"].selectedItems[0].name}" center_heading\
row_selectable heading_platform readonly\
width=20 text_size=10 explanation="${.vars["2.Ansicht in ZeilenObject"].selectedItems[0].name}"\
</#if>\
<#if coldef.is_sicht&gt;0>\
<#assign ergspalten=.vars[coldef.caption].elements/>\
<#else>\
<#assign ergspalten=nichtsicht_ergspalten/>\
</#if>\
<#foreach spalte in ergspalten>\
Column CID=1 heading_text="${spalte.name}" center_heading\
row_selectable heading_platform readonly explanation="Ausprägung ${spalte.name}"\
width=12\
</#foreach>\
@@@^Altersgruppe^Anzahl^Kreuztabellen zu Zahlen für Bewerbungen und Zulassungen^drop table tmp_erg;\
drop table tmp_cellmax;^ ^3^700^360^0^1^ ^

1
src-modules/module/xcube/masken/21250_sachgeb_maske_bez.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
130^21250^

27
src-modules/module/xcube/schluesseltabellen/xcube_dims_install.sql

@ -234,6 +234,33 @@ select distinct 'dauer_rsz',1::varchar(10),'Stud.Dauer in RSZ + 1',1 from xdummy @@ -234,6 +234,33 @@ select distinct 'dauer_rsz',1::varchar(10),'Stud.Dauer in RSZ + 1',1 from xdummy
INSERT INTO xcube_dims (id,apnr,name,sort1)
select distinct 'dauer_rsz',2::varchar(10),'>= Stud.Dauer in RSZ + 2',2 from xdummy;
delete from xcube_dims where id='dauer_rsz';
INSERT INTO xcube_dims (id,apnr,name,sort1)
select distinct 'dauer_rsz',(-1)::varchar(10),'Stud.Dauer schneller als RSZ',-1 from xdummy;
INSERT INTO xcube_dims (id,apnr,name,sort1)
select distinct 'dauer_rsz',0::varchar(10),'Stud.Dauer in RSZ',0 from xdummy;
INSERT INTO xcube_dims (id,apnr,name,sort1)
select distinct 'dauer_rsz',1::varchar(10),'Stud.Dauer in RSZ + 1',1 from xdummy;
INSERT INTO xcube_dims (id,apnr,name,sort1)
select distinct 'dauer_rsz',2::varchar(10),'>= Stud.Dauer in RSZ + 2',2 from xdummy;
delete from xcube_dims where id='hzb_zul';
INSERT INTO xcube_dims (id,apnr,name,sort1)
select 'hzb_zul','1'::varchar(10),'Allg. Hochschulreife',1 from xdummy ;
INSERT INTO xcube_dims (id,apnr,name,sort1)
select 'hzb_zul','4'::varchar(10),'Allg. Hochschulreife im Ausland',2 from xdummy;
INSERT INTO xcube_dims (id,apnr,name,sort1)
select 'hzb_zul','3-4'::varchar(10), 'Allg.u.fach(geb.) HSReife im Ausland',3 from xdummy;
INSERT INTO xcube_dims (id,apnr,name,sort1)
select 'hzb_zul','1-2-5-6'::varchar(10),'Allg.u.fach(geb.) HSReife im Inland',4 from xdummy;
INSERT INTO xcube_dims (id,apnr,name,sort1)
select 'hzb_zul','3'::varchar(10),'Fach(geb.) Hochschulreife im Ausl.',5 from xdummy;
INSERT INTO xcube_dims (id,apnr,name,sort1)
select 'hzb_zul','6'::varchar(10),'Fachgeb.HS-Reife',6 from xdummy;
INSERT INTO xcube_dims (id,apnr,name,sort1)
select 'hzb_zul','2'::varchar(10),'Fachhochschulreife',7 from xdummy;
INSERT INTO xcube_dims (id,apnr,name,sort1)
select 'hzb_zul','5'::varchar(10),'Sonstige',8 from xdummy;
--Zum Testen
--INSERT INTO xcube_dims (id,apnr,name,sort1,parent,strukturstr)

76
src-modules/module/xcube/schluesseltabellen/xcube_install.sql

@ -19,6 +19,12 @@ @@ -19,6 +19,12 @@
"table_name":"sva_pbv_aggr_stich",
"maskeninfo_id":21200
} ,
{"name":"Bewerberwürfel",
"uniquename":"xcube_zul_antr_aggr",
"sachgebiet":130,
"table_name":"zul_antr_aggr",
"maskeninfo_id":21250
} ,
{"name":"Primärbuchungswürfel",
"uniquename":"xcube_cob_busa_aggr",
"sachgebiet":27,
@ -50,6 +56,14 @@ @@ -50,6 +56,14 @@
"aggrfunction":"sum(vzae)",
"restriction":"",
"is_default":1,
"sortnr":1},
{ "maskeninfo_id":21250,
"apnr":"bew",
"name":"Bewerber",
"aggrfunction":"sum(summe)",
"restriction":"",
"datatype":"integer",
"is_default":1,
"sortnr":1},
{ "maskeninfo_id":21500,
"apnr":"kosten",
@ -390,7 +404,67 @@ @@ -390,7 +404,67 @@
"is_sicht":2,
"is_virtual":1,
"vcsql":"update tmp_rohdaten set alter = trunc(((select stichtag from sva_stichtag where tid=tmp_rohdaten.stichtag) - geburtsdatum) / 365.25 , 0)"},
<#-- Bewerberwürfel -->
{"maskeninfo_id":21250,
"name":"geschlecht",
"caption":"Geschlecht",
"is_coldefault":1,
"foreignkey_tab":"sos_k_geschl",
"foreignkey_col":"apnr::varchar(255)",
"foreignkey_cap":"druck",
"foreignkey_cond":"apnr in ('1','2')",
"sortfield":"apnr"},
{"maskeninfo_id":21250,
"name":"ca12_staat",
"caption":"Staatsangehörigkeit",
"is_rowdefault":1,
"is_sicht":1 },
{"maskeninfo_id":21250,
"name":"stg",
"caption":"Fächer",
"is_sicht":1,
"is_coldim":0},
{"maskeninfo_id":21250,
"name":"abschl",
"caption":"Abschluss",
"foreignkey_tab":"zul_k_abint",
"foreignkey_col":"apnr::varchar(255)",
"foreignkey_cap":"druck",
"sortfield":"druck"},
{"maskeninfo_id":21250,
"name":"zulart",
"caption":"Zulassungsstatus",
"foreignkey_tab":"zul_adm_status",
"foreignkey_col":"apnr::varchar(255)",
"foreignkey_cap":"druck",
"sortfield":"druck"},
{"maskeninfo_id":21250,
"name":"kzfa",
"caption":"Fachkennz.",
"foreignkey_tab":"zul_k_kzfa",
"foreignkey_col":"apnr::varchar(255)",
"foreignkey_cap":"druck",
"sortfield":"druck"},
{"maskeninfo_id":21250,
"name":"hzbart",
"caption":"Hochschulzugangsber.",
"foreignkey_tab":"xcube_dims",
"foreignkey_col":"apnr::varchar(255)",
"foreignkey_cap":"name",
"foreignkey_cond":"id='hzb_zul'",
"attrib_nachbearbeitung": "update <<tmp_table>> set <<col>>='3-4' where <<col>>::char(10) in ('3','4');update <<tmp_table>> set <<col>>='1-2-5-6' where <<col>>::char(10) in ('1','2','5','6');",
"sortfield":"name",
"calc_gesamt":0},
{"maskeninfo_id":21250,
"name":"bewsem",
"caption":"Semester",
"foreignkey_tab":"semester",
"foreignkey_col":"tid",
"foreignkey_cap":"eintrag",
"sortfield":"tid",
"calc_gesamt":0},
<#-- Primärbuchungswürfel -->
{"maskeninfo_id":21500,
"name":"jahr",

14
src-modules/module/xcube/schluesseltabellen/xcube_install_restrictions.sql

@ -65,7 +65,19 @@ update xcube set restriction='<<Köpfe oder Fälle ?>> @@ -65,7 +65,19 @@ update xcube set restriction='<<Köpfe oder Fälle ?>>
/* and <<Filter Personal>> */
<#if "<<Alter>>"!=""> and ${Alter.selectedItems[0].strukturStr?replace("$1","trunc((${datum_stichtag} - geburtsdatum) / 365.25 , 0)")}</#if>
' where maskeninfo_id=21200;
--Bewerbungen/Zulassungen
update xcube set restriction=' <<Bewerbungen>>
/* and bewsem >= <<Seit Semester>> */
/*and bewsem <= <<Bis Semester>>*/
/* and stg in <@printkeys Fächer.allNeededKeysList/> --<<Fächer>> */
/* and abschl in (<<Abschluss>>) */
/* and zulart in (<<Zulassungsstatus>>) */
/* and kzfa in (<<Fachkennzeichen>>) */
/* and <<Filter Zulassung>> */
/* and ca12_staat in <@printkeys Staatsangehörigkeit.allNeededKeysList/> --<<Staatsangehörigkeit>> */
/* and <<Hochschulzugangsber.>> */
' where maskeninfo_id=21250;
update xcube set restriction='
(bukz!=''PE'' or bukz is null)

Loading…
Cancel
Save