diff --git a/src-modules/module/sxc/conf/sxc.xml b/src-modules/module/sxc/conf/sxc.xml index 304ff0b..e306193 100644 --- a/src-modules/module/sxc/conf/sxc.xml +++ b/src-modules/module/sxc/conf/sxc.xml @@ -467,7 +467,12 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[SXC]" /> - + + + + + + @@ -487,7 +492,41 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[SXC]" /> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -497,7 +536,6 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[SXC]" />
- diff --git a/src-modules/module/sxc/hilfstabellen/sxc_stud_jahr_zugang_abgang_fuellen.sql b/src-modules/module/sxc/hilfstabellen/sxc_stud_jahr_zugang_abgang_fuellen.sql new file mode 100644 index 0000000..6840cbf --- /dev/null +++ b/src-modules/module/sxc/hilfstabellen/sxc_stud_jahr_zugang_abgang_fuellen.sql @@ -0,0 +1,367 @@ + +-- ===================================================================== +-- 1) METADATEN NUR EINMAL HOLEN +-- ===================================================================== +create temp table tmp_meta as +select + (select hs_nr from hochschulinfo) as hs_nr, + (select name from hochschulinfo) as hochschulinfo_name, + (select datum from systeminfo where tid=7) as datenstand, + (select version from db_version where his_system='sxc') as sxc_version, + 'SuperX'::varchar(50) as dwh_name +; + +-- ===================================================================== +-- 2) SCHLANKE BASISMENGE +-- Nur die Spalten, die für diesen Bericht wirklich gebraucht werden. +-- Das spart I/O, Temp-Speicher und Join-Kosten. +-- ===================================================================== +create temp table tmp_basis as +select + S.tid_stg, + D.stg as dim_studiengang_stg, + D.abschluss as dim_studiengang_abschluss, + S.matrikel_nr, + S.sem_rueck_beur_ein, + S.sem_rueck_beur_ein_max, + S.kz_rueck_beur_ein, + S.summe +from semester E, sos_stichtag I, sos_stg_aggr S +left outer join dim_studiengang D + on D.tid = S.tid_stg +where E.tid=S.sem_rueck_beur_ein +and E.sem_ende < today() --nicht im akt. Semester berechnen +and studiengang_nr=1 +and fach_nr=1 +and I.tid=S.stichtag +and I.appl_key='1' --Amtl. Statistik +; + +create index ix_tmp_basis_matr_sem on tmp_basis(matrikel_nr, sem_rueck_beur_ein); +create index ix_tmp_basis_matr_semmax on tmp_basis(matrikel_nr, sem_rueck_beur_ein_max); +create index ix_tmp_basis_matr_stg_abs on tmp_basis(matrikel_nr, dim_studiengang_stg, dim_studiengang_abschluss); +create index ix_tmp_basis_jahr on tmp_basis(sem_rueck_beur_ein); + +-- optional, falls in eurer DB sinnvoll: +-- analyze tmp_basis; + +-- ===================================================================== +-- 3) VORBERECHNUNG "FOLGESEMESTER VORHANDEN?" +-- Statt EXISTS/NOT EXISTS pro Zeile. +-- Es reicht, vorhandene Kombinationen aus Matrikelnummer + Semester +-- einmal vorzuhalten. +-- +-- Für die Prüfung auf das Folgesemester reicht der Bereich bis ein +-- Semester über dem Berichtsende hinaus. +-- ===================================================================== +create temp table tmp_sem_exists as +select distinct + matrikel_nr, + sem_rueck_beur_ein +from semester E, sos_stichtag I, sos_stg_aggr S +where E.tid=S.sem_rueck_beur_ein +and E.sem_ende < today() --nicht im akt. Semester berechnen +and I.tid=S.stichtag +and I.appl_key='1' --Amtl. Statistik +; + +create index ix_tmp_sem_exists on tmp_sem_exists(matrikel_nr, sem_rueck_beur_ein); + +-- optional: +-- analyze tmp_sem_exists; + +-- ===================================================================== +-- 4) VORBERECHNUNG "HAUPTPRÜFUNG VORHANDEN?" +-- Statt EXISTS pro Zeile. +-- Gleiche Fachlogik wie bisher: +-- match auf Matrikelnummer + Studiengang + Abschluss. +-- ===================================================================== +create temp table tmp_hauptpr as +select distinct + L.matrikel_nr, + L2.stg, + L2.abschluss +from sos_lab_stg L +join lehr_stg_ab L2 + on L2.tid = L.tid_stg +join sos_stichtag I + on I.tid = L.stichtag +where I.appl_key='2' + and L.pstatus='BE' + and L.abschnitt=2 +; + +create index ix_tmp_hauptpr on tmp_hauptpr(matrikel_nr, stg, abschluss); + +-- optional: +-- analyze tmp_hauptpr; + + +-- ===================================================================== +-- 6) ARBEITSTABELLE tmp_stud +-- Alle teuren Prüfungen jetzt per Join statt per korrelierter Subquery. +-- ===================================================================== +create temp table tmp_stud as +select + M.hs_nr, + M.hochschulinfo_name, + 'Studienjahr'::varchar(255) as studienjahr_label, + get_akad_jahr(B.sem_rueck_beur_ein,'P') as jahr, + B.sem_rueck_beur_ein, + B.matrikel_nr, + + case + when substring('' || B.sem_rueck_beur_ein from 5 for 1)='2' + and B.kz_rueck_beur_ein=3 + then B.summe + else 0 + end as anfangsbestand, + + case + + when B.sem_rueck_beur_ein_max <= B.sem_rueck_beur_ein then 'nein' + when add_sem(B.sem_rueck_beur_ein,1) = B.sem_rueck_beur_ein_max then 'ja' + when S2.matrikel_nr is not null then 'ja' + else 'nein' + end as status_folgesem, + + case + when H.matrikel_nr is not null then 1 + else 0 + end as hauptpruefung, + + case + when B.kz_rueck_beur_ein in (1,2) then B.summe + else 0 + end as zugang, + + case + when B.kz_rueck_beur_ein in (1) then B.summe + else 0 + end as zugang_ersteinschr, + + B.summe as summe, + + M.dwh_name, + M.datenstand, + M.sxc_version +from tmp_basis B +cross join tmp_meta M +left join tmp_sem_exists S2 + on S2.matrikel_nr = B.matrikel_nr + and S2.sem_rueck_beur_ein = add_sem(B.sem_rueck_beur_ein,1) +left join tmp_hauptpr H + on H.matrikel_nr = B.matrikel_nr + and H.stg = B.dim_studiengang_stg + and H.abschluss = B.dim_studiengang_abschluss +; + +create index ix_tmp_stud_jahr on tmp_stud(jahr); +create index ix_tmp_stud_matr_sem on tmp_stud(matrikel_nr, sem_rueck_beur_ein); +create index ix_tmp_stud_status_hp on tmp_stud(status_folgesem, hauptpruefung); + +-- optional: +-- analyze tmp_stud; + +-- ===================================================================== +-- 7) KOPFZÄHLUNG HAUPTPRÜFUNGEN JE SEMESTER +-- Jede Matrikelnummer kann im selben Semester nur einmal zählen. +-- In zwei verschiedenen Semestern desselben Studienjahres aber zweimal. +-- +-- WICHTIG: +-- Für abgang_hauptpr / abgang_ohne_hauptpr wird hier sauber klassifiziert: +-- wenn eine Person im Semester irgendwo hauptpruefung=1 hat, zählt sie +-- als "mit Hauptprüfung" und nicht zusätzlich auch noch als "ohne". +-- ===================================================================== +create temp table tmp_stud_hauptpr_sem_kopf as +select + hs_nr, + hochschulinfo_name, + studienjahr_label, + jahr, + sem_rueck_beur_ein, + matrikel_nr, + dwh_name, + datenstand, + sxc_version, + + case + when max(case when hauptpruefung=1 then 1 else 0 end) = 1 + then 1 else 0 + end as hauptpr_summe_kopf, + + case + when max(case when hauptpruefung=1 then 1 else 0 end) = 1 + and max(case when status_folgesem='ja' then 1 else 0 end) = 1 + then 1 else 0 + end as hauptpr_bleibt_kopf, + + case + when max(case when status_folgesem='nein' then 1 else 0 end) = 1 + and max(case when hauptpruefung=1 then 1 else 0 end) = 1 + then 1 else 0 + end as abgang_hauptpr_kopf, + + case + when max(case when status_folgesem='nein' then 1 else 0 end) = 1 + and max(case when hauptpruefung=1 then 1 else 0 end) = 0 + then 1 else 0 + end as abgang_ohne_hauptpr_kopf + +from tmp_stud +group by + hs_nr, + hochschulinfo_name, + studienjahr_label, + jahr, + sem_rueck_beur_ein, + matrikel_nr, + dwh_name, + datenstand, + sxc_version +; + +create index ix_tmp_stud_hauptpr_sem_kopf_jahr on tmp_stud_hauptpr_sem_kopf(jahr); +create index ix_tmp_stud_hauptpr_sem_kopf_matr_sem on tmp_stud_hauptpr_sem_kopf(matrikel_nr, sem_rueck_beur_ein); + +-- optional: +-- analyze tmp_stud_hauptpr_sem_kopf; + +-- ===================================================================== +-- 8) JAHRESAGGREGATION +-- Zugang/Abgang/Bestände aus tmp_stud +-- Hauptprüfungen aus der verdichteten Kopf-Tabelle +-- ===================================================================== +create temp table tmp_stud2 as +select + basis.hs_nr, + basis.hochschulinfo_name, + basis.studienjahr_label, + basis.jahr, + null::integer as endbestand, + basis.dwh_name, + basis.datenstand, + basis.sxc_version, + basis.abgang, + coalesce(hauptpr.abgang_hauptpr,0) as abgang_hauptpr, + coalesce(hauptpr.abgang_ohne_hauptpr,0) as abgang_ohne_hauptpr, + coalesce(hauptpr.hauptpr_summe,0) as hauptpr_summe, + coalesce(hauptpr.hauptpr_bleibt,0) as hauptpr_bleibt, + basis.anfangsbestand, + basis.zugang, + basis.zugang_ersteinschr, + basis.summe, + null::char(1) as dummycol +from +( + select + hs_nr, + hochschulinfo_name, + studienjahr_label, + jahr, + dwh_name, + datenstand, + sxc_version, + sum(case when status_folgesem='nein' then summe else 0 end) as abgang, + sum(anfangsbestand) as anfangsbestand, + sum(zugang) as zugang, + sum(zugang_ersteinschr) as zugang_ersteinschr, + sum(summe) as summe + from tmp_stud + group by + hs_nr, + hochschulinfo_name, + studienjahr_label, + jahr, + dwh_name, + datenstand, + sxc_version +) basis +left join +( + select + hs_nr, + hochschulinfo_name, + studienjahr_label, + jahr, + dwh_name, + datenstand, + sxc_version, + sum(abgang_hauptpr_kopf) as abgang_hauptpr, + sum(abgang_ohne_hauptpr_kopf) as abgang_ohne_hauptpr, + sum(hauptpr_summe_kopf) as hauptpr_summe, + sum(hauptpr_bleibt_kopf) as hauptpr_bleibt + from tmp_stud_hauptpr_sem_kopf + group by + hs_nr, + hochschulinfo_name, + studienjahr_label, + jahr, + dwh_name, + datenstand, + sxc_version +) hauptpr +on basis.hs_nr = hauptpr.hs_nr +and basis.hochschulinfo_name = hauptpr.hochschulinfo_name +and basis.studienjahr_label = hauptpr.studienjahr_label +and basis.jahr = hauptpr.jahr +and basis.dwh_name = hauptpr.dwh_name +and basis.datenstand = hauptpr.datenstand +and basis.sxc_version = hauptpr.sxc_version +; + +update tmp_stud2 +set endbestand = anfangsbestand + zugang - abgang +; + +-- ===================================================================== +-- 9) AUSGABE +-- ===================================================================== +select + hs_nr as hs_nr, + hochschulinfo_name as hochschulinfo_name, + studienjahr_label as studienjahr_label, + jahr as jahr, + anfangsbestand as anfangsbestand, + zugang as zugang, + zugang_ersteinschr as zugang_ersteinschr, + abgang, + abgang_hauptpr, + abgang_ohne_hauptpr, + hauptpr_summe, + hauptpr_bleibt, + endbestand, + dwh_name as dwh_name, + datenstand as datenstand, + sxc_version as sxc_version +from tmp_stud2 +order by + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 +; + +-- ===================================================================== +-- 10) AUFRÄUMEN +-- ===================================================================== +drop table if exists tmp_stud2; +drop table if exists tmp_stud_hauptpr_sem_kopf; +drop table if exists tmp_stud; +drop table if exists tmp_hauptpr; +drop table if exists tmp_sem_exists; +drop table if exists tmp_basis; +drop table if exists tmp_meta; +drop table if exists tmp_stud3; diff --git a/src-modules/module/sxc/masken/47200_felderinfo.unl b/src-modules/module/sxc/masken/47200_felderinfo.unl new file mode 100644 index 0000000..ae4fcd9 --- /dev/null +++ b/src-modules/module/sxc/masken/47200_felderinfo.unl @@ -0,0 +1,35 @@ +47200^Spaltenlayout^3000^350^-1^140^180^1^char^31^1^1^<>SELECT uniquename,\ + caption\ +FROM rpta_column_layout \ +where uniquename in ('sos_stud_zugang_abgang')\ +order by sortnr, caption\ + ;^ ^<>SELECT uniquename,\ + caption\ +FROM rpta_column_layout \ +where uniquename='sos_stud_zugang_abgang';^ +47201^Seit Semester^10^0^0^140^80^1^integer^30^0^1^<> select tid, eintrag from semester order by tid DESC;^ ^<> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^ +47202^Fächer^30^0^0^130^200^6^integer^1000^0^12^<> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^ +47203^Abschluss^40^0^0^100^200^3^char^1500^0^12^<> select tid,name,sortnr from sichten where art='SOS-Abschluss-Sicht' order by 3,2;^ ^ ^ +47204^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^0^^ ^ ^ +47205^Semestertyp^22^350^-1^140^80^1^integer^255^0^1^<> select 1,'nur Sommersemester' from xdummy union select 2,'nur Wintersemester' from xdummy^hidden^ ^ +47206^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^ ^ ^ +47207^Bis Semester^20^350^-1^140^80^1^integer^30^0^1^<> select tid, eintrag from semester order by tid DESC;^ ^<> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^ +47208^Staatsangehörigkeit^150^0^0^140^150^10^char^30^0^12^<> select tid,name,sortnr from sichten where art='SOS-Staaten-Sicht' order by 3,2;^ ^ ^ +47209^Studiengang^25^0^0^140^150^50^char^1000^0^12^<> select tid,name,sortnr from sichten where art in ('SOS-Kostenstellen-Sicht', 'SOS-Studiengang-Sicht') order by 3,2;^ ^ ^ +47210^Semester^100^0^0^140^80^1^integer^30^0^1^<> select tid, eintrag from semester order by tid DESC;^hidden^ ^ +47211^Stichtag^23^330^-1^130^100^1^sql^30^1^1^<> select tid, name from sos_stichtag where stichtagsart='Studierende';^ ^<> select tid, name from sos_stichtag where stichtagsart='Studierende' and appl_key='1';^ +47213^Jahr^110^0^0^140^80^1^integer^30^0^13^^ ^ ^ +47214^Filter Studierende^100^0^0^140^150^1^sql^20^0^1^<> 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;^ ^ ^ +47215^Nur Endsemester^21^0^0^140^80^1^integer^30^0^1^<> select 1,'ja' from xdummy^hidden^ ^ +47216^Matrikel-Nr.^35^350^-1^140^80^1^char^30^0^13^^ ^ ^ +47217^Grafik^1000^300^-1^170^150^1^char^30^0^1^<> --freemarker template\ +<#if K_VIZ_ZEITR_SEM_ANZ?exists>select uniquename, caption from viz_chart where maskeninfo_id=47140 and chart_active=1 order by 2;\ +<#else>\ +select 0,'Keine Visualisierungen verfügbar' from xdummy;\ +^ ^<>--freemarker template\ +<#if K_VIZ_ZEITR_SEM_ANZ?exists>select uniquename, caption from viz_chart where maskeninfo_id=47140 and chart_active=1 order by 2 limit 1;\ +^ +47218^Köpfe oder Fälle ?^0^0^0^140^150^1^sql^70^0^1^<> select apnr, eintrag from koepfe_oder_faelle order by 2^hidden^<> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Köpfe';^ +47219^tablestylesheet^1500^0^0^100^100^1^char^255^1^1^<> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=47140 order by ord^ ^<> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=47140 order by ord limit 1^ +47222^Geschlecht^110^0^0^140^80^1^integer^30^0^1^<> SELECT apnr,druck FROM cif where key = 9003 and apnr between 1 and 4 order by 1;^hidden^ ^ +47223^Vergleichshochschule^100^0^0^140^80^1^char^255^0^18^^ ^<> select '../edit/sxc/sxc_hochschule_vergleichsgruppe_list.jsp' from xdummy;^ diff --git a/src-modules/module/sxc/masken/47200_maske_system_bez.unl b/src-modules/module/sxc/masken/47200_maske_system_bez.unl new file mode 100644 index 0000000..6770daf --- /dev/null +++ b/src-modules/module/sxc/masken/47200_maske_system_bez.unl @@ -0,0 +1 @@ +47200^7^ diff --git a/src-modules/module/sxc/masken/47200_masken_felder_bez.unl b/src-modules/module/sxc/masken/47200_masken_felder_bez.unl new file mode 100644 index 0000000..7532d86 --- /dev/null +++ b/src-modules/module/sxc/masken/47200_masken_felder_bez.unl @@ -0,0 +1,21 @@ +47200^47200^ +47200^47201^ +47200^47202^ +47200^47203^ +47200^47204^ +47200^47205^ +47200^47206^ +47200^47207^ +47200^47208^ +47200^47209^ +47200^47210^ +47200^47211^ +47200^47213^ +47200^47214^ +47200^47215^ +47200^47216^ +47200^47217^ +47200^47218^ +47200^47219^ +47200^47222^ +47200^47223^ diff --git a/src-modules/module/sxc/masken/47200_maskeninfo.unl b/src-modules/module/sxc/masken/47200_maskeninfo.unl new file mode 100644 index 0000000..2a20ebb --- /dev/null +++ b/src-modules/module/sxc/masken/47200_maskeninfo.unl @@ -0,0 +1,467 @@ +47200^Studierendenströme Hochschulvergleich^--Freemarker Template\ +<#include "SQL_lingua_franca"/>\ +<#include "SuperX_general"/>\ +--\ +--Autor D. Quathamer 2024\ +\ +>;]]>\ +\ +\ +\ +\ +>;\ +\ +]]>\ +>\ +/* and C.uniquename in (<>) */\ +order by CL.sortnr\ + ;\ +]]>\ += <> */\ +/* and tid <= <> */\ +<#if "<>"="1" || "<>"="2">\ +and substring('' || tid from 5 for 1)='<>'\ +\ +;\ +\ +]]>\ +\ +\ +\ +<#assign jahr_param="" />\ +<#assign jahr_filter="1=1" />\ +/* <#assign jahr_param="<>" /> */\ +--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 + ")" />\ +\ +\ +<#assign semester_filter ="1=1\ +/* and sem_rueck_beur_ein >= <> */\ +/* and sem_rueck_beur_ein <= <> */\ +" />\ +<#if "<>"="1" || "<>"="2">\ +<#assign semester_filter = semester_filter+ " and substring('' || sem_rueck_beur_ein from 5 for 1)='<>'" />\ +\ +<#if "<>"="1">\ +--nur Endsemester\ +<#assign semester_filter = semester_filter+ " and 1=1 and sem_rueck_beur_ein = "+endsemester /> \ +\ +\ +<#assign filter="<>\ +/* and sem_rueck_beur_ein = <> */\ +/* and stichtag = <> */\ +/* and <> */\ +/* and <>*/\ +/* and geschlecht = <> */\ +/* and fach_sem_zahl <= <> */\ +/* and substring('' || sem_rueck_beur_ein from 5 for 1)='<>' */\ +/* and ${<>} */\ +" />\ +\ +<#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 /> --<> */\ +/* <#assign filter = filter + " and stg in "+Fächer.allNeededKeysList /> --<> */\ +/* <#assign filter = filter + " and tid_stg in (select L2.tid from lehr_stg_ab L2 where L2.abschluss in "+Abschluss.allNeededKeysList +")" /> --<> */\ +\ +\ +\ +create temp table tmp_sos_stud_astat as\ +select dim_studiengang.tid as dim_studiengang_tid,\ +dim_studiengang.stg as dim_studiengang_stg,\ +dim_studiengang.stg_str as dim_studiengang_stg_str,\ +dim_studiengang.stg_ktxt as dim_studiengang_stg_ktxt,\ +dim_studiengang.stg_ltxt as dim_studiengang_stg_ltxt,\ +dim_studiengang.stg_astat as dim_studiengang_stg_astat,\ +dim_studiengang.stg_astat_str as dim_studiengang_stg_astat_str,\ +dim_studiengang.stg_astgrp as dim_studiengang_stg_astgrp,\ +dim_studiengang.stg_astgrp_str as dim_studiengang_stg_astgrp_str,\ +dim_studiengang.vertfg as dim_studiengang_vertfg,\ +dim_studiengang.vertfg_str as dim_studiengang_vertfg_str,\ +dim_studiengang.schwerpunkt as dim_studiengang_schwerpunkt,\ +dim_studiengang.schwerpunkt_str as dim_studiengang_schwerpunkt_str,\ +dim_studiengang.pversion as dim_studiengang_pversion,\ +dim_studiengang.kz_fach as dim_studiengang_kz_fach,\ +dim_studiengang.kz_fach_str as dim_studiengang_kz_fach_str,\ +dim_studiengang.abschluss as dim_studiengang_abschluss,\ +dim_studiengang.abschluss_str as dim_studiengang_abschluss_str,\ +dim_studiengang.abschluss_astat as dim_studiengang_abschluss_astat,\ +dim_studiengang.abschluss_astat_str as dim_studiengang_abschluss_astat_str,\ +dim_studiengang.abschlussart as dim_studiengang_abschlussart,\ +dim_studiengang.abschlussart_str as dim_studiengang_abschlussart_str,\ +dim_studiengang.abschluss_grp as dim_studiengang_abschluss_grp,\ +dim_studiengang.abschluss_grp_str as dim_studiengang_abschluss_grp_str,\ +dim_studiengang.text as dim_studiengang_text,\ +dim_studiengang.regel as dim_studiengang_regel,\ +dim_studiengang.stort as dim_studiengang_stort,\ +dim_studiengang.stort_str as dim_studiengang_stort_str,\ +dim_studiengang.fb as dim_studiengang_fb,\ +dim_studiengang.fb_str as dim_studiengang_fb_str,\ +dim_studiengang.lehr as dim_studiengang_lehr,\ +dim_studiengang.lehr_str as dim_studiengang_lehr_str,\ +dim_studiengang.stutyp as dim_studiengang_stutyp,\ +dim_studiengang.stutyp_str as dim_studiengang_stutyp_str,\ +dim_studiengang.stg_astat_bund as dim_studiengang_stg_astat_bund,\ +dim_studiengang.stg_astat_bund_str as dim_studiengang_stg_astat_bund_str,\ +dim_studiengang.abschluss_astat_bund as dim_studiengang_abschluss_astat_bund,\ +dim_studiengang.abschluss_astat_bund_str as dim_studiengang_abschluss_astat_bund_str,\ +dim_studiengang.stg_astat_sb as dim_studiengang_stg_astat_sb,\ +dim_studiengang.stg_astat_sb_str as dim_studiengang_stg_astat_sb_str,\ +dim_studiengang.fgrp as dim_studiengang_fgrp,\ +dim_studiengang.fgrp_str as dim_studiengang_fgrp_str,\ +dim_studiengang.sb as dim_studiengang_sb,\ +dim_studiengang.sb_str as dim_studiengang_sb_str,\ +dim_studiengang.abstgvnr as dim_studiengang_abstgvnr,\ +dim_studiengang.pversion_uniquename as dim_studiengang_pversion_uniquename,\ +dim_studiengang.pversion_kurztext as dim_studiengang_pversion_kurztext,\ +dim_studiengang.pversion_drucktext as dim_studiengang_pversion_drucktext,\ +dim_studiengang.unikey as dim_studiengang_unikey,\ +dim_studiengang.ist_lehramt as dim_studiengang_ist_lehramt,\ +--dim_studiengang.stufrm_diff_rsz as dim_studiengang_stufrm_diff_rsz,\ +sos_stg_aggr.tid_stg as tid_stg,\ +sos_stg_aggr.ca12_staat as ca12_staat,\ +sos_stg_aggr.geschlecht as geschlecht,\ +sos_stg_aggr.alter as alter,\ +sos_stg_aggr.hzbart as hzbart,\ +sos_stg_aggr.hmkfzkz as hmkfzkz,\ +sos_stg_aggr.hmkfz as hmkfz,\ +sos_stg_aggr.semkfzkz as semkfzkz,\ +sos_stg_aggr.semkfz as semkfz,\ +sos_stg_aggr.hzbkfzkz as hzbkfzkz,\ +sos_stg_aggr.hzbkfz as hzbkfz,\ +sos_stg_aggr.hrst as hrst,\ +sos_stg_aggr.studiengang_nr as studiengang_nr,\ +sos_stg_aggr.fach_nr as fach_nr,\ +sos_stg_aggr.fach_sem_zahl as fach_sem_zahl,\ +sos_stg_aggr.sem_rueck_beur_ein as sem_rueck_beur_ein,\ +sos_stg_aggr.kz_rueck_beur_ein as kz_rueck_beur_ein,\ +sos_stg_aggr.klinsem as klinsem,\ +sos_stg_aggr.hssem as hssem,\ +sos_stg_aggr.stuart as stuart,\ +sos_stg_aggr.stufrm as stufrm,\ +sos_stg_aggr.stichtag as stichtag,\ +sos_stg_aggr.summe as summe,\ +sos_stg_aggr.hzbart_int as hzbart_int,\ +sos_stg_aggr.matrikel_nr as matrikel_nr,\ +sos_stg_aggr.ch27_grund_beurl as ch27_grund_beurl,\ +sos_stg_aggr.ch62_grund_exmatr as ch62_grund_exmatr,\ +sos_stg_aggr.hzbnote as hzbnote,\ +sos_stg_aggr.pseudonym as pseudonym,\ +sos_stg_aggr.sem_rueck_beur_ein_max as sem_rueck_beur_ein_max,\ +sos_stg_aggr.ruebeudat as ruebeudat,\ +sos_stg_aggr.semgewicht as semgewicht,\ +sos_stg_aggr.d_exmatr as d_exmatr,\ +sos_stg_aggr.second_nationality as second_nationality,\ +sos_stg_aggr.district_astat as district_astat,\ +sos_stg_aggr.country_astat as country_astat,\ +sos_stg_aggr.orgrole_valid_from as orgrole_valid_from,\ +sos_stg_aggr.orgrole_valid_to as orgrole_valid_to,\ +sos_stg_aggr.geb_gezahlt as geb_gezahlt,\ +sos_stg_aggr.aktiv as aktiv,\ +sos_stg_aggr.individual_number_of_semesters as individual_number_of_semesters,\ +sos_stg_aggr.ersthzbkfz as ersthzbkfz,\ +sos_stg_aggr.ersthzbkfzkz as ersthzbkfzkz,\ +sos_stg_aggr.ersthzbart as ersthzbart,\ +sos_stg_aggr.ersthzbjahr as ersthzbjahr,\ +sos_stg_aggr.ersthzbnote as ersthzbnote,\ +sos_stg_aggr.lepsem as lepsem,\ +sos_stg_aggr.stgsemgewicht as stgsemgewicht,\ +sos_stg_aggr.degree_program_id as degree_program_id,\ +sos_stg_aggr.endedat as endedat,\ +sos_stg_aggr.kz_rueck_beur_ein_tsg as kz_rueck_beur_ein_tsg,\ +sos_stg_aggr.endedat_tsg as endedat_tsg,\ +sos_stg_aggr.abmeldegrund as abmeldegrund,\ +sos_stg_aggr.abmeldegrund_tsg as abmeldegrund_tsg,\ +sos_stg_aggr.degree_program_uniquename as degree_program_uniquename,\ +sos_stg_aggr.aktiv_intern as aktiv_intern,\ +sos_stg_aggr.aktiv_intern_p as aktiv_intern_p,\ +sos_k_hrst.apnr as sos_k_hrst_apnr,\ +sos_k_hrst.kurz as sos_k_hrst_kurz,\ +sos_k_hrst.druck as sos_k_hrst_druck,\ +sos_k_hrst.astat as sos_k_hrst_astat,\ +sos_k_hrst.his_hrst as sos_k_hrst_his_hrst,\ +sos_k_stort.apnr as sos_k_stort_apnr,\ +sos_k_stort.kurz as sos_k_stort_kurz,\ +sos_k_stort.druck as sos_k_stort_druck,\ +sos_k_stort.astat as sos_k_stort_astat,\ +sos_k_stuart.apnr as sos_k_stuart_apnr,\ +sos_k_stuart.druck as sos_k_stuart_druck,\ +sos_k_stuart.astat as sos_k_stuart_astat,\ +sos_k_stufrm.apnr as sos_k_stufrm_apnr,\ +sos_k_stufrm.druck as sos_k_stufrm_druck,\ +sos_k_stufrm.astat as sos_k_stufrm_astat,\ +sos_k_stutyp.apnr as sos_k_stutyp_apnr,\ +sos_k_stutyp.druck as sos_k_stutyp_druck,\ +sos_k_stutyp.astat as sos_k_stutyp_astat,\ +null::varchar as dummy \ +from sos_stg_aggr\ +left outer join dim_studiengang on (dim_studiengang.tid=sos_stg_aggr.tid_stg)\ +left outer join sos_k_stort on (dim_studiengang.stort=sos_k_stort.apnr)\ +left outer join sos_k_stutyp on (sos_stg_aggr.stutyp=sos_k_stutyp.apnr)\ +left outer join sos_k_stuart on (sos_stg_aggr.stuart=sos_k_stuart.apnr)\ +left outer join sos_k_stufrm on (sos_stg_aggr.stufrm=sos_k_stufrm.apnr)\ +left outer join sos_k_hrst on (sos_stg_aggr.hrst=sos_k_hrst.apnr) \ +where 1=1\ +and ${filter}\ +;\ +\ +select \ + --zuerst die Basisdaten:\ + (select hs_nr from hochschulinfo) as hs_nr,\ + (select name from hochschulinfo) as hochschulinfo_name,\ + 'Studienjahr'::varchar(255) as studienjahr_label,\ + get_akad_jahr(sem_rueck_beur_ein,'P') as jahr,\ + case when substring('' || sem_rueck_beur_ein from 5 for 1)='2' and kz_rueck_beur_ein=3 then summe else 0 end as anfangsbestand,\ + (select '' from semester where sem_beginn <= current_date and sem_ende >= current_date and semester.tid= tmp_sos_stud_astat.sem_rueck_beur_ein \ +union select 'nein' where tmp_sos_stud_astat.sem_rueck_beur_ein_max <= tmp_sos_stud_astat.sem_rueck_beur_ein\ +union select 'ja' where add_sem(tmp_sos_stud_astat.sem_rueck_beur_ein,1) = tmp_sos_stud_astat.sem_rueck_beur_ein_max\ +union select 'ja' from xdummy where exists \ +(select S2.matrikel_nr from sos_stg_aggr S2 where S2.matrikel_nr=tmp_sos_stud_astat.matrikel_nr \ +and S2.sem_rueck_beur_ein=add_sem(tmp_sos_stud_astat.sem_rueck_beur_ein,1)\ +)\ +union select 'nein' from xdummy where not exists \ +(select S2.matrikel_nr from sos_stg_aggr S2 where S2.matrikel_nr=tmp_sos_stud_astat.matrikel_nr \ +and S2.sem_rueck_beur_ein=add_sem(tmp_sos_stud_astat.sem_rueck_beur_ein,1)\ +) order by 1 limit 1) as status_folgesem,\ + (case when exists (select L.matrikel_nr \ +from sos_lab_stg L, lehr_stg_ab L2, sos_stichtag I \ +where L2.tid=L.tid_stg and L.stichtag=I.tid \ +and I.appl_key='2' \ +and L.matrikel_nr=tmp_sos_stud_astat.matrikel_nr \ +and L2.stg=tmp_sos_stud_astat.dim_studiengang_stg \ +and L2.abschluss=tmp_sos_stud_astat.dim_studiengang_abschluss \ +and L.pstatus='BE' \ +and L.abschnitt=2) then 1 else 0 end) as hauptpruefung,\ + case when kz_rueck_beur_ein in (1,2) then summe else 0 end as zugang,\ + case when kz_rueck_beur_ein in (1) then summe else 0 end as zugang_ersteinschr,\ + 0::integer as abgang,\ + summe as summe,\ + 0::integer as abgang_hauptpr,\ + 0::integer as abgang_ohne_hauptpr,\ + 0::integer as hauptpr_summe,\ + 0::integer as hauptpr_bleibt,\ + null::integer as endbestand,\ + 'SuperX' as dwh_name,\ + (select datum from systeminfo where tid=7) as datenstand,\ + (select version from db_version where his_system='sxc') as sxc_version,\ + null::char(1) as dummycol\ + into temp tmp_stud\ + from tmp_sos_stud_astat\ + where 1=1 \ + ;\ +-- select * from tmp_stud;\ + \ +update tmp_stud set abgang=summe where status_folgesem='nein';\ +update tmp_stud set abgang_hauptpr=summe where status_folgesem='nein' and hauptpruefung=1;\ +update tmp_stud set abgang_ohne_hauptpr=summe where status_folgesem='nein' and hauptpruefung=0;\ +update tmp_stud set hauptpr_summe=summe where hauptpruefung=1;\ +update tmp_stud set hauptpr_bleibt=summe where hauptpruefung=1 and status_folgesem='ja';\ +\ + --ergebnistabelle:\ + select \ + --zuerst die nicht-Aggregate:\ + -- preparingColumns ausgeschlossen, da sie von processingColumns aggregiert werden\ + -- computedColumns immer mitnehmen, da später im finalen select verarbeitet\ + hs_nr,\ + hochschulinfo_name,\ + studienjahr_label,\ + jahr,\ + -- status_folgesem,\ + -- hauptpruefung,\ + null::integer as endbestand,\ + dwh_name,\ + datenstand,\ + sxc_version,\ + --dann die Aggregate:\ + sum(abgang) as abgang,\ + sum(abgang_hauptpr) as abgang_hauptpr,\ + sum(abgang_ohne_hauptpr) as abgang_ohne_hauptpr,\ + sum(hauptpr_summe) as hauptpr_summe,\ + sum(hauptpr_bleibt) as hauptpr_bleibt,\ + sum(anfangsbestand) as anfangsbestand,\ + sum(zugang) as zugang,\ + sum(zugang_ersteinschr) as zugang_ersteinschr,\ + sum(summe) as summe,\ + null::char(1) as dummycol\ + into temp tmp_stud2\ + from tmp_stud\ + where 1=1\ + group by\ + 1,2,3,4,5,6,7,8\ + ;\ + update tmp_stud2 set endbestand= anfangsbestand+zugang-abgang;\ +\ + drop table if exists tmp_sos_stud_astat;\ + drop table if exists tmp_stud;\ + \ + select \ + hs_nr\ + as hs_nr\ +\ + ,\ + hochschulinfo_name\ + as hochschulinfo_name\ +\ + ,\ + studienjahr_label\ + as studienjahr_label\ +\ + ,\ + jahr\ + as jahr\ +\ + ,\ + anfangsbestand\ + as anfangsbestand\ +\ + ,\ + zugang\ + as zugang\ +\ + ,\ + zugang_ersteinschr\ + as zugang_ersteinschr\ +\ + ,\ + abgang\ +\ + ,\ + abgang_hauptpr\ +\ + ,\ + abgang_ohne_hauptpr\ +\ + ,\ + hauptpr_summe\ +\ + ,\ + hauptpr_bleibt\ +\ + ,\ + endbestand\ +\ + ,\ + dwh_name\ + as dwh_name\ +\ + ,\ + datenstand\ + as datenstand\ +\ + ,\ + sxc_version\ + as sxc_version\ +\ + \ + from tmp_stud2\ + order by \ + 1\ + ,\ +2\ + ,\ +3\ + ,\ +4\ + ,\ +5\ + ,\ +6\ + ,\ +7\ + ,\ +8\ + ,\ +9\ + ,\ +10\ + ,\ +11\ + ,\ +12\ + ,\ +13\ + ,\ +14\ + ,\ +15\ + ,\ +16\ + ;^select xil_proplist from maskeninfo where tid=48000^Studienfach^Anzahl bzw. Anteil^Studierende (Anfangsbestand, Zugang und Abgang) pro Hochschule und Studienjahr^select cleanup_stmt from maskeninfo where tid=48000^^2^850^540^^1^<>SELECT description FROM rpta_column_layout where uniquename=<>;^ diff --git a/src-modules/module/sxc/masken/47200_sachgeb_maske_bez.unl b/src-modules/module/sxc/masken/47200_sachgeb_maske_bez.unl new file mode 100644 index 0000000..a3a18d9 --- /dev/null +++ b/src-modules/module/sxc/masken/47200_sachgeb_maske_bez.unl @@ -0,0 +1 @@ +16^47200^ diff --git a/src-modules/module/sxc/schluesseltabellen/rpta_column_layout_sos_stud_zugang_abgang_fuellen.sql b/src-modules/module/sxc/schluesseltabellen/rpta_column_layout_sos_stud_zugang_abgang_fuellen.sql new file mode 100644 index 0000000..4a4c505 --- /dev/null +++ b/src-modules/module/sxc/schluesseltabellen/rpta_column_layout_sos_stud_zugang_abgang_fuellen.sql @@ -0,0 +1,267 @@ +--freemarker template +<#include "RPTA-Makros"/> + + +select count(*) from rpta_resultset where uniquename='sos_stud_astat'; + + +<#assign rpta_column_layout = {"uniquename":"sos_stud_zugang_abgang", +"caption":"Studierende (Zugang / Abgang Hochschulvergleich)", +"rpta_resultset":"sos_stud_astat", +"whereclause":"", +"description":"Studierende pro Jahr (Zugang, Abgang)" +} + /> + +<#assign rpta_columns = [ +{"uniquename":"sos_k_stort_astat", +"caption_der_spalte":"Hochschulnummer Statistik", +"caption_in_ergebnistabelle":"Hochschule_ID", +"srcfieldname":"sos_k_stort_astat", +"column_type":"physicalColumn", +"col_function":"", +"is_visible":"1", +"visible_size":"10", +"is_aggregate":"0", +"description":"Amtliche Standortnummer" +}, +{"uniquename":"hochschulinfo_name", +"caption_der_spalte":"Hochschulname", +"caption_in_ergebnistabelle":"Hochschule_NAME", +"srcfieldname":"", +"targetfieldname":"hochschulinfo_name", +"column_type":"lookupColumn", +"col_function":"select name from hochschulinfo", +"is_visible":"1", +"visible_size":"10", +"is_aggregate":"0", +"description":"" +}, +{"uniquename":"studienjahr_label", +"caption_der_spalte":"Studienjahr Label", +"caption_in_ergebnistabelle":"Semester", +"srcfieldname":"", +"targetfieldname":"studienjahr_label", +"column_type":"logicalColumn", +"col_function":"''Studienjahr''::varchar(255)", +"is_visible":"1", +"visible_size":"10", +"is_aggregate":"0", +"description":"" +} +, +{"uniquename":"jahr", +"caption":"Jahr", +"srcfieldname":"sem_rueck_beur_ein", +"targetfieldname":"jahr", +"column_type":"logicalColumn", +"col_function":"get_akad_jahr(sem_rueck_beur_ein,''A'')", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"0", +"description":"(WS + darauffolgendes SS)" +}, +{"uniquename":"anfangsbestand", +"caption":"Anfangsbestand", +"srcfieldname":"", +"targetfieldname":"anfangsbestand", +"column_type":"logicalColumn", +"col_function":"case when substring('''' || sem_rueck_beur_ein from 5 for 1)=''2'' and kz_rueck_beur_ein=3 then summe else 0 end", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"1", +"description":"Studierende im WiSe" +}, +{"uniquename":"status_folgesem", +"caption":"Im Folgesemester eingeschrieben", +"srcfieldname":"status_folgesem", +"targetfieldname":"status_folgesem", +"column_type":"lookupColumn", +"col_function":"select '''' from semester where sem_beginn <= current_date and sem_ende >= current_date and semester.tid= tmp_sos_stud_astat.sem_rueck_beur_ein +union select ''nein'' where tmp_sos_stud_astat.sem_rueck_beur_ein_max <= tmp_sos_stud_astat.sem_rueck_beur_ein +union select ''ja'' where add_sem(tmp_sos_stud_astat.sem_rueck_beur_ein,1) = tmp_sos_stud_astat.sem_rueck_beur_ein_max +union select ''ja'' from xdummy where exists +(select S2.matrikel_nr from sos_stg_aggr S2 where S2.matrikel_nr=tmp_sos_stud_astat.matrikel_nr +and S2.sem_rueck_beur_ein=add_sem(tmp_sos_stud_astat.sem_rueck_beur_ein,1) +) +union select ''nein'' from xdummy where not exists +(select S2.matrikel_nr from sos_stg_aggr S2 where S2.matrikel_nr=tmp_sos_stud_astat.matrikel_nr +and S2.sem_rueck_beur_ein=add_sem(tmp_sos_stud_astat.sem_rueck_beur_ein,1) +) order by 1 limit 1", +"is_visible":"0", +"format_code":"", +"visible_size":"5", +"is_aggregate":"0", +"description":"Ist im Folgesem. eingeschrieben" +}, +{"uniquename":"hauptpruefung", +"caption":"Hauptprüfung", +"srcfieldname":"", +"targetfieldname":"hauptpruefung", +"column_type":"lookupColumn", +"col_function":"case when exists (select L.matrikel_nr +from sos_lab_stg L, lehr_stg_ab L2, sos_stichtag I +where L2.tid=L.tid_stg and L.stichtag=I.tid +and I.appl_key=''2'' +and L.matrikel_nr=tmp_sos_stud_astat.matrikel_nr +and L2.stg=tmp_sos_stud_astat.dim_studiengang_stg +and L2.abschluss=tmp_sos_stud_astat.dim_studiengang_abschluss +and L.pstatus=''BE'' +and L.abschnitt=2) then 1 else 0 end", +"is_visible":"0", +"format_code":"", +"visible_size":"5", +"is_aggregate":"0", +"description":"Hauptprüfung bestanden" +}, +{"uniquename":"zugang", +"caption":"Zugang", +"srcfieldname":"", +"targetfieldname":"zugang", +"column_type":"logicalColumn", +"col_function":"case when kz_rueck_beur_ein in (1,2) then summe else 0 end", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"1", +"description":"Studierende (Erst- und Neueinschreiber) im WiSe und SoSe" +}, +{"uniquename":"zugang_ersteinschr", +"caption":"Zugang_Ersteinschreibung", +"srcfieldname":"", +"targetfieldname":"zugang_ersteinschr", +"column_type":"logicalColumn", +"col_function":"case when kz_rueck_beur_ein in (1) then summe else 0 end", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"1", +"description":"Studierende (Ersteinschreiber) im WiSe und SoSe" +}, +{"uniquename":"abgang", +"caption":"Abgang", +"srcfieldname":"", +"targetfieldname":"abgang", +"column_type":"computedColumn", +"col_function":"case when status_folgesem=''nein'' then summe else 0 end", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"1", +"description":"Exmatrikuliert" +}, +{"uniquename":"summe", +"caption":"Summe", +"srcfieldname":"summe", +"targetfieldname":"", +"column_type":"physicalColumn", +"col_function":"", +"is_visible":"0", +"format_code":"", +"visible_size":"5", +"is_aggregate":"1", +"description":"" +}, +{"uniquename":"abgang_hauptpr", +"caption":"Abgang_mit_Hauptpruefung", +"srcfieldname":"", +"targetfieldname":"abgang_hauptpr", +"column_type":"computedColumn", +"col_function":"case when status_folgesem=''nein'' and hauptpruefung=1 then summe else 0 end", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"1", +"description":"Hauptprüfung, im Folgesemester nicht eingeschrieben" +}, +{"uniquename":"abgang_ohne_hauptpr", +"caption":"Abgang_ohne_Hauptpruefung", +"srcfieldname":"", +"targetfieldname":"abgang_ohne_hauptpr", +"column_type":"computedColumn", +"col_function":"case when status_folgesem=''nein'' and hauptpruefung=0 then summe else 0 end", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"1", +"description":"Keine Hauptprüfung, im Folgesemester nicht eingeschrieben" +}, +{"uniquename":"hauptpr_summe", +"caption":"Hauptpruefung_gesamt", +"srcfieldname":"", +"targetfieldname":"hauptpr_summe", +"column_type":"computedColumn", +"col_function":"case when hauptpruefung=1 then summe else 0 end", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"1", +"description":"Hauptprüfung" +}, +{"uniquename":"hauptpr_bleibt", +"caption":"Hauptpruefung_bleibt", +"srcfieldname":"", +"targetfieldname":"hauptpr_bleibt", +"column_type":"computedColumn", +"col_function":"hauptpr_summe - abgang_hauptpr", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"1", +"description":"Hauptprüfung, im Folgesem.- eingeschrieben" +}, + +{"uniquename":"endbestand", +"caption":"Endbestand", +"srcfieldname":"", +"targetfieldname":"endbestand", +"column_type":"computedColumn", +"col_function":"anfangsbestand + zugang - abgang", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"1", +"description":"Endbestand (Anfangsbestand + Zugang - Abgang)" +}, +{"uniquename":"dwh_name", +"caption":"Quellsystem", +"srcfieldname":"", +"targetfieldname":"dwh_name", +"column_type":"logicalColumn", +"col_function":"''SuperX''", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"0", +"description":"" +}, +{"uniquename":"datenstand", +"caption":"Datenstand", +"srcfieldname":"", +"targetfieldname":"datenstand", +"column_type":"lookupColumn", +"col_function":"select datum from systeminfo where tid=7", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"0", +"description":"" +}, +{"uniquename":"sxc_version", +"caption":"Version-Export", +"srcfieldname":"", +"targetfieldname":"sxc_version", +"column_type":"lookupColumn", +"col_function":"select version from db_version where his_system=''sxc''", +"is_visible":"1", +"format_code":"", +"visible_size":"5", +"is_aggregate":"0", +"description":"" +} +] + /> + +<@rpta_column_layout_fuellen />