14 changed files with 228852 additions and 203243 deletions
@ -1 +1,480 @@
@@ -1 +1,480 @@
|
||||
47140^Studierende / Studienanfänger_innen (Hochschulvergleich)^<sximport>select select_stmt from maskeninfo where tid=48000</sximport>^<sximport>select xil_proplist from maskeninfo where tid=48000</sximport>^Studienfach^Anzahl bzw. Anteil^Studierende und Anteil weiblicher Studierender als Zeitreihe mit Frauenanteil eigene Hochschule zu anderen Hochschulen^<sximport>select cleanup_stmt from maskeninfo where tid=48000</sximport>^^2^850^540^^1^<<SQL>>SELECT description FROM rpta_column_layout where tid=<<Spaltenlayout>>;^ |
||||
47140^Studierende / Studienanfänger_innen (Hochschulvergleich)^--Freemarker Template\ |
||||
<#include "SQL_lingua_franca"/>\ |
||||
<#include "SuperX_general"/>\ |
||||
--\ |
||||
--Autor D. Quathamer 2024\ |
||||
<sqlvars>\ |
||||
<sqlvar name="my_base_rs"><![CDATA[\ |
||||
select R.uniquename\ |
||||
from rpta_resultset R, rpta_column_layout L\ |
||||
where L.resultset_id=R.tid\ |
||||
and L.uniquename=<<Spaltenlayout>>;]]>\ |
||||
</sqlvar>\ |
||||
<sqlvar name="basetable" type="hash"><![CDATA[\ |
||||
SELECT distinct T.name,\ |
||||
R.is_virtual,\ |
||||
name as runtime_tablename\ |
||||
from sx_tables T, rpta_resultset R \ |
||||
where T.name=R.uniquename\ |
||||
and T.name='${my_base_rs}'\ |
||||
and R.is_virtual=0\ |
||||
\ |
||||
union\ |
||||
select R.uniquename,\ |
||||
R.is_virtual,\ |
||||
'tmp_' || R.uniquename as runtime_tablename\ |
||||
from rpta_resultset R where R.uniquename='${my_base_rs}'\ |
||||
and R.is_virtual=1\ |
||||
;\ |
||||
]]>\ |
||||
</sqlvar>\ |
||||
<sqlvar name="rpta_resultset" type="hash"><![CDATA[\ |
||||
select caption,\ |
||||
uniquename,\ |
||||
fieldclause,\ |
||||
joinclause,\ |
||||
whereclause,\ |
||||
systeminfo_id\ |
||||
from rpta_resultset\ |
||||
where uniquename='${basetable.name}';\ |
||||
\ |
||||
]]></sqlvar>\ |
||||
<sqlvar name="rpta_column_layout" type="hash"><![CDATA[\ |
||||
select L.uniquename,\ |
||||
L.caption,\ |
||||
L.whereclause,\ |
||||
R.is_virtual,\ |
||||
L.sortclause\ |
||||
from rpta_resultset R, rpta_column_layout L\ |
||||
where L.resultset_id=R.tid\ |
||||
and R.uniquename='${basetable.name}'\ |
||||
and L.uniquename=<<Spaltenlayout>>;\ |
||||
\ |
||||
]]></sqlvar>\ |
||||
<sqlvar name="columns" type="hashsequence"><![CDATA[\ |
||||
SELECT C.srcfieldname,\ |
||||
(case when string_not_null(C.targetfieldname)='' then C.srcfieldname else C.targetfieldname end) as targetfieldname,\ |
||||
T.uniquename as coltype,\ |
||||
C.uniquename,\ |
||||
C.is_aggregate,\ |
||||
(case when string_not_null(CL.caption)='' then C.caption else CL.caption end) as caption,\ |
||||
CL.is_visible,\ |
||||
CL.visible_size as visible_width,\ |
||||
F.sql_code as format_sql,\ |
||||
F.uniquename as format_uniquename,\ |
||||
C.col_function as colfunction,\ |
||||
(case when string_not_null(CL.description)='' then C.description else CL.description end) as description\ |
||||
FROM rpta_column_layout L, rpta_column C, rpta_column_type T,rpta_column2layout CL \ |
||||
left outer join rpta_format_code F on (F.tid=CL.format_code_id)\ |
||||
where L.tid=CL.layout_id\ |
||||
and C.tid=CL.column_id\ |
||||
and T.tid=C.column_type\ |
||||
and L.uniquename=<<Spaltenlayout>>\ |
||||
/* and C.uniquename in (<<Spalten>>) */\ |
||||
order by CL.sortnr\ |
||||
;\ |
||||
]]></sqlvar>\ |
||||
<sqlvar name="endsemester"><![CDATA[\ |
||||
SELECT max(tid)\ |
||||
from semester \ |
||||
where 1=1\ |
||||
/* and tid >= <<Seit Semester>> */\ |
||||
/* and tid <= <<Bis Semester>> */\ |
||||
<#if "<<Semestertyp>>"="1" || "<<Semestertyp>>"="2">\ |
||||
and substring('' || tid from 5 for 1)='<<Semestertyp>>'\ |
||||
</#if>\ |
||||
;\ |
||||
\ |
||||
]]></sqlvar>\ |
||||
<sqlvar name="vergleichsgruppen" type="hashsequence"><![CDATA[\ |
||||
SELECT tid,name,uniquename,ordnr \ |
||||
from sxc_hochschule_vergleichsgruppe\ |
||||
where aktiv=1\ |
||||
order by ordnr\ |
||||
limit 2;\ |
||||
\ |
||||
\ |
||||
]]></sqlvar>\ |
||||
</sqlvars>\ |
||||
\ |
||||
<#assign jahr_param="" />\ |
||||
<#assign jahr_filter="1=1" />\ |
||||
/* <#assign jahr_param="<<Jahr>>" /> */\ |
||||
--Akad. Jahr 2022: WS + SS - Beispiel: WS 22/23 + SS 2023\ |
||||
<#if jahr_param !="">\ |
||||
<#assign jahr_filter="(" />\ |
||||
<#assign jahr_filter=jahr_filter + "(substring('' || sem_rueck_beur_ein from 5 for 1)='2' and val(substring('' || sem_rueck_beur_ein from 1 for 4))="+jahr_param+")" />\ |
||||
<#assign jahr_filter=jahr_filter + " or "/>\ |
||||
<#assign jahr_filter=jahr_filter + "(substring('' || sem_rueck_beur_ein from 5 for 1)='1' and (val(substring('' || sem_rueck_beur_ein from 1 for 4))-1)="+jahr_param+")" />\ |
||||
<#assign jahr_filter=jahr_filter + ")" />\ |
||||
</#if>\ |
||||
\ |
||||
<#assign semester_filter ="1=1\ |
||||
/* and sem_rueck_beur_ein >= <<Seit Semester>> */\ |
||||
/* and sem_rueck_beur_ein <= <<Bis Semester>> */\ |
||||
" />\ |
||||
<#if "<<Semestertyp>>"="1" || "<<Semestertyp>>"="2">\ |
||||
<#assign semester_filter = semester_filter+ " and substring('' || sem_rueck_beur_ein from 5 for 1)='<<Semestertyp>>'" />\ |
||||
</#if>\ |
||||
<#if "<<Nur Endsemester>>"="1">\ |
||||
--nur Endsemester\ |
||||
<#assign semester_filter = semester_filter+ " and 1=1 and sem_rueck_beur_ein = "+endsemester /> \ |
||||
</#if>\ |
||||
\ |
||||
<#assign filter="<<Köpfe oder Fälle ?>>\ |
||||
/* and sem_rueck_beur_ein = <<Semester>> */\ |
||||
/* and stichtag = <<Stichtag>> */\ |
||||
/* and <<Hochschulzugangsberechtigung>> */\ |
||||
/* and <<Hörerstatus>>*/\ |
||||
/* and geschlecht = <<Geschlecht>> */\ |
||||
/* and fach_sem_zahl <= <<bis Fachsemester>> */\ |
||||
/* and substring('' || sem_rueck_beur_ein from 5 for 1)='<<Semestertyp>>' */\ |
||||
/* and ${<<Filter Studierende>>} */\ |
||||
" />\ |
||||
\ |
||||
<#assign filter= filter + " and " + jahr_filter />\ |
||||
\ |
||||
<#assign filter= filter + " and " + semester_filter />\ |
||||
\ |
||||
\ |
||||
<#assign filter = filter + " and 's_' || tid_stg in "+Studiengang.allNeededKeysList /> \ |
||||
/* <#assign filter = filter + " and '' || ca12_staat in "+Staatsangehörigkeit.allNeededKeysList /> --<<Staatsangehörigkeit>> */\ |
||||
/* <#assign filter = filter + " and stg in "+Fächer.allNeededKeysList /> --<<Fächer>> */\ |
||||
/* <#assign filter = filter + " and tid_stg in (select L2.tid from lehr_stg_ab L2 where L2.abschluss in "+Abschluss.allNeededKeysList +")" /> --<<Abschluss>> */\ |
||||
\ |
||||
<#assign mtknr_filter="matrikel_nr::varchar(255)" />\ |
||||
<#if K_SOS_MTKNR_EXT=1>\ |
||||
<#assign mtknr_filter="pseudonym" />\ |
||||
</#if>\ |
||||
<#assign matrikel_nr_sel="" />\ |
||||
/*<#assign matrikel_nr_sel=<<Matrikel-Nr.>> />*/\ |
||||
\ |
||||
\ |
||||
<#if matrikel_nr_sel !="">\ |
||||
<#assign filter=filter+" and "+mtknr_filter+"='"+matrikel_nr_sel+"'" />\ |
||||
</#if>\ |
||||
<#if columns?has_content>\ |
||||
\ |
||||
<#if basetable.is_virtual==1>\ |
||||
\ |
||||
create temp table ${basetable.runtime_tablename} as\ |
||||
select ${rpta_resultset.fieldclause} \ |
||||
from ${rpta_resultset.joinclause} \ |
||||
where 1=1\ |
||||
<#if rpta_resultset.whereclause != ""> \ |
||||
${rpta_resultset.whereclause} </#if>\ |
||||
and ${filter}\ |
||||
;\ |
||||
</#if>\ |
||||
\ |
||||
\ |
||||
<@rpta_interpret_column_layout_ljl nonvirtualTableFilter=filter />\ |
||||
\ |
||||
</#if> --wenn columns?has_content\ |
||||
\ |
||||
<#macro rpta_interpret_column_layout_ljl nonvirtualTableFilter>\ |
||||
<#assign columnLayoutHasTreeColumn=0 />\ |
||||
\ |
||||
<#assign treeColumnSrcFieldname="" />\ |
||||
<#assign treeColumnTargetFieldname="" />\ |
||||
<#assign treeColumnMaskFieldname="" />\ |
||||
select \ |
||||
--zuerst die Basisdaten:\ |
||||
<#foreach column in columns>\ |
||||
<#if column.coltype=="treeColumn">\ |
||||
<#assign columnLayoutHasTreeColumn=1 />\ |
||||
<#assign treeColumnSrcFieldname=column.srcfieldname />\ |
||||
<#assign treeColumnTargetFieldname=column.targetfieldname />\ |
||||
<#assign treeColumnMaskFieldname=column.colfunction />\ |
||||
null::varchar(255) as ${column.targetfieldname},\ |
||||
<#elseif column.coltype=="physicalColumn">\ |
||||
${column.srcfieldname} as ${column.targetfieldname},\ |
||||
<#elseif column.coltype=="logicalColumn">\ |
||||
${column.colfunction} as ${column.targetfieldname},\ |
||||
<#elseif column.coltype=="preparingColumn">\ |
||||
${column.colfunction} as ${column.targetfieldname},\ |
||||
<#elseif column.coltype=="lookupColumn">\ |
||||
(${column.colfunction}) as ${column.targetfieldname},\ |
||||
<#elseif column.coltype=="computedColumn" || column.coltype=="processingColumn">\ |
||||
null::decimal(19,6) as ${column.targetfieldname},\ |
||||
</#if>\ |
||||
</#foreach>\ |
||||
null::char(1) as dummycol\ |
||||
into temp tmp_stud\ |
||||
from ${basetable.runtime_tablename}\ |
||||
where 1=1 \ |
||||
<#if rpta_column_layout.whereclause !="">\ |
||||
and ${rpta_column_layout.whereclause}\ |
||||
</#if>\ |
||||
<#if basetable.is_virtual==0>\ |
||||
and ${nonvirtualTableFilter}\ |
||||
</#if>\ |
||||
;\ |
||||
\ |
||||
--ergebnistabelle:\ |
||||
select \ |
||||
--zuerst die nicht-Aggregate:\ |
||||
<#assign groupby=0 />\ |
||||
-- preparingColumns ausgeschlossen, da sie von processingColumns aggregiert werden\ |
||||
-- computedColumns immer mitnehmen, da später im finalen select verarbeitet\ |
||||
<#foreach column in columns>\ |
||||
<#if (column.is_aggregate==0 && column.coltype!="preparingColumn" && column.coltype!="processingColumn") || column.coltype=="computedColumn"> \ |
||||
<#assign groupby=groupby+1 />\ |
||||
${column.targetfieldname},\ |
||||
<#elseif column.is_aggregate==0 && column.coltype=="processingColumn"> \ |
||||
<#assign groupby=groupby+1 />\ |
||||
<#if column.colfunction?has_content>\ |
||||
${column.colfunction} as ${column.targetfieldname},\ |
||||
<#else>\ |
||||
${column.srcfieldname} as ${column.targetfieldname},\ |
||||
</#if>\ |
||||
</#if>\ |
||||
</#foreach>\ |
||||
--dann die Aggregate:\ |
||||
-- preparingColumns ausgeschlossen, da sie von processingColumns aggregiert werden\ |
||||
-- computedColumns ausgeschlossen, da später im finalen select verarbeitet\ |
||||
<#foreach column in columns>\ |
||||
<#if column.is_aggregate==1 \ |
||||
&& column.colfunction?has_content \ |
||||
&& column.coltype=="processingColumn"> \ |
||||
${column.colfunction} as ${column.targetfieldname},\ |
||||
<#elseif column.is_aggregate==1 \ |
||||
&& (column.coltype == "logicalColumn" || column.coltype == "lookupColumn" || column.coltype == "physicalColumn")> \ |
||||
sum(${column.targetfieldname}) as ${column.targetfieldname},\ |
||||
</#if>\ |
||||
</#foreach>\ |
||||
null::char(1) as dummycol\ |
||||
into temp tmp_stud2\ |
||||
from tmp_stud\ |
||||
where 1=1\ |
||||
group by\ |
||||
<#list 1..groupby as i>${i}\ |
||||
<#if i != groupby>\ |
||||
,\ |
||||
</#if>\ |
||||
</#list>\ |
||||
;\ |
||||
--für Prozentwerte alle Aggregate summieren:\ |
||||
select \ |
||||
<#foreach column in columns>\ |
||||
<#if column.is_aggregate==1 && column.coltype!="computedColumn" && column.coltype!="processingColumn">\ |
||||
sum(${column.targetfieldname})::float as ${column.targetfieldname},\ |
||||
</#if>\ |
||||
</#foreach>\ |
||||
null::char(1) as dummycol\ |
||||
into temp tmp_gesamt\ |
||||
from tmp_stud2\ |
||||
where 1=1\ |
||||
;\ |
||||
<#if columnLayoutHasTreeColumn==1>\ |
||||
<#assign columnLayoutWithTreeColumnAdditionalGrouping=sichtHasAdditionalGrouping(treeColumnTargetFieldname) />\ |
||||
\ |
||||
--Sichtaufbau:\ |
||||
--Zuerst leere Zieltabelle anlegen:\ |
||||
select \ |
||||
<#foreach column in columns>\ |
||||
${column.targetfieldname},\ |
||||
</#foreach>\ |
||||
null::integer as sortnr\ |
||||
into temp tmp_stud3\ |
||||
from tmp_stud\ |
||||
where 1=0;\ |
||||
--maxEbene ermitteln:\ |
||||
<#assign maxEbene=0 />\ |
||||
<#foreach einElement in .vars[treeColumnMaskFieldname].elements>\ |
||||
<#if einElement.level > maxEbene >\ |
||||
<#assign maxEbene=einElement.level />\ |
||||
</#if>\ |
||||
</#foreach>\ |
||||
-- ##################################################\ |
||||
-- ######## Start der Schleife ######################\ |
||||
-- ##################################################\ |
||||
<#assign sortnr=0>\ |
||||
--Schleife, über Fächer im ausgewählten Baum, Reihenfolge genau wie im Baum\ |
||||
--diese Kommentare werden schon im 1. Schritt von generateSql gelöscht\ |
||||
--für Entwicklungszwecke kann man tricksen\ |
||||
<@addcomment "SCHLEIFE"/>\ |
||||
\ |
||||
<#foreach einElement in .vars[treeColumnMaskFieldname].elements>\ |
||||
<@addcomment "${einElement.name}"/>\ |
||||
\ |
||||
--zuerst Summenzeile:\ |
||||
<#assign sortnr=sortnr+1>\ |
||||
insert into tmp_stud3(\ |
||||
<#foreach column in columns>\ |
||||
${column.targetfieldname},\ |
||||
</#foreach>\ |
||||
sortnr)\ |
||||
select\ |
||||
<#foreach column in columns>\ |
||||
<#if column.targetfieldname=treeColumnTargetFieldname>\ |
||||
'${einElement.name}',\ |
||||
<#elseif column.targetfieldname="ebene">\ |
||||
${einElement.level},\ |
||||
<#elseif column.targetfieldname=treeColumnSrcFieldname>\ |
||||
null::char(1),\ |
||||
<#elseif column.is_aggregate==1 \ |
||||
&& column.colfunction?has_content \ |
||||
&& column.coltype=="processingColumn"> \ |
||||
${column.colfunction} as ${column.targetfieldname},\ |
||||
<#elseif column.is_aggregate==1 \ |
||||
&& (column.coltype == "logicalColumn" || column.coltype == "lookupColumn" || column.coltype == "physicalColumn")> \ |
||||
sum(${column.targetfieldname}) as ${column.targetfieldname},\ |
||||
<#else>\ |
||||
null,\ |
||||
</#if>\ |
||||
</#foreach>\ |
||||
--(${einElement.level}*10000) + ${sortnr} as sortnr\ |
||||
${sortnr} *10000 as sortnr\ |
||||
from tmp_stud\ |
||||
where ${treeColumnSrcFieldname} in ${einElement.subkeys}\ |
||||
\ |
||||
;\ |
||||
\ |
||||
--Unterste Ebene die Werte:\ |
||||
<#if columnLayoutWithTreeColumnAdditionalGrouping != "" \ |
||||
&& einElement.level == maxEbene >\ |
||||
<#assign sortnr=sortnr+1>\ |
||||
insert into tmp_stud3(\ |
||||
<#foreach column in columns>\ |
||||
${column.targetfieldname},\ |
||||
</#foreach>\ |
||||
sortnr)\ |
||||
select\ |
||||
<#foreach column in columns>\ |
||||
<#if column.targetfieldname=treeColumnTargetFieldname>\ |
||||
'${einElement.name}',\ |
||||
<#elseif column.targetfieldname="ebene">\ |
||||
<#if einElement.level == maxEbene >\ |
||||
${einElement.level+ 1},\ |
||||
<#else>\ |
||||
${einElement.level},\ |
||||
</#if>\ |
||||
<#elseif column.targetfieldname=treeColumnSrcFieldname>\ |
||||
null::char(1),\ |
||||
<#elseif column.is_aggregate==1 \ |
||||
&& column.colfunction?has_content \ |
||||
&& column.coltype=="processingColumn"> \ |
||||
${column.colfunction} as ${column.targetfieldname},\ |
||||
<#elseif column.is_aggregate==1 \ |
||||
&& (column.coltype == "logicalColumn" || column.coltype == "lookupColumn" || column.coltype == "physicalColumn")> \ |
||||
sum(${column.targetfieldname}) as ${column.targetfieldname},\ |
||||
<#else>\ |
||||
${column.targetfieldname},\ |
||||
</#if>\ |
||||
</#foreach>\ |
||||
${sortnr} *10000 --(${einElement.level}*10000) + ${sortnr} as sortnr\ |
||||
from tmp_stud\ |
||||
where s_tid_stg in ${einElement.subkeys}\ |
||||
group by ${columnLayoutWithTreeColumnAdditionalGrouping}\ |
||||
;\ |
||||
</#if>\ |
||||
</#foreach>\ |
||||
\ |
||||
drop table tmp_stud2;\ |
||||
select * into tmp_stud2\ |
||||
from tmp_stud3;\ |
||||
drop table tmp_stud3;\ |
||||
--Ende Sicht\ |
||||
</#if>\ |
||||
<#if <<Spaltenlayout>>=="sos_stud_anf_sxc" && vergleichsgruppen?has_content>\ |
||||
--left join lateral\ |
||||
--alter table tmp_stud2 add column summe_ext1 integer;\ |
||||
--alter table tmp_stud2 add column summe_hs1_ext1 integer;\ |
||||
--alter table tmp_stud2 add column summe_ext2 integer;\ |
||||
--alter table tmp_stud2 add column summe_hs1_ext2 integer;\ |
||||
<#assign ordnr=0 />\ |
||||
<#foreach grp in vergleichsgruppen>\ |
||||
<#assign ordnr=ordnr+1 />\ |
||||
update tmp_stud2 set (summe_ext${ordnr},summe_hs1_ext${ordnr})=\ |
||||
(select sum(stud_gesamt), sum(studanf_gesamt)\ |
||||
from sxc_stud_sem_da_geschl_hs_aggr S,sxc_hochschule_vergleich H, sxc_hochschule_vergleichsgruppe G \ |
||||
where G.tid=H.hochschule_vergleichsgruppe_id \ |
||||
and G.uniquename='${grp.uniquename}' \ |
||||
and H.hs_nr=S.hs_nr \ |
||||
and S.semester = sem_rueck_beur_ein);\ |
||||
</#foreach>\ |
||||
\ |
||||
\ |
||||
</#if>\ |
||||
<#assign number_of_visible_colums=0 />\ |
||||
<#foreach column in columns>\ |
||||
<#if column.is_visible!=0>\ |
||||
<#assign number_of_visible_colums=number_of_visible_colums+1 />\ |
||||
</#if>\ |
||||
</#foreach>\ |
||||
<#assign colnr=0 />\ |
||||
select \ |
||||
<#foreach column in columns>\ |
||||
<#if column.is_visible!=0>\ |
||||
<#assign colnr=colnr+1 />\ |
||||
<#assign myfieldclause=column.targetfieldname />\ |
||||
<#if column.coltype=="computedColumn">\ |
||||
<#assign myfieldclause=column.colfunction />\ |
||||
</#if>\ |
||||
<@format_code2sql selectclause=myfieldclause format_code_uniquename=column.format_uniquename format_sql=column.format_sql /> as ${column.targetfieldname}\ |
||||
\ |
||||
<#if colnr < number_of_visible_colums>,</#if>\ |
||||
</#if> \ |
||||
</#foreach>\ |
||||
from tmp_stud2\ |
||||
order by \ |
||||
<#if rpta_column_layout.sortclause?has_content>\ |
||||
${rpta_column_layout.sortclause}\ |
||||
<#else>\ |
||||
<#list 1..number_of_visible_colums as i>${i}\ |
||||
<#if i != number_of_visible_colums>\ |
||||
,\ |
||||
</#if>\ |
||||
</#list>\ |
||||
</#if>\ |
||||
;\ |
||||
\ |
||||
<#if basetable.is_virtual==1>\ |
||||
drop table if exists ${basetable.runtime_tablename};\ |
||||
</#if>\ |
||||
drop table if exists tmp_stud;\ |
||||
drop table if exists tmp_stud2;\ |
||||
drop table if exists tmp_gesamt;\ |
||||
\ |
||||
</#macro>^--Freemarker Template\ |
||||
<#assign vergleichsgruppe1_caption="Vergleichsgruppe 1y" />\ |
||||
<#assign vergleichsgruppe2_caption="Vergleichsgruppe 2y" />\ |
||||
<#if vergleichsgruppen?has_content>\ |
||||
<#assign ordnr=0 />\ |
||||
<#foreach grp in vergleichsgruppen>\ |
||||
<#assign ordnr=ordnr+1 />\ |
||||
<#if ordnr==1>\ |
||||
<#assign vergleichsgruppe1_caption=grp.name />\ |
||||
</#if>\ |
||||
<#if ordnr==2>\ |
||||
<#assign vergleichsgruppe2_caption=grp.name />\ |
||||
</#if>\ |
||||
</#foreach>\ |
||||
</#if>\ |
||||
XIL List\ |
||||
sizable_columns horizontal_scrolling\ |
||||
drop_and_delete movable_columns \ |
||||
white_space_color=COLOR_WHITE fixed_columns=1\ |
||||
min_heading_height=55\ |
||||
<#foreach column in columns>\ |
||||
<#if column.is_visible!=0>\ |
||||
<#assign caption= column.caption />\ |
||||
<#if caption?index_of("Vergleichsgruppe 1")!=-1 >\ |
||||
<#assign caption=caption?replace("Vergleichsgruppe 1",vergleichsgruppe1_caption) />\ |
||||
\ |
||||
</#if>\ |
||||
<#if caption?index_of("Vergleichsgruppe 2")!=-1 >\ |
||||
<#assign caption=caption?replace("Vergleichsgruppe 2",vergleichsgruppe2_caption) />\ |
||||
</#if>\ |
||||
Column CID=0 heading_text="${caption}" center_heading explanation="${column.description}"\ |
||||
row_selectable heading_platform readonly\ |
||||
width=${column.visible_width} text_size=60\ |
||||
</#if>\ |
||||
</#foreach>\ |
||||
<#if 1=0>\ |
||||
Column CID=0 heading_text="sortnr" center_heading explanation=""\ |
||||
row_selectable heading_platform readonly\ |
||||
width=5 text_size=60\ |
||||
</#if>\ |
||||
@@@^Studienfach^Anzahl bzw. Anteil^Studierende und Anteil weiblicher Studierender als Zeitreihe mit Frauenanteil eigene Hochschule zu anderen Hochschulen^<sximport>select cleanup_stmt from maskeninfo where tid=48000</sximport>^^2^850^540^^1^<<SQL>>SELECT description FROM rpta_column_layout where tid=<<Spaltenlayout>>;^ |
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue