diff --git a/src-modules/module/rpta/conf/rpta.xml b/src-modules/module/rpta/conf/rpta.xml index c4a028e..bfb5ed8 100644 --- a/src-modules/module/rpta/conf/rpta.xml +++ b/src-modules/module/rpta/conf/rpta.xml @@ -272,6 +272,12 @@ parent="Berichtsassistent">Abfragen zur Administration von Berichtsassistent $RPTA_PFAD/masken + + Leistungen und Studiengänge + + $RPTA_PFAD/masken + + diff --git a/src-modules/module/rpta/masken/48110_felderinfo.unl b/src-modules/module/rpta/masken/48110_felderinfo.unl new file mode 100644 index 0000000..ff1fb31 --- /dev/null +++ b/src-modules/module/rpta/masken/48110_felderinfo.unl @@ -0,0 +1,27 @@ +48110^Spaltenlayout^3000^350^-1^140^180^1^char^30^1^1^<>SELECT uniquename,\ + caption\ +FROM rpta_column_layout \ +where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='lm_exam_unit_dim_studiengang'\ +)\ +order by sortnr, caption\ + ;^ ^<>SELECT uniquename,\ + caption\ +FROM rpta_column_layout \ +where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='lm_exam_unit_dim_studiengang'\ +) and uniquename='lm_exam_unit_dim_studiengang_note';^ +48111^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;^ +48112^Fächer^30^0^0^130^200^6^char^1000^0^12^<> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^ +48113^Abschluss^40^0^0^100^200^3^char^1500^0^1^<> select apnr, druck from cifx where key=35 order by 2;^ ^ ^ +48114^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^0^^ ^ ^ +48115^Semestertyp^22^350^-1^140^80^1^integer^255^0^1^<> select 1,'nur Sommersemester' from xdummy union select 2,'nur Wintersemester' from xdummy^Eintrag^<> select 2,'nur Wintersemester' from xdummy^ +48116^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^apnr, eintrag^ ^ +48117^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;^ +48118^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;^ ^ ^ +48119^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;^ ^ ^ +48121^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='0';^ +48122^Hörerstatus^200^330^-1^140^150^1^sql^30^0^1^<> select apnr, eintrag from hoererstatus order by 2^apnr, eintrag^<> select apnr, eintrag from hoererstatus where eintrag='alle';^ +48128^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^apnr, eintrag^<> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Fälle';^ +48132^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;^ ^ ^ +48133^Spalten^3001^0^0^150^190^10^char^30^0^1^<>\ +select C.uniquename, C.caption ,L.layout_id from rpta_column C, rpta_column2layout L where C.tid=L.column_id and layout_id in\ +(select tid from rpta_column_layout where uniquename=<>) order by 2;^ ^ ^ diff --git a/src-modules/module/rpta/masken/48110_maske_system_bez.unl b/src-modules/module/rpta/masken/48110_maske_system_bez.unl new file mode 100644 index 0000000..7c87b79 --- /dev/null +++ b/src-modules/module/rpta/masken/48110_maske_system_bez.unl @@ -0,0 +1 @@ +48110^7^ diff --git a/src-modules/module/rpta/masken/48110_masken_felder_bez.unl b/src-modules/module/rpta/masken/48110_masken_felder_bez.unl new file mode 100644 index 0000000..83c16dc --- /dev/null +++ b/src-modules/module/rpta/masken/48110_masken_felder_bez.unl @@ -0,0 +1,15 @@ +48110^48110^ +48110^48111^ +48110^48112^ +48110^48113^ +48110^48114^ +48110^48115^ +48110^48116^ +48110^48117^ +48110^48118^ +48110^48119^ +48110^48121^ +48110^48122^ +48110^48128^ +48110^48132^ +48110^48133^ diff --git a/src-modules/module/rpta/masken/48110_maskeninfo.unl b/src-modules/module/rpta/masken/48110_maskeninfo.unl new file mode 100644 index 0000000..3d2bdcc --- /dev/null +++ b/src-modules/module/rpta/masken/48110_maskeninfo.unl @@ -0,0 +1,214 @@ +48110^Leistungen und Studiengänge^--Freemarker Template\ +<#include "SQL_lingua_franca"/>\ +<#include "SuperX_general"/>\ +--\ +--Autor D. Quathamer 2024\ +\ +\ +SELECT distinct name,\ +0::smallint as is_virtual,\ +name as runtime_tablename\ + from sx_tables\ + where name in ('${my_base_rs}')\ + and 0=(select count(*) from rpta_resultset R where R.uniquename='${my_base_rs}')\ + union\ + select R.uniquename,\ + 1::smallint as is_virtual,\ + 'tmp_' || R.uniquename as runtime_tablename\ + from rpta_resultset R where R.uniquename='${my_base_rs}'\ + ;\ + ]]>\ +\ +\ +>;\ +\ +]]>\ +>\ +/* and C.uniquename in (<>) */\ +order by CL.sortnr\ + ;\ +]]>\ +\ +\ +<#assign filter="1=1\ +/* and sem_der_pruefung >= <> */\ +/* and sem_der_pruefung <= <> */\ +/* and sem_der_pruefung = <> */\ +/* and substring('' || sem_der_pruefung from 5 for 1)='<>' */\ +" />\ +\ +<#assign filter = filter + " and 's_' || tid_stg in "+Studiengang.allNeededKeysList /> \ +\ +<#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} \ +and ${filter}\ +;\ +\ +\ +\ +\ +select \ +--zuerst die Basisdaten:\ +<#foreach column in columns>\ +<#if column.coltype="physicalColumn">\ +${column.srcfieldname} as ${column.srcfieldname},\ +<#elseif column.coltype="logicalColumn">\ +${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},\ +\ +\ +null::char(1) as dummycol\ +into temp tmp_stud\ +from ${basetable.runtime_tablename}\ +<#if rpta_column_layout.whereclause !="">\ +where ${rpta_column_layout.whereclause}\ +\ +;\ +\ +--ergebnistabelle:\ +select \ +--zuerst die nicht-Aggregate:\ +<#assign groupby=0 />\ +<#foreach column in columns>\ +-- logicalColumns ausgeschlossen, da sie von processingColumns aggregiert werden\ +-- computedColumns immer mitnehmen, da später verarbeitet\ +<#if column.is_aggregate==0 && column.coltype!="logicalColumn" && column.coltype!="processingColumn" || column.coltype="computedColumn"> \ +<#assign groupby=groupby+1 />\ +${column.targetfieldname},\ +<#elseif column.is_aggregate==0 && column.coltype="processingColumn"> \ +<#assign groupby=groupby+1 />\ +${column.srcfieldname} as ${column.targetfieldname},\ +\ +\ +--dann die Aggregate:\ +<#foreach column in columns>\ +-- logicalColumns ausgeschlossen, da sie von processingColumns aggregiert werden\ +-- computedColumns ausgeschlossen, da später im finalen select verarbeitet\ +<#if column.is_aggregate==1 && column.coltype!="computedColumn" && column.coltype!="logicalColumn"> \ +${column.colfunction}(${column.srcfieldname}) as ${column.targetfieldname},\ +\ +\ +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>\ +,\ +\ +\ +;\ +--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},\ +\ +\ +null::char(1) as dummycol\ +into temp tmp_gesamt\ +from tmp_stud2\ +where 1=1\ +;\ +\ +<#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 />\ +\ +\ +<#assign colnr=0 />\ +select \ +<#foreach column in columns>\ +<#if column.is_visible!=0>\ +<#assign colnr=colnr+1 />\ +<#assign format_sql="" />\ +<#if column.format_sql?string != "">\ +<#assign format_sql=column.format_sql />\ +\ +\ +<#if column.coltype=="computedColumn">\ +(${column.colfunction})${format_sql} as ${column.targetfieldname}\ +<#else>\ +${column.targetfieldname}${format_sql} as ${column.targetfieldname}\ +\ +\ +<#if colnr < number_of_visible_colums>,\ + --wenn sichtbar\ +\ +from tmp_stud2\ +order by <#list 1..number_of_visible_colums as i>${i}\ +<#if i != number_of_visible_colums>\ +,\ +\ +\ +;\ +<#if basetable.is_virtual==1>\ +drop table if exists ${basetable.runtime_tablename};\ +\ +\ +\ +drop table if exists tmp_stud;\ +drop table if exists tmp_stud2;\ +drop table if exists tmp_gesamt;\ +\ +\ + --wenn columns?has_content^--Freemarker Template\ + 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>\ +Column CID=0 heading_text="${column.caption}" center_heading explanation="${column.description}"\ + row_selectable heading_platform readonly\ + width=${column.visible_width} text_size=60\ +\ +\ +@@@^Studienfach^Anzahl bzw. Anteil^Leistungen und Studiengänge^drop table if exists tmp_stud2; drop table if exists tmp_stud3;^^2^850^540^^1^<>SELECT description FROM rpta_column_layout where tid=<>;^ diff --git a/src-modules/module/rpta/masken/48110_sachgeb_maske_bez.unl b/src-modules/module/rpta/masken/48110_sachgeb_maske_bez.unl new file mode 100644 index 0000000..8aa10d4 --- /dev/null +++ b/src-modules/module/rpta/masken/48110_sachgeb_maske_bez.unl @@ -0,0 +1 @@ +16^48110^