Compare commits

..

No commits in common. 'master' and 'rpta_0.2_Release' have entirely different histories.

  1. 1
      src-modules/module/rpta/conf/includes.txt
  2. 204
      src-modules/module/rpta/conf/rpta.xml
  3. 84
      src-modules/module/rpta/hilfstabellen/rpta_exam_unit_fuellen.sql
  4. 7
      src-modules/module/rpta/hilfstabellen/vacuum_pg.sql
  5. 13
      src-modules/module/rpta/masken/44630_felderinfo.unl
  6. 1
      src-modules/module/rpta/masken/44630_maske_system_bez.unl
  7. 8
      src-modules/module/rpta/masken/44630_masken_felder_bez.unl
  8. 106
      src-modules/module/rpta/masken/44630_maskeninfo.unl
  9. 1
      src-modules/module/rpta/masken/44630_sachgeb_maske_bez.unl
  10. 25
      src-modules/module/rpta/masken/45000_felderinfo.unl
  11. 1
      src-modules/module/rpta/masken/45000_maske_system_bez.unl
  12. 13
      src-modules/module/rpta/masken/45000_masken_felder_bez.unl
  13. 66
      src-modules/module/rpta/masken/45000_maskeninfo.unl
  14. 1
      src-modules/module/rpta/masken/45000_sachgeb_maske_bez.unl
  15. 16
      src-modules/module/rpta/masken/45040_felderinfo.unl
  16. 1
      src-modules/module/rpta/masken/45040_maske_system_bez.unl
  17. 8
      src-modules/module/rpta/masken/45040_masken_felder_bez.unl
  18. 2
      src-modules/module/rpta/masken/45040_maskeninfo.unl
  19. 1
      src-modules/module/rpta/masken/45040_sachgeb_maske_bez.unl
  20. 29
      src-modules/module/rpta/masken/48000_felderinfo.unl
  21. 1
      src-modules/module/rpta/masken/48000_maske_system_bez.unl
  22. 17
      src-modules/module/rpta/masken/48000_masken_felder_bez.unl
  23. 1
      src-modules/module/rpta/masken/48000_sachgeb_maske_bez.unl
  24. 1
      src-modules/module/rpta/masken/48040_maske_system_bez.unl
  25. 8
      src-modules/module/rpta/masken/48040_masken_felder_bez.unl
  26. 1
      src-modules/module/rpta/masken/48040_sachgeb_maske_bez.unl
  27. 35
      src-modules/module/rpta/masken/48080_felderinfo.unl
  28. 1
      src-modules/module/rpta/masken/48080_maske_system_bez.unl
  29. 20
      src-modules/module/rpta/masken/48080_masken_felder_bez.unl
  30. 210
      src-modules/module/rpta/masken/48080_maskeninfo.unl
  31. 1
      src-modules/module/rpta/masken/48080_sachgeb_maske_bez.unl
  32. 28
      src-modules/module/rpta/masken/48110_felderinfo.unl
  33. 1
      src-modules/module/rpta/masken/48110_maske_system_bez.unl
  34. 15
      src-modules/module/rpta/masken/48110_masken_felder_bez.unl
  35. 216
      src-modules/module/rpta/masken/48110_maskeninfo.unl
  36. 1
      src-modules/module/rpta/masken/48110_sachgeb_maske_bez.unl
  37. 30
      src-modules/module/rpta/masken/48140_felderinfo.unl
  38. 1
      src-modules/module/rpta/masken/48140_maske_system_bez.unl
  39. 18
      src-modules/module/rpta/masken/48140_masken_felder_bez.unl
  40. 216
      src-modules/module/rpta/masken/48140_maskeninfo.unl
  41. 1
      src-modules/module/rpta/masken/48140_sachgeb_maske_bez.unl
  42. 65
      src-modules/module/rpta/rpta_update.x
  43. 223
      src-modules/module/rpta/schluesseltabellen/fm_templates.unl
  44. 15
      src-modules/module/rpta/schluesseltabellen/fm_templates_fuellen.sql
  45. 11
      src-modules/module/rpta/schluesseltabellen/fm_templates_unload.x
  46. 17
      src-modules/module/rpta/schluesseltabellen/fm_templates_update.x
  47. 150
      src-modules/module/rpta/schluesseltabellen/macro_masken_bez_fuellen.sql
  48. 430
      src-modules/module/rpta/schluesseltabellen/pruefungen_nach_ppruef_virtuell.sql
  49. 385
      src-modules/module/rpta/schluesseltabellen/rptaColLay_rpta_exam_unit_dim_studiengang_note_fuellen.sql
  50. 79
      src-modules/module/rpta/schluesseltabellen/rpta_column_layout_fuellen.sql
  51. 182
      src-modules/module/rpta/schluesseltabellen/rpta_column_layout_sgd_pbe_pbv_fuellen.sql
  52. 91
      src-modules/module/rpta/schluesseltabellen/rpta_column_layout_sos_stud_astat_fuellen.sql
  53. 206
      src-modules/module/rpta/schluesseltabellen/rpta_column_layout_sos_stud_astat_rsz_fuellen.sql
  54. 1
      src-modules/module/rpta/schluesseltabellen/rpta_column_type.unl
  55. 384
      src-modules/module/rpta/schluesseltabellen/rpta_exam_unit_dim_studiengang_virtuell.sql
  56. 1
      src-modules/module/rpta/schluesseltabellen/rpta_format_code.unl
  57. 395
      src-modules/module/rpta/schluesseltabellen/stellen_besetzung_virtuell.sql
  58. 15
      src-modules/module/rpta/schluesseltabellen/studierende_datenblatt_virtuell.sql
  59. 14
      src-modules/module/rpta/schluesseltabellen/sx_stylesheets_einfuegen.sql
  60. 27
      src-modules/module/rpta/upgrade/rpta_upgrade_man.sql
  61. 839
      superx/xml/rpta_assistent.xsl
  62. 56
      superx/xml/rpta_templates.xsl
  63. 320
      superx/xml/tabelle_xls_48140.xsl

1
src-modules/module/rpta/conf/includes.txt

@ -7,6 +7,5 @@ WEB-INF/lib/superx-rpta.jar @@ -7,6 +7,5 @@ WEB-INF/lib/superx-rpta.jar
WEB-INF/reports/simple_table.jrtx
xml/tabelle_jrxml_a4_quer.xsl
xml/tabelle_jrxml_book_without_cover.xsl
xml/tabelle_xls_48140.xsl
xml/rpta_templates.xsl
xml/rpta_assistent.xsl

204
src-modules/module/rpta/conf/rpta.xml

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--<!DOCTYPE module SYSTEM "../../../conf/superx-module.dtd"> -->
<module name="rpta" version="0.4b" sachgebiet_id="330"
<module name="rpta" version="0.2" sachgebiet_id="330"
sachgebiet="Berichtsassistent" systeminfo_id="330"
system="Berichtsassistent" thema="Berichtsassistent" thema_parent="Abfragen">
<database name="superx" system="superx">
@ -115,9 +115,6 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[RPTA]" /> @@ -115,9 +115,6 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[RPTA]" />
</rs>
</primaryKeys>
<indexes>
<index name="ix_rpta_column_layout" type="unique">
<index-column name="uniquename"/>
</index>
</indexes>
</table>
@ -238,58 +235,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[RPTA]" /> @@ -238,58 +235,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[RPTA]" />
</indexes>
</table>
<table name="rpta_exam_unit" thema="Berichtsassistent" typ="Hilfstabelle" caption="Berichtsassistent">
<columns><column name="matrikel_nr" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="labnr" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="sourcesystem" type ="INTEGER" size ="4" default ="" notnull ="false" description="Quellsystem der Prüfung">
<comment>z.B. 5=sospos,6=HISinOne</comment>
</column>
<column name="tid_stg" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="sem_der_pruefung" type ="SMALLINT" size ="5" default ="" notnull ="false" />
<column name="note" type ="DOUBLE" size ="17" default ="" notnull ="false" />
<column name="fach_sem_zahl" type ="NUMERIC" size ="(10,2)" default ="" notnull ="false" />
<column name="pstatus" type ="CHAR" size ="10" default ="" notnull ="false" />
<column name="prueck" type ="SMALLINT" size ="5" default ="" notnull ="false" />
<column name="pvermerk" type ="CHAR" size ="10" default ="" notnull ="false" />
<column name="bonus" type ="DOUBLE" size ="17" default ="" notnull ="false" />
<column name="pordnr" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="part" type ="CHAR" size ="10" default ="" notnull ="false" />
<column name="ppflicht" type ="CHAR" size ="10" default ="" notnull ="false" />
<column name="modulart" type ="CHAR" size ="10" default ="" notnull ="false" />
<column name="pktxt" type ="CHAR" size ="255" default ="" notnull ="false" />
<column name="pdtxt" type ="CHAR" size ="255" default ="" notnull ="false" />
<column name="pversuch" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="elementnr" type ="VARCHAR" size ="255" default ="" notnull ="false" />
<column name="summe" type ="INTEGER" size ="10" default ="" notnull ="false" />
</columns>
<indexes>
<index name="rpta_exam_unit1" unique="false">
<index-column name="labnr"/>
<index-column name="pordnr"/>
<index-column name="matrikel_nr"/>
</index>
<index name="rpta_exam_unit2" unique="false">
<index-column name="modulart"/>
</index>
<index name="rpta_exam_unit3" unique="false">
<index-column name="sem_der_pruefung"/>
</index>
<index name="rpta_exam_unit4" unique="false">
<index-column name="tid_stg"/>
</index>
<index name="rpta_exam_unit5" unique="false">
<index-column name="part"/>
</index>
</indexes>
<primaryKeys><rs>
</rs></primaryKeys>
<foreignKeys><rs>
</rs></foreignKeys>
<importedKeys><rs>
</rs></importedKeys>
<privileges><rs>
</rs></privileges>
</table>
<views>
@ -304,37 +250,19 @@ parent="Berichtsassistent">Abfragen zur Administration von Berichtsassistent </t @@ -304,37 +250,19 @@ parent="Berichtsassistent">Abfragen zur Administration von Berichtsassistent </t
</themen>
<masken>
<maske tid="48000" name="Tabellenausgabe Studierende (amtlich und intern)" thema="Berichtsassistent">
<maske tid="45000" name="Tabellenausgabe Studierende (amtlich und intern)" thema="Berichtsassistent">
<description>Berichtsassistent verwalten</description>
<src>
<path>$RPTA_PFAD/masken</path>
</src>
</maske>
<maske tid="48040" name="Spaltenlayouts verwalten" thema="Administration Berichtsassistent">
<maske tid="45040" name="Spaltenlayouts verwalten" thema="Administration Berichtsassistent">
<description>Spaltenlayouts verwalten</description>
<src>
<path>$RPTA_PFAD/masken</path>
</src>
</maske>
<maske tid="48080" name="Stellenbesetzung und Beschäftigung (Liste)" thema="Berichtsassistent">
<description>Stellenbesetzung und Beschäftigung (Liste)</description>
<src>
<path>$RPTA_PFAD/masken</path>
</src>
</maske>
<maske tid="48110" name="Leistungen und Studiengänge" thema="Berichtsassistent">
<description>Leistungen und Studiengänge</description>
<src>
<path>$RPTA_PFAD/masken</path>
</src>
</maske>
<maske tid="48140" name="Leistungen und Studiengänge (Makro)" thema="Berichtsassistent">
<description>Leistungen und Studiengänge</description>
<src>
<path>$RPTA_PFAD/masken</path>
</src>
</maske>
</masken>
<data-integrity>
@ -382,116 +310,25 @@ parent="Berichtsassistent">Abfragen zur Administration von Berichtsassistent </t @@ -382,116 +310,25 @@ parent="Berichtsassistent">Abfragen zur Administration von Berichtsassistent </t
<!-- ********************* Liste der RPTA-Prozesse ************************** -->
<etl>
<etl-step name="Upload der RPTA-Modul-Rohdaten" type="load" rohdaten="no">
<!-- hier dürfen keine Actions stehen, damit in HIS1 das Ladedatum aktualisiert wird -->
</etl-step>
<etl-step name="Transformation" type="trans">
<action>
<nativeaction sql="update systeminfo set datum=today() where tid in (280)" scriptfile="" database=""/>
</action>
</etl-step>
<etl-step name="Aggregation" type="aggr">
<action>
<nativeaction sql="" scriptfile="$RPTA_PFAD/hilfstabellen/rpta_exam_unit_fuellen.sql" database=""/>
</action>
<action>
<nativeaction sql="" scriptfile="$RPTA_PFAD/hilfstabellen/vacuum_pg.sql" database="POSTGRES" />
<nativeaction sql="update systeminfo set datum=today() where tid in (280)" scriptfile="" database=""/>
</action>
</etl-step>
</etl>
<!-- Elemente nur für die neue KV von HIS:-->
<install_upgrade_job>
<install-upgrade-step name="pre_upgrade" type="container" id="rpta_preupgrade_containernode">
<action error="stop"/>
</install-upgrade-step>
<install-upgrade-step name="upgrade_tables" type="" id="rpta_upgrade_tables_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/upgrade/rpta_upgrade_tables_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="upgrade_fields" type="" id="rpta_upgrade_fields_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/upgrade/rpta_upgrade_fields_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="upgrade_views" type="" id="rpta_upgrade_views_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/upgrade/rpta_upgrade_views_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="install_functions" type="container" id="rpta_install_functions_containernode">
<action error="stop"/>
</install-upgrade-step>
<install-upgrade-step name="upgrade_indices" type="" id="rpta_upgrade_indices_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/upgrade/rpta_upgrade_indexes_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="fill_tables" type="" id="rpta_fill_tables_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/conf/sx_tables_fuellen.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="fill_fields" type="" id="rpta_fill_fields_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/conf/sx_fields_fuellen.sql" database=""/>
</action>
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/macro_masken_bez_fuellen.sql" database="" />
</action>
</install-upgrade-step>
<install-upgrade-step name="Update Module Metadata" type="container" id="rpta_update_module_metadata_container">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/conf/module_metadata.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="update_topic_tree" type="" id="rpta_update_topictree_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/upgrade/rpta_upgrade_themenbaum.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="install_masks" type="container" id="rpta_install_masks_containernode">
<action error="stop"/>
</install-upgrade-step>
</install_upgrade_job>
<install>
<install-step name="Füllen der Modul-Tabellen">
<action>
<nativeaction sql="create table tmp_templates(tid integer,
id char(200) not null,
content text not null,
description char(200) ,
comment char(200) ,
version integer default 1
) ;"
scriptfile="" database=""/>
</action>
<action>
<loadtable refresh="true" delimiter="^" header="false" tabname="rpta_column_type"><file path="$RPTA_PFAD/schluesseltabellen/rpta_column_type.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="rpta_format_code"><file path="$RPTA_PFAD/schluesseltabellen/rpta_format_code.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="tmp_templates"><file path="$RPTA_PFAD/schluesseltabellen/fm_templates.unl"/></loadtable>
</action>
<action>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/fm_templates_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/sachgebiete_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/sx_stylesheets_einfuegen.sql" database=""/>
<!--nachfolgende Scripte benötigen bereits die Metadaten, daher manuell vorab ausführen:-->
<nativeaction sql="" scriptfile="$RPTA_PFAD/conf/sx_tables_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/conf/sx_fields_fuellen.sql" database=""/>
<!--nun sind die Metadaten vorhanden-->
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/studierende_datenblatt_virtuell.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/stellen_besetzung_virtuell.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/pruefungen_nach_ppruef_virtuell.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/rpta_exam_unit_dim_studiengang_virtuell.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/rpta_column_layout_sos_stud_astat_rsz_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/rpta_column_layout_sgd_pbe_pbv_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/rptaColLay_rpta_exam_unit_dim_studiengang_note_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/macro_masken_bez_fuellen.sql" database=""/>
</action>
</install-step>
</install>
@ -499,41 +336,20 @@ scriptfile="" database=""/> @@ -499,41 +336,20 @@ scriptfile="" database=""/>
<upgrade>
<upgrade-step>
<action>
<nativeaction sql="create table tmp_templates(tid integer,
id char(200) not null,
content text not null,
description char(200) ,
comment char(200) ,
version integer default 1
) ;"
scriptfile="" database=""/>
</action>
<action>
<action error="stop">
<loadtable refresh="true" delimiter="^" header="false" tabname="rpta_column_type"><file path="$RPTA_PFAD/schluesseltabellen/rpta_column_type.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="rpta_format_code"><file path="$RPTA_PFAD/schluesseltabellen/rpta_format_code.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="tmp_templates"><file path="$RPTA_PFAD/schluesseltabellen/fm_templates.unl"/></loadtable>
</action>
<action>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/fm_templates_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/sachgebiete_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/sx_stylesheets_einfuegen.sql" database=""/>
<!--nachfolgende Scripte benötigen bereits die Metadaten, daher manuell vorab ausführen:-->
<nativeaction sql="" scriptfile="$RPTA_PFAD/conf/sx_tables_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/conf/sx_fields_fuellen.sql" database=""/>
<!--nun sind die Metadaten vorhanden-->
<nativeaction sql="" scriptfile="$RPTA_PFAD/upgrade/rpta_upgrade_man.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/studierende_datenblatt_virtuell.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/stellen_besetzung_virtuell.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/pruefungen_nach_ppruef_virtuell.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/rpta_exam_unit_dim_studiengang_virtuell.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/rpta_column_layout_sos_stud_astat_rsz_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/rpta_column_layout_sgd_pbe_pbv_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/rptaColLay_rpta_exam_unit_dim_studiengang_note_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$RPTA_PFAD/schluesseltabellen/macro_masken_bez_fuellen.sql" database=""/>
</action>
<action>
</action>
</upgrade-step>

84
src-modules/module/rpta/hilfstabellen/rpta_exam_unit_fuellen.sql

@ -1,84 +0,0 @@ @@ -1,84 +0,0 @@
--freemarker Template
<sqlvars>
<sqlvar name="lm_exam_unit_exists">
select sp_table_exists('lm_exam_unit') from xdummy;
</sqlvar>
<sqlvar name="sos_lab_pord_exists">
select sp_table_exists('sos_lab_pord') from xdummy;
</sqlvar>
</sqlvars>
<#if lm_exam_unit_exists=1 && sos_lab_pord_exists=1>
truncate table rpta_exam_unit;
insert into rpta_exam_unit (matrikel_nr,
labnr,
sourcesystem,
tid_stg,
sem_der_pruefung,
note,
fach_sem_zahl,
pstatus,
prueck,
pvermerk,
bonus,
pordnr,
part,
ppflicht,
modulart,
pktxt,
pdtxt,
pversuch,
elementnr,
summe)
SELECT
matrikel_nr,
labnr,
sourcesystem,
tid_stg,
sem_der_pruefung,
note,
fach_sem_zahl,
pstatus,
prueck,
pvermerk,
bonus,
pordnr,
part,
ppflicht,
modulart,
pktxt,
pdtxt,
pversuch,
elementnr,
summe
FROM lm_exam_unit
UNION SELECT
matrikel_nr,
labnr,
sourcesystem,
tid_stg,
sem_der_pruefung,
note,
fach_sem_zahl,
pstatus,
prueck,
pvermerk,
bonus,
pordnr,
part,
ppflicht,
modulart,
pktxt,
pdtxt,
pversuch,
pnr::varchar(255) as elementnr,
summe
FROM sos_lab_pord
WHERE sourcesystem = 5
;
</#if>

7
src-modules/module/rpta/hilfstabellen/vacuum_pg.sql

@ -1,7 +0,0 @@ @@ -1,7 +0,0 @@
select * from xdummy;
--bei Postgres in HIS1 laufen alle Scripte in Transaktionen, daher muss man
--für vacuum erst committen
commit;
vacuum rpta_exam_unit;

13
src-modules/module/rpta/masken/44630_felderinfo.unl

@ -1,13 +0,0 @@ @@ -1,13 +0,0 @@
44630^Bis Semester^4^350^-1^140^80^1^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;^
44631^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;^^^
44632^Jahr^110^0^0^140^80^1^integer^30^0^13^ ^ ^ ^
44645^tablestylesheet^150^0^0^100^100^1^char^255^1^1^<<SQL>> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=44190 order by ord^ ^<<SQL>> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=44190 order by ord limit 1^
44647^Grafik^1000^300^-1^170^150^1^integer^30^0^1^<<SQL>> select tid, caption from viz_chart order by 2;^hidden^ ^
44649^Spaltenanzahl^5^350^-1^140^80^1^integer^255^0^1^<<SQL>> SELECT 0,'Dynamisch' from xdummy \
union SELECT 1,'1-spaltig' from xdummy \
union SELECT 2,'2-spaltig' from xdummy \
union SELECT 3,'3-spaltig' from xdummy \
union SELECT 4,'4-spaltig' from xdummy \
order by 1;^ ^<<SQL>> SELECT 2,'2-spaltig' from xdummy;^
44650^Kachelbreite^30^0^0^100^100^1^integer^5000^0^0^^^800^
44653^Kachelhöhe^40^0^0^100^100^1^integer^5000^0^0^^^600^

1
src-modules/module/rpta/masken/44630_maske_system_bez.unl

@ -1 +0,0 @@ @@ -1 +0,0 @@
44630^320^

8
src-modules/module/rpta/masken/44630_masken_felder_bez.unl

@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
44630^44630^
44630^44631^
44630^44632^
44630^44645^
44630^44647^
44630^44649^
44630^44650^
44630^44653^

106
src-modules/module/rpta/masken/44630_maskeninfo.unl

@ -1,106 +0,0 @@ @@ -1,106 +0,0 @@
44630^Dashboard Kopfzeile^--Freemarker Template\
<#include "SQL_lingua_franca"/>\
<#include "SuperX_general"/>\
--\
--Autor D. Quathamer 2024\
<#assign jahr_filter="1=1" />\
--Akad. Jahr 2022: WS + SS - Beispiel: WS 22/23 + SS 2023\
<#if "<<Jahr>>" !="">\
<#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>>)" />\
<#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>>)" />\
<#assign jahr_filter=jahr_filter + ")" />\
</#if>\
\
<#assign filter="1=1\
/* and sem_rueck_beur_ein = <<Bis Semester>> */\
" />\
\
<#assign filter= filter + " and " + jahr_filter />\
\
<#assign stg_filter = " and 's_' || tid_stg in "+Studiengang.allNeededKeysList /> \
\
create temp table tmp_erg(\
ord integer,\
kennz varchar(255),\
wert integer,\
link_maskeninfo_id integer\
);\
\
insert into tmp_erg(ord,kennz,wert)\
select 1,'Bewerbungen',sum(summe)\
from zul_antr_aggr A\
where A.bewsem=<<Bis Semester>>\
and A.stg in (select L.stg from lehr_stg_ab L where 's_' || L.tid in <@printkeys Studiengang.allNeededKeysList/>)\
and A.abschl in (select L.abschluss from lehr_stg_ab L where 's_' || L.tid in <@printkeys Studiengang.allNeededKeysList/>)\
group by 1,2;\
\
\
insert into tmp_erg(ord,kennz,wert)\
select 10,'Studienanfänger*innen im 1. HS',sum(summe)\
from sos_stg_aggr S, sos_stichtag I\
where ${filter}\
and S.studiengang_nr=1\
and S.fach_nr=1\
and S.stichtag=I.tid\
and I.appl_key='0'\
and 's_' || S.tid_stg in <@printkeys Studiengang.allNeededKeysList/>\
and S.hssem=1\
group by 1,2;\
\
\
insert into tmp_erg(ord,kennz,wert)\
select 20,'Studierende gesamt',sum(summe)\
from sos_stg_aggr S, sos_stichtag I\
where ${filter}\
and S.studiengang_nr=1\
and S.fach_nr=1\
and S.stichtag=I.tid\
and I.appl_key='0'\
and 's_' || S.tid_stg in <@printkeys Studiengang.allNeededKeysList/>\
group by 1,2;\
\
\
insert into tmp_erg(ord,kennz,wert)\
select 30,'Studierende im Lehramt',sum(summe)\
from sos_stg_aggr S, sos_stichtag I, dim_studiengang D\
where ${filter}\
and S.studiengang_nr=1\
and S.fach_nr=1\
and S.stichtag=I.tid\
and D.tid=S.tid_stg\
and D.ist_lehramt=1\
and I.appl_key='0'\
and 's_' || S.tid_stg in <@printkeys Studiengang.allNeededKeysList/>\
group by 1,2;\
\
insert into tmp_erg(ord,kennz,wert)\
select 30,'Absolvent*innen',sum(summe)\
from sos_lab_aggr S, sos_stichtag I, dim_studiengang D\
where S.sem_der_pruefung=<<Bis Semester>>\
and S.studiengang_nr=1\
and S.fach_nr=1\
and S.stichtag=I.tid\
and D.tid=S.tid_stg\
and I.appl_key='2'\
and 's_' || S.tid_stg in <@printkeys Studiengang.allNeededKeysList/>\
group by 1,2;\
\
select kennz,wert,link_maskeninfo_id\
from tmp_erg\
order by ord;^XIL List\
sizable_columns horizontal_scrolling\
white_space_color=COLOR_WHITE fixed_columns=1\
drop_and_delete movable_columns\
min_heading_height=55\
Column CID=0 heading_text="Kennzahl" explanation="" center_heading\
row_selectable heading_platform readonly\
width=10\
Column CID=0 heading_text="Wert" explanation="" center_heading\
row_selectable heading_platform readonly\
width=30\
Column CID=0 heading_text="Maske" explanation="" center_heading\
row_selectable heading_platform readonly\
width=30\
@@@^ ^ ^Dashboard Inistialisierung^drop table tmp_erg;^^3^700^360^0^1^^

1
src-modules/module/rpta/masken/44630_sachgeb_maske_bez.unl

@ -1 +0,0 @@ @@ -1 +0,0 @@
320^44630^

25
src-modules/module/rpta/masken/45000_felderinfo.unl

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
45000^Spaltenlayout^3000^350^-1^140^180^1^integer^30^1^1^<<SQL>>SELECT tid,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='sos_stud_astat'\
and R.systeminfo_id=7)\
order by sortnr, caption\
;^^<<SQL>>SELECT tid,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='sos_stud_astat'\
and R.systeminfo_id=7)\
order by sortnr, caption\
;^
45001^Seit Semester^10^0^0^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^ ^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
45002^Fächer^30^0^0^130^200^6^char^1000^0^12^<<SQL>> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^
45003^Abschluss^40^0^0^100^200^3^char^1500^0^1^<<SQL>> select apnr, druck from cifx where key=35 order by 2;^ ^ ^
45004^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^0^^ ^ ^
45006^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^apnr, eintrag^ ^
45007^Bis Semester^20^350^-1^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^ ^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
45008^Staatsangehörigkeit^150^0^0^140^150^10^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art='SOS-Staaten-Sicht' order by 3,2;^ ^ ^
45009^Studiengang^25^0^0^140^150^50^char^1000^0^12^<<SQL>> select tid,name,sortnr from sichten where art in ('SOS-Kostenstellen-Sicht', 'SOS-Studiengang-Sicht') order by 3,2;^ ^ ^
45011^Stichtag^23^330^-1^130^100^1^sql^30^1^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';^
45012^Hörerstatus^200^330^-1^140^150^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';^
45018^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 = 'Fälle';^
45022^Geschlecht^110^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;^ ^ ^

1
src-modules/module/rpta/masken/45000_maske_system_bez.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
45000^7^

13
src-modules/module/rpta/masken/45000_masken_felder_bez.unl

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
45000^45000^
45000^45001^
45000^45002^
45000^45003^
45000^45004^
45000^45006^
45000^45007^
45000^45008^
45000^45009^
45000^45011^
45000^45012^
45000^45018^
45000^45022^

66
src-modules/module/rpta/masken/48000_maskeninfo.unl → src-modules/module/rpta/masken/45000_maskeninfo.unl

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
48000^Tabellenausgabe Studierende (amtlich und intern)^--Freemarker Template\
45000^Tabellenausgabe Studierende (amtlich und intern)^--Freemarker Template\
<#include "SQL_lingua_franca"/>\
<#include "SuperX_general"/>\
--\
@ -38,7 +38,7 @@ select L.uniquename,\ @@ -38,7 +38,7 @@ select L.uniquename,\
from rpta_resultset R, rpta_column_layout L\
where L.resultset_id=R.tid\
and R.uniquename='${basetable.name}'\
and L.uniquename=<<Spaltenlayout>>;\
and L.tid=<<Spaltenlayout>>;\
\
]]></sqlvar>\
<sqlvar name="columns" type="hashsequence"><![CDATA[\
@ -56,40 +56,23 @@ FROM rpta_column_layout L, rpta_column2layout CL, rpta_column C, rpta_column_typ @@ -56,40 +56,23 @@ FROM rpta_column_layout L, rpta_column2layout CL, rpta_column C, rpta_column_typ
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>>) */\
and L.tid=<<Spaltenlayout>>\
order by CL.sortnr\
;\
]]></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 filter="<<Köpfe oder Fälle ?>>\
/* and sem_rueck_beur_ein >= <<Seit Semester>> */\
/* and sem_rueck_beur_ein <= <<Bis Semester>> */\
/* and sem_rueck_beur_ein = <<Semester>> */\
/* and stichtag = <<Stichtag>> */\
/* and <<Hochschulzugangsberechtigung>> */\
/* and <<Hörerstatus>>*/\
/* and abschluss in (<<Abschluss>>) */\
/* and geschlecht = <<Geschlecht>> */\
/* and fach_sem_zahl <= <<bis Fachsemester>> */\
/* and substring('' || sem_rueck_beur_ein from 5 for 1)='<<Semestertyp>>' */\
" />\
\
<#assign filter= filter + " and " + jahr_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>> */\
@ -151,8 +134,6 @@ sum(${column.targetfieldname}) as ${column.targetfieldname},\ @@ -151,8 +134,6 @@ sum(${column.targetfieldname}) as ${column.targetfieldname},\
null::char(1) as dummycol\
into temp tmp_stud2\
from tmp_stud\
where 1=1\
/* ${<<Zusatzfilter>>} */\
group by\
<#list 1..groupby as i>${i}\
<#if i != groupby>\
@ -160,29 +141,13 @@ group by\ @@ -160,29 +141,13 @@ group by\
</#if>\
</#list>\
;\
--für Prozentwerte alle Aggregate summieren:\
select <#foreach column in columns>\
<#if column.is_aggregate==1 && column.coltype!="computedColumn">\
sum(${column.targetfieldname})::float as ${column.targetfieldname},\
</#if>\
</#foreach>\
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 />\
</#if>\
</#foreach>\
<#assign colnr=0 />\
<#assign orderby=0 />\
\
select \
<#foreach column in columns>\
<#if column.is_visible!=0>\
<#assign colnr=colnr+1 />\
<#if column.is_visible==1>\
<#assign orderby=orderby +1 />\
<#assign format_sql="" />\
<#if column.format_sql?string != "">\
<#assign format_sql=column.format_sql />\
@ -191,15 +156,14 @@ select \ @@ -191,15 +156,14 @@ select \
<#if column.coltype=="computedColumn">\
(${column.colfunction})${format_sql} as ${column.targetfieldname}\
<#else>\
${column.targetfieldname}${format_sql} as ${column.targetfieldname}\
${column.targetfieldname}${format_sql}\
</#if>\
\
<#if colnr &lt; number_of_visible_colums>,</#if>\
<#if column_has_next>,</#if>\
</#if> --wenn sichtbar\
</#foreach>\
from tmp_stud2\
order by <#list 1..number_of_visible_colums as i>${i}\
<#if i != number_of_visible_colums>\
order by <#list 1..orderby as i>${i}\
<#if i != orderby>\
,\
</#if>\
</#list>\
@ -210,8 +174,6 @@ drop table if exists ${basetable.runtime_tablename};\ @@ -210,8 +174,6 @@ drop table if exists ${basetable.runtime_tablename};\
\
\
drop table if exists tmp_stud;\
drop table if exists tmp_gesamt;\
\
\
</#if> --wenn columns?has_content^--Freemarker Template\
XIL List\
@ -219,11 +181,9 @@ drop table if exists tmp_gesamt;\ @@ -219,11 +181,9 @@ drop table if exists tmp_gesamt;\
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>\
<#foreach column in columns><#if column.is_visible==1>\
Column CID=0 heading_text="${column.caption}" center_heading explanation="${column.description}"\
row_selectable heading_platform readonly\
width=${column.visible_width} text_size=60\
</#if>\
</#foreach>\
</#if></#foreach>\
@@@^Studienfach^Anzahl bzw. Anteil^Datenblatt Studierendenstatistik^drop table if exists tmp_stud2; drop table if exists tmp_stud3;^^2^850^540^^1^<<SQL>>SELECT description FROM rpta_column_layout where tid=<<Spaltenlayout>>;^

1
src-modules/module/rpta/masken/45000_sachgeb_maske_bez.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
16^45000^

16
src-modules/module/rpta/masken/48040_felderinfo.unl → src-modules/module/rpta/masken/45040_felderinfo.unl

@ -1,8 +1,8 @@ @@ -1,8 +1,8 @@
48040^Benutzer/in^50^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,nvl(name,benutzer) from userinfo order by 2;^hidden^^
48041^Spaltenlayout^10^0^0^150^80^1^integer^200^0^1^<<SQL>> select tid,caption from rpta_column_layout where 1=1 /* and resultset_id=<<Virtuelle Tabelle>> */ order by 2;^^^
48042^Spaltenlayouts verwalten^110^0^0^140^80^1^char^255^0^18^ ^ ^<<SQL>> select '../edit/rpta/rpta_column_layout_list.jsp' from xdummy;^
48043^Stichwort^20^0^0^150^150^1^sql^50^0^0^^^^
48044^Komponente^1^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,name from systeminfo order by 2;^ ^^
48045^Virtuelle Tabellen bearbeiten^100^0^0^140^80^1^char^255^0^18^ ^ ^<<SQL>> select '../edit/rpta/rpta_resultset_list.jsp' from xdummy;^
48046^Virtuelle Tabelle^5^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,caption from rpta_resultset where 1=1 /* and systeminfo_id=<<Komponente>> */ order by 2;^^^
48047^Spaltentyp^200^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,caption from rpta_column_type order by 2;^^ ^
45040^Benutzer/in^50^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,nvl(name,benutzer) from userinfo order by 2;^hidden^^
45041^Spaltenlayout^10^0^0^150^80^1^integer^200^0^1^<<SQL>> select tid,caption from rpta_column_layout where 1=1 /* and resultset_id=<<Virtuelle Tabelle>> */ order by 2;^^^
45042^Spaltenlayouts verwalten^110^0^0^140^80^1^char^255^0^18^ ^ ^<<SQL>> select '../edit/rpta/rpta_column_layout_list.jsp' from xdummy;^
45043^Stichwort^20^0^0^150^150^1^sql^50^0^0^^^^
45044^Komponente^1^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,name from systeminfo order by 2;^ ^^
45045^Virtuelle Tabellen bearbeiten^100^0^0^140^80^1^char^255^0^18^ ^ ^<<SQL>> select '../edit/rpta/rpta_resultset_list.jsp' from xdummy;^
45046^Virtuelle Tabelle^5^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,caption from rpta_resultset where 1=1 /* and systeminfo_id=<<Komponente>> */ order by 2;^^^
45047^Spaltentyp^200^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,caption from rpta_column_type order by 2;^^ ^

1
src-modules/module/rpta/masken/45040_maske_system_bez.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
45040^330^

8
src-modules/module/rpta/masken/45040_masken_felder_bez.unl

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
45040^45040^
45040^45041^
45040^45042^
45040^45043^
45040^45044^
45040^45045^
45040^45046^
45040^45047^

2
src-modules/module/rpta/masken/48040_maskeninfo.unl → src-modules/module/rpta/masken/45040_maskeninfo.unl

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
48040^Spalten und Spaltenlayouts verwalten^--Autor: D. Quathamer\
45040^Spalten und Spaltenlayouts verwalten^--Autor: D. Quathamer\
--Datum: 15.3.2024\
--freemarker template\
create temp table tmp_rpta_column (\

1
src-modules/module/rpta/masken/45040_sachgeb_maske_bez.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
331^45040^

29
src-modules/module/rpta/masken/48000_felderinfo.unl

@ -1,29 +0,0 @@ @@ -1,29 +0,0 @@
48000^Spaltenlayout^3000^350^-1^140^180^1^char^30^1^1^<<SQL>>SELECT uniquename,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='sos_stud_astat'\
and R.systeminfo_id=7)\
order by sortnr, caption\
;^^<<SQL>>SELECT uniquename,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='sos_stud_astat'\
and R.systeminfo_id=7) and uniquename='sos_stud_astat_rsz';^
48001^Seit Semester^10^0^0^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^ ^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
48002^Fächer^30^0^0^130^200^6^integer^1000^0^12^<<SQL>> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^
48003^Abschluss^40^0^0^100^200^3^char^1500^0^1^<<SQL>> select apnr, druck from cifx where key=35 order by 2;^ ^ ^
48004^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^0^^ ^ ^
48005^Semestertyp^22^350^-1^140^80^1^integer^255^0^1^<<SQL>> select 1,'nur Sommersemester' from xdummy union select 2,'nur Wintersemester' from xdummy^ ^<<SQL>> select 2,'nur Wintersemester' from xdummy^
48006^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^ ^ ^
48007^Bis Semester^20^350^-1^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^ ^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
48008^Staatsangehörigkeit^150^0^0^140^150^10^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art='SOS-Staaten-Sicht' order by 3,2;^ ^ ^
48009^Studiengang^25^0^0^140^150^50^char^1000^0^12^<<SQL>> select tid,name,sortnr from sichten where art in ('SOS-Kostenstellen-Sicht', 'SOS-Studiengang-Sicht') order by 3,2;^ ^ ^
48010^Semester^100^0^0^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^hidden^ ^
48011^Stichtag^23^330^-1^130^100^1^sql^30^1^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';^
48012^Hörerstatus^200^330^-1^140^150^1^sql^30^0^1^<<SQL>> select apnr, eintrag from hoererstatus order by 2^ ^<<SQL>> select apnr, eintrag from hoererstatus where eintrag='alle';^
48013^Jahr^110^0^0^140^80^1^integer^30^0^13^ ^ ^ ^
48018^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^ ^<<SQL>> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Fälle';^
48022^Geschlecht^110^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;^ ^ ^
48023^Spalten^3001^0^0^150^190^10^char^30^0^1^<<SQL>>\
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=<<Spaltenlayout>>) order by 2;^^^

1
src-modules/module/rpta/masken/48000_maske_system_bez.unl

@ -1 +0,0 @@ @@ -1 +0,0 @@
48000^7^

17
src-modules/module/rpta/masken/48000_masken_felder_bez.unl

@ -1,17 +0,0 @@ @@ -1,17 +0,0 @@
48000^48000^
48000^48001^
48000^48002^
48000^48003^
48000^48004^
48000^48005^
48000^48006^
48000^48007^
48000^48008^
48000^48009^
48000^48010^
48000^48011^
48000^48012^
48000^48013^
48000^48018^
48000^48022^
48000^48023^

1
src-modules/module/rpta/masken/48000_sachgeb_maske_bez.unl

@ -1 +0,0 @@ @@ -1 +0,0 @@
16^48000^

1
src-modules/module/rpta/masken/48040_maske_system_bez.unl

@ -1 +0,0 @@ @@ -1 +0,0 @@
48040^330^

8
src-modules/module/rpta/masken/48040_masken_felder_bez.unl

@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
48040^48040^
48040^48041^
48040^48042^
48040^48043^
48040^48044^
48040^48045^
48040^48046^
48040^48047^

1
src-modules/module/rpta/masken/48040_sachgeb_maske_bez.unl

@ -1 +0,0 @@ @@ -1 +0,0 @@
331^48040^

35
src-modules/module/rpta/masken/48080_felderinfo.unl

@ -1,35 +0,0 @@ @@ -1,35 +0,0 @@
48080^Institution (Stelle)^1^0^0^150^150^0^char^30^0^12^<<SQL>>select tid,type,name,sortnr from sichten where art in ('SVA-Kostenstellen-Sicht','SVA-spez-Besch./Kostenstellen-Sicht','SVA-spez-Kostenstellen-Sicht') and aktiv=1 order by sortnr,type,name;^^^
48081^Datum^0^350^-1^150^80^1^date^10^1^0^^^<<SQL>> select today() from xdummy^
48082^Stellenkategorie^2^0^0^150^150^3^char^30^0^12^<<SQL>>select tid,type,name from sichten where art ='SVA Kategorie' and aktiv=1 order by type,name;^hidden^^
48083^Spalten^3001^0^0^150^190^10^char^30^0^1^<<SQL>>\
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 tid=<<Spaltenlayout>>) order by 2;^^^
48084^Lehreinheit (Stelle)^4^0^0^150^150^1^char^4^0^12^<<SQL>> select tid,type,name from sichten where art ='SVA-Lehreinheiten-Sicht' and aktiv=1 order by type,name;^hidden^^
48085^Stellen-Nr.^50^350^-1^150^80^1^integer^10^0^0^^^^
48086^Amtsbezeichnung^55^0^0^150^160^3^char^30^0^12^<<SQL>>select tid,type,name from sichten where art ='SVA Amtsdienstbez.' and aktiv=1 order by type,name;^hidden^^
48087^Beschäftigungsstelle (Person)^65^0^0^150^150^1^char^30^0^12^<<SQL>>select tid,type,name,sortnr from sichten where art in ('SVA-Kostenstellen-Sicht','SVA-spez-Besch./Kostenstellen-Sicht') and aktiv=1 order by sortnr,type,name;^hidden^^
48088^Kostenstelle (Person)^70^350^-1^150^150^1^char^30^0^12^<<SQL>> select tid,type,name,sortnr from sichten where art in ('SVA-Kostenstellen-Sicht','SVA-spez-Kostenstellen-Sicht','SVA-Kst-spezial') and aktiv=1 order by sortnr,type,name;^hidden^^
48089^Haushaltsvermerk^60^350^-1^150^200^3^char^4^0^12^<<SQL>>select tid,type,name from sichten where art ='SVA HHV' and aktiv=1 order by type,name;^hidden^^
48090^Spaltenlayout^3000^350^-1^140^180^1^integer^50^1^1^<<SQL>>SELECT tid,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='sva_pbe_aggr_sgd'\
and R.systeminfo_id=6)\
order by sortnr, caption\
;^^<<SQL>>SELECT tid,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='sva_pbe_aggr_sgd'\
and R.systeminfo_id=6)\
order by sortnr, caption\
limit 1 \
;^
48091^Filter Stellen^120^350^-1^150^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='SVA_STELL_FILTER' order by 2;^hidden^^
48092^Dienstart^3^350^-1^150^150^3^char^30^0^12^<<SQL>>select tid,type,name from sichten where art ='SVA Dienstart' and aktiv=1 order by type,name;^hidden^^
48093^BVL-Gruppe (Stelle)^74^0^0^150^120^10^char^30^0^12^<<SQL>>select tid,type,name from sichten where art ='SVA BVL-Gruppen' and aktiv=1 order by type,name;^hidden^^
48094^BVL-Gruppe (Person)^80^350^-1^150^120^10^char^30^0^12^<<SQL>>select tid,type,name from sichten where art ='SVA BVL-Gruppen' and aktiv=1 order by type,name;^hidden^^
48095^Filter Besetzung^130^0^0^150^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='SVA_BESETZ_FILTER' order by 2;^hidden^^
48096^Finanzierungsquelle^302^0^0^100^200^3^char^30^0^1^<<SQL>> select id,caption from sx_repository where art='SVA_FINANZIERUNGSQUELLE' and aktiv=1 and gueltig_seit<=date_val(<<Datum>>) and gueltig_bis>=date_val(<<Datum>>) order by sort1^hidden^^
48097^Personalkategorie^310^0^0^100^200^3^char^30^0^1^<<SQL>> select id,caption from sx_repository where art='SVA_PERSONALKATEGORIE' and aktiv=1 and gueltig_seit<=date_val(<<Datum>>) and gueltig_bis>=date_val(<<Datum>>) order by sort1^hidden^^
48098^Stellenanzeige^1000^0^0^100^200^1^char^20^0^1^<<SQL>> select 'besetzt','nur besetzte' from xdummy union select 'frei','nur freie' from xdummy^hidden^^
48099^Stellen-Nr. im HHPlan^52^350^-1^150^80^1^char^25^0^0^^^^

1
src-modules/module/rpta/masken/48080_maske_system_bez.unl

@ -1 +0,0 @@ @@ -1 +0,0 @@
48080^6^

20
src-modules/module/rpta/masken/48080_masken_felder_bez.unl

@ -1,20 +0,0 @@ @@ -1,20 +0,0 @@
48080^48080^
48080^48081^
48080^48082^
48080^48083^
48080^48084^
48080^48085^
48080^48086^
48080^48087^
48080^48088^
48080^48089^
48080^48090^
48080^48091^
48080^48092^
48080^48093^
48080^48094^
48080^48095^
48080^48096^
48080^48097^
48080^48098^
48080^48099^

210
src-modules/module/rpta/masken/48080_maskeninfo.unl

@ -1,210 +0,0 @@ @@ -1,210 +0,0 @@
48080^Stellenbesetzung und Beschäftigung (Liste)^--Freemarker Template\
<#include "SQL_lingua_franca"/>\
<#include "SuperX_general"/>\
--\
--Autor D. Quathamer 2024\
<sqlvars>\
<sqlvar name="basetable" type="hash"><![CDATA[\
<#assign my_base_rs='sva_pbe_aggr_sgd' />\
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}'\
;\
]]>\
</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\
from rpta_resultset R, rpta_column_layout L\
where L.resultset_id=R.tid\
and R.uniquename='${basetable.name}'\
and L.tid=<<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.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,\
(select F.sql_code from rpta_format_code F where F.tid=CL.format_code_id) as format_sql,\
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_column2layout CL, rpta_column C, rpta_column_type T\
where L.tid=CL.layout_id\
and C.tid=CL.column_id\
and T.tid=C.column_type\
and L.tid=<<Spaltenlayout>>\
/* and C.uniquename in (<<Spalten>>) */\
order by CL.sortnr\
;\
]]></sqlvar>\
</sqlvars>\
\
<#assign filter="sva_sgd_aggr.d_gueltig_anfang <= date_val(<<Datum>>) \
and sva_sgd_aggr.d_gueltig_ende >= date_val(<<Datum>>)\
\
/* and sva_sgd_aggr.ca115_haushverm in <@printkeys .vars["Haushaltsvermerk"].allNeededKeys /> -- <<Haushaltsvermerk>> */\
/* and sva_sgd_aggr.ca107_dienstart in <@printkeys .vars["Dienstart"].allNeededKeys /> --<<Dienstart>>= */\
/* and sva_sgd_aggr.ca259_kategorie in <@printkeys .vars["Stellenkategorie"].allNeededKeys /> -- <<Stellenkategorie>> */\
/* and sva_sgd_aggr.ca108_amtsbez in <@printkeys .vars["Amtsbezeichnung"].allNeededKeys /> -- <<Amtsbezeichnung>> */\
/* and sva_sgd_aggr.lehreinheit in <@printkeys .vars["Lehreinheit (Stelle)"].allNeededKeys /> -- <<Lehreinheit (Stelle)>> */\
/* and sva_sgd_aggr.ca109_key_bvl in <@printkeys .vars["BVL-Gruppe (Stelle)"].allNeededKeys /> --<<BVL-Gruppe (Stelle)>>*/\
/* and sva_sgd_aggr.stellen_nr=<<Stellen-Nr.>> */\
/* and ${<<Filter Stellen>>} */\
" />\
\
<#if "<<Stellen-Nr. im HHPlan>>"!="">\
<#assign hn="<<Stellen-Nr. im HHPlan>>"?replace("'","")/>\
<#assign filter = filter + "and sva_sgd_aggr.haushalt_nr like '"+hn+"%'" />\
</#if>\
\
\
\
<#assign filter = filter + " and sva_sgd_aggr.ch110_besch_st in "+.vars["Institution (Stelle)"].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} </#if>\
and ${filter}\
;\
</#if>\
\
--Daten außerhalb des Berichtszeitraums entfernen:\
delete from ${basetable.runtime_tablename}\
where sva_pbe_aggr_d_besetz_anfang > date_val(<<Datum>>)\
or sva_pbe_aggr_d_besetz_ende < date_val(<<Datum>>);\
\
select \
--zuerst die Basisdaten:\
<#foreach column in columns>\
<#if column.coltype="physicalColumn">\
${column.srcfieldname},\
<#elseif column.coltype="logicalColumn">\
${column.colfunction} as ${column.targetfieldname},\
<#elseif column.coltype="lookupColumn">\
(${column.colfunction}) as ${column.targetfieldname},\
<#elseif column.coltype="computedColumn">\
null::decimal(19,6) as ${column.targetfieldname},\
</#if>\
</#foreach>\
null::char(1) as dummycol\
into temp tmp_stud\
from ${basetable.runtime_tablename}\
<#if rpta_column_layout.whereclause !="">\
where ${rpta_column_layout.whereclause}\
</#if>\
;\
\
\
--ergebnistabelle:\
select \
--zuerst die nicht-Aggregate:\
<#assign groupby=0 />\
<#foreach column in columns>\
<#if column.is_aggregate==0>\
<#assign groupby=groupby+1 />\
${column.targetfieldname},\
</#if>\
</#foreach>\
--dann die Aggregate:\
<#foreach column in columns>\
<#if column.is_aggregate==1 && column.coltype!="computedColumn">\
sum(${column.targetfieldname}) as ${column.targetfieldname},\
</#if>\
</#foreach>\
null::char(1) as dummycol\
into temp tmp_stud2\
from tmp_stud\
where 1=1\
/* ${<<Zusatzfilter>>} */\
group by\
<#list 1..groupby as i>${i}\
<#if i != groupby>\
,\
</#if>\
</#list>\
;\
\
<#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 format_sql="" />\
<#if column.format_sql?string != "">\
<#assign format_sql=column.format_sql />\
</#if>\
\
<#if column.coltype=="computedColumn">\
(${column.colfunction})${format_sql} as ${column.targetfieldname}\
<#else>\
${column.targetfieldname}${format_sql} as ${column.targetfieldname}\
</#if>\
\
<#if colnr &lt; number_of_visible_colums>,</#if>\
</#if> --wenn sichtbar\
</#foreach>\
from tmp_stud2\
order by <#list 1..number_of_visible_colums as i>${i}\
<#if i != number_of_visible_colums>\
,\
</#if>\
</#list>\
;\
<#if basetable.is_virtual==1>\
drop table if exists ${basetable.runtime_tablename};\
</#if>\
\
\
drop table if exists tmp_stud;\
\
</#if> --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\
</#if>\
</#foreach>\
@@@^^^Informationen über Stellen und deren Besetzung zu einem bel. Zeitpunkt^drop table tmp_stud2;^^2^700^500^^1^<<SQL>> select 'Achtung: Das Datum des Buttons Institution bzw OrgEinheit (Stelle) unterscheidet sich vom ausgewählten Datum im Maskenfeld.' from xdummy where <<Institution (Stelle)-Stand>> != date_val(<<Datum>>)^

1
src-modules/module/rpta/masken/48080_sachgeb_maske_bez.unl

@ -1 +0,0 @@ @@ -1 +0,0 @@
100^48080^

28
src-modules/module/rpta/masken/48110_felderinfo.unl

@ -1,28 +0,0 @@ @@ -1,28 +0,0 @@
48110^Spaltenlayout^3000^350^-1^140^180^1^char^30^1^1^<<SQL>>SELECT uniquename,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='rpta_exam_unit_dim_studiengang'\
)\
order by sortnr, caption\
;^ ^<<SQL>>SELECT uniquename,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='rpta_exam_unit_dim_studiengang'\
) and uniquename='rpta_exam_unit_dim_studiengang_note';^
48111^Seit Semester^10^0^0^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^ ^<<SQL>> 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^<<SQL>> 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^<<SQL>> 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^<<SQL>> select 1,'nur Sommersemester' from xdummy union select 2,'nur Wintersemester' from xdummy^Eintrag^<<SQL>> select 2,'nur Wintersemester' from xdummy^
48116^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^999^hs_zugangsber^apnr, eintrag^ ^
48117^Bis Semester^20^350^-1^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^ ^<<SQL>> 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^999^<<SQL>> 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^<<SQL>> select tid,name,-1000 from sichten where name_intern ='sos_kst_fb_stgabint'\
union 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^999^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende';^ ^<<SQL>> 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^999^<<SQL>> select apnr, eintrag from hoererstatus order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from hoererstatus where eintrag='alle';^
48128^Köpfe oder Fälle ?^0^0^0^140^150^1^sql^70^0^999^<<SQL>> select apnr, eintrag from koepfe_oder_faelle order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Fälle';^
48132^Geschlecht^110^0^0^140^80^1^integer^30^0^999^<<SQL>> 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^<<SQL>>\
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=<<Spaltenlayout>>) order by 2;^ ^ ^

1
src-modules/module/rpta/masken/48110_maske_system_bez.unl

@ -1 +0,0 @@ @@ -1 +0,0 @@
48110^7^

15
src-modules/module/rpta/masken/48110_masken_felder_bez.unl

@ -1,15 +0,0 @@ @@ -1,15 +0,0 @@
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^

216
src-modules/module/rpta/masken/48110_maskeninfo.unl

@ -1,216 +0,0 @@ @@ -1,216 +0,0 @@
48110^Leistungen und Studiengänge^--Freemarker Template\
<#include "SQL_lingua_franca"/>\
<#include "SuperX_general"/>\
--\
--Autor D. Quathamer 2024\
<sqlvars>\
<sqlvar name="basetable" type="hash"><![CDATA[\
<#assign my_base_rs='rpta_exam_unit_dim_studiengang' />\
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}'\
;\
]]>\
</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\
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.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,\
(select F.sql_code from rpta_format_code F where F.tid=CL.format_code_id) as format_sql,\
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_column2layout CL, rpta_column C, rpta_column_type T\
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>\
</sqlvars>\
\
<#assign filter="1=1\
/* and sem_der_pruefung >= <<Seit Semester>> */\
/* and sem_der_pruefung <= <<Bis Semester>> */\
/* and sem_der_pruefung = <<Semester>> */\
/* and substring('' || sem_der_pruefung from 5 for 1)='<<Semestertyp>>' */\
/* and fach_sem_zahl <= <<bis Fachsemester>> */\
" />\
\
<#assign filter = filter + " and 's_' || tid_stg in "+Studiengang.allNeededKeysList /> \
<#assign filter = filter + " and tid_stg in (select tid from lehr_stg_ab where stg in "+Fächer.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} </#if>\
and ${filter}\
;\
</#if>\
\
\
\
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},\
</#if>\
</#foreach>\
null::char(1) as dummycol\
into temp tmp_stud\
from ${basetable.runtime_tablename}\
<#if rpta_column_layout.whereclause !="">\
where ${rpta_column_layout.whereclause}\
</#if>\
;\
\
--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},\
</#if>\
</#foreach>\
--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},\
</#if>\
</#foreach>\
null::char(1) as dummycol\
into temp tmp_stud2\
from tmp_stud\
where 1=1\
/* ${<<Zusatzfilter>>} */\
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\
;\
\
<#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 format_sql="" />\
<#if column.format_sql?string != "">\
<#assign format_sql=column.format_sql />\
</#if>\
\
<#if column.coltype=="computedColumn">\
(${column.colfunction})${format_sql} as ${column.targetfieldname}\
<#else>\
${column.targetfieldname}${format_sql} as ${column.targetfieldname}\
</#if>\
\
<#if colnr &lt; number_of_visible_colums>,</#if>\
</#if> --wenn sichtbar\
</#foreach>\
from tmp_stud2\
order by <#list 1..number_of_visible_colums as i>${i}\
<#if i != number_of_visible_colums>\
,\
</#if>\
</#list>\
;\
<#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;\
\
\
</#if> --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\
</#if>\
</#foreach>\
@@@^Studienfach^Anzahl bzw. Anteil^Leistungen und Studiengänge^drop table if exists tmp_stud2; drop table if exists tmp_stud3;^^2^850^540^^1^<<SQL>>SELECT description FROM rpta_column_layout where tid=<<Spaltenlayout>>;^

1
src-modules/module/rpta/masken/48110_sachgeb_maske_bez.unl

@ -1 +0,0 @@ @@ -1 +0,0 @@
16^48110^

30
src-modules/module/rpta/masken/48140_felderinfo.unl

@ -1,30 +0,0 @@ @@ -1,30 +0,0 @@
48140^Spaltenlayout^3000^350^-1^140^180^1^char^30^1^1^<<SQL>>SELECT uniquename,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='rpta_exam_unit_dim_studiengang'\
)\
order by sortnr, caption\
;^ ^<<SQL>>SELECT uniquename,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='rpta_exam_unit_dim_studiengang'\
) and uniquename='rpta_exam_unit_dim_studiengang_note';^
48141^Seit Semester^10^0^0^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^ ^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
48142^Fächer^30^0^0^130^200^6^char^1000^0^999^<<SQL>> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^
48143^Abschluss^40^0^0^100^200^3^char^1500^0^999^<<SQL>> select apnr, druck from cifx where key=35 order by 2;^ ^ ^
48144^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^999^ ^ ^ ^
48145^Semestertyp^22^350^-1^140^80^1^integer^255^0^1^<<SQL>> select 1,'nur Sommersemester' from xdummy union select 2,'nur Wintersemester' from xdummy^Eintrag^<<SQL>> select 2,'nur Wintersemester' from xdummy^
48146^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^999^hs_zugangsber^apnr, eintrag^ ^
48147^Bis Semester^20^350^-1^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^ ^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
48148^Staatsangehörigkeit^150^0^0^140^150^10^char^30^0^999^<<SQL>> select tid,name,sortnr from sichten where art='SOS-Staaten-Sicht' order by 3,2;^ ^ ^
48149^Studiengang^25^0^0^140^150^50^char^1000^0^999^<<SQL>> select tid,name,sortnr from sichten where art in ('SOS-Kostenstellen-Sicht', 'SOS-Studiengang-Sicht') order by 3,2;^ ^ ^
48150^tablestylesheet^4000^0^0^100^200^1^char^200^1^1^<<SQL>> select distinct filename,X.caption,ord from sx_stylesheets X,sx_mask_style S where X.tid=S.stylesheet_id and S.maskeninfo_id=48140 order by ord;^^<<SQL>> select distinct filename,X.caption,ord from sx_stylesheets X,sx_mask_style S where X.tid=S.stylesheet_id and S.maskeninfo_id=48140 order by ord limit 1;^
48151^Stichtag^23^330^-1^130^100^1^sql^30^1^999^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende';^ ^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende' and appl_key='0';^
48152^Hörerstatus^200^330^-1^140^150^1^sql^30^0^999^<<SQL>> select apnr, eintrag from hoererstatus order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from hoererstatus where eintrag='alle';^
48153^Ausgabeformat^4010^0^0^100^150^1^char^200^1^1^<<SQL>> select element_value,description from menu_element where element='Ausgabeformat' and (nature::smallint<100 or nature::smallint=101) order by nature::smallint^ ^<<SQL>> select element_value,description from menu_element where element='Ausgabeformat' and description='XLSX'^
48158^Köpfe oder Fälle ?^0^0^0^140^150^1^sql^70^0^999^<<SQL>> select apnr, eintrag from koepfe_oder_faelle order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Fälle';^
48162^Geschlecht^110^0^0^140^80^1^integer^30^0^999^<<SQL>> SELECT apnr,druck FROM cif where key = 9003 and apnr between 1 and 4 order by 1;^ ^ ^
48163^Spalten^3001^0^0^150^190^10^char^30^0^999^<<SQL>>\
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=<<Spaltenlayout>>) order by 2;^ ^ ^
48164^Fachbereich^30^0^0^130^200^6^char^1000^1^1^<<SQL>> select apnr,druck from cifx where key=90 and today() between d_akt_von and d_akt_bis order by 2;^ ^ ^

1
src-modules/module/rpta/masken/48140_maske_system_bez.unl

@ -1 +0,0 @@ @@ -1 +0,0 @@
48140^7^

18
src-modules/module/rpta/masken/48140_masken_felder_bez.unl

@ -1,18 +0,0 @@ @@ -1,18 +0,0 @@
48140^48140^
48140^48141^
48140^48142^
48140^48143^
48140^48144^
48140^48145^
48140^48146^
48140^48147^
48140^48148^
48140^48149^
48140^48150^
48140^48151^
48140^48152^
48140^48153^
48140^48158^
48140^48162^
48140^48163^
48140^48164^

216
src-modules/module/rpta/masken/48140_maskeninfo.unl

@ -1,216 +0,0 @@ @@ -1,216 +0,0 @@
48140^Leistungen und Studiengänge (Makro)^--Freemarker Template\
<#include "SQL_lingua_franca"/>\
<#include "SuperX_general"/>\
--\
--Autor D. Quathamer 2024\
<sqlvars>\
<sqlvar name="basetable" type="hash"><![CDATA[\
<#assign my_base_rs='rpta_exam_unit_dim_studiengang' />\
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}'\
;\
]]>\
</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\
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.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,\
(select F.sql_code from rpta_format_code F where F.tid=CL.format_code_id) as format_sql,\
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_column2layout CL, rpta_column C, rpta_column_type T\
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>\
</sqlvars>\
\
<#assign filter="1=1\
/* and sem_der_pruefung >= <<Seit Semester>> */\
/* and sem_der_pruefung <= <<Bis Semester>> */\
/* and sem_der_pruefung = <<Semester>> */\
/* and substring('' || sem_der_pruefung from 5 for 1)='<<Semestertyp>>' */\
/* and fach_sem_zahl <= <<bis Fachsemester>> */\
" />\
\
<#assign filter = filter + " and 's_' || tid_stg in "+Studiengang.allNeededKeysList /> \
<#assign filter = filter + " and tid_stg in (select tid from lehr_stg_ab where stg in "+Fächer.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} </#if>\
and ${filter}\
;\
</#if>\
\
\
\
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},\
</#if>\
</#foreach>\
null::char(1) as dummycol\
into temp tmp_stud\
from ${basetable.runtime_tablename}\
<#if rpta_column_layout.whereclause !="">\
where ${rpta_column_layout.whereclause}\
</#if>\
;\
\
--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},\
</#if>\
</#foreach>\
--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},\
</#if>\
</#foreach>\
null::char(1) as dummycol\
into temp tmp_stud2\
from tmp_stud\
where 1=1\
/* ${<<Zusatzfilter>>} */\
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\
;\
\
<#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 format_sql="" />\
<#if column.format_sql?string != "">\
<#assign format_sql=column.format_sql />\
</#if>\
\
<#if column.coltype=="computedColumn">\
(${column.colfunction})${format_sql} as ${column.targetfieldname}\
<#else>\
${column.targetfieldname}${format_sql} as ${column.targetfieldname}\
</#if>\
\
<#if colnr &lt; number_of_visible_colums>,</#if>\
</#if> --wenn sichtbar\
</#foreach>\
from tmp_stud2\
order by <#list 1..number_of_visible_colums as i>${i}\
<#if i != number_of_visible_colums>\
,\
</#if>\
</#list>\
;\
<#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;\
\
\
</#if> --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\
</#if>\
</#foreach>\
@@@^Studienfach^Anzahl bzw. Anteil^Makrobericht zur Ausgabe nach Fächern^drop table if exists tmp_stud2; drop table if exists tmp_stud3;^^2^850^540^^1^<<SQL>>SELECT description FROM rpta_column_layout where tid=<<Spaltenlayout>>;^

1
src-modules/module/rpta/masken/48140_sachgeb_maske_bez.unl

@ -1 +0,0 @@ @@ -1 +0,0 @@
16^48140^

65
src-modules/module/rpta/rpta_update.x

@ -1,65 +0,0 @@ @@ -1,65 +0,0 @@
#!/bin/bash
#Arbeitsverzeichnis fuer crontab
PFAD=$2
if [ "$PFAD" != "" ]
then
cd $PFAD
fi
#Umgebung einlesen:
if [ "$RPTA_PFAD" = "" ]
then
echo "ACHTUNG: Die Umgebungsvariable RPTA_PFAD ist nicht gesetzt. Bitte prüfen Sie $SUPERX_DIR/db/bin/SQL_ENV"
exit 1
fi
if [ "$RPTA_ERRORMAIL" != "" ]
then
ERRORMAIL=$RPTA_ERRORMAIL
export ERRORMAIL
fi
if [ "$RPTA_LOGMAIL" != "" ]
then
LOGMAIL=$RPTA_LOGMAIL
export LOGMAIL
fi
if [ "$RPTA_BACKUP" != "" ]
then
MODULE_BACKUP=$RPTA_BACKUP
export MODULE_BACKUP
fi
#hier geht es los
#runAndCheck.x path command (EXIT_ON_ERROR|CONT_ON_ERROR) (SEND_ERRORMAIL|NO_ERRORMAIL) (SEND_LOGMAIL|NO_LOGMAIL) [description] "
echo "rpta-Update startet" >$RPTA_ERRORDAT
#Tagesdatum für Systeminfo
date +'%d.%m.%Y' > $RPTA_LOAD_PFAD/superx.datum
runAndCheck.x $RPTA_PFAD "module_etl.x rpta $RPTA_PFAD $RPTA_LOAD_PFAD" EXIT_ON_ERROR SEND_ERRORMAIL SEND_LOGMAIL "RPTA update$MANDANTID"
cat $RPTA_PFAD/L_RPTA_update$MANDANTID.log >>$RPTA_ERRORDAT
fgrep -s "not found" $RPTA_ERRORDAT
FLAG1=$?
fgrep -i -s "error" $RPTA_ERRORDAT
FLAG2=$?
fgrep -i -s "nicht gefunden" $RPTA_ERRORDAT
FLAG3=$?
if [ $FLAG1 -eq 0 -o $FLAG2 -eq 0 -o $FLAG3 -eq 0 ]
then
echo "Fehler beim RPTA-Update "
echo "---------------------------------------"
echo "Fehlerprotokoll in $RPTA_ERRORDAT"
echo "---------------------------------------"
cp $RPTA_LOAD_PFAD/superx.datum.alt $RPTA_LOAD_PFAD/superx.datum
else
echo "RPTA-Update erfolgreich"
fi
echo "---------------------------Beginn Prüfroutine-----------------------------------" >>$RPTA_ERRORDAT
#cat $RPTA_PFAD/L_rpta_Test$MANDANTID.log >>$RPTA_ERRORDAT
pruefmail.x $RPTA_PFAD/L_rpta_Test$MANDANTID.log $ERRORMAIL

223
src-modules/module/rpta/schluesseltabellen/fm_templates.unl

@ -1,223 +0,0 @@ @@ -1,223 +0,0 @@
84^RPTA-Makros^<#macro rpta_column_layout_fuellen>\
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,\
format_code_uniquename varchar(255),\
format_code_id integer\
);\
\
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,\
format_code_uniquename\
)\
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,\
<#if column.col_function?exists>'${column.col_function}'<#else>null::varchar </#if>,\
${column.is_visible},\
${column.visible_size},\
${column.is_aggregate},\
${sortnr*10},\
<#if column.description?exists>'${column.description}'<#else>null::varchar </#if>,\
<#if column.format_code?exists>'${column.format_code}'<#else>null::varchar </#if>\
FROM rpta_resultset R, rpta_column_type T\
where R.uniquename='${rpta_column_layout.rpta_resultset}'\
and T.uniquename='${column.column_type}';\
\
</#foreach>\
\
update tmp_rpta_column set format_code_id=C.tid\
from rpta_format_code C\
where C.uniquename=tmp_rpta_column.format_code_uniquename\
and format_code_uniquename is not null;\
\
\
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 uniquename 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)\
;\
--falls neu\
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 not exists (select uniquename from tmp_rpta_column_layout_target);\
\
--falls geändert, uniquename muss bleiben\
update rpta_column_layout\
set (caption, resultset_id, whereclause, description)\
= ( select caption, resultset_id,\
whereclause,\
description\
FROM tmp_rpta_column_layout T\
where T.uniquename=rpta_column_layout.uniquename)\
where rpta_column_layout.uniquename=(select uniquename from tmp_rpta_column_layout);\
\
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,\
format_code_id)\
select C.tid as column_id,\
L.tid as layout_id,\
T.sortnr,\
T.is_visible,\
T.visible_size,\
T.caption,\
T.description,\
T.format_code_id\
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;\
</#macro>^Makros zum Umgang mit Spaltenlayouts^^1^

15
src-modules/module/rpta/schluesseltabellen/fm_templates_fuellen.sql

@ -1,15 +0,0 @@ @@ -1,15 +0,0 @@
delete from fm_templates where id in (select id from tmp_templates);
insert into fm_templates(id,
content,
description,
comment,
version) select id,
content,
description,
comment,
version from tmp_templates;
drop table tmp_templates;

11
src-modules/module/rpta/schluesseltabellen/fm_templates_unload.x

@ -1,11 +0,0 @@ @@ -1,11 +0,0 @@
#!/bin/bash
#löscht alle nicht-kern-templates und entlädt die Tabelle sortiert ins Rohdaten Verzeichnis (für git-diff).
SX_CLIENT=jdbc
export SX_CLIENT
#man_catalogue
DOQUERY "select * from fm_templates where id in ('RPTA-Makros')" false $DBDELIMITER ./fm_templates.unl txt

17
src-modules/module/rpta/schluesseltabellen/fm_templates_update.x

@ -1,17 +0,0 @@ @@ -1,17 +0,0 @@
#!/bin/bash
DOQUERY "create table tmp_templates(tid integer,
id char(200) not null,
content text not null,
description char(200) ,
comment char(200) ,
version integer default 1
)
;"
sx_auto_upload_table.x tmp_templates ./fm_templates.unl
DOSQL fm_templates_fuellen.sql

150
src-modules/module/rpta/schluesseltabellen/macro_masken_bez_fuellen.sql

@ -1,150 +0,0 @@ @@ -1,150 +0,0 @@
--freemarker template
-- für das RPTA-Makro wird schleifenrelation type text benötigt
-- Umstellung auf schleifenrelation type text erfolgt in Kern 5.3
-- nach kern 5.3-Installation kann folgender alter table entfernt werden
alter table macro_masken_bez alter column schleifenrelation type text;
<#assign makros = [
{"tid":"48140"}
] />
<#assign masken = [
{"makro":"48140", "tid":"48110", "sortnr":"10",
"schleifenrelation":"<<SQL>>
SELECT DISTINCT
((((''_''::text || COALESCE(c.lid, btrim(l.fb::text)::character varying)::text) || ''_''::text) || btrim(l.stg::text)) || ''_''::text) || btrim(l.abschluss::text) AS apnr,
(btrim(k.dtxt::text) || '' ''::text) || ((( SELECT a.druck FROM cifx a WHERE a.key = 35 AND a.apnr = l.abschluss))::text) AS druck
FROM
k_stg k,
lehr_stg_ab l
LEFT JOIN cifx c ON c.key = 90 AND (c.sourcesystem = ANY (ARRAY[5, 6, 10, 12, 15])) AND c.apnr = l.fb
WHERE k.stg = l.stg
and c.apnr=<<Fachbereich>>
and l.abschluss in (''BA'',''MA'')",
"schleifenfeldname":"Studiengang","schleifenfstand":"12.03.2025", "schleifenfsicht":"<<Studiengang-Sicht>>"}
] />
<#assign felder = [
] />
-- ab hier nicht mehr ändern:
CREATE TEMP TABLE tmp_macro_masken_bez (
maskeninfo_id1 integer NOT NULL,
maskeninfo_id2 integer NOT NULL,
active integer DEFAULT 1 NOT NULL,
sortnr smallint NOT NULL,
schleifenrelation character(255),
schleifenfeldname character(255),
alias character(255),
schleifenfstand character(255),
schleifenfsicht character(255),
aktion character(255)
);
CREATE TEMP TABLE tmp_macro_feld_wert (
macro integer NOT NULL,
sortnr integer NOT NULL,
feldname character(255) NOT NULL,
alias character(255) NOT NULL,
value character(255),
value_caption character(255),
feldstand character(255),
feldsicht character(255),
active integer DEFAULT 1 NOT NULL
);
<#foreach makro in makros>
<#foreach maske in masken>
<#if maske.makro==makro.tid>
insert into tmp_macro_masken_bez(maskeninfo_id1,
maskeninfo_id2,
active,
sortnr,
schleifenrelation,
schleifenfeldname,
schleifenfstand,
schleifenfsicht)
select ${makro.tid},--maskeninfo_id1,
${maske.tid},--maskeninfo_id2,
1,--active,
${maske.sortnr}, --sortnr,
'${maske.schleifenrelation}', --schleifenrelation,
'${maske.schleifenfeldname}', --schleifenfeldname,
'${maske.schleifenfstand}', --schleifenfstand,
'${maske.schleifenfsicht}' --schleifenfsicht
from xdummy;
<#foreach feld in felder>
<#if feld.makro==makro.tid && feld.sortnr==maske.sortnr>
--Tab.12: alle ohne Exmatr
insert into tmp_macro_feld_wert
( macro,
sortnr,
feldname,
alias,
value,
value_caption,
feldstand,
feldsicht,
active)
SELECT ${makro.tid}, --macro
${maske.sortnr},--sortnr
'${feld.feldname}',--feldname,
'',--alias,
'${feld.value}', --value,
'',--value_caption,
'', --feldstand,
'',--feldsicht,
1 --active
FROM xdummy;
</#if>
</#foreach>
</#if>
</#foreach>
</#foreach>
delete from macro_masken_bez where maskeninfo_id1 in (select maskeninfo_id1 from tmp_macro_masken_bez)
;
insert into macro_masken_bez
(maskeninfo_id1,
maskeninfo_id2,
active,
sortnr,
schleifenrelation,
schleifenfeldname,
alias,
schleifenfstand,
schleifenfsicht,
aktion)
select maskeninfo_id1,
maskeninfo_id2,
active,
sortnr,
schleifenrelation,
schleifenfeldname,
alias,
schleifenfstand,
schleifenfsicht,
aktion
FROM tmp_macro_masken_bez
;
delete from macro_feld_wert where macro in (select macro from tmp_macro_feld_wert);
insert into macro_feld_wert
( macro,
sortnr,
feldname,
alias,
value,
value_caption,
feldstand,
feldsicht,
active)
SELECT macro,
sortnr,
feldname,
alias,
value,
value_caption,
feldstand,
feldsicht,
active
FROM tmp_macro_feld_wert;
drop table tmp_macro_masken_bez;
drop table tmp_macro_feld_wert;

430
src-modules/module/rpta/schluesseltabellen/pruefungen_nach_ppruef_virtuell.sql

@ -1,430 +0,0 @@ @@ -1,430 +0,0 @@
--freemarker template
<sqlvars>
<sqlvar name="sos_lab_pord_exists">
select sp_table_exists('sos_lab_pord') from xdummy;
</sqlvar>
<sqlvar name="fact_table_source">
select name
from sx_tables where name ='sos_lab_pord'
</sqlvar>
<sqlvar name="added_tables" type="hashsequence"><![CDATA[
select 1::smallint as sortnr,
name, trim(name) ||'_' as prefix,
caption,
'dim_studiengang.tid=sos_lab_pord.tid_stg and sos_lab_pord.sem_der_pruefung >= semester_von and sos_lab_pord.sem_der_pruefung <= semester_bis' as joinclause
from sx_tables where name in ('dim_studiengang')
union select 10::smallint as sortnr,
name, trim(name) ||'_' as prefix,
caption,
'sos_lab_pord.labnr=sos_lab.labnr and sos_lab_pord.sourcesystem=sos_lab.sourcesystem' as joinclause
from sx_tables where name in ('sos_lab')
union select 20::smallint as sortnr,
name, trim(name) ||'_' as prefix,
caption,
'cif.apnr=sos_lab_pord.pversion and sos_lab_pord.sourcesystem=5 and cif.key=632' as joinclause
from sx_tables where name in ('cif')
]]></sqlvar>
<sqlvar name="fields_target" type="hashsequence"><![CDATA[
<#if fact_table_source?exists >
select tid, table_name,
name,
name as targetname
from sx_fields where table_name ='${fact_table_source}'
--and currentlyused=1
and name in ('matrikel_nr',
'sem_der_pruefung',
'hrst',
'fach_sem_zahl',
'kz_rueck_beur_ein',
'part',
'pnr',
'pversuch',
'prueck',
'pversion',
'pstatus',
'd_abg_pruefung',
'note',
'pvermerk',
'pform',
'studiengang_nr',
'fach_nr',
'is_modul',
'tid_stg',
'pdtxt',
'sourcesystem',
'labnr'
)
union
select tid,table_name,
name,
'dim_studiengang_' || name as targetname
from sx_fields where table_name ='dim_studiengang'
and currentlyused=1
union
select tid,table_name,
name,
'sos_lab_' || name as targetname
from sx_fields where table_name ='sos_lab'
and name in ('ppruef1','ppruef2','panerk')
union
select tid,table_name,
name,
'pversion_ktxt' as targetname
from sx_fields where table_name ='cif'
and name in ('lang_3')
order by 1
</#if>
]]>
</sqlvar>
</sqlvars>
<#if sos_lab_pord_exists==1 && fact_table_source?exists >
<#assign fact_table_target = {"name":"sos_lab_pord_ppruef", "caption":"Modulprüfungen und Prüfer_innen"}
/>
drop index if exists ix_sos_lab_pord_is_modul;
create index ix_sos_lab_pord_is_modul on sos_lab_pord (is_modul );
CREATE temp table tmp_tables(
name CHAR(255) ,
caption CHAR(255) ,
description CHAR(255) ,
table_type CHAR(255) ,
systeminfo_id INTEGER ,
systeminfo_orig INTEGER ,
thema CHAR(255) ,
sachgebiete_id CHAR(255)
);
CREATE temp TABLE tmp_fields(
tid serial NOT NULL,
table_name VARCHAR(255) not null,
name VARCHAR(255) not null,
caption VARCHAR(255) ,
description VARCHAR(255) ,
field_type VARCHAR(255) not null,
field_size VARCHAR(255) ,
field_not_null smallint,
currentlyused SMALLINT ,
is_primarykey SMALLINT default 0 ,
foreignkey_tab VARCHAR(255) ,
foreignkey_col VARCHAR(255) ,
foreignkey_int VARCHAR(255) ,
foreignkey_cap VARCHAR(255) ,
foreignkey_cond VARCHAR(255) ,
foreignkey_func VARCHAR(255) ,
check_integrity SMALLINT,
is_sum SMALLINT default 1,
foreignkey_uniquename VARCHAR(255)
);
update sx_fields set
is_sum=0
where table_name='sos_lab_pord'
and name!='summe';
update sx_fields set
is_sum=1
where table_name='sos_lab_pord'
and name='summe';
insert into tmp_tables (
name,
caption,
description,
table_type,
systeminfo_id,
thema,
sachgebiete_id
)
select
'${fact_table_target.name}',
'${fact_table_target.caption}',
description,
table_type,
systeminfo_id,
thema,
sachgebiete_id
from sx_tables where name='${fact_table_source}'
;
insert into tmp_fields (table_name,
name,
caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename)
select '${fact_table_target.name}' as table_name,
name,
caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename
from sx_fields where table_name ='${fact_table_source}'
and currentlyused=1;
<#foreach added_table in added_tables>
insert into tmp_fields (table_name,
name,
caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename)
select '${fact_table_target.name}' as table_name,
'${added_table.prefix}' || name,
'${added_table.caption}: ' || caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename
from sx_fields where table_name ='${added_table.name}'
and currentlyused=1;
</#foreach>
CREATE temp TABLE tmp_rpta_resultset
(
caption varchar(255),
uniquename varchar(255),
fieldclause text,
joinclause text,
whereclause text,
systeminfo_id integer
);
insert into tmp_rpta_resultset(caption,
uniquename,
systeminfo_id)
select '${fact_table_target.caption}',
'${fact_table_target.name}',
7
;
update tmp_rpta_resultset set fieldclause='
<#foreach field_target in fields_target>
${field_target.table_name}.${field_target.name} as ${field_target.targetname},
</#foreach>
null::varchar as dummy',
joinclause='${fact_table_source}
<#foreach added_table in added_tables>
left outer join ${added_table.name} on (${added_table.joinclause})
</#foreach>';
select * into temp tmp_rs1
from rpta_resultset
;
update rpta_resultset set caption=T.caption,
fieldclause=T.fieldclause,
joinclause=T.joinclause,
whereclause=T.whereclause
from tmp_rpta_resultset T
where T.systeminfo_id=rpta_resultset.systeminfo_id
and T.uniquename=rpta_resultset.uniquename
;
insert into rpta_resultset(caption,
uniquename,
fieldclause,
joinclause,
whereclause,
systeminfo_id)
select caption,
uniquename,
fieldclause,
joinclause,
whereclause,
systeminfo_id
from tmp_rpta_resultset
where 0=(select count(*)
from tmp_rs1 T
where T.systeminfo_id=tmp_rpta_resultset.systeminfo_id
and T.uniquename=tmp_rpta_resultset.uniquename)
;
drop table tmp_rpta_resultset;
drop table tmp_rs1;
delete from sx_tables where name
in (select T.name from tmp_tables T);
insert into sx_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id)
select name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id
from tmp_tables;
delete from sx_fields where table_name
in (select T.table_name from tmp_fields T);
insert into sx_fields (table_name,name,caption,description,field_type,
field_size,
field_not_null,
currentlyUsed,
foreignkey_tab,
foreignkey_col,
foreignkey_cap,
foreignkey_int,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename
)
select
F.table_name,F.name,F.caption,F.description,F.field_type,
F.field_size,
F.field_not_null,
F.currentlyUsed,
F.foreignkey_tab,
F.foreignkey_col,
F.foreignkey_cap,
F.foreignkey_int,
F.foreignkey_cond,
F.foreignkey_func,
F.check_integrity,
F.is_sum,
F.foreignkey_uniquename
from tmp_fields F;
drop table tmp_fields;
drop table tmp_tables;
--rpta_column füllen:
select * into temp tmp_rc1
from rpta_column;
create temp table tmp_rpta_column(
uniquename varchar(255) NOT NULL,
caption varchar(255),
srcfieldname varchar(255),
column_type integer,
col_function text,
is_aggregate smallint,
resultset_id integer,
description text,
custom integer default 0
);
insert into tmp_rpta_column( uniquename,
caption,
srcfieldname,
column_type,
col_function,
is_aggregate,
resultset_id,
description)
select F.name as uniquename,
coalesce(T.caption,T.name) || ' - ' || F.caption,
F.name as srcfieldname,
1 as column_type,
(case when F.is_sum=1 then 'sum' else null::varchar end) as col_function,
(case when F.is_sum=1 then 1 else 0 end) as is_aggregate,
R.tid as resultset_id,
F.description
from rpta_resultset R, sx_fields F left outer join sx_tables T on (T.name=F.table_name)
where F.table_name='${fact_table_target.name}'
and R.uniquename='${fact_table_target.name}'
and F.currentlyused=1
;
update rpta_column set
caption=T.caption,
srcfieldname=T.srcfieldname,
column_type=T.column_type,
col_function=T.col_function,
is_aggregate=T.is_aggregate,
resultset_id=R.tid,
description=T.description,
custom=T.custom
from tmp_rpta_column T, rpta_resultset R
where T.uniquename=rpta_column.uniquename
and rpta_column.resultset_id=R.tid
and R.uniquename='${fact_table_target.name}'
;
insert into rpta_column( uniquename,
caption,
srcfieldname,
column_type,
col_function,
is_aggregate,
resultset_id,
description,
custom)
select T.uniquename,
T.caption,
T.srcfieldname,
T.column_type,
T.col_function,
T.is_aggregate,
R.tid as resultset_id,
T.description,
T.custom
from tmp_rpta_column T, rpta_resultset R
where R.uniquename='${fact_table_target.name}'
and 0=(select count(*) from tmp_rc1 C
where C.uniquename=T.uniquename
and C.resultset_id=R.tid)
;
drop table tmp_rpta_column;
drop table tmp_rc1;
</#if> --wenn sos_lab_pord_exists=1

385
src-modules/module/rpta/schluesseltabellen/rptaColLay_rpta_exam_unit_dim_studiengang_note_fuellen.sql

@ -1,385 +0,0 @@ @@ -1,385 +0,0 @@
--freemarker template
<#include "RPTA-Makros"/>
<sqlvars>
<sqlvar name="rpta_exam_unit_dim_studiengang_exists">
select count(*) from rpta_resultset where uniquename='rpta_exam_unit_dim_studiengang';
</sqlvar>
<sqlvar name="rpta_resultset">
select uniquename from rpta_resultset where uniquename='rpta_exam_unit_dim_studiengang';
</sqlvar>
</sqlvars>
<#assign rpta_column_layouts = [{"uniquename":"rpta_exam_unit_dim_studiengang_note",
"caption":"Prüfungsergebnisse",
"rpta_resultset":"rpta_exam_unit_dim_studiengang",
"whereclause":"((modulart=''P'' and sourcesystem=6) or (part=''MP'' and sourcesystem=5))",
"description":"Prüfung und Noten"
}]
/>
<#assign rpta_columns = [
{"uniquename":"elementnr",
"srcfieldname":"elementnr",
"column_type":"physicalColumn",
"col_function":"",
"format_code":"",
"caption":"pnr",
"is_visible":"1",
"is_aggregate":0,
"visible_size":10,
"description":""},
{"uniquename":"pdtxt",
"srcfieldname":"pdtxt",
"column_type":"physicalColumn",
"col_function":"",
"format_code":"",
"caption":"Name der Prüfung",
"is_visible":"1",
"is_aggregate":0,
"visible_size":40,
"description":""},
{"uniquename":"summe",
"srcfieldname":"summe",
"column_type":"physicalColumn",
"col_function":"sum",
"format_code":"",
"caption":"Teilnehmer",
"is_visible":"1",
"is_aggregate":1,
"visible_size":15,
"description":""},
{"uniquename":"note_case",
"srcfieldname":"note",
"targetfieldname":"note_case",
"column_type":"logicalColumn",
"col_function":"(case when note > 6 then null else note end)",
"format_code":"",
"caption":"Durchschnittsnote % *",
"is_visible":"0",
"is_aggregate":0,
"visible_size":5,
"description":""},
{"uniquename":"note_schnitt",
"srcfieldname":"note_case",
"targetfieldname":"note_schnitt",
"column_type":"processingColumn",
"col_function":"avg",
"format_code":"",
"caption":"Durchschnittsnote *",
"is_visible":"0",
"is_aggregate":1,
"visible_size":5,
"description":""},
{"uniquename":"note_schnitt_case",
"srcfieldname":"note_schnitt",
"targetfieldname":"note_schnitt_case",
"column_type":"computedColumn",
"col_function":"case when summe < 5 then null else note_schnitt end",
"format_code":"",
"caption":"Durchschnittsnote *",
"is_visible":"1",
"is_aggregate":1,
"visible_size":25,
"description":""},
{"uniquename":"pstatus_nb",
"srcfieldname":"pstatus",
"targetfieldname":"pstatus_nb",
"column_type":"logicalColumn",
"col_function":"(case when pstatus in (''NB'',''EN'') then 1 else 0 end)",
"format_code":"",
"caption":"Durchfallquote in % *",
"is_visible":"0",
"is_aggregate":0,
"visible_size":5,
"description":""},
{"uniquename":"pstatus_nb_sum",
"srcfieldname":"pstatus_nb",
"targetfieldname":"pstatus_nb_sum",
"column_type":"processingColumn",
"col_function":"sum",
"format_code":"",
"caption":"Durchfallquote in % *",
"is_visible":"0",
"is_aggregate":1,
"visible_size":5,
"description":""},
{"uniquename":"pstatus_nb_quote",
"srcfieldname":"pstatus_nb_sum",
"targetfieldname":"pstatus_nb_quote",
"column_type":"computedColumn",
"col_function":"case when summe < 5 then null else pstatus_nb_sum/summe::decimal(18,2)*100 end",
"format_code":"DEC_2",
"caption":"Durchfallquote in % *",
"is_visible":"1",
"is_aggregate":1,
"visible_size":25,
"description":""},
{"uniquename":"pvermerk_ne",
"srcfieldname":"pvermerk",
"targetfieldname":"pvermerk_ne",
"column_type":"logicalColumn",
"col_function":"(case when pvermerk in (''NE'',''N'') then 1 else 0 end)",
"format_code":"",
"caption":"Nicht erschienen",
"is_visible":"0",
"is_aggregate":0,
"visible_size":5,
"description":""},
{"uniquename":"pvermerk_ne_sum",
"srcfieldname":"pvermerk_ne",
"targetfieldname":"pvermerk_ne_sum",
"column_type":"processingColumn",
"col_function":"sum",
"format_code":"INTEGER",
"caption":"Nicht erschienen",
"is_visible":"1",
"is_aggregate":1,
"visible_size":25,
"description":""}
] />
---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,
format_code_uniquename varchar(255),
format_code_id integer
);
CREATE temp TABLE tmp_rpta_column_layout
(
uniquename varchar(255) NOT NULL,
caption varchar(255),
resultset_id integer,
whereclause text,
description text
);
<#foreach rpta_column_layout in rpta_column_layouts>
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}';
</#foreach >
<#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,
format_code_uniquename
)
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,
<#if column.col_function?exists>'${column.col_function}'<#else>null::varchar </#if>,
${column.is_visible},
${column.visible_size},
${column.is_aggregate},
${sortnr*10},
<#if column.description?exists>'${column.description}'<#else>null::varchar </#if>,
<#if column.format_code?exists>'${column.format_code}'<#else>null::varchar </#if>
FROM rpta_resultset R, rpta_column_type T
where R.uniquename='${rpta_resultset}'
and T.uniquename='${column.column_type}';
</#foreach>
update tmp_rpta_column set format_code_id=C.tid
from rpta_format_code C
where C.uniquename=tmp_rpta_column.format_code_uniquename
and format_code_uniquename is not null;
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_resultset}'
and L.uniquename in (
<#foreach rpta_column_layout in rpta_column_layouts>
'${rpta_column_layout.uniquename}',
</#foreach>'xy')
)
;
select * into temp tmp_rpta_column_layout_target
from rpta_column_layout
where resultset_id in (select tid
FROM rpta_resultset
where uniquename='${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_resultset}'
and L.uniquename in (
<#foreach rpta_column_layout in rpta_column_layouts>
'${rpta_column_layout.uniquename}',
</#foreach>'xy')
)
;
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,
format_code_id)
select C.tid as column_id,
L.tid as layout_id,
T.sortnr,
T.is_visible,
T.visible_size,
T.caption,
T.description,
T.format_code_id
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 in (
<#foreach rpta_column_layout in rpta_column_layouts>
'${rpta_column_layout.uniquename}',
</#foreach>'xy')
and L.resultset_id=T.resultset_id
;
drop table tmp_rpta_column;
drop table if exists tmp_rpta_column2;
drop TABLE tmp_rpta_column_layout;

79
src-modules/module/rpta/schluesseltabellen/rpta_column_layout_fuellen.sql

@ -1,79 +0,0 @@ @@ -1,79 +0,0 @@
--freemarker template
<#include "RPTA-Makros"/>
<#assign rpta_column_layout = {"uniquename":"sos_stud_astat_rsz",
"caption":"MKW-Abfrage_Studierende_RSZ",
"rpta_resultset":"sos_stud_astat",
"whereclause":"fach_sem_zahl <= dim_studiengang_regel",
"description":"MKW-Abfrage_Studierende_RSZ"
}
/>
<#assign rpta_columns = [
{"uniquename":"sos_k_stort_astat",
"caption":"Hochschulnummer Statistik",
"srcfieldname":"sos_k_stort_astat",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0"
},
{"uniquename":"dim_studiengang_stg_astat",
"caption":"HSF-Schlüssel",
"srcfieldname":"dim_studiengang_stg_astat",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0"
},
{"uniquename":"sos_k_stufrm_astat",
"caption":"Art des Studiums",
"srcfieldname":"sos_k_stufrm_astat",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0"
},
{"uniquename":"dim_studiengang_abschluss_astat",
"caption":"Abschlussschlüssel Statistik NRW",
"srcfieldname":"dim_studiengang_abschluss_astat",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0"
},
{"uniquename":"sos_k_stutyp_astat",
"caption":"Vollzeit / Teilzeit / ausbildungsintegriert / praxisintegriert / berufsintegriert",
"srcfieldname":"sos_k_stutyp_astat",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0"
},
{"uniquename":"dim_studiengang_regel",
"caption":"Angabe der Regelstudienzeit",
"srcfieldname":"dim_studiengang_regel",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0"
},
{"uniquename":"summe",
"caption":"Anzahl der Studierenden in der Regelstudienzeit",
"srcfieldname":"summe",
"column_type":"physicalColumn",
"col_function":"sum",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"1"
}
]
/>
<@rpta_column_layout_fuellen />

182
src-modules/module/rpta/schluesseltabellen/rpta_column_layout_sgd_pbe_pbv_fuellen.sql

@ -1,182 +0,0 @@ @@ -1,182 +0,0 @@
--freemarker template
<#include "RPTA-Makros"/>
<sqlvars>
<sqlvar name="rpta_installed">
select count(*) from systeminfo where tid=330;
</sqlvar>
</sqlvars>
<#assign rpta_column_layout = {"uniquename":"sgd_pbe_pbv",
"caption":"Stellen, Besetzungen und Beschäftigungsverhältnisse",
"rpta_resultset":"sva_pbe_aggr_sgd",
"whereclause":"",
"description":"Stellendaten, Besetzungen und Personaldaten"
}
/>
<#assign rpta_columns = [
{"uniquename":"ch110_besch_st",
"caption":"Beschäftigungsstelle (Schlüssel)",
"srcfieldname":"ch110_besch_st",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"Beschäftigungsstelle (Schlüssel)"
},
{"uniquename":"ch110_besch_st_str",
"caption":"Beschäftigungsstelle",
"srcfieldname":"ch110_besch_st_str",
"column_type":"lookupColumn",
"col_function":"select C.druck from cifx C where C.key=110 and C.apnr=ch110_besch_st",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"Beschäftigungsstelle (Name)"
},
{"uniquename":"stellen_nr",
"caption":"Stellen-Nr.",
"srcfieldname":"stellen_nr",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",
"description":"Stellen-Nr."
},
{"uniquename":"haushalt_nr",
"caption":"Stellen-Nr. im HH-Plan",
"srcfieldname":"haushalt_nr",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",
"description":"Stellen-Nr. im HH-Plan"
},
{"uniquename":"widmung",
"caption":"Widmung",
"srcfieldname":"sva_sgd_widmung",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",
"description":"Widmung"
},
{"uniquename":"sva_sgd_von",
"caption":"Stellengültigkeit (von)",
"srcfieldname":"d_finanz_anfang",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",
"description":"Stellengültigkeit (von)"
},
{"uniquename":"sva_sgd_bis",
"caption":"Stellengültigkeit (bis)",
"srcfieldname":"d_finanz_ende",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",
"description":"Stellengültigkeit (bis)"
},
{"uniquename":"sgd_ansatz",
"caption":"Stellen-Ansatz",
"srcfieldname":"kont_proz_soll",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",
"description":"Stellen-Ansatz"
},
{"uniquename":"personal_nr",
"caption":"Personal-Nr.",
"srcfieldname":"sva_pbe_aggr_personal_nr",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",
"description":""
},
{"uniquename":"besch_verh_nr",
"caption":"Besch.-Verh Nr.",
"srcfieldname":"sva_pbe_aggr_besch_verh_nr",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",
"description":""
},
{"uniquename":"name",
"caption":"Person Name",
"srcfieldname":"sva_pbe_aggr_name",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",
"description":""
},
{"uniquename":"d_besetz_anfang",
"caption":"Besetzung gültig (von)",
"srcfieldname":"sva_pbe_aggr_d_besetz_anfang",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"0",
"visible_size":"5",
"is_aggregate":"0",
"description":""
} ,
{"uniquename":"d_besetz_ende",
"caption":"Besetzung gültig (bis)",
"srcfieldname":"sva_pbe_aggr_d_besetz_ende",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"0",
"visible_size":"5",
"is_aggregate":"0",
"description":""
},
{"uniquename":"pbe_von",
"caption":"Besetzungsdatum (von)",
"srcfieldname":"sva_pbe_aggr_pbe_von",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"0",
"visible_size":"5",
"is_aggregate":"0",
"description":""
} ,
{"uniquename":"pbe_bis",
"caption":"Besetzungsdatum (bis)",
"srcfieldname":"sva_pbe_aggr_pbe_bis",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"0",
"visible_size":"5",
"is_aggregate":"0",
"description":""
},
{"uniquename":"vzae",
"caption":"VZÄ (Besetzung)",
"srcfieldname":"sva_pbe_aggr_vzae",
"column_type":"physicalColumn",
"col_function":"sum",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"1",
"description":""
}
]
/>
<#if rpta_installed==1>
<@rpta_column_layout_fuellen />
</#if>

91
src-modules/module/rpta/schluesseltabellen/rpta_column_layout_sos_stud_astat_fuellen.sql

@ -1,91 +0,0 @@ @@ -1,91 +0,0 @@
--freemarker template
<#include "RPTA-Makros"/>
<sqlvars>
<sqlvar name="sos_stud_astat_exists">
select count(*) from rpta_resultset where uniquename='sos_stud_astat';
</sqlvar>
</sqlvars>
<#assign rpta_column_layout = {"uniquename":"sos_stud_astat_rsz",
"caption":"MKW-Abfrage_Studierende_RSZ",
"rpta_resultset":"sos_stud_astat",
"whereclause":"fach_sem_zahl <= dim_studiengang_regel and dim_studiengang_regel between 1 and 20 and studiengang_nr <=2 and fach_nr <=4",
"description":"Fachbelegungen: 1. & 2. Studiengang; 1.-4. Fach; nur Studiengänge mit Angabe einer Regelstudienzeit"
}
/>
<#assign rpta_columns = [
{"uniquename":"sos_k_stort_astat",
"caption":"Hochschulnummer Statistik",
"srcfieldname":"sos_k_stort_astat",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"Amtliche Standortnummer"
},
{"uniquename":"dim_studiengang_stg_astat",
"caption":"HSF-Schlüssel",
"srcfieldname":"dim_studiengang_stg_astat",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"Amtliches Fach"
},
{"uniquename":"sos_k_stufrm_astat",
"caption":"Art des Studiums",
"srcfieldname":"sos_k_stufrm_astat",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"Amtliche Studienform"
},
{"uniquename":"dim_studiengang_abschluss_astat",
"caption":"Abschlussschlüssel Statistik NRW",
"srcfieldname":"dim_studiengang_abschluss_astat",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"Amtlicher Abschluss"
},
{"uniquename":"sos_k_stutyp_astat",
"caption":"Vollzeit / Teilzeit / ausbildungsintegriert / praxisintegriert / berufsintegriert",
"srcfieldname":"sos_k_stutyp_astat",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"Amtlicher Studiumstyp"
},
{"uniquename":"dim_studiengang_regel",
"caption":"Angabe der Regelstudienzeit",
"srcfieldname":"dim_studiengang_regel",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"Regelstudienzeit in Semestern"
},
{"uniquename":"summe",
"caption":"Anzahl der Studierenden in der Regelstudienzeit",
"srcfieldname":"summe",
"column_type":"physicalColumn",
"col_function":"sum",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"1",
"description":"Summe der Studierenden mit Fachsemester kleiner oder gleich der Regelstudienzeit"
}
]
/>
<@rpta_column_layout_fuellen />

206
src-modules/module/rpta/schluesseltabellen/rpta_column_layout_sos_stud_astat_rsz_fuellen.sql

@ -1,5 +1,4 @@ @@ -1,5 +1,4 @@
--freemarker template
<#include "RPTA-Makros"/>
<sqlvars>
<sqlvar name="sos_stud_astat_exists">
select count(*) from rpta_resultset where uniquename='sos_stud_astat';
@ -87,4 +86,207 @@ select count(*) from rpta_resultset where uniquename='sos_stud_astat'; @@ -87,4 +86,207 @@ select count(*) from rpta_resultset where uniquename='sos_stud_astat';
]
/>
<@rpta_column_layout_fuellen />
---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;

1
src-modules/module/rpta/schluesseltabellen/rpta_column_type.unl

@ -2,4 +2,3 @@ @@ -2,4 +2,3 @@
2^logicalColumn^Logische Spalte^
3^lookupColumn^Lookup-Spalte^
4^computedColumn^Berechnete Spalte^
5^processingColumn^Weiterverarbeitende Spalte^

384
src-modules/module/rpta/schluesseltabellen/rpta_exam_unit_dim_studiengang_virtuell.sql

@ -1,384 +0,0 @@ @@ -1,384 +0,0 @@
--freemarker template
<sqlvars>
<sqlvar name="rpta_exam_unit_exists">
select sp_table_exists('rpta_exam_unit') from xdummy;
</sqlvar>
<sqlvar name="fact_table_source">
select name
from sx_tables where name ='rpta_exam_unit'
</sqlvar>
<sqlvar name="added_tables" type="hashsequence"><![CDATA[
select 1::smallint as sortnr,
name, trim(name) ||'_' as prefix,
caption,
'dim_studiengang.tid=rpta_exam_unit.tid_stg and rpta_exam_unit.sem_der_pruefung >= semester_von and rpta_exam_unit.sem_der_pruefung <= semester_bis' as joinclause
from sx_tables where name in ('dim_studiengang')
]]></sqlvar>
<sqlvar name="fields_target" type="hashsequence"><![CDATA[
select tid, table_name,
name,
name as targetname
from sx_fields where table_name ='${fact_table_source}'
and currentlyused=1
union
select tid,table_name,
name,
'dim_studiengang_' || name as targetname
from sx_fields where table_name ='dim_studiengang'
and currentlyused=1
order by 1
]]>
</sqlvar>
</sqlvars>
<#if rpta_exam_unit_exists==1>
<#assign fact_table_target = {"name":"rpta_exam_unit_dim_studiengang", "caption":"Einzelprüfungen und Studiengänge"}
/>
drop index if exists ix_rpta_exam_unit_is_modul;
CREATE temp table tmp_tables(
name CHAR(255) ,
caption CHAR(255) ,
description CHAR(255) ,
table_type CHAR(255) ,
systeminfo_id INTEGER ,
systeminfo_orig INTEGER ,
thema CHAR(255) ,
sachgebiete_id CHAR(255)
);
CREATE temp TABLE tmp_fields(
tid serial NOT NULL,
table_name VARCHAR(255) not null,
name VARCHAR(255) not null,
caption VARCHAR(255) ,
description VARCHAR(255) ,
field_type VARCHAR(255) not null,
field_size VARCHAR(255) ,
field_not_null smallint,
currentlyused SMALLINT ,
is_primarykey SMALLINT default 0 ,
foreignkey_tab VARCHAR(255) ,
foreignkey_col VARCHAR(255) ,
foreignkey_int VARCHAR(255) ,
foreignkey_cap VARCHAR(255) ,
foreignkey_cond VARCHAR(255) ,
foreignkey_func VARCHAR(255) ,
check_integrity SMALLINT,
is_sum SMALLINT default 1,
foreignkey_uniquename VARCHAR(255)
);
update sx_fields set
is_sum=0
where table_name='rpta_exam_unit'
and name!='summe';
update sx_fields set
is_sum=1
where table_name='rpta_exam_unit'
and name='summe';
insert into tmp_tables (
name,
caption,
description,
table_type,
systeminfo_id,
thema,
sachgebiete_id
)
select
'${fact_table_target.name}',
'${fact_table_target.caption}',
description,
table_type,
systeminfo_id,
thema,
sachgebiete_id
from sx_tables where name='${fact_table_source}'
;
insert into tmp_fields (table_name,
name,
caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename)
select '${fact_table_target.name}' as table_name,
name,
caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename
from sx_fields where table_name ='${fact_table_source}'
and currentlyused=1;
<#foreach added_table in added_tables>
insert into tmp_fields (table_name,
name,
caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename)
select '${fact_table_target.name}' as table_name,
'${added_table.prefix}' || name,
'${added_table.caption}: ' || caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename
from sx_fields where table_name ='${added_table.name}'
and currentlyused=1;
</#foreach>
CREATE temp TABLE tmp_rpta_resultset
(
caption varchar(255),
uniquename varchar(255),
fieldclause text,
joinclause text,
whereclause text,
systeminfo_id integer
);
insert into tmp_rpta_resultset(caption,
uniquename,
systeminfo_id)
select '${fact_table_target.caption}',
'${fact_table_target.name}',
7
;
update tmp_rpta_resultset set fieldclause='
<#foreach field_target in fields_target>
${field_target.table_name}.${field_target.name} as ${field_target.targetname},
</#foreach>
null::varchar as dummy',
joinclause='${fact_table_source}
<#foreach added_table in added_tables>
left outer join ${added_table.name} on (${added_table.joinclause})
</#foreach>';
select * into temp tmp_rs1
from rpta_resultset
;
update rpta_resultset set caption=T.caption,
fieldclause=T.fieldclause,
joinclause=T.joinclause,
whereclause=T.whereclause
from tmp_rpta_resultset T
where T.systeminfo_id=rpta_resultset.systeminfo_id
and T.uniquename=rpta_resultset.uniquename
;
insert into rpta_resultset(caption,
uniquename,
fieldclause,
joinclause,
whereclause,
systeminfo_id)
select caption,
uniquename,
fieldclause,
joinclause,
whereclause,
systeminfo_id
from tmp_rpta_resultset
where 0=(select count(*)
from tmp_rs1 T
where T.systeminfo_id=tmp_rpta_resultset.systeminfo_id
and T.uniquename=tmp_rpta_resultset.uniquename)
;
drop table tmp_rpta_resultset;
drop table tmp_rs1;
delete from sx_tables where name
in (select T.name from tmp_tables T);
insert into sx_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id)
select name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id
from tmp_tables;
delete from sx_fields where table_name
in (select T.table_name from tmp_fields T);
insert into sx_fields (table_name,name,caption,description,field_type,
field_size,
field_not_null,
currentlyUsed,
foreignkey_tab,
foreignkey_col,
foreignkey_cap,
foreignkey_int,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename
)
select
F.table_name,F.name,F.caption,F.description,F.field_type,
F.field_size,
F.field_not_null,
F.currentlyUsed,
F.foreignkey_tab,
F.foreignkey_col,
F.foreignkey_cap,
F.foreignkey_int,
F.foreignkey_cond,
F.foreignkey_func,
F.check_integrity,
F.is_sum,
F.foreignkey_uniquename
from tmp_fields F;
drop table tmp_fields;
drop table tmp_tables;
--rpta_column füllen:
select * into temp tmp_rc1
from rpta_column;
create temp table tmp_rpta_column(
uniquename varchar(255) NOT NULL,
caption varchar(255),
srcfieldname varchar(255),
column_type integer,
col_function text,
is_aggregate smallint,
resultset_id integer,
description text,
custom integer default 0
);
insert into tmp_rpta_column( uniquename,
caption,
srcfieldname,
column_type,
col_function,
is_aggregate,
resultset_id,
description)
select F.name as uniquename,
coalesce(T.caption,T.name) || ' - ' || F.caption,
F.name as srcfieldname,
1 as column_type,
(case when F.is_sum=1 then 'sum' else null::varchar end) as col_function,
(case when F.is_sum=1 then 1 else 0 end) as is_aggregate,
R.tid as resultset_id,
F.description
from rpta_resultset R, sx_fields F left outer join sx_tables T on (T.name=F.table_name)
where F.table_name='${fact_table_target.name}'
and R.uniquename='${fact_table_target.name}'
and F.currentlyused=1
;
update rpta_column set
caption=T.caption,
srcfieldname=T.srcfieldname,
column_type=T.column_type,
col_function=T.col_function,
is_aggregate=T.is_aggregate,
resultset_id=R.tid,
description=T.description,
custom=T.custom
from tmp_rpta_column T, rpta_resultset R
where T.uniquename=rpta_column.uniquename
and rpta_column.resultset_id=R.tid
and R.uniquename='${fact_table_target.name}'
;
insert into rpta_column( uniquename,
caption,
srcfieldname,
column_type,
col_function,
is_aggregate,
resultset_id,
description,
custom)
select T.uniquename,
T.caption,
T.srcfieldname,
T.column_type,
T.col_function,
T.is_aggregate,
R.tid as resultset_id,
T.description,
T.custom
from tmp_rpta_column T, rpta_resultset R
where R.uniquename='${fact_table_target.name}'
and 0=(select count(*) from tmp_rc1 C
where C.uniquename=T.uniquename
and C.resultset_id=R.tid)
;
drop table tmp_rpta_column;
drop table tmp_rc1;
</#if> --wenn rpta_exam_unit_exists=1

1
src-modules/module/rpta/schluesseltabellen/rpta_format_code.unl

@ -1,4 +1,3 @@ @@ -1,4 +1,3 @@
1^INTEGER^Ganzzahlig^::integer^
2^INT_NO_SEP^Ganzzahlig ohne 1000er Trenner^::varchar^
3^INT_PERCENT^Ganzzahlig %^::integer || ' %'^
4^DEC_2^Dezimal mit 2 Nachkommastellen^::decimal(18,2)^

395
src-modules/module/rpta/schluesseltabellen/stellen_besetzung_virtuell.sql

@ -1,395 +0,0 @@ @@ -1,395 +0,0 @@
--freemarker template
<sqlvars>
<sqlvar name="sva_sgd_aggr_exists">
select sp_table_exists('sva_sgd_aggr') from xdummy;
</sqlvar>
<sqlvar name="fact_table_source">
select name
from sx_tables where name ='sva_sgd_aggr'
</sqlvar>
<sqlvar name="added_tables" type="hashsequence"><![CDATA[
select 1::smallint as sortnr,
name, trim(name) ||'_' as prefix,
caption,
'sva_sgd.sgd_join_id=sva_sgd_aggr.stellen_nr' as joinclause
from sx_tables where name in ('sva_sgd')
union
select 2::smallint as sortnr,
name, trim(name) ||'_' as prefix,
caption,
'sva_sgd_aggr.stellen_nr=sva_pbe_aggr.stellen_nr and (sva_sgd_aggr.sbst_nr=sva_pbe_aggr.soe_serial or sva_pbe_aggr.soe_serial is null )' as joinclause
from sx_tables where name in ('sva_pbe_aggr')
]]></sqlvar>
<sqlvar name="fields_target" type="hashsequence"><![CDATA[
<#if fact_table_source?exists>
select tid, table_name,
name,
name as targetname
from sx_fields where table_name ='${fact_table_source}'
and currentlyused=1
union
</#if>
select tid,table_name,
name,
'sva_sgd_' || name as targetname
from sx_fields where table_name ='sva_sgd'
and currentlyused=1
union
select tid,table_name,
name,
'sva_pbe_aggr_' || name as targetname
from sx_fields where table_name ='sva_pbe_aggr'
and currentlyused=1
order by 1
]]>
</sqlvar>
</sqlvars>
<#if sva_sgd_aggr_exists==1 && fact_table_source?exists >
<#assign fact_table_target = {"name":"sva_pbe_aggr_sgd", "caption":"Stellen, Besetzungen, Personen"}
/>
CREATE temp table tmp_tables(
name CHAR(255) ,
caption CHAR(255) ,
description CHAR(255) ,
table_type CHAR(255) ,
systeminfo_id INTEGER ,
systeminfo_orig INTEGER ,
thema CHAR(255) ,
sachgebiete_id CHAR(255)
);
CREATE temp TABLE tmp_fields(
tid serial NOT NULL,
table_name VARCHAR(255) not null,
name VARCHAR(255) not null,
caption VARCHAR(255) ,
description VARCHAR(255) ,
field_type VARCHAR(255) not null,
field_size VARCHAR(255) ,
field_not_null smallint,
currentlyused SMALLINT ,
is_primarykey SMALLINT default 0 ,
foreignkey_tab VARCHAR(255) ,
foreignkey_col VARCHAR(255) ,
foreignkey_int VARCHAR(255) ,
foreignkey_cap VARCHAR(255) ,
foreignkey_cond VARCHAR(255) ,
foreignkey_func VARCHAR(255) ,
check_integrity SMALLINT,
is_sum SMALLINT default 1,
foreignkey_uniquename VARCHAR(255)
);
update sx_fields set
is_sum=0
where table_name='sva_sgd_aggr'
and name!='vzae';
update sx_fields set
is_sum=1
where table_name='sva_sgd_aggr'
and name='vzae';
insert into tmp_tables (
name,
caption,
description,
table_type,
systeminfo_id,
thema,
sachgebiete_id
)
select
'${fact_table_target.name}',
'${fact_table_target.caption}',
description,
table_type,
systeminfo_id,
thema,
sachgebiete_id
from sx_tables where name='${fact_table_source}'
;
insert into tmp_fields (table_name,
name,
caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename)
select '${fact_table_target.name}' as table_name,
name,
caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename
from sx_fields where table_name ='${fact_table_source}'
and currentlyused=1;
<#foreach added_table in added_tables>
insert into tmp_fields (table_name,
name,
caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename)
select '${fact_table_target.name}' as table_name,
'${added_table.prefix}' || name,
'${added_table.caption}: ' || caption,
description,
field_type,
field_size,
field_not_null,
currentlyused,
is_primarykey,
foreignkey_tab,
foreignkey_col,
foreignkey_int,
foreignkey_cap,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename
from sx_fields where table_name ='${added_table.name}'
and currentlyused=1;
</#foreach>
CREATE temp TABLE tmp_rpta_resultset
(
caption varchar(255),
uniquename varchar(255),
fieldclause text,
joinclause text,
whereclause text,
systeminfo_id integer
);
insert into tmp_rpta_resultset(caption,
uniquename,
systeminfo_id)
select '${fact_table_target.caption}',
'${fact_table_target.name}',
6
;
update tmp_rpta_resultset set fieldclause='
<#foreach field_target in fields_target>
${field_target.table_name}.${field_target.name} as ${field_target.targetname},
</#foreach>
null::varchar as dummy',
joinclause='${fact_table_source}
<#foreach added_table in added_tables>
left outer join ${added_table.name} on (${added_table.joinclause})
</#foreach>';
select * into temp tmp_rs1
from rpta_resultset
;
update rpta_resultset set caption=T.caption,
fieldclause=T.fieldclause,
joinclause=T.joinclause,
whereclause=T.whereclause
from tmp_rpta_resultset T
where T.systeminfo_id=rpta_resultset.systeminfo_id
and T.uniquename=rpta_resultset.uniquename
;
insert into rpta_resultset(caption,
uniquename,
fieldclause,
joinclause,
whereclause,
systeminfo_id)
select caption,
uniquename,
fieldclause,
joinclause,
whereclause,
systeminfo_id
from tmp_rpta_resultset
where 0=(select count(*)
from tmp_rs1 T
where T.systeminfo_id=tmp_rpta_resultset.systeminfo_id
and T.uniquename=tmp_rpta_resultset.uniquename)
;
drop table tmp_rpta_resultset;
drop table tmp_rs1;
delete from sx_tables where name
in (select T.name from tmp_tables T);
insert into sx_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id)
select name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id
from tmp_tables;
delete from sx_fields where table_name
in (select T.table_name from tmp_fields T);
insert into sx_fields (table_name,name,caption,description,field_type,
field_size,
field_not_null,
currentlyUsed,
foreignkey_tab,
foreignkey_col,
foreignkey_cap,
foreignkey_int,
foreignkey_cond,
foreignkey_func,
check_integrity,
is_sum,
foreignkey_uniquename
)
select
F.table_name,F.name,F.caption,F.description,F.field_type,
F.field_size,
F.field_not_null,
F.currentlyUsed,
F.foreignkey_tab,
F.foreignkey_col,
F.foreignkey_cap,
F.foreignkey_int,
F.foreignkey_cond,
F.foreignkey_func,
F.check_integrity,
F.is_sum,
F.foreignkey_uniquename
from tmp_fields F;
drop table tmp_fields;
drop table tmp_tables;
--rpta_column füllen:
select * into temp tmp_rc1
from rpta_column;
create temp table tmp_rpta_column(
uniquename varchar(255) NOT NULL,
caption varchar(255),
srcfieldname varchar(255),
column_type integer,
col_function text,
is_aggregate smallint,
resultset_id integer,
description text,
custom integer default 0
);
insert into tmp_rpta_column( uniquename,
caption,
srcfieldname,
column_type,
col_function,
is_aggregate,
resultset_id,
description)
select F.name as uniquename,
coalesce(T.caption,T.name) || ' - ' || F.caption,
F.name as srcfieldname,
1 as column_type,
(case when F.is_sum=1 then 'sum' else null::varchar end) as col_function,
(case when F.is_sum=1 then 1 else 0 end) as is_aggregate,
R.tid as resultset_id,
F.description
from rpta_resultset R, sx_fields F left outer join sx_tables T on (T.name=F.table_name)
where F.table_name='${fact_table_target.name}'
and R.uniquename='${fact_table_target.name}'
and F.currentlyused=1
;
update rpta_column set
caption=T.caption,
srcfieldname=T.srcfieldname,
column_type=T.column_type,
col_function=T.col_function,
is_aggregate=T.is_aggregate,
resultset_id=R.tid,
description=T.description,
custom=T.custom
from tmp_rpta_column T, rpta_resultset R
where T.uniquename=rpta_column.uniquename
and rpta_column.resultset_id=R.tid
and R.uniquename='${fact_table_target.name}'
;
insert into rpta_column( uniquename,
caption,
srcfieldname,
column_type,
col_function,
is_aggregate,
resultset_id,
description,
custom)
select T.uniquename,
T.caption,
T.srcfieldname,
T.column_type,
T.col_function,
T.is_aggregate,
R.tid as resultset_id,
T.description,
T.custom
from tmp_rpta_column T, rpta_resultset R
where R.uniquename='${fact_table_target.name}'
and 0=(select count(*) from tmp_rc1 C
where C.uniquename=T.uniquename
and C.resultset_id=R.tid)
;
drop table tmp_rpta_column;
drop table tmp_rc1;
</#if> --wenn sva_sgd_aggr_exists=1

15
src-modules/module/rpta/schluesseltabellen/studierende_datenblatt_virtuell.sql

@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
<sqlvar name="sos_stg_aggr_exists">
select sp_table_exists('sos_stg_aggr') from xdummy;
</sqlvar>
<sqlvar name="fact_table_source">
<sqlvar name="fact_table_source" type="hash">
select name
from sx_tables where name ='sos_stg_aggr'
@ -47,11 +47,10 @@ caption, @@ -47,11 +47,10 @@ caption,
order by 1
</sqlvar>
<sqlvar name="fields_target" type="hashsequence"><![CDATA[
<#if fact_table_source?exists>
select tid, table_name,
name,
name as targetname
from sx_fields where table_name ='${fact_table_source}'
from sx_fields where table_name ='${fact_table_source.name}'
and currentlyused=1
<#foreach added_table in added_tables>
union
@ -63,12 +62,12 @@ select tid, table_name, @@ -63,12 +62,12 @@ select tid, table_name,
</#foreach>
order by 1
</#if>
]]>
</sqlvar>
</sqlvars>
<#if sos_stg_aggr_exists==1 && fact_table_source?exists >
<#if sos_stg_aggr_exists==1>
<#assign fact_table_target = {"name":"sos_stud_astat", "caption":"Studierende (intern und amtlich)"}
/>
@ -173,7 +172,7 @@ table_type, @@ -173,7 +172,7 @@ table_type,
systeminfo_id,
thema,
sachgebiete_id
from sx_tables where name='${fact_table_source}'
from sx_tables where name='${fact_table_source.name}'
;
@ -213,7 +212,7 @@ select '${fact_table_target.name}' as table_name, @@ -213,7 +212,7 @@ select '${fact_table_target.name}' as table_name,
check_integrity,
is_sum,
foreignkey_uniquename
from sx_fields where table_name ='${fact_table_source}'
from sx_fields where table_name ='${fact_table_source.name}'
and currentlyused=1;
<#foreach added_table in added_tables>
insert into tmp_fields (table_name,
@ -280,7 +279,7 @@ update tmp_rpta_resultset set fieldclause=' @@ -280,7 +279,7 @@ update tmp_rpta_resultset set fieldclause='
${field_target.table_name}.${field_target.name} as ${field_target.targetname},
</#foreach>
null::varchar as dummy',
joinclause='${fact_table_source}
joinclause='${fact_table_source.name}
<#foreach added_table in added_tables>
left outer join ${added_table.name} on (${added_table.joinclause})
</#foreach>';

14
src-modules/module/rpta/schluesseltabellen/sx_stylesheets_einfuegen.sql

@ -3,9 +3,6 @@ @@ -3,9 +3,6 @@
--Bitte nur Freemarker Variablen füllen
<#assign masken = [
{"mask":"48140", "filename":"tabelle_html.xsl", "ord":"10"},
{"mask":"48140", "filename":"tabelle_xls_48140.xsl", "ord":"1"}
] />
<#assign stylesheet = [
@ -30,17 +27,6 @@ @@ -30,17 +27,6 @@
"usage_resultset_data":"T",
"stylesheet_type":"XSL",
"jr_datasource":""
},
{"filename":"tabelle_xls_48140.xsl",
"caption":"Prüfungsergebnisse (Excel)",
"description":"Studiengangsweise Ausgabe pro Reiter",
"relation":"table",
"contenttype":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"is_generic":"0",
"toolbar_icon_filepath":"",
"usage_resultset_data":"T",
"stylesheet_type":"XSL_XLSX",
"jr_datasource":""
}
] />

27
src-modules/module/rpta/upgrade/rpta_upgrade_man.sql

@ -1,29 +1,5 @@ @@ -1,29 +1,5 @@
--Freemarker Template
--Nummernkreis wurde von 45xxx auf 48xxx geändert
create temp table tmp_delete_mask(maskeninfo_id integer);
insert into tmp_delete_mask(maskeninfo_id)
select tid from maskeninfo
where (tid=45000 and name='Tabellenausgabe Studierende (amtlich und intern)')
or (tid=45040 and name='Spalten und Spaltenlayouts verwalten')
or (tid=45080 and name='Stellenbesetzung und Beschäftigung (Liste)');
delete from maskeninfo where tid in (select maskeninfo_id from tmp_delete_mask);
delete from felderinfo where tid in (select felderinfo_id from masken_felder_bez where maskeninfo_id in (select maskeninfo_id from tmp_delete_mask));
delete from sachgeb_maske_bez where maskeninfo_id in (select maskeninfo_id from tmp_delete_mask);
delete from masken_felder_bez where maskeninfo_id in (select maskeninfo_id from tmp_delete_mask);
delete from maske_system_bez where maskeninfo_id in (select maskeninfo_id from tmp_delete_mask);
delete from themenbaum where maskeninfo_id in (select maskeninfo_id from tmp_delete_mask);
delete from macro_masken_bez where maskeninfo_id1 in (select maskeninfo_id from tmp_delete_mask);
delete from macro_masken_bez where maskeninfo_id2 in (select maskeninfo_id from tmp_delete_mask);
delete from macro_feld_wert where macro in (select maskeninfo_id from tmp_delete_mask);
drop table tmp_delete_mask;
<#if '${SQLdialect}'='Postgres' >
alter table rpta_resultset alter column fieldclause type text;
@ -117,6 +93,3 @@ select @@ -117,6 +93,3 @@ select
drop table tmp_sos_k_stutyp_astat;
--Neue Spaltenbreite bei 0.3:
alter table rpta_column alter column col_function type TEXT;

839
superx/xml/rpta_assistent.xsl

File diff suppressed because it is too large Load Diff

56
superx/xml/rpta_templates.xsl

@ -426,8 +426,6 @@ isIgnorePagination="{$isIgnorePagination}" > @@ -426,8 +426,6 @@ isIgnorePagination="{$isIgnorePagination}" >
<xsl:param name="ergebniselementOrdnr" />
<xsl:param name="colId" />
<xsl:param name="colCount" />
<xsl:param name="isLastVisibleColumInRow" />
<xsl:variable name="x"><xsl:text>0</xsl:text>
<xsl:for-each select="/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[ @width &gt; 0 and not(starts-with(f_name,'hidden')) and not(starts-with(f_name,'next')) and @id &lt; $colId ]">
<xsl:variable name="previousColumnWidth">
@ -438,7 +436,6 @@ isIgnorePagination="{$isIgnorePagination}" > @@ -438,7 +436,6 @@ isIgnorePagination="{$isIgnorePagination}" >
<xsl:with-param name="colId" select="@id" />
<xsl:with-param name="colCount" select="$colCount"/>
<xsl:with-param name="previousX" select="0"/>
<xsl:with-param name="isLastVisibleColumInRow" select="''"/>
</xsl:call-template>
</xsl:variable>
@ -458,17 +455,14 @@ isIgnorePagination="{$isIgnorePagination}" > @@ -458,17 +455,14 @@ isIgnorePagination="{$isIgnorePagination}" >
<xsl:param name="colId" />
<xsl:param name="colCount" />
<xsl:param name="previousX" />
<xsl:param name="isLastVisibleColumInRow" />
<xsl:variable name="defbreite"><xsl:value-of select="sum(/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[ @width &gt; 0 and not(starts-with(f_name,'hidden')) and not(starts-with(f_name,'next')) ]/@width )" /></xsl:variable>
<xsl:variable name="ndefbreite"><xsl:value-of select="count(/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[ @width = '' and not(starts-with(f_name,'hidden')) and not(starts-with(f_name,'next'))])" /></xsl:variable>
<xsl:variable name="gesamtbreite"><xsl:value-of select="$defbreite+($ndefbreite* $std_spaltenbreite)" /></xsl:variable>
<xsl:variable name="width"><xsl:value-of select="/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[@id=$colId]/@width"/></xsl:variable>
<xsl:comment><xsl:value-of select="concat('defbreite=',$defbreite)" /></xsl:comment>
<xsl:choose>
<xsl:when test="$isLastVisibleColumInRow='+' or ($colCount - 1) =$colId">
<!-- letzte Spalte wird immer vom rechten Seitenrand minus vorherige Spalten gerechnet,
weil es Rundungsfehler bei der Spaltenbreite geben kann.-->
<xsl:when test="($colCount - 1) =$colId ">
<!-- letzte Spalte -->
<xsl:value-of select="$druckbreite - $previousX"/>
</xsl:when>
<xsl:when test="$width != ''">
@ -649,7 +643,7 @@ weil es Rundungsfehler bei der Spaltenbreite geben kann.--> @@ -649,7 +643,7 @@ weil es Rundungsfehler bei der Spaltenbreite geben kann.-->
<xsl:variable name="colCount">
<xsl:choose>
<xsl:when test="($rowCounter - 1)=$rowCount">
<xsl:value-of select="$currentRowColCount"/>
<xsl:value-of select="$totalColCount"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$totalColCount"/>
@ -660,17 +654,7 @@ weil es Rundungsfehler bei der Spaltenbreite geben kann.--> @@ -660,17 +654,7 @@ weil es Rundungsfehler bei der Spaltenbreite geben kann.-->
<xsl:for-each select="th" >
<xsl:variable name="colId"><xsl:value-of select="position()-1" /></xsl:variable>
<xsl:if test="@isHidden='false'">
<xsl:variable name="isLastVisibleColumInRow">
<xsl:call-template name="getLastVisibleColumInRow">
<xsl:with-param name="currentColId" select="$colId" />
<xsl:with-param name="remainingRows" select="$rowCount - ($rowCounter + 1)" />
</xsl:call-template>
</xsl:variable>
<xsl:comment><xsl:text>colId=</xsl:text><xsl:value-of select="$colId"/>
<xsl:text>
isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRow"/>
</xsl:comment>
<xsl:comment><xsl:text>colId=</xsl:text><xsl:value-of select="$colId"/></xsl:comment>
<xsl:variable name="columnX">
<xsl:call-template name="getColumnX">
<xsl:with-param name="druckbreite" select="$druckbreite"/>
@ -678,7 +662,6 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo @@ -678,7 +662,6 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo
<xsl:with-param name="ergebniselementOrdnr" select="$ordnr"/>
<xsl:with-param name="colId" select="$colId" />
<xsl:with-param name="colCount" select="$colCount"/>
<xsl:with-param name="isLastVisibleColumInRow" select="$isLastVisibleColumInRow"/>
</xsl:call-template>
</xsl:variable>
<xsl:comment><xsl:text>columnX=</xsl:text><xsl:value-of select="$columnX"/></xsl:comment>
@ -692,7 +675,6 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo @@ -692,7 +675,6 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo
<xsl:with-param name="colId" select="$colId" />
<xsl:with-param name="colCount" select="$colCount"/>
<xsl:with-param name="previousX" select="$columnX"/>
<xsl:with-param name="isLastVisibleColumInRow" select="$isLastVisibleColumInRow"/>
</xsl:call-template>
</xsl:variable>
@ -718,22 +700,10 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo @@ -718,22 +700,10 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="computedWidth">
<!--wenn eine Spalte die letzte sichtbare ist, wird der berechnete Wert
genommen. Wenn nicht, wird mit colspan multipliziert.-->
<xsl:choose>
<xsl:when test="$isLastVisibleColumInRow='+'">
<xsl:value-of select="$columnWidth"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$columnWidth * $colspan"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<textField isStretchWithOverflow="true">
<reportElement style="TableColumnHeader" mode="Opaque" stretchType="ContainerHeight"
x="{$columnX}" y="{$y_offset+( $rowCounter * $zeilenhoehe )}" width="{$computedWidth}" height="{$zeilenhoehe*$rowspan}" />
x="{$columnX}" y="{$y_offset+( $rowCounter * $zeilenhoehe )}" width="{$columnWidth * $colspan}" height="{$zeilenhoehe*$rowspan}" />
<textFieldExpression><xsl:text>"</xsl:text>
<xsl:call-template name="newline_to_backslash_n">
<xsl:with-param name="string" select="."/>
@ -1130,20 +1100,4 @@ genommen. Wenn nicht, wird mit colspan multipliziert.--> @@ -1130,20 +1100,4 @@ genommen. Wenn nicht, wird mit colspan multipliziert.-->
<xsl:text disable-output-escaping="yes"><![CDATA[ +"Datenstand: "+ $F{standdatum} + "; " + "Erstellt: "+ DATEFORMAT( TODAY(), "dd.MM.YYYY")]]></xsl:text></textFieldExpression>
</textField>
</xsl:template>
<xsl:template name="getLastVisibleColumInRow">
<xsl:param name="currentColId" />
<xsl:param name="remainingRows" />
<!--ermittelt ob eine Spalte die letzte sichtbare ist
bei verknüpften Spalten ist die letzte Header-Zeile immer relevant, egal ob sichtbar oder nicht.
Zurückgegeben werden die Anzahl der sichtbaren Zellen als "+",
d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist.
-->
<xsl:for-each select="../th">
<xsl:variable name="nr" select="position()" />
<xsl:if test="$nr &gt; $currentColId and (@isHidden='false' or $remainingRows=0)">
<xsl:text>+</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

320
superx/xml/tabelle_xls_48140.xsl

@ -1,320 +0,0 @@ @@ -1,320 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="pageComponents_html.xsl" />
<!--In diesem Stylesheet können Sie individuelle templates unterbringen,
die in ihrer Präzedenz das normale Stylesheet
pageComponents_html.xsl überragt. -->
<xsl:import href="pageComponents_html_final.xsl" />
<xsl:import href="resultset_html.xsl" />
<xsl:import href="interLinks_html.xsl" />
<xsl:decimal-format name="German" grouping-separator="." NaN="" zero-digit ="0" decimal-separator="," />
<xml:output method="application/vnd.ms-excel" />
<xsl:template match="/">
<xsl:call-template name="xlsworkbook"/>
</xsl:template>
<xsl:template name="xlsworkbook">
<xls_workbook vorlage="">
<!-- define the xl styles-->
<xsl:call-template name="xls_Styles" />
<!--Seitenformat-->
<xsl:call-template name="xls_PageFormat" />
<!-- define the xl data for the first sheet -->
<xsl:for-each select="ergebnisse/ergebnis/ergebniselement">
<xsl:choose>
<xsl:when test="@typ='image'">
<xsl:text>
</xsl:text>
</xsl:when>
<xsl:when test="@typ='tabelle'">
<xsl:call-template name="xslsheet"/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xls_workbook>
</xsl:template>
<xsl:template name="xslsheet">
<xls_sheet name="{substring-after(substring-after(../felder/feld[ @varname='Studiengang']/value,'_'),'_')}">
<xls_row height="600">
<xls_cell style="maskenname" width="10000"><xsl:value-of select="../maskenname" /></xls_cell>
</xls_row>
<xsl:call-template name="legende_xl"> </xsl:call-template>
<xls_row height="1000"><xls_cell></xls_cell></xls_row>
<xsl:call-template name="xlsheader"/>
<xsl:call-template name="xslrows"/>
</xls_sheet>
</xsl:template>
<xsl:template name="xslrows">
<xsl:for-each select="sqlerg/row">
<xsl:call-template name="xslsinglerow"/>
</xsl:for-each>
</xsl:template>
<xsl:template name="xslsinglerow">
<xsl:variable name="erglevelmax">
<xsl:if test="count(../../sqlerg/row/col [ f_name = 'ebene' ]) &gt; 0">
<xsl:choose>
<xsl:when test="count(../../sqlerg/row/col [ f_name = 'ebene' ] /wert [ . = '4']) &gt; 0">
<xsl:text>4</xsl:text>
</xsl:when>
<xsl:when test="count(../../sqlerg/row/col [ f_name = 'ebene' ] /wert [ . = '3']) &gt; 0">
<xsl:text>3</xsl:text>
</xsl:when>
<xsl:when test="count(../../sqlerg/row/col [ f_name = 'ebene' ] /wert [ . = '2']) &gt; 0">
<xsl:text>2</xsl:text>
</xsl:when>
<xsl:when test="count(../../sqlerg/row/col [ f_name = 'ebene' ] /wert [ . = '1']) &gt; 0">
<xsl:text>1</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>5</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:variable>
<!--Hinweis: Wenn für die row eine Ebene angegeben ist, wird die Darstellung vom Server definiert
Style der Zelle (z.B. body_dec) wird ignoriert, Attribut numeric ist wichtig für Darstellung,
per datatype decimal wird Nachkommastellenanzeige eingestellt-->
<xls_row>
<!-- DQ 14.12.07 In Zukunft noch erglevelmax auswerten when$erglevelmax = 5 and -->
<xsl:if test="count(col[ f_name = 'ebene' ]) &gt; 0">
<xsl:attribute name="ebene"><xsl:value-of select="6-$erglevelmax+number(col[ f_name = 'ebene' ]/wert)" /></xsl:attribute>
</xsl:if>
<xsl:if test="@issumme='true'">
<xsl:attribute name="ebene"><xsl:value-of select="'summe'" /></xsl:attribute>
</xsl:if>
<!--MB keine Zelle für Linkspalten, 4/2010 keine versteckten Spalten-->
<xsl:for-each select="col[(starts-with(f_name,'hidden'))=false and starts-with(f_name,'next') = false ]">
<xls_cell>
<xsl:variable name="checkname"><xsl:value-of select="concat('hidden',f_name,'dp')"/></xsl:variable>
<xsl:choose> <!--MB wenn es eine versteckte hidden_decimalpl gibt auswerten-->
<!--MB 4/2010 wenn decimalzahl aber decimalplaces=0 als nicht als decimal sondern integer ausgeben s.u. -->
<!-- typ 8 timestamp nicht als Decimalzahl sondern Text ausgeben -->
<xsl:when test="(@typ='2' or @typ='3') and count(../col[f_name=$checkname]) = 0"> <!-- DecimalFormat -->
<xsl:attribute name="style">body_dec</xsl:attribute>
<xsl:attribute name="numeric">true</xsl:attribute>
<xsl:attribute name="datatype">decimal</xsl:attribute>
<xsl:choose>
<xsl:when test="wert != ''">
<xsl:value-of select="wert" />
<!--<xsl:value-of select="format-number(wert,'###.###.###.###.##0,00','German')" />-->
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'&#160;'" />
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="(@typ='2' or @typ='3') and count(../col[f_name=$checkname]) &gt;0 and ../col[f_name=$checkname]/wert!='0'"> <!-- DecimalFormat -->
<xsl:attribute name="style">body_dec</xsl:attribute> <!-- row.ebene überlagert ggfs! -->
<xsl:attribute name="numeric">true</xsl:attribute>
<xsl:attribute name="datatype">decimal</xsl:attribute>
<!--<xsl:value-of select="wert" />-->
<xsl:choose>
<xsl:when test="wert != ''">
<xsl:value-of select="wert" />
<!--<xsl:value-of select="format-number(wert,'###.###.###.###.##0,00','German')" />-->
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'&#160;'" />
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="../col[f_name=$checkname]/wert='0' or @typ='4' or @typ='5'"> <!-- MB: Integer/ auch typ 5 Smallint -->
<xsl:attribute name="style">body_int</xsl:attribute> <!-- row.ebene überlagert ggfs! -->
<xsl:attribute name= "numeric">true</xsl:attribute>
<xsl:attribute name="datatype">integer</xsl:attribute>
<!--<xsl:value-of select="wert" />-->
<xsl:choose>
<xsl:when test="wert != ''">
<!-- MB formatierung format-number(wert,'###.###.###.###.###','German') raus, macht Excel selbst -->
<xsl:value-of select="wert " />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'&#160;'" />
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<!-- deutsche datumsfelder können von POI noch nicht richtig verarbeitet werden
<xsl:when test="@typ='91'">
<xsl:attribute name="style">body_date</xsl:attribute>
<xsl:attribute name="datatype">date</xsl:attribute>
<xsl:value-of select="wert " />
</xsl:when>
-->
<xsl:otherwise>
<!--Typ=1 ist string und wird defaultmäßig behandelt -->
<xsl:attribute name="style">body</xsl:attribute> <!-- row.ebene überlagert ggfs! -->
<xsl:call-template name="field_type" />
<!-- MB 8/2015 da next... eh nicht angezeigt werden kann auf resultsetLink verzichtet werden,
so kommen bei Usern die emailadressen als reiner text raus
<xsl:variable name="zs">
<xsl:call-template name="field_value">
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="resultsetLink">
<xsl:with-param name="zs2" select="$zs" />
</xsl:call-template>
-->
<xsl:call-template name="field_value"/>
<!-- MB 5.5.08 ablegen in zs3 und aufruf von get_val_or_nbsp nicht nötig-->
</xsl:otherwise>
</xsl:choose>
</xls_cell>
</xsl:for-each><!--cell-->
</xls_row>
</xsl:template>
<xsl:template name="xlsheader">
<xsl:choose>
<xsl:when test="/ergebnisse/ergebnis/ergebniselement/sqlerg/headers/@hasAggregationHeaders='true'">
<xsl:variable name="nr_rows"><xsl:value-of select="count(sqlerg/aggregationHeaders/tr)" /></xsl:variable>
<xsl:for-each select="sqlerg/aggregationHeaders/tr">
<!-- AK 20.08.2014 Der Header bekommt eine höhere Zeile-->
<xls_row height="600">
<xsl:if test="position()=1">
<xsl:attribute name="repeating"><xsl:value-of select="$nr_rows" /></xsl:attribute>
</xsl:if>
<xsl:for-each select="th">
<xsl:if test="starts-with(@f_name,'next') = false and starts-with(@f_name,'hidden') = false">
<xls_cell style="heading">
<xsl:attribute name="width"><xsl:value-of select="@width * 280" /> </xsl:attribute>
<xsl:if test="@colspan != ''">
<xsl:attribute name="colspan"><xsl:value-of select="@colspan" /> </xsl:attribute>
</xsl:if>
<xsl:if test="@rowspan != ''">
<xsl:attribute name="rowspan"><xsl:value-of select="@rowspan" /> </xsl:attribute>
</xsl:if>
<xsl:call-template name="removeBackslashN" >
<xsl:with-param name="derwert"><xsl:value-of select="." /></xsl:with-param>
<xsl:with-param name="format"><xsl:value-of select="'xls'" /></xsl:with-param>
</xsl:call-template>
</xls_cell>
</xsl:if>
</xsl:for-each>
</xls_row>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<!-- alt Normale headers -->
<xls_row repeating="true">
<!--MB 04/2010 versteckte Spalten nicht kein Header für Linkspalten--> -->
<xsl:for-each select="sqlerg/headers/header[(starts-with(f_name,'hidden'))=false and starts-with(f_name,'next') = false ]">
<xsl:call-template name="xlssingleheader">
<xsl:with-param name="derwert" select="wert" />
</xsl:call-template>
</xsl:for-each>
</xls_row>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="xlssingleheader">
<xsl:param name="derwert" />
<xls_cell style="heading">
<xsl:attribute name="width"><xsl:value-of select="@width * 280" /> </xsl:attribute>
<!--max. 2 Umbrüche pro Zelle -->
<!--<xsl:value-of select="string($derwert) "/>-->
<xsl:variable name="header1">
<xsl:choose>
<xsl:when test="(contains(string($derwert),'\n'))">
<xsl:value-of select="substring-before($derwert,'\n') "/>
<xsl:text>
</xsl:text>
<xsl:value-of select="substring-after($derwert,'\n') "/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="$derwert" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="header2">
<xsl:choose>
<xsl:when test="(contains(string($header1),'\n'))">
<xsl:value-of select="substring-before($header1,'\n') "/>
<xsl:text>
</xsl:text>
<xsl:value-of select="substring-after($header1,'\n') "/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$header1" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="(contains(string($header2),'\000'))">
<xsl:value-of select="substring-before($header2,'\000') "/>
<xsl:text>
</xsl:text>
<xsl:value-of select="substring-after($header2,'\000') "/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$header2" />
</xsl:otherwise>
</xsl:choose>
</xls_cell>
</xsl:template>
<xsl:template name="legende_xl">
<xls_row height="1000">
<xls_cell style="legende">
<xsl:for-each select="../felder/feld">
<xsl:if test="(value !='' or sicht/@isFirstInGroup='false' or @isstandtoday='false') and @varname != 'sort' and @varname != 'maxoffset' and @varname!='##line##' ">
<xsl:choose>
<xsl:when test="string-length(caption_short) &gt; 0 and caption_short != 'null'" >
<![CDATA[]]><xsl:value-of select="normalize-space(string(caption_short))" /><![CDATA[]]>
</xsl:when>
<xsl:otherwise>
<![CDATA[]]><xsl:value-of select="normalize-space(string(@varname))" /><![CDATA[]]>
</xsl:otherwise>
</xsl:choose><xsl:text>: </xsl:text>
<![CDATA[]]><xsl:value-of select="normalize-space(string(value_caption))" /><![CDATA[]]>
<!-- bei Mehrfachauswahl keine Einschränkung auf 50 Zeichen sinnvoll
<xsl:if test="string-length(wert/caption) &lt; 50">
<![CDATA[]]><xsl:value-of select="normalize-space(string(value_caption))" /><![CDATA[]]>
</xsl:if>
<xsl:if test="string-length(wert/caption) &gt; 49">
<![CDATA[]]><xsl:value-of select="substring(value_caption,0,50)" /><![CDATA[]]><xsl:text>...</xsl:text>
</xsl:if>-->
<xsl:if test="sicht!=''">
<![CDATA[]]><xsl:text> (</xsl:text><xsl:value-of select="sicht" />
<xsl:if test="@stand!=''"><xsl:text> - Stand:</xsl:text><xsl:value-of select="@stand"/></xsl:if>
<xsl:text>)</xsl:text><![CDATA[]]>
</xsl:if>
<xsl:text>; </xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>User: </xsl:text><xsl:value-of select="/ergebnisse/user" />
<xsl:text>; Stand: </xsl:text><xsl:value-of select="../stand" />
</xls_cell>
</xls_row>
<xsl:if test="../hinweis!=''">
<xls_row height="1000"><xls_cell style="legende"><xsl:value-of select="../hinweis"/></xls_cell></xls_row>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Loading…
Cancel
Save