Meikel Bisping
2 years ago
10 changed files with 860 additions and 19 deletions
@ -0,0 +1,227 @@
@@ -0,0 +1,227 @@
|
||||
--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="restriction" type="string"><![CDATA[<sximport>select restriction from xcube where maskeninfo_id=<<Maskennummer>></sximport>]]></sqlvar> |
||||
<sqlvar name="coldef" type="hash"><![CDATA[select F.name,F.caption,F.foreignkey_tab,F.foreignkey_col, |
||||
F.foreignkey_cap,nvl(F.foreignkey_cond,''::varchar(1)) as foreignkey_cond, |
||||
--nvl(C.specific_restriction,''::varchar(1)) as specific_restriction, |
||||
C.sortfield,C.is_sicht |
||||
from sx_fields F,xcube_dimconfig C where C.table_name=F.table_name and F.name=C.name |
||||
and C.maskeninfo_id=${Maskennummer} |
||||
and F.name=<<Ansicht in Ergebnisspalten>>]]> |
||||
</sqlvar> |
||||
<sqlvar name="nichtsicht_ergspalten" type='hashsequence'><![CDATA[ |
||||
<#if coldef.is_sicht=0> |
||||
select distinct ${coldef.foreignkey_col} 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 |
||||
<#if "<<Leere Spalten ausblenden>>"="'ja'"> |
||||
and ${coldef.foreignkey_col}::varchar(255) in (select distinct ${coldef.name}::varchar(255) from ${table_name} where |
||||
${restriction} |
||||
) |
||||
</#if> |
||||
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; |
||||
</#if> |
||||
]]> |
||||
</sqlvar> |
||||
|
||||
|
||||
|
||||
<sqlvar name="rowdef" type="hash"><![CDATA[select F.name,F.caption,C.is_sicht,foreignkey_tab,foreignkey_col,foreignkey_cap, |
||||
nvl(F.foreignkey_cond,''::varchar(1)) as foreignkey_cond, |
||||
--nvl(C.specific_restriction,''::varchar(1)) as specific_restriction, |
||||
C.sortfield |
||||
from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name |
||||
and C.maskeninfo_id=${Maskennummer} and F.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} |
||||
union |
||||
select 2,'gesamt','Gesamt',null as ${rowdef.sortfield} from xdummy |
||||
order by level,tmp_sortfield; |
||||
<#else> |
||||
select 'nicht relevant' from xdummy;</#if> |
||||
]]> |
||||
</sqlvar> |
||||
|
||||
<sqlvar name="zweiteRowDef" type="hash"><![CDATA[ |
||||
<#if "<<2.Ansicht in Zeilen>>"!=""> |
||||
select F.name,F.caption,C.is_sicht,foreignkey_tab,foreignkey_col,foreignkey_cap, |
||||
nvl(F.foreignkey_cond,''::varchar(1)) as foreignkey_cond, |
||||
--nvl(C.specific_restriction,''::varchar(1)) as specific_restriction, |
||||
C.sortfield |
||||
from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name |
||||
and C.maskeninfo_id=${Maskennummer} and F.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>>"!=""&&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} |
||||
union |
||||
select 2,'gesamt','Gesamt',null as ${zweiteRowDef.sortfield} from xdummy |
||||
order by level,tmp_sortfield; |
||||
<#else> |
||||
select 'nicht relevant' from xdummy;</#if> |
||||
]]> |
||||
</sqlvar> |
||||
|
||||
|
||||
</sqlvars> |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
create temp table tmp_rohdaten ( |
||||
colattrib varchar(255), <@addcomment comment=coldef.caption/> |
||||
rowattrib varchar(255), <@addcomment comment=rowdef.caption/> |
||||
row2attrib varchar(255), |
||||
value decimal(17,5)); |
||||
insert into tmp_rohdaten (colattrib,rowattrib,<#if "<<2.Ansicht in Zeilen>>"!="">row2attrib, </#if> value) |
||||
select ${coldef.name}::varchar(255), |
||||
${rowdef.name}::varchar(255), |
||||
<#if "<<2.Ansicht in Zeilen>>"!="">${zweiteRowDef.name}::varchar(255),</#if> |
||||
${aggrfunction} |
||||
from |
||||
${table_name} |
||||
where |
||||
${restriction} |
||||
<#if (aggrfunction_restriction?length>0)> and ${aggrfunction_restriction} </#if> |
||||
group by 1,2 <#if "<<2.Ansicht in Zeilen>>"!="">,${zweiteRowDef.name}</#if> ; |
||||
create index ix_tmp_roh1 on tmp_rohdaten (colattrib,rowattrib,row2attrib); |
||||
|
||||
<#if coldef.is_sicht>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>>"!="">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>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>>"!=""> |
||||
<#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> |
||||
<#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> |
||||
</#foreach> |
||||
|
||||
<#macro updateval i col row row2 sortnr> |
||||
update tmp_erg T set c${i}= |
||||
(select nvl(sum(value),0) from tmp_rohdaten R where 1=1 |
||||
|
||||
<#if coldef.is_sicht==1> |
||||
and R.colattrib in ${col.subkeys} |
||||
<#else> |
||||
--TODO Sicht=2 |
||||
<#if col.apnr!='gesamt'> |
||||
and R.colattrib='${col.apnr}' |
||||
</#if> |
||||
</#if> |
||||
|
||||
<#if rowdef.is_sicht==1> |
||||
and R.rowattrib in ${row.subkeys} |
||||
<#elseif rowdef.is_sicht==2> |
||||
and ( ${row.strukturStr?replace('$1',' R.rowattrib')} ) |
||||
<#else> |
||||
<#if row.key!='gesamt'> and R.rowattrib='${row.key}' </#if> |
||||
</#if> |
||||
<#if row2?is_hash> and R.row2attrib='${row2.key}' </#if> |
||||
) where T.sortnr='${sortnr}' |
||||
; |
||||
</#macro> |
||||
|
||||
drop table tmp_rohdaten; |
||||
|
||||
|
||||
|
||||
<#if "<<Leere Zeilen ausblenden>>"="'ja'"> |
||||
delete from tmp_erg where |
||||
<#assign i=0/> |
||||
<#foreach spalte in ergspalten> |
||||
<#assign i=i+1/> |
||||
c${i}=0 <#if spalte_has_next> and </#if> |
||||
</#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>0>ebene,col1,</#if> |
||||
name, |
||||
<#if "<<2.Ansicht in Zeilen>>"!="">col2,</#if> |
||||
<#assign i=0/> |
||||
<#foreach spalte in ergspalten> |
||||
<#assign i=i+1/> |
||||
c${i} <#if spalte_has_next>,</#if> |
||||
</#foreach> |
||||
|
||||
from tmp_erg order by sortnr; |
@ -0,0 +1,156 @@
@@ -0,0 +1,156 @@
|
||||
--freemarker template |
||||
<sqlvars> |
||||
<sqlvar name="table_name">select table_name from xcube where maskeninfo_id=${Maskennummer}</sqlvar> |
||||
<sqlvar name="function">select function from xcube_kennzahl where maskeninfo_id=${Maskennummer} and tid=<<Kennzahl>></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 F.name,F.caption,F.foreignkey_tab,F.foreignkey_col, |
||||
F.foreignkey_cap,nvl(F.foreignkey_cond,''::varchar(1)) as foreignkey_cond, |
||||
nvl(C.specific_restriction,''::varchar(1)) as specific_restriction, |
||||
C.sortfield |
||||
from sx_fields F,xcube_dimconfig C where C.table_name=F.table_name and F.name=C.name |
||||
and C.maskeninfo_id=${Maskennummer} |
||||
and F.name=<<Ansicht in Ergebnisspalten>>]]> |
||||
</sqlvar> |
||||
<sqlvar name="ergspalten" type='hashsequence'><![CDATA[ |
||||
select distinct ${coldef.foreignkey_col} as apnr,${coldef.foreignkey_cap} as name, |
||||
1::smallint as detailgesamtsort,${coldef.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 |
||||
--and ${coldef.foreignkey_col} in (select distinct ${coldef.name} from ${tablename} where |
||||
--Hier allgemeine Einschränkungen |
||||
--jahr=<<Jahr>> |
||||
--) |
||||
union |
||||
select 'gesamt','Gesamt',2::smallint as detailgesamtsort,null as ${coldef.sortfield} from xdummy |
||||
order by detailgesamtsort,${coldef.sortfield},name; |
||||
]]> |
||||
</sqlvar> |
||||
|
||||
|
||||
|
||||
<sqlvar name="rowdef" type="hash"><![CDATA[select F.name,F.caption,C.is_sicht,foreignkey_tab,foreignkey_col,foreignkey_cap, |
||||
nvl(F.foreignkey_cond,''::varchar(1)) as foreignkey_cond, |
||||
nvl(C.specific_restriction,''::varchar(1)) as specific_restriction |
||||
from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name |
||||
and C.maskeninfo_id=${Maskennummer} and F.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 from ${rowdef.foreignkey_tab} |
||||
where 1=1 |
||||
<#if rowdef.foreignkey_cond!=''> and ${rowdef.foreignkey_cond} </#if> |
||||
${rowdef.specific_restriction} |
||||
union |
||||
select 2,'gesamt','Gesamt' from xdummy |
||||
order by level,name; |
||||
<#else> |
||||
select 'nicht relevant' from xdummy;</#if> |
||||
]]> |
||||
</sqlvar> |
||||
</sqlvars> |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
create temp table tmp_rohdaten ( |
||||
colattrib varchar(255), <@addcomment comment=coldef.caption/> |
||||
rowattrib varchar(255), <@addcomment comment=rowdef.caption/> |
||||
value decimal(17,5)); |
||||
insert into tmp_rohdaten (colattrib,rowattrib,value) |
||||
select ${coldef.name}::varchar(255), |
||||
${rowdef.name}::varchar(255), ${function} |
||||
from |
||||
${table_name} |
||||
where |
||||
${restriction} |
||||
group by 1,2; |
||||
create index ix_tmp_roh1 on tmp_rohdaten (colattrib,rowattrib); |
||||
|
||||
create temp table tmp_erg ( |
||||
ebene integer, |
||||
col1 varchar(255), |
||||
name varchar(255), |
||||
<#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/>; |
||||
<#assign sortnr=0/> |
||||
|
||||
|
||||
<#if rowdef.is_sicht==1> |
||||
<#assign zeilendef=.vars[rowdef.caption].elements/> --ermittel des SichtObjekts anhand des Feldnames (aus felderinfo) |
||||
<#else> |
||||
<#assign zeilendef=nichtsicht_ergzeilen/> |
||||
</#if> |
||||
|
||||
<#foreach zeile in zeilendef> |
||||
<#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 art='gesamt'/> |
||||
|
||||
</#foreach> |
||||
</#foreach> |
||||
|
||||
<#macro updateval i col row art> |
||||
update tmp_erg T set c${i}= |
||||
(select nvl(sum(value),0) from tmp_rohdaten R where 1=1 |
||||
<#if col.apnr!='gesamt'> |
||||
and R.colattrib='${col.apnr}' |
||||
</#if> |
||||
|
||||
<#if rowdef.is_sicht==1> |
||||
and R.rowattrib in ${row.subkeys} |
||||
<#else> |
||||
<#if row.key!='gesamt'> and R.rowattrib='${row.key}' </#if> |
||||
</#if> |
||||
) where T.col1='${row.key}' |
||||
; |
||||
</#macro> |
||||
|
||||
drop table tmp_rohdaten; |
||||
|
||||
|
||||
|
||||
--Leerzeilen entfernen |
||||
delete from tmp_erg where |
||||
<#assign i=0/> |
||||
<#foreach spalte in ergspalten> |
||||
<#assign i=i+1/> |
||||
c${i}=0 <#if spalte_has_next> and </#if> |
||||
</#foreach>; |
||||
|
||||
<#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==1>ebene,col1,</#if> |
||||
name, |
||||
<#assign i=0/> |
||||
<#foreach spalte in ergspalten> |
||||
<#assign i=i+1/> |
||||
c${i}::integer <#if spalte_has_next>,</#if> |
||||
</#foreach> |
||||
|
||||
from tmp_erg order by sortnr; |
@ -0,0 +1,44 @@
@@ -0,0 +1,44 @@
|
||||
999990060^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^apnr, eintrag^<<SQL>> select apnr, eintrag from koepfe_oder_faelle where eintrag='Köpfe';^ |
||||
999990061^Semester^3^0^0^140^80^3^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^Eintrag^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^ |
||||
999990062^Stichtag^1^350^-1^140^100^1^sql^30^0^1^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende';^^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende' and appl_key='0';^ |
||||
999990063^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;^^^ |
||||
999990064^Status^14^350^-1^140^180^1^sql^30^0^1^<<SQL>> select apnr,eintrag from sos_status order by 2^^<<SQL>> select apnr,eintrag from sos_status where eintrag='Alle ohne Beurl.';^ |
||||
999990065^Hörerstatus^33^0^0^140^170^1^sql^30^0^1^<<SQL>> select apnr, eintrag from hoererstatus order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from hoererstatus where eintrag='alle';^ |
||||
999990066^Weitere Tabellen^123^0^0^140^140^10^char^30^0^999^<<SQL>> \ |
||||
--freemarker template\ |
||||
select name,string_not_null(caption) || ' - ' || name from sx_tables where name in (<#if "<<Köpfe oder Fälle ?>>"?index_of("S.gewichtung")==-1>'dim_studiengang'<#else>'dim_studiengang_gew'</#if>,'ikfz_bland_sem','ikfz_bland_hm','ikfz_bland_hzb','dim_staat', 'dim_person_attribute_aggr', 'semester')\ |
||||
<#if <<tablestylesheet>>!='tabelle_html_datenblatt.xsl'>\ |
||||
and name in (select distinct tablename from stylesheet_field where stylesheet_id in (select tid from sx_stylesheets where filename=<<tablestylesheet>>)) \ |
||||
</#if>\ |
||||
order by 2^^^ |
||||
999990067^bis Fachsemester^35^350^-1^140^100^1^integer^30^0^0^^^^ |
||||
999990069^Bis Semester^4^350^-1^140^80^1^integer^30^0^999^<<SQL>> select tid, eintrag from semester order by tid DESC;^Eintrag^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^ |
||||
999990070^Filter Studierende^119^0^0^140^150^1^sql^20^0^1^<<SQL>> SELECT id,caption from sx_repository where aktiv =1 and today() between gueltig_seit and gueltig_bis and art='SOS_STUD_FILTER' order by 2;^^^ |
||||
999990071^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;^^^ |
||||
999990072^Felder^125^0^0^150^190^10^char^30^0^999^<<SQL>>\ |
||||
--freemarker template\ |
||||
select trim(F.table_name) || '.' || F.name,trim(T.caption) || ':' || trim(F.caption) || ' - ' || trim(F.name) from sx_fields F,\ |
||||
sx_tables T where F.table_name=T.name and F.currentlyused=1\ |
||||
--Pseudonyme eingeschaltet:\ |
||||
and (F.name != 'matrikel_nr' or 0=(select \ |
||||
count(*) from konstanten where beschreibung='SOS_MTKNR_EXT'\ |
||||
and apnr=1)) \ |
||||
<#if <<tablestylesheet>>='tabelle_html_datenblatt.xsl'>\ |
||||
and (F.table_name ='sos_stg_aggr'\ |
||||
/* or F.table_name in (<<Weitere Tabellen>>) */) \ |
||||
<#else>\ |
||||
and trim(F.table_name) || '.' || F.name in (select trim(tablename)||'.'||trim(fieldname) from stylesheet_field where stylesheet_id in \ |
||||
(select tid from sx_stylesheets where filename=<<tablestylesheet>>))\ |
||||
</#if>\ |
||||
order by 2;^^^ |
||||
999990073^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;^^^ |
||||
999990074^Schlüssel anzeigen^150^0^0^100^100^1^integer^30^1^999^<<SQL>> select 1,'Ja' from xdummy union select 0,'Nein' from xdummy^^<<SQL>> select 1,'Ja' from xdummy^ |
||||
999990075^Ansicht in Ergebniszeilen^121^0^0^100^200^1^char^200^1^1^<<SQL>> select F.name,F.caption from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name and is_rowdim=1 and C.maskeninfo_id=${Maskennummer} order by 1^^<<SQL>> select F.name,F.caption from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name and is_rowdefault=1 and C.maskeninfo_id=${Maskennummer} order by 1^ |
||||
999990076^Ansicht in Ergebnisspalten^2001^0^0^100^150^1^char^200^1^1^<<SQL>> select F.name,F.caption from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name and is_coldim=1 and C.maskeninfo_id=${Maskennummer} order by 1^^<<SQL>> select F.name,F.caption from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name and is_coldefault=1 and C.maskeninfo_id=${Maskennummer} order by 1^ |
||||
999990077^Zivilstatus^41^350^-1^140^180^1^sql^30^0^13^<<SQL>> select attributevalue from personattribute_value_list where personattributetype_id = (select personattributetype_id from personattributetype where attributevalue = 'Status');^^^ |
||||
999990078^Jahrgang^42^350^-1^140^180^1^sql^30^0^13^<<SQL>> select attributevalue from personattribute_value_list where personattributetype_id = (select personattributetype_id from personattributetype where attributevalue = 'Jahrgang');^^^ |
||||
999990079^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^ |
||||
999990080^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^ |
||||
999990081^Abschluss^7^0^0^140^170^5^char^30^0^1^<<SQL>> select abint,dtxt from k_abint order by 2;^^^ |
||||
999990082^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;^{InputCheck:matrikelnummern}^<<SQL>> select tid,name from xcube_kennzahl where maskeninfo_id=${Maskennummer} and is_default=1^ |
||||
999990083^2.Ansicht in Zeilen^125^0^0^100^100^1^char^50^0^1^<<SQL>> select F.name,F.caption from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name and is_secondrowdim=1 and C.maskeninfo_id=${Maskennummer} order by 1^^1^ |
@ -0,0 +1 @@
@@ -0,0 +1 @@
|
||||
999990060^7^ |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
999990060^999990060^ |
||||
999990060^999990061^ |
||||
999990060^999990062^ |
||||
999990060^999990063^ |
||||
999990060^999990064^ |
||||
999990060^999990065^ |
||||
999990060^999990066^ |
||||
999990060^999990067^ |
||||
999990060^999990069^ |
||||
999990060^999990070^ |
||||
999990060^999990071^ |
||||
999990060^999990072^ |
||||
999990060^999990073^ |
||||
999990060^999990074^ |
||||
999990060^999990075^ |
||||
999990060^999990076^ |
||||
999990060^999990077^ |
||||
999990060^999990078^ |
||||
999990060^999990079^ |
||||
999990060^999990080^ |
||||
999990060^999990081^ |
||||
999990060^999990082^ |
||||
999990060^999990083^ |
@ -0,0 +1,266 @@
@@ -0,0 +1,266 @@
|
||||
999990060^xCube Studierende^--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="restriction" type="string"><![CDATA[<sximport>select restriction from xcube where maskeninfo_id=<<Maskennummer>></sximport>]]></sqlvar>\ |
||||
<sqlvar name="coldef" type="hash"><![CDATA[select F.name,F.caption,F.foreignkey_tab,F.foreignkey_col,\ |
||||
F.foreignkey_cap,nvl(F.foreignkey_cond,''::varchar(1)) as foreignkey_cond,\ |
||||
--nvl(C.specific_restriction,''::varchar(1)) as specific_restriction,\ |
||||
C.sortfield,C.is_sicht\ |
||||
from sx_fields F,xcube_dimconfig C where C.table_name=F.table_name and F.name=C.name \ |
||||
and C.maskeninfo_id=${Maskennummer} \ |
||||
and F.name=<<Ansicht in Ergebnisspalten>>]]>\ |
||||
</sqlvar>\ |
||||
<sqlvar name="nichtsicht_ergspalten" type='hashsequence'><![CDATA[\ |
||||
<#if coldef.is_sicht=0>\ |
||||
select distinct ${coldef.foreignkey_col} 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\ |
||||
<#if "<<Leere Spalten ausblenden>>"="'ja'">\ |
||||
and ${coldef.foreignkey_col}::varchar(255) in (select distinct ${coldef.name}::varchar(255) from ${table_name} where \ |
||||
${restriction} \ |
||||
)\ |
||||
</#if>\ |
||||
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;\ |
||||
</#if>\ |
||||
]]>\ |
||||
</sqlvar>\ |
||||
\ |
||||
\ |
||||
\ |
||||
<sqlvar name="rowdef" type="hash"><![CDATA[select F.name,F.caption,C.is_sicht,foreignkey_tab,foreignkey_col,foreignkey_cap,\ |
||||
nvl(F.foreignkey_cond,''::varchar(1)) as foreignkey_cond,\ |
||||
--nvl(C.specific_restriction,''::varchar(1)) as specific_restriction,\ |
||||
C.sortfield\ |
||||
from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name \ |
||||
and C.maskeninfo_id=${Maskennummer} and F.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} \ |
||||
union\ |
||||
select 2,'gesamt','Gesamt',null as ${rowdef.sortfield} from xdummy\ |
||||
order by level,tmp_sortfield; \ |
||||
<#else>\ |
||||
select 'nicht relevant' from xdummy;</#if>\ |
||||
]]>\ |
||||
</sqlvar>\ |
||||
\ |
||||
<sqlvar name="zweiteRowDef" type="hash"><![CDATA[\ |
||||
<#if "<<2.Ansicht in Zeilen>>"!="">\ |
||||
select F.name,F.caption,C.is_sicht,foreignkey_tab,foreignkey_col,foreignkey_cap,\ |
||||
nvl(F.foreignkey_cond,''::varchar(1)) as foreignkey_cond,\ |
||||
--nvl(C.specific_restriction,''::varchar(1)) as specific_restriction,\ |
||||
C.sortfield\ |
||||
from sx_fields F,xcube_dimconfig C where F.table_name=C.table_name and F.name=C.name \ |
||||
and C.maskeninfo_id=${Maskennummer} and F.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>>"!=""&&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} \ |
||||
union\ |
||||
select 2,'gesamt','Gesamt',null as ${zweiteRowDef.sortfield} from xdummy\ |
||||
order by level,tmp_sortfield; \ |
||||
<#else>\ |
||||
select 'nicht relevant' from xdummy;</#if>\ |
||||
]]>\ |
||||
</sqlvar>\ |
||||
\ |
||||
\ |
||||
</sqlvars>\ |
||||
\ |
||||
\ |
||||
\ |
||||
\ |
||||
\ |
||||
create temp table tmp_rohdaten (\ |
||||
colattrib varchar(255), <@addcomment comment=coldef.caption/>\ |
||||
rowattrib varchar(255), <@addcomment comment=rowdef.caption/>\ |
||||
row2attrib varchar(255),\ |
||||
value decimal(17,5));\ |
||||
insert into tmp_rohdaten (colattrib,rowattrib,<#if "<<2.Ansicht in Zeilen>>"!="">row2attrib, </#if> value)\ |
||||
select ${coldef.name}::varchar(255), \ |
||||
${rowdef.name}::varchar(255),\ |
||||
<#if "<<2.Ansicht in Zeilen>>"!="">${zweiteRowDef.name}::varchar(255),</#if>\ |
||||
${aggrfunction}\ |
||||
from \ |
||||
${table_name}\ |
||||
where \ |
||||
${restriction}\ |
||||
<#if (aggrfunction_restriction?length>0)> and ${aggrfunction_restriction} </#if>\ |
||||
group by 1,2 <#if "<<2.Ansicht in Zeilen>>"!="">,${zweiteRowDef.name}</#if> ;\ |
||||
create index ix_tmp_roh1 on tmp_rohdaten (colattrib,rowattrib,row2attrib);\ |
||||
\ |
||||
<#if coldef.is_sicht>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>>"!="">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>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>>"!="">\ |
||||
<#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>\ |
||||
<#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> \ |
||||
</#foreach>\ |
||||
\ |
||||
<#macro updateval i col row row2 sortnr>\ |
||||
update tmp_erg T set c${i}=\ |
||||
(select nvl(sum(value),0) from tmp_rohdaten R where 1=1 \ |
||||
\ |
||||
<#if coldef.is_sicht==1>\ |
||||
and R.colattrib in ${col.subkeys}\ |
||||
<#else>\ |
||||
--TODO Sicht=2\ |
||||
<#if col.apnr!='gesamt'>\ |
||||
and R.colattrib='${col.apnr}' \ |
||||
</#if>\ |
||||
</#if>\ |
||||
\ |
||||
<#if rowdef.is_sicht==1>\ |
||||
and R.rowattrib in ${row.subkeys}\ |
||||
<#elseif rowdef.is_sicht==2>\ |
||||
and ( ${row.strukturStr?replace('$1',' R.rowattrib')} ) \ |
||||
<#else>\ |
||||
<#if row.key!='gesamt'> and R.rowattrib='${row.key}' </#if>\ |
||||
</#if>\ |
||||
<#if row2?is_hash> and R.row2attrib='${row2.key}' </#if> \ |
||||
) where T.sortnr='${sortnr}'\ |
||||
;\ |
||||
</#macro>\ |
||||
\ |
||||
drop table tmp_rohdaten;\ |
||||
\ |
||||
\ |
||||
\ |
||||
<#if "<<Leere Zeilen ausblenden>>"="'ja'">\ |
||||
delete from tmp_erg where\ |
||||
<#assign i=0/>\ |
||||
<#foreach spalte in ergspalten>\ |
||||
<#assign i=i+1/>\ |
||||
c${i}=0 <#if spalte_has_next> and </#if>\ |
||||
</#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>0>ebene,col1,</#if>\ |
||||
name,\ |
||||
<#if "<<2.Ansicht in Zeilen>>"!="">col2,</#if>\ |
||||
<#assign i=0/>\ |
||||
<#foreach spalte in ergspalten>\ |
||||
<#assign i=i+1/>\ |
||||
c${i} <#if spalte_has_next>,</#if>\ |
||||
</#foreach>\ |
||||
\ |
||||
from tmp_erg 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\ |
||||
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==1>\ |
||||
Column CID=0 heading_text="Ebene" center_heading\ |
||||
row_selectable heading_platform readonly\ |
||||
width=10 text_size=8\ |
||||
Column CID=20 heading_text="${.vars["Ansicht in ErgebniszeilenObject"].selectedItems[0].name}Nr" center_heading\ |
||||
row_selectable heading_platform readonly\ |
||||
width=10 text_size=10\ |
||||
</#if>\ |
||||
Column CID=20 heading_text="${.vars["Ansicht in ErgebniszeilenObject"].selectedItems[0].name}" center_heading\ |
||||
row_selectable heading_platform readonly\ |
||||
width=10 text_size=10\ |
||||
<#if "<<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=10 text_size=10\ |
||||
</#if>\ |
||||
<#if coldef.is_sicht>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\ |
||||
width=12\ |
||||
</#foreach>\ |
||||
\ |
||||
\ |
||||
@@@^Altersgruppe^Anzahl^Flexible Ausgabe der Studierendenstatistik, Studiengänge und Lehreinheiten^drop table tmp_erg;^^3^700^360^0^1^^ |
@ -0,0 +1 @@
@@ -0,0 +1 @@
|
||||
16^999990060^ |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
delete from xcube_dims where id in ('fssemzahl','hssemzahl'); |
||||
INSERT INTO xcube_dims (id,apnr,name,sort1,parent,strukturstr) |
||||
VALUES |
||||
('fssemzahl','1','1.FS',1,NULL,NULL), |
||||
('fssemzahl','2','2.FS',2,NULL,NULL), |
||||
('fssemzahl','3','3.FS',3,NULL,NULL), |
||||
('fssemzahl','4','4.FS',4,NULL,NULL), |
||||
('fssemzahl','5','5.FS',5,NULL,NULL), |
||||
('fssemzahl','6','6.FS',6,NULL,NULL), |
||||
('fssemzahl','7','7.FS',7,NULL,NULL), |
||||
('fssemzahl','8','8.FS',8,NULL,NULL), |
||||
('fssemzahl','9','9.FS',9,NULL,NULL), |
||||
('fssemzahl','10','10.FS',10,NULL,NULL); |
||||
|
||||
INSERT INTO xcube_dims (id,apnr,name,sort1,parent,strukturstr) |
||||
VALUES |
||||
('hssemzahl','1','1.HS',1,NULL,NULL), |
||||
('hssemzahl','2','2.HS',2,NULL,NULL), |
||||
('hssemzahl','3','3.HS',3,NULL,NULL), |
||||
('hssemzahl','4','4.HS',4,NULL,NULL), |
||||
('hssemzahl','10','10.HS',10,NULL,NULL), |
||||
('hssemzahl','5','5.HS',5,NULL,NULL), |
||||
('hssemzahl','6','6.HS',6,NULL,NULL), |
||||
('hssemzahl','7','7.HS',7,NULL,NULL), |
||||
('hssemzahl','8','8.HS',8,NULL,NULL), |
||||
('hssemzahl','9','9.HS',9,NULL,NULL); |
@ -0,0 +1,66 @@
@@ -0,0 +1,66 @@
|
||||
--freemarker template |
||||
|
||||
<#assign xcubes = [ |
||||
{"name":"Studierendenwürfel", "uniquename":"xcube_sos_stg_aggr","sachgebiet":16,"table_name":"sos_stg_aggr","maskeninfo_id":999990060, |
||||
"restriction":"sem_rueck_beur_ein in (<<Semester>>)"} |
||||
] /> |
||||
|
||||
<#assign xcube_kennzahl = [ |
||||
{"xcube":"xcube_sos_stg_aggr", "maskeninfo_id":999990060,"apnr":"faelle","name":"Studierende (Fälle)","aggrfunction":"sum(summe)","restriction":"","is_default":1,"sortnr":1}, |
||||
{"xcube":"xcube_sos_stg_aggr", "maskeninfo_id":999990060,"apnr":"koepfe","name":"Studierende (Köpfe)","aggrfunction":"sum(summe)","restriction":"studiengang_nr=1 and fach_nr=1" |
||||
,"is_default":0,"sortnr":2} |
||||
] /> |
||||
|
||||
|
||||
<#assign xcube_dimconfig = [ |
||||
{"xcube":"xcube_sos_stg_aggr","maskeninfo_id":999990060, "table_name":"sos_stg_aggr", "name":"fach_sem_zahl", |
||||
"is_sicht":0,"is_rowdim":1,"is_secondrowdim":0,"is_rowdefault":1,"is_coldim":1, "is_secondcoldim":0,"is_coldefault":0,"sortfield":"sort1"}, |
||||
{"xcube":"xcube_sos_stg_aggr","maskeninfo_id":999990060, "table_name":"sos_stg_aggr", "name":"hssem", |
||||
"is_sicht":0,"is_rowdim":1,"is_secondrowdim":0,"is_rowdefault":0,"is_coldim":1, "is_secondcoldim":0,"is_coldefault":1,"sortfield":"sort1"}, |
||||
{"xcube":"xcube_sos_stg_aggr","maskeninfo_id":999990060, "table_name":"sos_stg_aggr", "name":"geschlecht", |
||||
"is_sicht":0,"is_rowdim":1,"is_secondrowdim":1, "is_rowdefault":0,"is_coldim":1, "is_secondcoldim":0,"is_coldefault":0,"sortfield":"apnr"} |
||||
|
||||
] /> |
||||
|
||||
<#assign sx_fields_entries = [ |
||||
{"table_name":"sos_stg_aggr","name":"hssem","caption":"HS","foreignkey_tab":"xcube_dims","foreignkey_col":"apnr","foreignkey_cap":"name","foreignkey_cond":"id='hssemzahl'"}, |
||||
{"table_name":"sos_stg_aggr","name":"fach_sem_zahl","caption":"FS","foreignkey_tab":"xcube_dims","foreignkey_col":"apnr","foreignkey_cap":"name","foreignkey_cond":"id='fssemzahl'"} |
||||
] /> |
||||
|
||||
--freemarker magic |
||||
|
||||
<#foreach cube in xcubes> |
||||
delete from xcube where maskeninfo_id=${cube.maskeninfo_id}; |
||||
delete from xcube_dimconfig where maskeninfo_id=${cube.maskeninfo_id}; |
||||
delete from xcube_kennzahl where maskeninfo_id=${cube.maskeninfo_id}; |
||||
insert into xcube (name,uniquename,table_name,maskeninfo_id,sachgebiet,restriction) |
||||
values ('${cube.name}','${cube.uniquename}','${cube.table_name}',${cube.maskeninfo_id},${cube.sachgebiet}, |
||||
'${cube.restriction?replace("\x0027","\x0027\x0027")}'); |
||||
</#foreach> |
||||
|
||||
<#foreach k in xcube_kennzahl> |
||||
insert into xcube_kennzahl (xcube,apnr,name,maskeninfo_id,aggrfunction,restriction,is_default,sortnr) values |
||||
('${k.xcube}','${k.apnr}','${k.name}',${k.maskeninfo_id},'${k.aggrfunction?replace("\x0027","\x0027\x0027")}', |
||||
'${k.restriction?replace("\x0027","\x0027\x0027")}', |
||||
${k.is_default},${k.sortnr}); |
||||
|
||||
</#foreach> |
||||
|
||||
|
||||
<#foreach conf in xcube_dimconfig> |
||||
|
||||
insert into xcube_dimconfig (xcube,maskeninfo_id,table_name,name,is_sicht,is_rowdim,is_secondrowdim,is_rowdefault,is_coldim,is_secondcoldim, is_coldefault,sortfield) |
||||
values ('${conf.xcube}',${conf.maskeninfo_id},'${conf.table_name}','${conf.name}',${conf.is_sicht},${conf.is_rowdim},${conf.is_secondrowdim}, |
||||
${conf.is_rowdefault},${conf.is_coldim},${conf.is_secondcoldim}, |
||||
${conf.is_coldefault},'${conf.sortfield}'); |
||||
</#foreach> |
||||
|
||||
<#foreach sxf in sx_fields_entries> |
||||
insert into sx_fields (table_name,name) select '${sxf.table_name}','${sxf.name}' from xdummy where |
||||
(select count(*) from sx_fields where table_name='${sxf.table_name}' and name='${sxf.name}')=0; |
||||
update sx_fields set caption='${sxf.caption?replace("\x0027","\x0027\x0027")}', |
||||
foreignkey_tab='${sxf.foreignkey_tab}',foreignkey_col='${sxf.foreignkey_col}',foreignkey_cap='${sxf.foreignkey_cap}', |
||||
foreignkey_cond='${sxf.foreignkey_cond?replace("\x0027","\x0027\x0027")}' -- einfache durch zwei einfache Zeichen ersetzten |
||||
where table_name='${sxf.table_name}' |
||||
and name='${sxf.name}'; |
||||
</#foreach> |
Loading…
Reference in new issue