From a80e8eb7fce33be38604429a58ed2f488a262c43 Mon Sep 17 00:00:00 2001 From: Marlies Winterstein Date: Tue, 29 Aug 2023 11:00:50 +0200 Subject: [PATCH] Maske XCUBE Bewerber, Einbau Parameter und Dimensionen --- .../module/xcube/masken/21250_felderinfo.unl | 31 ++ .../xcube/masken/21250_maske_system_bez.unl | 1 + .../xcube/masken/21250_masken_felder_bez.unl | 21 + .../module/xcube/masken/21250_maskeninfo.unl | 430 ++++++++++++++++++ .../xcube/masken/21250_sachgeb_maske_bez.unl | 1 + .../schluesseltabellen/xcube_dims_install.sql | 27 ++ .../schluesseltabellen/xcube_install.sql | 76 +++- .../xcube_install_restrictions.sql | 14 +- 8 files changed, 599 insertions(+), 2 deletions(-) create mode 100644 src-modules/module/xcube/masken/21250_felderinfo.unl create mode 100644 src-modules/module/xcube/masken/21250_maske_system_bez.unl create mode 100644 src-modules/module/xcube/masken/21250_masken_felder_bez.unl create mode 100644 src-modules/module/xcube/masken/21250_maskeninfo.unl create mode 100644 src-modules/module/xcube/masken/21250_sachgeb_maske_bez.unl diff --git a/src-modules/module/xcube/masken/21250_felderinfo.unl b/src-modules/module/xcube/masken/21250_felderinfo.unl new file mode 100644 index 0000000..1a65b2b --- /dev/null +++ b/src-modules/module/xcube/masken/21250_felderinfo.unl @@ -0,0 +1,31 @@ +21250^Zulassungsstatus^12^0^0^150^150^5^char^30^0^1^<> select apnr,druck from zul_adm_status order by 2^^^ +21251^Seit Semester^5^300^-1^100^100^1^integer^30^0^1^<> select tid, eintrag from zul_semester order by tid DESC;^^<> 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^<> 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^<> 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^<> 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;^^<> select 'fachnr=1 and antrnr=1','Köpfe' from xdummy;^ +21256^Hochschulzugangsber.^40^330^-1^130^200^1^sql^30^0^1^<>\ +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^<> 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^<> select tid, eintrag from zul_semester order by tid DESC;^^<> 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^<> select apnr, druck from zul_k_kzfa order by 1^^^ +21262^Filter Zulassung^37^0^0^150^200^1^sql^20^0^1^<> 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^<> select 1,'anzeigen' from xdummy union select 2,'ausblenden' from xdummy;^^<> select 1,'anzeigen' from xdummy^ +21264^Ansicht in Ergebniszeilen^121^0^0^100^200^1^char^200^1^1^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_rowdim=1 order by 2^^<> 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^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_coldim=1 order by 2^^<> 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^<> select 'ja','ja' from xdummy union select 'nein','nein' from xdummy^ ^<> select 'ja','ja' from xdummy^ +21267^Leere Spalten ausblenden^2020^0^0^100^100^1^char^30^0^1^<> select 'ja','ja' from xdummy union select 'nein','nein' from xdummy^^<> select 'ja','ja' from xdummy^ +21268^Spaltenvisualisierung^10000^0^0^140^80^1^char^30^0^1^<> 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^<> select tid,name from xcube_kennzahl where maskeninfo_id=${Maskennummer} order by sortnr,name;^hidden^<> select tid,name from xcube_kennzahl where maskeninfo_id=${Maskennummer} and is_default=1^ diff --git a/src-modules/module/xcube/masken/21250_maske_system_bez.unl b/src-modules/module/xcube/masken/21250_maske_system_bez.unl new file mode 100644 index 0000000..fc384ad --- /dev/null +++ b/src-modules/module/xcube/masken/21250_maske_system_bez.unl @@ -0,0 +1 @@ +21250^130^ diff --git a/src-modules/module/xcube/masken/21250_masken_felder_bez.unl b/src-modules/module/xcube/masken/21250_masken_felder_bez.unl new file mode 100644 index 0000000..9245b75 --- /dev/null +++ b/src-modules/module/xcube/masken/21250_masken_felder_bez.unl @@ -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^ diff --git a/src-modules/module/xcube/masken/21250_maskeninfo.unl b/src-modules/module/xcube/masken/21250_maskeninfo.unl new file mode 100644 index 0000000..c277c85 --- /dev/null +++ b/src-modules/module/xcube/masken/21250_maskeninfo.unl @@ -0,0 +1,430 @@ +21250^Bewerbungen/Zulassungen Xcube^--freemarker template\ +-- Maskenfelder -Leere Zeilen ausblenden, leere SPalten ausblenden?\ +\ +select table_name from xcube where maskeninfo_id=${Maskennummer}\ +select aggrfunction from xcube_kennzahl where maskeninfo_id=${Maskennummer} and tid=<>\ +select nvl(restriction,''::char(1)) from xcube_kennzahl \ +where maskeninfo_id=${Maskennummer} and tid=<>\ +\ +select nvl(datatype,'decimal(17,2)'::varchar(30)) from xcube_kennzahl \ +where maskeninfo_id=${Maskennummer} and tid=<>\ +--benoetigt falls Kennzahlen in Zeilen oder Spalten\ +select apnr,aggrfunction,\ +nvl(restriction,''::char(1)) as restriction \ +from xcube_kennzahl where maskeninfo_id=${Maskennummer}\ +select restriction from xcube where maskeninfo_id=<>]]>\ +>]]>\ +\ +\ +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} \ + --{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=''&&"<>"="'ja'">\ +and ${coldef.foreignkey_col}::varchar(255) in (select distinct ${coldef.name}::varchar(255) from ${table_name} where \ + ${restriction} \ +)\ +\ +<#if coldef.calc_gesamt?number=1> \ +union\ +select 'gesamt','Gesamt',\ +2::smallint as detailgesamtsort,\ +null as tmp_sortfield from xdummy\ + \ +order by detailgesamtsort,\ +tmp_sortfield,\ +name;\ +<#else>\ +select 'Sichtspalten aktiv' from xdummy;\ +\ +]]>\ +\ +\ +\ +\ +>]]>\ +\ +--nur bei wenn Ergzeilen_def nicht vom Typ Sicht relevant\ +\ +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} \ + --{rowdef.specific_restriction} \ +<#if rowdef.calc_gesamt?number=1>\ +union\ +select 2,'gesamt','Gesamt',null as ${rowdef.sortfield} from xdummy\ +\ +order by level,tmp_sortfield; \ +<#else>\ +select 'nicht relevant' from xdummy;\ +]]>\ +\ +\ +>"!=""&&"<<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;\ +\ +]]>\ +\ +--nur bei wenn Ergzeilen_def nicht vom Typ Sicht relevant\ +>"!=""&&"<<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} \ + --{zweiteRowDef.specific_restriction} \ + <#if zweiteRowDef.calc_gesamt?number=1>\ +union\ +select 2,'gesamt','Gesamt',null as ${zweiteRowDef.sortfield} from xdummy\ +\ +order by level,tmp_sortfield; \ +<#else>\ +select 'nicht relevant' from xdummy;\ +]]>\ +\ +\ +\ +\ +\ +<#function kennzahlInRowOrCol>\ +--TODO auch 2. Dimension in Zeilen/Spalten\ +<#if coldef.name="xckennzahl"||rowdef.name="xckennzahl"> <#return 1><#else> return <#return 0> \ +\ +\ +<#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> \ +\ +<#assign graph_col= "col" />\ +/* <#assign graph_col=<> /> */\ +\ +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 rowdef.is_virtual?number=1> alter table tmp_rohdaten add column ${rowdef.name} varchar(255); ${rowdef.vcsql}; \ + --create index ix_tmp_r1 on tmp_rohdaten(${coldef.name},${rowdef.name}); --Todo nicht xckennzahl ggfs. für 2. Dimension in Spalten\ +\ +\ +\ +<#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, 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),\ +${aggrfunction}\ + \ +<#if hasVirtualColumns()=0> \ +from ${table_name} where \ + ${restriction}\ + <#if (aggrfunction_restriction?length>0)> and ${aggrfunction_restriction} \ + <#else>\ +from tmp_rohdaten\ +\ +\ + group by 1,2 <#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">,${zweiteRowDef.name} ;\ +create index ix_tmp_roh1 on tmp_cache (colattrib,rowattrib,row2attrib);\ +\ +\ +--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 (rowdef.attrib_nachbearbeitung?length>1)>\ + ${rowdef.attrib_nachbearbeitung?replace("<>",tmp_table)?replace("<>",rowfield)};\ + -- z.B. update tmp_cache R set rowattrib='s_'||rowattrib;\ + \ + <#if (coldef.attrib_nachbearbeitung?length>1)>\ + ${coldef.attrib_nachbearbeitung?replace("<>",tmp_table)?replace("<>",colfield)};\ + -- z.B. update tmp_cache R set rowattrib='s_'||rowattrib;\ + \ + \ + \ + \ +\ +<#if coldef.is_sicht>0>\ +<#assign ergspalten=.vars[coldef.caption].elements/>\ +<#else>\ +<#assign ergspalten=nichtsicht_ergspalten/>\ +\ +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),\ +<#assign i=0/>\ +<#foreach spalte in ergspalten>\ + <#assign i=i+1/>\ + c${i} decimal(17,5) default 0, <@addcomment comment=spalte.name/>\ + \ +\ +sortnr integer\ +) <@informixnolog/>;\ +\ +create index ix_tmp_erg on tmp_erg (sortnr);\ + \ +<#if rowdef.is_sicht>0> \ + <#assign zeilendef=.vars[rowdef.caption].elements/> --ermittelt des SichtObjekts anhand des Feldnames (aus felderinfo)\ +<#else>\ + <#assign zeilendef=nichtsicht_ergzeilen/>\ +\ +<#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/>\ + \ +\ +<#else>\ + /* <#if zeile.level <= <> > */\ + <#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/>\ + \ +/* --<> */\ + \ +\ +\ +<#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 coldef.name="xckennzahl"> <@kennzahlrestrict row=row col=col/> <#else> <@colrestriction col=col colattribname=coldef.name/>\ + \ + )\ + \ + where T.sortnr='${sortnr}'\ + ;\ + \ + \ + <#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 rowdef.name="xckennzahl">\ + <#foreach k in kennzahlen>\ + <#if (row.key=k.apnr&&k.restriction?length>0)> and ${k.restriction} \ + \ + \ + \ + \ + <#macro kennzahlSelect row col>\ + <#if coldef.name="xckennzahl">\ + <#foreach k in kennzahlen>\ + <#if col.apnr=k.apnr> ${k.aggrfunction} \ + \ + \ + <#if rowdef.name="xckennzahl">\ + <#foreach k in kennzahlen>\ + <#if row.key=k.apnr> ${k.aggrfunction} \ + \ + \ + \ + \ + \ + \ + \ + \ + <#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}' \ + \ + \ + \ + \ + <#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 row2?is_hash> and R.row2attrib='${row2.key}' \ + \ + \ +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; \ +\ +<#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 "<>"="'ja'">\ +delete from tmp_erg where 1=1\ +<#assign i=0/>\ +<#foreach spalte in ergspalten>\ + <#assign i=i+1/>\ +and c${i}=0\ +;\ + \ +<#if "<>"="'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||' - ','');\ + \ +\ +\ +\ +\ +select \ + <#if rowdef.is_sicht>0>ebene,\ +name\ +<#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">,col2\ +<#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}\ + \ +<#else>\ +, '' || c${i}::${datatype} || '|' || tmp_cellmax.maxvalue as ${graph_col}${i}\ +\ +\ +<#else>\ +, c${i}::${datatype} as col${i}\ +\ +\ +\ +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>0>\ +Column CID=0 heading_text="Ebene" center_heading\ + row_selectable heading_platform readonly explanation="Hierarchieebene"\ + width=5 text_size=8\ +\ +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 coldef.is_sicht>0>\ +<#assign ergspalten=.vars[coldef.caption].elements/>\ +<#else>\ +<#assign ergspalten=nichtsicht_ergspalten/>\ +\ +<#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\ +\ +@@@^Altersgruppe^Anzahl^Kreuztabellen zu Zahlen für Bewerbungen und Zulassungen^drop table tmp_erg;\ +drop table tmp_cellmax;^ ^3^700^360^0^1^ ^ diff --git a/src-modules/module/xcube/masken/21250_sachgeb_maske_bez.unl b/src-modules/module/xcube/masken/21250_sachgeb_maske_bez.unl new file mode 100644 index 0000000..7d5adea --- /dev/null +++ b/src-modules/module/xcube/masken/21250_sachgeb_maske_bez.unl @@ -0,0 +1 @@ +130^21250^ diff --git a/src-modules/module/xcube/schluesseltabellen/xcube_dims_install.sql b/src-modules/module/xcube/schluesseltabellen/xcube_dims_install.sql index d48ed1e..16c7149 100644 --- a/src-modules/module/xcube/schluesseltabellen/xcube_dims_install.sql +++ b/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 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) diff --git a/src-modules/module/xcube/schluesseltabellen/xcube_install.sql b/src-modules/module/xcube/schluesseltabellen/xcube_install.sql index 767410e..ebd84c9 100644 --- a/src-modules/module/xcube/schluesseltabellen/xcube_install.sql +++ b/src-modules/module/xcube/schluesseltabellen/xcube_install.sql @@ -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 @@ "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 @@ "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 <> set <>='3-4' where <>::char(10) in ('3','4');update <> set <>='1-2-5-6' where <>::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", diff --git a/src-modules/module/xcube/schluesseltabellen/xcube_install_restrictions.sql b/src-modules/module/xcube/schluesseltabellen/xcube_install_restrictions.sql index 68794c4..b9e6b7b 100644 --- a/src-modules/module/xcube/schluesseltabellen/xcube_install_restrictions.sql +++ b/src-modules/module/xcube/schluesseltabellen/xcube_install_restrictions.sql @@ -65,7 +65,19 @@ update xcube set restriction='<> /* and <> */ <#if "<>"!=""> and ${Alter.selectedItems[0].strukturStr?replace("$1","trunc((${datum_stichtag} - geburtsdatum) / 365.25 , 0)")} ' where maskeninfo_id=21200; - + +--Bewerbungen/Zulassungen + update xcube set restriction=' <> + /* and bewsem >= <> */ + /*and bewsem <= <>*/ + /* and stg in <@printkeys Fächer.allNeededKeysList/> --<> */ + /* and abschl in (<>) */ + /* and zulart in (<>) */ + /* and kzfa in (<>) */ + /* and <> */ + /* and ca12_staat in <@printkeys Staatsangehörigkeit.allNeededKeysList/> --<> */ + /* and <> */ + ' where maskeninfo_id=21250; update xcube set restriction=' (bukz!=''PE'' or bukz is null)