diff --git a/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_abgrp_dashboard_fuellen.sql b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_abgrp_dashboard_fuellen.sql
new file mode 100644
index 0000000..990ffcd
--- /dev/null
+++ b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_abgrp_dashboard_fuellen.sql
@@ -0,0 +1,53 @@
+--freemarker template
+<#include "RPTA-Makros"/>
+
+
+select count(*) from systeminfo where tid=330;
+
+
+<#assign rpta_column_layout = {"uniquename":"sos_stud_abgrp_dashboard",
+"caption":"Studierende nach Abschlussgruppe",
+"rpta_resultset":"sos_stud_astat_dashboard",
+"whereclause":"",
+"description":"Studierende nach Abschlussgruppe"
+}
+ />
+
+<#assign rpta_columns = [
+{"uniquename":"dim_studiengang_abschluss_grp_str",
+"caption":"Abschlussgruppe",
+"srcfieldname":"dim_studiengang_abschluss_grp_str",
+"column_type":"physicalColumn",
+"col_function":"",
+"is_visible":"1",
+"visible_size":"10",
+"is_aggregate":"0",
+"description":"Abschlussgruppe"
+},
+{"uniquename":"summe",
+"caption":"Anzahl der Studierenden",
+"srcfieldname":"summe",
+"column_type":"physicalColumn",
+"col_function":"sum",
+"is_visible":"1",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Summe der Studierenden"
+},
+{"uniquename":"anteil",
+"caption":"Anteil der Studierenden (in %)",
+"srcfieldname":"",
+"targetfieldname":"anteil",
+"column_type":"computedColumn",
+"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
+"is_visible":"1",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":"Anteil in % der Studierenden"
+}
+]
+ />
+
+<#if rpta_installed==1>
+<@rpta_column_layout_fuellen />
+#if>
diff --git a/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_bildungstyp_dashboard_fuellen.sql b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_bildungstyp_dashboard_fuellen.sql
new file mode 100644
index 0000000..5a60c6e
--- /dev/null
+++ b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_bildungstyp_dashboard_fuellen.sql
@@ -0,0 +1,54 @@
+--freemarker template
+<#include "RPTA-Makros"/>
+
+
+select count(*) from systeminfo where tid=330;
+
+
+<#assign rpta_column_layout = {"uniquename":"sos_stud_bildungstyp_dashboard",
+"caption":"Studierende Bildungstyp",
+"rpta_resultset":"sos_stud_astat_dashboard",
+"whereclause":"",
+"description":"Studierende Bildungsinländer / -ausländer "
+}
+ />
+
+<#assign rpta_columns = [
+{"uniquename":"sos_stud_bildungstyp",
+"caption":"Bildungsinländer / -ausländer",
+"srcfieldname":"",
+"targetfieldname":"sos_stud_bildungstyp",
+"column_type":"physicalColumn",
+"col_function":"",
+"is_visible":"1",
+"visible_size":"10",
+"is_aggregate":"0",
+"description":"Bildungsinländer / -ausländer"
+},
+{"uniquename":"summe",
+"caption":"Anzahl der Studierenden",
+"srcfieldname":"summe",
+"column_type":"physicalColumn",
+"col_function":"sum",
+"is_visible":"1",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Summe der Studierenden"
+},
+{"uniquename":"anteil",
+"caption":"Anteil der Studierenden (in %)",
+"srcfieldname":"",
+"targetfieldname":"anteil",
+"column_type":"computedColumn",
+"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
+"is_visible":"1",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":"Anteil in % der Studierenden"
+}
+]
+ />
+
+<#if rpta_installed==1>
+<@rpta_column_layout_fuellen />
+#if>
diff --git a/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_dashboard_fuellen.sql b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_dashboard_fuellen.sql
new file mode 100644
index 0000000..d79d719
--- /dev/null
+++ b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_dashboard_fuellen.sql
@@ -0,0 +1,63 @@
+--freemarker template
+<#include "RPTA-Makros"/>
+
+
+select count(*) from systeminfo where tid=330;
+
+
+<#assign rpta_column_layout = {"uniquename":"sos_stud_fak_dashboard",
+"caption":"Studierende nach Fakultät",
+"rpta_resultset":"sos_stud_astat_dashboard",
+"whereclause":"",
+"description":"Studierende nach Fakultät"
+}
+ />
+
+<#assign rpta_columns = [
+{"uniquename":"dim_studiengang_fak",
+"caption":"Fakultät (Schlüssel)",
+"srcfieldname":"dim_studiengang_fb",
+"column_type":"physicalColumn",
+"col_function":"",
+"is_visible":"1",
+"visible_size":"10",
+"is_aggregate":"0",
+"description":"Fakultät (Schlüssel)"
+},
+{"uniquename":"dim_studiengang_fak_str",
+"caption":"Fakultät",
+"srcfieldname":"dim_studiengang_fb_str",
+"column_type":"lookupColumn",
+"col_function":"select C.kurz from cifx C where C.key=90 and C.apnr=dim_studiengang_fb",
+"is_visible":"1",
+"visible_size":"10",
+"is_aggregate":"0",
+"description":"Fakultät (Name)"
+},
+{"uniquename":"summe",
+"caption":"Anzahl der Studierenden",
+"srcfieldname":"summe",
+"column_type":"physicalColumn",
+"col_function":"sum",
+"is_visible":"1",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Summe der Studierenden"
+},
+{"uniquename":"anteil",
+"caption":"Anteil der Studierenden (in %)",
+"srcfieldname":"",
+"targetfieldname":"anteil",
+"column_type":"computedColumn",
+"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
+"is_visible":"1",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":"Anteil in % der Studierenden"
+}
+]
+ />
+
+<#if rpta_installed==1>
+<@rpta_column_layout_fuellen />
+#if>
diff --git a/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_geschl_dashboard_fuellen.sql b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_geschl_dashboard_fuellen.sql
index 13300df..8e52ea4 100644
--- a/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_geschl_dashboard_fuellen.sql
+++ b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_geschl_dashboard_fuellen.sql
@@ -29,9 +29,9 @@ select count(*) from systeminfo where tid=330;
"is_aggregate":"0",
"description":"Geschlecht"
},
-{"uniquename":"log_geschlecht_str",
+{"uniquename":"geschlecht_str",
"caption":"Geschlecht",
-"srcfieldname":"",
+"srcfieldname":"geschlecht_str",
"targetfieldname":"geschlecht_str",
"column_type":"physicalColumn",
"col_function":"",
diff --git a/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_hzbstaat_dashboard_fuellen.sql b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_hzbstaat_dashboard_fuellen.sql
new file mode 100644
index 0000000..c4fc41c
--- /dev/null
+++ b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_hzbstaat_dashboard_fuellen.sql
@@ -0,0 +1,45 @@
+--freemarker template
+<#include "RPTA-Makros"/>
+
+
+select count(*) from systeminfo where tid=330;
+
+
+<#assign rpta_column_layout =
+{"uniquename":"sos_stud_hzb_staat_dashboard",
+"caption":"Studierende nach Staat der HZB",
+"rpta_resultset":"sos_stud_astat_dashboard",
+"whereclause":"",
+"description":"Studierende nach Staat der HZB"
+}
+ />
+
+<#assign rpta_columns = [
+{"uniquename":"hzbstaat_iso3",
+"caption":"Staat der HZB",
+"srcfieldname":"hzbstaat_iso3",
+"targetfieldname":"hzbstaat_iso3",
+"column_type":"physicalColumn",
+"col_function":"",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":"Staat (ISO Code)"
+},
+{"uniquename":"summe",
+"caption":"Anzahl der Studierenden",
+"srcfieldname":"summe",
+"column_type":"physicalColumn",
+"col_function":"sum",
+"is_visible":"1",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Summe der Studierenden"
+}
+]
+ />
+
+<#if rpta_installed==1>
+<@rpta_column_layout_fuellen />
+#if>
diff --git a/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_region_dashboard_fuellen.sql b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_region_dashboard_fuellen.sql
new file mode 100644
index 0000000..237afa6
--- /dev/null
+++ b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_region_dashboard_fuellen.sql
@@ -0,0 +1,246 @@
+--freemarker template
+
+
+select count(*) from systeminfo where tid=330;
+
+
+<#assign rpta_column_layout =
+{"uniquename":"sos_stud_hzb_bland_dashboard",
+"caption":"Studierende nach HZB-Bundesland",
+"rpta_resultset":"sos_stud_astat_dashboard",
+"whereclause":"",
+"description":"Studierende nach HZB-Bundesland"
+}
+ />
+
+<#assign rpta_columns = [
+{"uniquename":"hzb_bland",
+"caption":"Bundesland (HZB)",
+"srcfieldname":"hzb_bland",
+"targetfieldname":"hzb_bland",
+"column_type":"lookupColumn",
+"col_function":"",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":"Bundesland (HZB)"
+},
+{"uniquename":"summe",
+"caption":"Anzahl der Studierenden",
+"srcfieldname":"summe",
+"column_type":"physicalColumn",
+"col_function":"sum",
+"is_visible":"1",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Summe der Studierenden"
+}
+]
+ />
+
+<#if rpta_installed==1>
+ ---ab hier nicht mehr ändern:
+
+CREATE temp TABLE tmp_rpta_column
+(
+ uniquename varchar(255) NOT NULL,
+ caption varchar(255),
+ srcfieldname varchar(255),
+ targetfieldname varchar(255),
+ column_type integer,
+ col_function text,
+ is_visible smallint,
+ visible_size smallint,
+ is_aggregate smallint,
+ resultset_id integer,
+ sortnr integer,
+ description TEXT
+);
+
+CREATE temp TABLE tmp_rpta_column_layout
+(
+ uniquename varchar(255) NOT NULL,
+ caption varchar(255),
+ resultset_id integer,
+ whereclause text,
+ description text
+);
+
+insert into tmp_rpta_column_layout(
+resultset_id,
+uniquename,
+caption,
+whereclause,
+ description
+)
+select tid,
+'${rpta_column_layout.uniquename}',
+'${rpta_column_layout.caption}',
+'${rpta_column_layout.whereclause}',
+'${rpta_column_layout.description}'
+FROM rpta_resultset
+where uniquename='${rpta_column_layout.rpta_resultset}';
+
+<#assign sortnr=0 />
+<#foreach column in rpta_columns>
+<#assign sortnr=sortnr +1 />
+
+INSERT INTO tmp_rpta_column
+(resultset_id,
+ uniquename,
+ caption,
+ srcfieldname,
+ targetfieldname,
+ column_type,
+ col_function,
+ is_visible,
+ visible_size,
+ is_aggregate,
+ sortnr,
+ description
+ )
+select R.tid,
+'${column.uniquename}',
+'${column.caption}',
+'${column.srcfieldname}',
+<#if !column.targetfieldname?exists || column.targetfieldname=="">null::varchar <#else>'${column.targetfieldname}' #if>,
+T.tid as column_type,
+'${column.col_function}',
+${column.is_visible},
+${column.visible_size},
+${column.is_aggregate},
+${sortnr*10},
+'${column.description}'
+FROM rpta_resultset R, rpta_column_type T
+where R.uniquename='${rpta_column_layout.rpta_resultset}'
+and T.uniquename='${column.column_type}';
+
+#foreach>
+
+
+select * into temp tmp_rpta_column2layout
+from rpta_column2layout
+where layout_id in (select L.tid
+from rpta_column_layout L,rpta_resultset R
+where R.tid=L.resultset_id
+and R.uniquename='${rpta_column_layout.rpta_resultset}'
+and L.uniquename='${rpta_column_layout.uniquename}'
+)
+;
+
+select * into temp tmp_rpta_column_layout_target
+from rpta_column_layout
+where resultset_id in (select tid
+FROM rpta_resultset
+where uniquename='${rpta_column_layout.rpta_resultset}')
+and uniquename in (select uniquename from tmp_rpta_column_layout)
+;
+
+insert into rpta_column_layout
+(uniquename,
+ caption,
+ resultset_id,
+ whereclause,
+ description)
+ select uniquename,
+ caption,
+ resultset_id,
+ whereclause,
+ description
+FROM tmp_rpta_column_layout T
+where 0=(select count(*) from tmp_rpta_column_layout_target T2
+where T.uniquename=T2.uniquename);
+
+drop table tmp_rpta_column_layout_target;
+
+delete from rpta_column2layout
+where layout_id in (select L.tid
+from rpta_column_layout L,rpta_resultset R
+where R.tid=L.resultset_id
+and R.uniquename='${rpta_column_layout.rpta_resultset}'
+and L.uniquename='${rpta_column_layout.uniquename}'
+)
+;
+
+select * into temp tmp_rpta_column2
+from tmp_rpta_column T
+where (resultset_id,uniquename) not in
+(select resultset_id,uniquename from rpta_column);
+
+INSERT INTO rpta_column
+(resultset_id,
+ uniquename,
+ caption,
+ srcfieldname,
+ targetfieldname,
+ column_type,
+ col_function,
+ is_aggregate,
+ description,
+ custom
+ )
+ select
+resultset_id,
+ uniquename,
+ caption,
+ srcfieldname,
+ targetfieldname,
+ column_type,
+ col_function,
+ is_aggregate,
+ description,
+ 0 as custom
+from tmp_rpta_column2;
+
+--evtl. neuen Satz einfügen, dann alle updaten
+
+update rpta_column set ( caption,
+ srcfieldname,
+ targetfieldname,
+ column_type,
+ col_function,
+ is_aggregate,
+ description)
+ = (select caption,
+ srcfieldname,
+ targetfieldname,
+ column_type,
+ col_function,
+ is_aggregate,
+ description
+ from tmp_rpta_column T
+ where T.resultset_id=rpta_column.resultset_id
+ and T.uniquename=rpta_column.uniquename)
+ where custom=0
+ and (resultset_id,uniquename) in
+(select T.resultset_id,T.uniquename
+from tmp_rpta_column T)
+;
+
+drop table tmp_rpta_column2;
+
+insert into rpta_column2layout(column_id,
+ layout_id,
+ sortnr,
+ is_visible,
+ visible_size,
+ caption,
+ description)
+select C.tid as column_id,
+ L.tid as layout_id,
+ T.sortnr,
+ T.is_visible,
+ T.visible_size,
+ T.caption,
+ T.description
+FROM rpta_column C, rpta_column_layout L, tmp_rpta_column T
+where C.uniquename=T.uniquename
+and C.resultset_id=T.resultset_id
+and L.uniquename='${rpta_column_layout.uniquename}'
+and L.resultset_id=T.resultset_id
+ ;
+drop table tmp_rpta_column;
+drop TABLE tmp_rpta_column_layout;
+drop TABLE tmp_rpta_column2layout;
+#if>
diff --git a/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_zeitreihe_dashboard_fuellen.sql b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_zeitreihe_dashboard_fuellen.sql
new file mode 100644
index 0000000..7b109fb
--- /dev/null
+++ b/src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_zeitreihe_dashboard_fuellen.sql
@@ -0,0 +1,60 @@
+--freemarker template
+<#include "RPTA-Makros"/>
+
+
+select count(*) from systeminfo where tid=330;
+
+
+<#assign rpta_column_layout =
+{"uniquename":"sos_stud_sem_dashboard",
+"caption":"Studierende nach Semester",
+"rpta_resultset":"sos_stud_astat_dashboard",
+"whereclause":"",
+"description":"Studierende nach Semester",
+"is_virtual":1
+}
+ />
+
+<#assign rpta_columns = [
+{"uniquename":"sem_rueck_beur_ein",
+"caption":"Semester",
+"srcfieldname":"sem_rueck_beur_ein",
+"targetfieldname":"sem_rueck_beur_ein",
+"column_type":"physicalColumn",
+"col_function":"",
+"is_visible":"0",
+"format_code":"TEXT",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":""
+},
+{"uniquename":"semester_str",
+"caption":"Semester Name",
+"srcfieldname":"sem_rueck_beur_ein",
+"targetfieldname":"semester_str",
+"column_type":"logicalColumn",
+"col_function":"(case when substring(sem_rueck_beur_ein::varchar from 5 for 1)=''2'' then ''WS '' || substring(sem_rueck_beur_ein::varchar from 3 for 2) || ''/'' || lpad('''' || val(substring(sem_rueck_beur_ein::varchar from 3 for 2))+1,2,''0'')
+when substring(sem_rueck_beur_ein::varchar from 5 for 1)=''1'' then ''SS '' || substring(sem_rueck_beur_ein::varchar from 3 for 2)
+else '''' end)",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":""
+},
+{"uniquename":"summe",
+"caption":"Anzahl der Studierenden",
+"srcfieldname":"summe",
+"column_type":"physicalColumn",
+"col_function":"sum",
+"is_visible":"1",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Summe der Studierenden"
+}
+]
+ />
+
+<#if rpta_installed==1>
+<@rpta_column_layout_fuellen />
+#if>