From 73d917081a4e51e48685bda956536c7fd903ce8a Mon Sep 17 00:00:00 2001 From: Daniel Quathamer Date: Tue, 4 Jul 2023 16:35:48 +0200 Subject: [PATCH] =?UTF-8?q?Prim=C3=A4rkosten=20xcube,=20Megrekonflikt=20St?= =?UTF-8?q?udierende=20behoben=20#1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-modules/module/xcube/conf/xcube.xml | 14 +- .../module/xcube/masken/21000_felderinfo.unl | 45 +++--- .../module/xcube/masken/21000_maskeninfo.unl | 2 +- .../module/xcube/masken/21500_felderinfo.unl | 27 ++-- .../xcube/masken/21500_masken_felder_bez.unl | 3 + .../module/xcube/masken/21500_maskeninfo.unl | 142 +++++++++++++----- .../schluesseltabellen/xcube_install.sql | 2 +- .../xcube_install_restrictions.sql | 3 +- 8 files changed, 162 insertions(+), 76 deletions(-) diff --git a/src-modules/module/xcube/conf/xcube.xml b/src-modules/module/xcube/conf/xcube.xml index cecda59..260ad8b 100644 --- a/src-modules/module/xcube/conf/xcube.xml +++ b/src-modules/module/xcube/conf/xcube.xml @@ -2,7 +2,7 @@ - +
Primärschlüssel nur nachrichtlicher Schlüssel für den Würfel @@ -13,7 +13,7 @@ (where-Bedingung) des Würfels
- +
Primärschlüssel tid der Würfelmaske @@ -26,7 +26,7 @@ Sortierung für das Auswahlfeld Kennzahl
- +
Primärschlüssel Nummer der Würfelmaske @@ -67,7 +67,7 @@
- +
ID für die Art der Dimension Einzelner Schlüssel @@ -183,6 +183,12 @@ parent="xCubes">Abfragen zur Administration von xCubes POSTGRES + + + $XCUBE_PFAD/masken + POSTGRES + + diff --git a/src-modules/module/xcube/masken/21000_felderinfo.unl b/src-modules/module/xcube/masken/21000_felderinfo.unl index 705685f..06e1894 100644 --- a/src-modules/module/xcube/masken/21000_felderinfo.unl +++ b/src-modules/module/xcube/masken/21000_felderinfo.unl @@ -1,8 +1,8 @@ 21000^Köpfe oder Fälle ?^0^0^0^140^150^1^sql^70^0^1^<> select apnr, eintrag from koepfe_oder_faelle where eintrag not like 'gewichtet nach%' order by 2^apnr, eintrag^<> select apnr, eintrag from koepfe_oder_faelle where eintrag='Köpfe';^ 21001^Seit Semester^3^0^0^140^80^1^integer^30^0^1^<> select tid, eintrag from semester order by tid DESC;^Eintrag^<> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^ -21002^Stichtag^1^350^-1^140^100^1^sql^30^0^1^<> select tid, name from sos_stichtag where stichtagsart='Studierende';^^<> select tid, name from sos_stichtag where stichtagsart='Studierende' and appl_key='0';^ -21003^Staatsangehörigkeit^36^0^0^130^150^10^char^30^0^12^<> select tid,name,sortnr from sichten where art='SOS-Staaten-Sicht' order by 3,2;^^^ -21004^Status^14^350^-1^140^180^1^sql^30^0^1^<> select apnr,eintrag from sos_status order by 2^^<> select apnr,eintrag from sos_status where eintrag='Alle ohne Beurl.';^ +21002^Stichtag^1^350^-1^140^100^1^sql^30^0^1^<> select tid, name from sos_stichtag where stichtagsart='Studierende';^ ^<> select tid, name from sos_stichtag where stichtagsart='Studierende' and appl_key='0';^ +21003^Staatsangehörigkeit^36^0^0^130^150^10^char^30^0^12^<> select tid,name,sortnr from sichten where art='SOS-Staaten-Sicht' order by 3,2;^ ^ ^ +21004^Status^14^350^-1^140^180^1^sql^30^0^1^<> select apnr,eintrag from sos_status order by 2^ ^<> select apnr,eintrag from sos_status where eintrag='Alle ohne Beurl.';^ 21005^Hörerstatus^33^0^0^140^170^1^sql^30^0^1^<> select apnr, eintrag from hoererstatus order by 2^apnr, eintrag^<> select apnr, eintrag from hoererstatus where eintrag='alle';^ 21006^Weitere Tabellen^123^0^0^140^140^10^char^30^0^999^<> \ --freemarker template\ @@ -10,11 +10,12 @@ select name,string_not_null(caption) || ' - ' || name from sx_tables where name <#if <>!='tabelle_html_datenblatt.xsl'>\ and name in (select distinct tablename from stylesheet_field where stylesheet_id in (select tid from sx_stylesheets where filename=<>)) \ \ -order by 2^^^ -21007^bis Fachsemester^35^350^-1^140^100^1^integer^30^0^0^^^^ +order by 2^ ^ ^ +21007^bis Fachsemester^35^350^-1^140^100^1^integer^30^0^0^^ ^ ^ +21008^Fächer^8^0^0^130^150^10^char^30^0^12^<> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^ 21009^Bis Semester^4^350^-1^140^80^1^integer^30^0^1^<> select tid, eintrag from semester order by tid DESC;^Eintrag^<> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^ -21010^Filter Studierende^119^0^0^140^150^1^sql^20^0^1^<> SELECT id,caption from sx_repository where aktiv =1 and today() between gueltig_seit and gueltig_bis and art='SOS_STUD_FILTER' order by 2;^^^ -21011^Geschlecht^37^0^0^140^80^1^integer^30^0^1^<> SELECT apnr,druck FROM cif where key = 9003 and apnr between 1 and 4 order by 1;^^^ +21010^Filter Studierende^119^0^0^140^150^1^sql^20^0^1^<> SELECT id,caption from sx_repository where aktiv =1 and today() between gueltig_seit and gueltig_bis and art='SOS_STUD_FILTER' order by 2;^ ^ ^ +21011^Geschlecht^37^0^0^140^80^1^integer^30^0^1^<> SELECT apnr,druck FROM cif where key = 9003 and apnr between 1 and 4 order by 1;^ ^ ^ 21012^Felder^125^0^0^150^190^10^char^30^0^999^<>\ --freemarker template\ select trim(F.table_name) || '.' || F.name,trim(T.caption) || ':' || trim(F.caption) || ' - ' || trim(F.name) from sx_fields F,\ @@ -30,23 +31,23 @@ and apnr=1)) \ and trim(F.table_name) || '.' || F.name in (select trim(tablename)||'.'||trim(fieldname) from stylesheet_field where stylesheet_id in \ (select tid from sx_stylesheets where filename=<>))\ \ - order by 2;^^^ -21013^Studiengang^6^0^0^140^150^50^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('SOS-Kostenstellen-Sicht', 'SOS-Studiengang-Sicht') order by 3,2;^^^ -21014^Schlüssel anzeigen^150^0^0^100^100^1^integer^30^1^999^<> select 1,'Ja' from xdummy union select 0,'Nein' from xdummy^^<> select 1,'Ja' from xdummy^ -21015^Ansicht in Ergebniszeilen^121^0^0^100^200^1^char^200^1^1^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_rowdim=1 order by 2^^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_rowdefault=1^ -21016^Ansicht in Ergebnisspalten^2001^0^0^100^150^1^char^200^1^1^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_coldim=1 order by 2^^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_coldefault=1^ -21017^Zivilstatus^41^350^-1^140^180^1^sql^30^0^13^<> select attributevalue from personattribute_value_list where personattributetype_id = (select personattributetype_id from personattributetype where attributevalue = 'Status');^^^ -21018^Jahrgang^42^350^-1^140^180^1^sql^30^0^13^<> select attributevalue from personattribute_value_list where personattributetype_id = (select personattributetype_id from personattributetype where attributevalue = 'Jahrgang');^^^ + order by 2;^ ^ ^ +21013^Studiengang^6^0^0^140^150^50^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('SOS-Kostenstellen-Sicht', 'SOS-Studiengang-Sicht') order by 3,2;^ ^ ^ +21014^Schlüssel anzeigen^150^0^0^100^100^1^integer^30^1^999^<> select 1,'Ja' from xdummy union select 0,'Nein' from xdummy^ ^<> select 1,'Ja' from xdummy^ +21015^Ansicht in Ergebniszeilen^121^0^0^100^200^1^char^200^1^1^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_rowdim=1 order by 2^ ^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_rowdefault=1^ +21016^Ansicht in Ergebnisspalten^2001^0^0^100^150^1^char^200^1^1^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_coldim=1 order by 2^ ^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_coldefault=1^ +21017^Zivilstatus^41^350^-1^140^180^1^sql^30^0^13^<> select attributevalue from personattribute_value_list where personattributetype_id = (select personattributetype_id from personattributetype where attributevalue = 'Status');^ ^ ^ +21018^Jahrgang^42^350^-1^140^180^1^sql^30^0^13^<> select attributevalue from personattribute_value_list where personattributetype_id = (select personattributetype_id from personattributetype where attributevalue = 'Jahrgang');^ ^ ^ 21019^Leere Zeilen ausblenden^130^350^-1^140^80^1^char^30^0^1^<> select 'ja','ja' from xdummy union select 'nein','nein' from xdummy^ ^<> select 'ja','ja' from xdummy^ -21020^Leere Spalten ausblenden^2020^0^0^100^100^1^char^30^0^1^<> select 'ja','ja' from xdummy union select 'nein','nein' from xdummy^^<> select 'ja','ja' from xdummy^ -21021^Abschluss^7^0^0^140^170^5^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('SOS-Abschluss-Sicht') order by 3,2;^^^ +21020^Leere Spalten ausblenden^2020^0^0^100^100^1^char^30^0^1^<> select 'ja','ja' from xdummy union select 'nein','nein' from xdummy^ ^<> select 'ja','ja' from xdummy^ +21021^Abschluss^7^0^0^140^170^5^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('SOS-Abschluss-Sicht') order by 3,2;^ ^ ^ 21022^Kennzahl^3000^350^-1^150^180^1^integer^200^1^1^<> select tid,name from xcube_kennzahl where maskeninfo_id=${Maskennummer} order by sortnr,name;^hidden^<> select tid,name from xcube_kennzahl where maskeninfo_id=${Maskennummer} and is_default=1^ 21023^2.Ansicht in Zeilen^125^0^0^100^100^1^char^50^0^999^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_secondrowdim=1 order by 1^hidden^1^ -21024^Wohnort^38^0^0^140^80^1^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('XCUBE-Wohnort-Sicht') order by 3,2;^^^ -21025^Alter^39^0^0^140^80^1^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('XCUBE-Alter-Sicht') order by 3,2;^^^ -21026^HZB-Note^40^0^0^140^80^1^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('XCUBE-HZB-Note-Sicht') order by 3,2;^^^ -21027^Hörerstatus (intern)^43^0^0^140^80^1^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('XCUBE-Hörerstatus-Sicht') order by 3,2;^^^ +21024^Wohnort^38^0^0^140^80^1^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('XCUBE-Wohnort-Sicht') order by 3,2;^ ^ ^ +21025^Alter^39^0^0^140^80^1^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('XCUBE-Alter-Sicht') order by 3,2;^ ^ ^ +21026^HZB-Note^40^0^0^140^80^1^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('XCUBE-HZB-Note-Sicht') order by 3,2;^ ^ ^ +21027^Hörerstatus (intern)^43^0^0^140^80^1^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('XCUBE-Hörerstatus-Sicht') order by 3,2;^ ^ ^ 21028^Spaltenvisualisierung^10000^0^0^140^80^1^char^30^0^1^<> select '_graph','Balken (horiz. linksb.)' from xdummy\ union select '_graphbarright','Balken (horiz. rechtsb.)' from xdummy\ -union select '_graphbaralternating','Balken (horiz. rechtsb./linksb.)' from xdummy^^^ -21029^Zeilenfilter bis Ebene^140^0^0^140^10^1^integer^30^0^0^ ^^^ +union select '_graphbaralternating','Balken (horiz. rechtsb./linksb.)' from xdummy^ ^ ^ +21029^Zeilenfilter bis Ebene^140^0^0^140^10^1^integer^30^0^0^^ ^ ^ diff --git a/src-modules/module/xcube/masken/21000_maskeninfo.unl b/src-modules/module/xcube/masken/21000_maskeninfo.unl index 0caf871..933cab8 100644 --- a/src-modules/module/xcube/masken/21000_maskeninfo.unl +++ b/src-modules/module/xcube/masken/21000_maskeninfo.unl @@ -433,4 +433,4 @@ Column CID=1 heading_text="${spalte.name}" center_heading\ width=12\ \ @@@^Altersgruppe^Anzahl^Dynamische Darstellung von Studierendenzahlen^drop table tmp_erg;\ -drop table tmp_cellmax;^ ^3^700^360^0^1^ ^ +drop table tmp_cellmax;^^3^700^360^^1^^ diff --git a/src-modules/module/xcube/masken/21500_felderinfo.unl b/src-modules/module/xcube/masken/21500_felderinfo.unl index b50426d..c4c3dc8 100644 --- a/src-modules/module/xcube/masken/21500_felderinfo.unl +++ b/src-modules/module/xcube/masken/21500_felderinfo.unl @@ -1,13 +1,18 @@ -21500^Geldgeber^9^300^-1^100^100^1^char^30^0^12^<>select tid,type,name,sortnr from sichten where art ='Geldgeber-Sicht (COB)' and aktiv=1 order by sortnr,type,name;^^ ^ -21501^Kostenstelle^0^0^0^100^250^1^char^4^0^12^<> select tid,type,name from sichten where art='Kostenstellen-Sicht' and aktiv=1 order by type,name^^^ -21502^Haushaltsjahr^10^0^0^100^50^1^integer^30^0^1^<> SELECT distinct ord,name FROM aggregierung where kategorie='COB-Jahr' order by 1;^^<> SELECT ord,name FROM aggregierung where kategorie='COB-Jahr' and ord=year(today()) ;^ -21503^Zeitraum^20^300^-1^100^100^1^sql^30^0^1^<> select wert, name from aggregierung where kategorie = 'ZeitraumCob';^^^ -21504^Kostenarten^1^0^0^100^250^1^char^30^0^12^<> select tid,type,name from sichten where art='Kosten-/Erlösarten-Sicht' and aktiv=1 order by type,name^^^ -21505^Monat von^30^0^0^100^100^1^integer^30^0^1^<> select ord,name from aggregierung where kategorie = 'ZeitraumCob' and ord <=13 order by 1;^^^ -21506^Monat bis^40^300^-1^100^100^1^integer^30^0^1^<> select ord,name from aggregierung where kategorie = 'ZeitraumCob' and ord <=13 order by 1;^^^ -21507^Ansicht in Ergebniszeilen^1000^0^0^100^200^1^char^200^1^1^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_rowdim=1 order by 2^^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_rowdefault=1^ -21508^Ansicht in Ergebnisspalten^1020^0^0^100^150^1^char^200^1^1^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_coldim=1 order by 2^^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_coldefault=1^ +21500^Geldgeber^9^300^-1^100^100^1^char^30^0^12^<>select tid,type,name,sortnr from sichten where art ='Geldgeber-Sicht (COB)' and aktiv=1 order by sortnr,type,name;^ ^ ^ +21501^Kostenstelle^0^0^0^100^250^1^char^4^0^12^<> select tid,type,name from sichten where art='Kostenstellen-Sicht' and aktiv=1 order by type,name^ ^ ^ +21502^Jahr von^10^0^0^100^50^1^integer^30^0^1^<> SELECT distinct ord,name FROM aggregierung where kategorie='COB-Jahr' order by 1;^ ^<> SELECT ord,name FROM aggregierung where kategorie='COB-Jahr' and ord=year(today()) ;^ +21503^Zeitraum^20^300^-1^100^100^1^sql^30^0^1^<> select wert, name from aggregierung where kategorie = 'ZeitraumCob' order by 2;^ ^ ^ +21504^Kostenarten^1^0^0^100^250^1^char^30^0^12^<> select tid,type,name from sichten where art='Kosten-/Erlösarten-Sicht' and aktiv=1 order by type,name^ ^ ^ +21505^Monat von^30^0^0^100^100^1^integer^30^0^1^<> select ord,name from aggregierung where kategorie = 'ZeitraumCob' and ord <=13 order by 1;^ ^ ^ +21506^Monat bis^40^300^-1^100^100^1^integer^30^0^1^<> select ord,name from aggregierung where kategorie = 'ZeitraumCob' and ord <=13 order by 1;^ ^ ^ +21507^Ansicht in Ergebniszeilen^1000^0^0^100^200^1^char^200^1^1^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_rowdim=1 order by 2^ ^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_rowdefault=1^ +21508^Ansicht in Ergebnisspalten^1020^0^0^100^150^1^char^200^1^1^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_coldim=1 order by 2^ ^<> select name,caption from xcube_dimconfig where maskeninfo_id=${Maskennummer} and is_coldefault=1^ 21509^Leere Zeilen ausblenden^1010^350^-1^140^80^1^char^30^0^1^<> select 'ja','ja' from xdummy union select 'nein','nein' from xdummy^ ^<> select 'ja','ja' from xdummy^ -21510^Leere Spalten ausblenden^1030^0^0^100^100^1^char^30^0^1^<> select 'ja','ja' from xdummy union select 'nein','nein' from xdummy^^<> select 'ja','ja' from xdummy^ +21510^Leere Spalten ausblenden^1030^0^0^100^100^1^char^30^0^1^<> select 'ja','ja' from xdummy union select 'nein','nein' from xdummy^ ^<> select 'ja','ja' from xdummy^ 21511^Kennzahl^1050^350^-1^150^180^1^integer^200^1^1^<> select tid,name from xcube_kennzahl where maskeninfo_id=${Maskennummer} order by sortnr,name;^hidden^<> select tid,name from xcube_kennzahl where maskeninfo_id=${Maskennummer} and is_default=1^ -21512^Kostenträger^5^0^0^100^250^1^char^30^0^12^<> select tid,type,name from sichten where art='Kostenträger-Sicht' and aktiv=1 order by type,name^^^ +21512^Kostenträger^5^0^0^100^250^1^char^30^0^12^<> select tid,type,name from sichten where art='Kostenträger-Sicht' and aktiv=1 order by type,name^ ^ ^ +21513^Jahr bis^15^0^0^150^50^1^integer^4^0^1^<>SELECT distinct ord,name FROM aggregierung where kategorie='COB-Jahr' order by 1;^^<> SELECT ord,name FROM aggregierung where kategorie='COB-Jahr' and ord=year(today()) ;^ +21514^Spaltenvisualisierung^1500^0^0^140^80^1^char^30^0^1^<> select '_graph','Balken (horiz. linksb.)' from xdummy\ +union select '_graphbarright','Balken (horiz. rechtsb.)' from xdummy\ +union select '_graphbaralternating','Balken (horiz. rechtsb./linksb.)' from xdummy^^^ +21515^Zeilenfilter bis Ebene^1400^0^0^140^10^1^integer^30^0^0^ ^^^ diff --git a/src-modules/module/xcube/masken/21500_masken_felder_bez.unl b/src-modules/module/xcube/masken/21500_masken_felder_bez.unl index c7a412b..45083f7 100644 --- a/src-modules/module/xcube/masken/21500_masken_felder_bez.unl +++ b/src-modules/module/xcube/masken/21500_masken_felder_bez.unl @@ -11,3 +11,6 @@ 21500^21510^ 21500^21511^ 21500^21512^ +21500^21513^ +21500^21514^ +21500^21515^ diff --git a/src-modules/module/xcube/masken/21500_maskeninfo.unl b/src-modules/module/xcube/masken/21500_maskeninfo.unl index da812fe..a98b09a 100644 --- a/src-modules/module/xcube/masken/21500_maskeninfo.unl +++ b/src-modules/module/xcube/masken/21500_maskeninfo.unl @@ -1,40 +1,61 @@ -21500^Primärbuchungswürfel^--freemarker template\ +21500^Primärkosten/Erlöse XCUBE^--freemarker template\ -- Maskenfelder -Leere Zeilen ausblenden, leere SPalten ausblenden?\ \ select table_name from xcube where maskeninfo_id=${Maskennummer}\ select aggrfunction from xcube_kennzahl where maskeninfo_id=${Maskennummer} and tid=<>\ -select nvl(restriction,''::char(1)) from xcube_kennzahl where maskeninfo_id=${Maskennummer} and tid=<>\ -select nvl(datatype,'decimal(17,2)'::varchar(30)) from xcube_kennzahl where maskeninfo_id=${Maskennummer} and tid=<>\ ---benoetigt falls Kennzahlen in Zeilen oder Splaten\ -select apnr,aggrfunction,nvl(restriction,''::char(1)) as restriction from xcube_kennzahl where maskeninfo_id=${Maskennummer}\ +select nvl(restriction,''::char(1)) from xcube_kennzahl \ +where maskeninfo_id=${Maskennummer} and tid=<>\ +\ +select nvl(datatype,'decimal(17,2)'::varchar(30)) from xcube_kennzahl \ +where maskeninfo_id=${Maskennummer} and tid=<>\ +--benoetigt falls Kennzahlen in Zeilen oder Spalten\ +select apnr,aggrfunction,\ +nvl(restriction,''::char(1)) as restriction \ +from xcube_kennzahl where maskeninfo_id=${Maskennummer}\ select restriction from xcube where maskeninfo_id=<>]]>\ ->]]>\ \ \ -select distinct ${coldef.foreignkey_col} as apnr,${coldef.foreignkey_cap} as name,\ -1::smallint as detailgesamtsort,${coldef.sortfield} as tmp_sortfield\ +select distinct ${coldef.foreignkey_col} as apnr,\ +${coldef.foreignkey_cap} as name,\ +1::smallint as detailgesamtsort,\ +${coldef.sortfield} as tmp_sortfield\ from ${coldef.foreignkey_tab} where \ 1=1 \ <#if coldef.foreignkey_cond!=''> and ${coldef.foreignkey_cond} \ --{coldef.specific_restriction} \ ---ausblenden von Spalten, die gar nicht in konkretem Teilergebnis vorkommen, geht derzeit nicht für virtuelle Spalten, -> Kernmodul\ -<#if coldef.is_virtual?number=0&&"<>"="'ja'">\ +--ausblenden von Spalten, die gar nicht in konkretem Teilergebnis vorkommen, geht derzeit nicht für virtuelle Spalten und nachbearbeitung, -> Kernmodul\ +<#if coldef.is_virtual?number=0&&coldef.attrib_nachbearbeitung=''&&"<>"="'ja'">\ and ${coldef.foreignkey_col}::varchar(255) in (select distinct ${coldef.name}::varchar(255) from ${table_name} where \ ${restriction} \ )\ \ <#if coldef.calc_gesamt?number=1> \ union\ -select 'gesamt','Gesamt',2::smallint as detailgesamtsort,null as tmp_sortfield from xdummy\ +select 'gesamt','Gesamt',\ +2::smallint as detailgesamtsort,\ +null as tmp_sortfield from xdummy\ \ -order by detailgesamtsort,tmp_sortfield,name;\ +order by detailgesamtsort,\ +tmp_sortfield,\ +name;\ <#else>\ select 'Sichtspalten aktiv' from xdummy;\ \ @@ -52,8 +73,11 @@ from xcube_dimconfig C where maskeninfo_id=${Maskennummer} and name=<\ -select 1::smallint as level, ${rowdef.foreignkey_col}::varchar(255) as key,--hier wird zur Vereinheitlichung mit Sichten Bezeichung "key" für eigentlichen Schluessel benoetigt\ -${rowdef.foreignkey_cap} as name,${rowdef.sortfield} as tmp_sortfield from ${rowdef.foreignkey_tab}\ +select 1::smallint as level, \ +${rowdef.foreignkey_col}::varchar(255) as key,--hier wird zur Vereinheitlichung mit Sichten Bezeichung "key" für eigentlichen Schluessel benoetigt\ +${rowdef.foreignkey_cap} as name,\ +${rowdef.sortfield} as tmp_sortfield \ +from ${rowdef.foreignkey_tab}\ where 1=1\ <#if rowdef.foreignkey_cond!=''> and ${rowdef.foreignkey_cond} \ --{rowdef.specific_restriction} \ @@ -69,7 +93,12 @@ select 'nicht relevant' from xdummy;\ \ >"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">\ -select name,caption,is_sicht,calc_gesamt,foreignkey_tab,foreignkey_col,foreignkey_cap,\ +select name,caption,\ +is_sicht,\ +calc_gesamt,\ +foreignkey_tab,\ +foreignkey_col,\ +foreignkey_cap,\ nvl(foreignkey_cond,''::varchar(1)) as foreignkey_cond,\ --nvl(C.specific_restriction,''::varchar(1)) as specific_restriction,\ C.sortfield\ @@ -82,8 +111,11 @@ select 'keine zweite RowDef' from xdummy;\ --nur bei wenn Ergzeilen_def nicht vom Typ Sicht relevant\ >"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>"&&zweiteRowDef.is_sicht=0>\ -select 1::smallint as level, ${zweiteRowDef.foreignkey_col}::varchar(255) as key,--hier wird zur Vereinheitlichung mit Sichten Bezeichung "key" für eigentlichen Schluessel benoetigt\ -${zweiteRowDef.foreignkey_cap} as name,${zweiteRowDef.sortfield} as tmp_sortfield from ${zweiteRowDef.foreignkey_tab}\ +select 1::smallint as level, \ +${zweiteRowDef.foreignkey_col}::varchar(255) as key,--hier wird zur Vereinheitlichung mit Sichten Bezeichung "key" für eigentlichen Schluessel benoetigt\ +${zweiteRowDef.foreignkey_cap} as name,\ +${zweiteRowDef.sortfield} as tmp_sortfield \ +from ${zweiteRowDef.foreignkey_tab}\ where 1=1\ <#if zweiteRowDef.foreignkey_cond!=''> and ${zweiteRowDef.foreignkey_cond} \ --{zweiteRowDef.specific_restriction} \ @@ -109,6 +141,13 @@ select 'nicht relevant' from xdummy;\ --TODO auch 2. Dimension in Zeilen/Spalten\ <#if coldef.is_virtual?number=1||rowdef.is_virtual?number=1> <#return 1><#else> return <#return 0> \ \ +<#assign graph_col= "col" />\ +/* <#assign graph_col=<> /> */\ +\ +create temp table tmp_cellmax (maxvalue ${datatype} );\ +insert into tmp_cellmax values(0);\ +\ +\ \ \ <#if hasVirtualColumns()=1||kennzahlInRowOrCol()=1>\ @@ -148,7 +187,7 @@ create index ix_tmp_roh1 on tmp_cache (colattrib,rowattrib,row2attrib);\ \ --moegliche attrib_nachbearbeitung\ <#if kennzahlInRowOrCol()=0> \ -<#assign tmp_table="tmp_cache"/> <#assign rowfield="rowattrib"/> <#assign colfield="rowattrib"/> \ +<#assign tmp_table="tmp_cache"/> <#assign rowfield="rowattrib"/> <#assign colfield="colattrib"/> \ <#else>\ <#assign tmp_table="tmp_rohdaten"/> <#assign rowfield=rowdef.name/> <#assign colfield=coldef.name/> \ \ @@ -205,6 +244,7 @@ create index ix_tmp_erg on tmp_erg (sortnr);\ \ \ <#else>\ + /* <#if zeile.level <= <> > */\ <#assign sortnr=sortnr+1/>\ insert into tmp_erg (ebene,col1,name,sortnr)\ values (${zeile.level},'${zeile.key}','${zeile.name}',${sortnr});\ @@ -213,6 +253,7 @@ create index ix_tmp_erg on tmp_erg (sortnr);\ <#assign i=i+1/>\ <@updateval i=i col=spalte row=zeile row2='' sortnr=sortnr/>\ \ +/* --<> */\ \ \ \ @@ -268,8 +309,9 @@ update tmp_erg T set c${i}=\ <#macro colrestriction col colattribname='R.colattrib'>\ <#if coldef.is_sicht==1>\ and ${colattribname}::varchar(255) in ${col.subkeys}\ +<#elseif coldef.is_sicht=2>\ + and (${col.strukturStr?replace('$1',' '+colattribname+"::varchar(255)")}) \ <#else>\ ---TODO Sicht=2\ <#if col.apnr!='gesamt'>\ and ${colattribname}::varchar(255)='${col.apnr}' \ \ @@ -298,6 +340,21 @@ drop table if exists tmp_rohdaten;\ update tmp_erg set c${i}=0 where c${i} is null; \ \ \ +<#assign lastcol=i />\ +\ +--Wenn Grafikfunktion eingeschaltet ist, wird Maximalwert ermittelt:\ +<#if i != 0 && graph_col != "col" >\ +\ +<#assign i=0/>\ + <#foreach spalte in ergspalten>\ + <#assign i=i+1/>\ + <#if i == lastcol>\ + update tmp_cellmax set maxvalue = (select max(c${i}) from tmp_erg) \ + where tmp_cellmax.maxvalue < (select max(c${i}) from tmp_erg) ;\ + \ +\ +\ +\ <#if "<>"="'ja'">\ delete from tmp_erg where\ <#assign i=0/>\ @@ -306,7 +363,7 @@ delete from tmp_erg where\ c${i}=0 <#if spalte_has_next> and \ ;\ \ -<#if "<>"="'institution'">\ +<#if "<>"="'ch110_institut'">\ update tmp_erg set name=replace(name,col1||' - ','');\ update tmp_erg set col1=(select max(uniquename) from organigramm where col1=trim(key_apnr))\ where substring(col1 from 1 for 1)='_';\ @@ -318,21 +375,36 @@ update tmp_erg set name=replace(name,col1||' - ','');\ \ \ select \ - <#if rowdef.is_sicht>0>ebene,col1,\ -name,\ + <#if rowdef.is_sicht>0>\ + <#if graph_col=="col">\ + ebene,\ + <#else>\ + ebene as level, --bei Grafiken keine Ebenenanzeige\ + \ + \ +name\ <#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">col2,\ <#assign i=0/>\ <#foreach spalte in ergspalten>\ <#assign i=i+1/>\ -c${i}::${datatype} <#if spalte_has_next>,\ -\ +<#if i != lastcol && graph_col != "col" >\ +<#if graph_col == "_graphbaralternating">\ +--bei symmetr. Balken jeder 2. Balken rechtsbündig\ + <#if i % 2 == 0>\ + , '' || c${i}::${datatype} || '|' || tmp_cellmax.maxvalue as _graph${i}\ + <#else>\ + , '' || c${i}::${datatype} || '|' || tmp_cellmax.maxvalue as _graphbarright${i}\ + \ +<#else>\ +, '' || c${i}::${datatype} || '|' || tmp_cellmax.maxvalue as ${graph_col}${i}\ +\ \ -from tmp_erg order by sortnr;^--freemarker Template\ -XIL List\ - sizable_columns horizontal_scrolling\ - drop_and_delete movable_columns\ - white_space_color=COLOR_WHITE fixed_columns=1\ - min_heading_height=35\ +<#else>\ +, c${i}::${datatype} as col${i}\ +\ +\ +\ +from tmp_erg, tmp_cellmax order by sortnr;^--freemarker Template\ XIL List\ sizable_columns horizontal_scrolling\ drop_and_delete movable_columns\ @@ -342,9 +414,6 @@ XIL List\ Column CID=0 heading_text="Ebene" center_heading\ row_selectable heading_platform readonly\ width=10 text_size=8\ -Column CID=20 heading_text="${.vars["Ansicht in ErgebniszeilenObject"].selectedItems[0].name}Nr" center_heading\ - row_selectable heading_platform readonly\ - width=10 text_size=10\ \ Column CID=20 heading_text="${.vars["Ansicht in ErgebniszeilenObject"].selectedItems[0].name}" center_heading\ row_selectable heading_platform readonly\ @@ -366,4 +435,5 @@ Column CID=1 heading_text="${spalte.name}" center_heading\ \ \ \ -@@@^^^Dynamische Auswertungen von Primärbuchungen^drop table tmp_erg;^^2^600^400^0^1^^ +@@@^ ^ ^Dynamische Auswertungen von Primärbuchungen^drop table tmp_erg;\ +drop table tmp_cellmax;^^2^600^400^^1^^ diff --git a/src-modules/module/xcube/schluesseltabellen/xcube_install.sql b/src-modules/module/xcube/schluesseltabellen/xcube_install.sql index 1d31656..dea1e94 100644 --- a/src-modules/module/xcube/schluesseltabellen/xcube_install.sql +++ b/src-modules/module/xcube/schluesseltabellen/xcube_install.sql @@ -53,7 +53,7 @@ "sortnr":1}, { "maskeninfo_id":21500, "apnr":"kosten", - "name":"Kosten", + "name":"Kosten/Erlöse", "aggrfunction":"sum(betrag*kokl_faktor)", "restriction":"", "is_default":1, diff --git a/src-modules/module/xcube/schluesseltabellen/xcube_install_restrictions.sql b/src-modules/module/xcube/schluesseltabellen/xcube_install_restrictions.sql index a329f09..18f0aa6 100644 --- a/src-modules/module/xcube/schluesseltabellen/xcube_install_restrictions.sql +++ b/src-modules/module/xcube/schluesseltabellen/xcube_install_restrictions.sql @@ -68,7 +68,8 @@ update xcube set restriction='<> update xcube set restriction=' (bukz!=''PE'' or bukz is null) - /* and jahr=<> */ + /* and jahr >= <> */ + /* and jahr <= <> */ and fikrkey in <@printkeys Kostenarten.allNeededKeys /> and ch110_institut in <@printkeys Kostenstelle.allNeededKeys/> /* AND <> */