diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..15976dd --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +superx/WEB-INF/conf/edustore/db/module/xcube/ +# module generation artifacts for module xcube +src/edustore/edustore_xcube.xml +superx/WEB-INF/xcube_dbforms-config_ids.xml +superx/WEB-INF/xcube_dbforms-config_pg.xml + + diff --git a/src-modules/module/xcube/masken/21000_felderinfo.unl b/src-modules/module/xcube/masken/21000_felderinfo.unl index 5b6d0e7..705685f 100644 --- a/src-modules/module/xcube/masken/21000_felderinfo.unl +++ b/src-modules/module/xcube/masken/21000_felderinfo.unl @@ -49,3 +49,4 @@ and trim(F.table_name) || '.' || F.name in (select trim(tablename)||'.'||trim(fi 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^ ^^^ diff --git a/src-modules/module/xcube/masken/21000_masken_felder_bez.unl b/src-modules/module/xcube/masken/21000_masken_felder_bez.unl index a7243d0..e7a8229 100644 --- a/src-modules/module/xcube/masken/21000_masken_felder_bez.unl +++ b/src-modules/module/xcube/masken/21000_masken_felder_bez.unl @@ -27,3 +27,4 @@ 21000^21026^ 21000^21027^ 21000^21028^ +21000^21029^ diff --git a/src-modules/module/xcube/masken/21000_maskeninfo.unl b/src-modules/module/xcube/masken/21000_maskeninfo.unl index 11764fb..0caf871 100644 --- a/src-modules/module/xcube/masken/21000_maskeninfo.unl +++ b/src-modules/module/xcube/masken/21000_maskeninfo.unl @@ -242,6 +242,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});\ @@ -250,6 +251,7 @@ create index ix_tmp_erg on tmp_erg (sortnr);\ <#assign i=i+1/>\ <@updateval i=i col=spalte row=zeile row2='' sortnr=sortnr/>\ \ +/* --<> */\ \ \ \ diff --git a/src-modules/module/xcube/masken/21100_felderinfo.unl b/src-modules/module/xcube/masken/21100_felderinfo.unl index 754b0e3..fb6329f 100644 --- a/src-modules/module/xcube/masken/21100_felderinfo.unl +++ b/src-modules/module/xcube/masken/21100_felderinfo.unl @@ -47,3 +47,7 @@ and trim(F.table_name) || '.' || F.name in (select trim(tablename)||'.'||trim(fi 21125^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;^^^ 21126^Note^40^0^0^140^80^1^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('XCUBE-Note-Sicht') order by 3,2;^^^ 21127^Hörerstatus (intern)^43^0^0^140^80^1^char^30^0^999^<> select tid,name,sortnr from sichten where art in ('XCUBE-Hörerstatus-Sicht') order by 3,2;^^^ +21128^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^^^ +21129^Zeilenfilter bis Ebene^140^0^0^140^10^1^integer^30^0^0^ ^^^ diff --git a/src-modules/module/xcube/masken/21100_masken_felder_bez.unl b/src-modules/module/xcube/masken/21100_masken_felder_bez.unl index 5f31749..9ab1ad1 100644 --- a/src-modules/module/xcube/masken/21100_masken_felder_bez.unl +++ b/src-modules/module/xcube/masken/21100_masken_felder_bez.unl @@ -26,3 +26,5 @@ 21100^21125^ 21100^21126^ 21100^21127^ +21100^21128^ +21100^21129^ diff --git a/src-modules/module/xcube/masken/21100_maskeninfo.unl b/src-modules/module/xcube/masken/21100_maskeninfo.unl index b4647c2..e36cadf 100644 --- a/src-modules/module/xcube/masken/21100_maskeninfo.unl +++ b/src-modules/module/xcube/masken/21100_maskeninfo.unl @@ -141,6 +141,11 @@ 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>\ @@ -237,6 +242,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});\ @@ -245,6 +251,7 @@ create index ix_tmp_erg on tmp_erg (sortnr);\ <#assign i=i+1/>\ <@updateval i=i col=spalte row=zeile row2='' sortnr=sortnr/>\ \ +/* --<> */\ \ \ \ @@ -330,6 +337,21 @@ drop table if exists tmp_rohdaten;\ <#assign i=i+1/>\ 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 1=1\ @@ -355,12 +377,27 @@ select \ name\ <#if "<<2.Ansicht in Zeilen>>"!=""&&"<<2.Ansicht in Zeilen>>"!="<<2.Ansicht in Zeilen>>">,col2\ <#assign i=0/>\ +<#assign i=0/>\ <#foreach spalte in ergspalten>\ <#assign i=i+1/>\ -, c${i}::${datatype} \ -\ +<#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\ +<#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\ @@ -389,4 +426,5 @@ Column CID=1 heading_text="${spalte.name}" center_heading\ row_selectable heading_platform readonly explanation="Ausprägung ${spalte.name}"\ width=12\ \ -@@@^Altersgruppe^Anzahl^Dynamische Darstellung von Studierendenzahlen^drop table tmp_erg;^ ^3^700^360^0^1^ ^ +@@@^Altersgruppe^Anzahl^Dynamische Darstellung von Studierendenzahlen^drop table tmp_erg;\ +drop table tmp_cellmax;^ ^3^700^360^0^1^ ^