Browse Source

Anpassung Assistent für Echarts #11

master
Daniel Quathamer 13 hours ago
parent
commit
fb4946a290
  1. 1
      src-modules/module/viz/conf/includes.txt
  2. 171
      src-modules/module/viz/conf/viz.xml
  3. 13
      src-modules/module/viz/masken/44000_felderinfo.unl
  4. 2
      src-modules/module/viz/masken/44000_masken_felder_bez.unl
  5. 32
      src-modules/module/viz/masken/44000_maskeninfo.unl
  6. 111
      src-modules/module/viz/schluesseltabellen/customxmladd.sql
  7. 346
      src-modules/module/viz/schluesseltabellen/fm_templates.unl
  8. 15
      src-modules/module/viz/schluesseltabellen/fm_templates_fuellen.sql
  9. 11
      src-modules/module/viz/schluesseltabellen/fm_templates_unload.x
  10. 17
      src-modules/module/viz/schluesseltabellen/fm_templates_update.x
  11. 2
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_abgrp_dashboard_fuellen.sql
  12. 6
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_abgrp_fuellen.sql
  13. 2
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_bildungstyp_dashboard_fuellen.sql
  14. 2
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_bildungstyp_fuellen.sql
  15. 2
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_abschl_fach_fuellen.sql
  16. 4
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_dashboard_fuellen.sql
  17. 2
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_fuellen.sql
  18. 2
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_geschl_dashboard_fuellen.sql
  19. 2
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_geschl_fuellen.sql
  20. 2
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_la_fuellen.sql
  21. 433
      src-modules/module/viz/schluesseltabellen/viz_chart.unl
  22. 676
      src-modules/module/viz/schluesseltabellen/viz_properties_echarts_fuellen.sql
  23. 68
      src-modules/module/viz/schluesseltabellen/viz_properties_echarts_line_bar_fuellen.sql
  24. 55
      src-modules/module/viz/schluesseltabellen/viz_properties_echarts_line_bar_series_fuellen.sql
  25. 43
      src-modules/module/viz/schluesseltabellen/viz_properties_echarts_pie_fuellen.sql
  26. 1
      src-modules/module/viz/schluesseltabellen/viz_property_input_type.unl
  27. 31
      src-modules/module/viz/upgrade/viz_upgrade_man.sql
  28. 66
      superx/style/sx_treeform.css
  29. 268
      superx/xml/js/viz/viz_assistent.js
  30. 332
      superx/xml/js/viz/viz_viewer.js
  31. 66
      superx/xml/viz_components.xsl
  32. 160
      superx/xml/viz_html_chart.xsl

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

@ -11,6 +11,7 @@ images/information_grey_liberation.svg @@ -11,6 +11,7 @@ images/information_grey_liberation.svg
images/plus-circled.svg
images/minus-circled.svg
style/sx_viz_muster.css
style/sx_treeform.css
WEB-INF/conf/edustore/db/bin/SQL_ENV_viz.sam
WEB-INF/reports/44190_sub_0.jasper
WEB-INF/reports/44190_sub_0.jrxml

171
src-modules/module/viz/conf/viz.xml

@ -39,6 +39,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[VIZ]" /> @@ -39,6 +39,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[VIZ]" />
</indexes>
</table>
<table name="viz_property_input_type" thema="Visualisierungen" typ="Schlüsseltabelle"
releaseUnload="empty">
<description>Schlüsseltabelle für Dialogtypen von Visualisierungseigenschaften</description>
@ -216,34 +217,111 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[VIZ]" /> @@ -216,34 +217,111 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[VIZ]" />
<indexes>
</indexes>
</table>
<table name="viz_type_property" thema="Administration" typ="Schlüsseltabelle"
<!--<table name="viz_property_tree" thema="Administration" typ="Schlüsseltabelle"
releaseUnload="empty">
<description>Root Knoten für Eigenschaften von Visualisierungstypen</description>
<columns>
<column name="tid" type="SERIAL" size="" default="" notnull="true" description="tid" isKey="true"/>
<column name="viz_type_id" type="INTEGER" size="" default="" notnull="false" description="Diagrammtyp" isKey="true"/>
</columns>
<primaryKeys><rs>
<row>
<fld name='table_cat'>superx</fld>
<fld name='table_schem'>superx</fld>
<fld name='table_name'>viz_property_tree</fld>
<fld name='column_name'>tid</fld>
<fld name='key_seq'>1</fld>
<fld name='pk_name'>viz_property_tree_pk</fld>
</row>
</rs>
</primaryKeys>
<indexes>
</indexes>
</table>-->
<table name="viz_property_tree_node" thema="Administration" typ="Schlüsseltabelle"
releaseUnload="empty">
<description>Schlüsseltabelle für Hierarchien von Eigenschaften von Visualisierungstypen</description>
<columns>
<column name="tid" type="SERIAL" size="" default="" notnull="true" description="tid" isKey="true"/>
<column name="renderer_id" type="INTEGER" size="255" default="" notnull="" description="Renderer" isKey="true"/>-->
<column name="property_id" type="INTEGER" size="255" default="" notnull="" description="Eigenschaft der Visualisierung" isKey="true"/>
<column name="parent_property_id" type="INTEGER" size="255" default="" notnull="" description="Eigenschafts-Elternelement der Visualisierung" isKey="true"/>
<column name="sortnr" type="SMALLINT" size="255" default="0" notnull="false" description="Sortiernr." sortable="true" ><comment></comment></column>
<column name="is_mandatory" type="SMALLINT" size="255" default="0" notnull="false" description="Pflichteingabe" ><comment>1=ja, 0=nein</comment></column>
</columns>
<primaryKeys><rs>
<row>
<fld name='table_cat'>superx</fld>
<fld name='table_schem'>superx</fld>
<fld name='table_name'>viz_property_tree_node</fld>
<fld name='column_name'>tid</fld>
<fld name='key_seq'>1</fld>
<fld name='pk_name'>viz_property_tree_node_pk</fld>
</row>
</rs>
</primaryKeys>
<indexes>
</indexes>
</table>
<!--
<table name="viz_type_property_group" thema="Administration" typ="Schlüsseltabelle"
releaseUnload="empty">
<description>Schlüsseltabelle für Eigenschaften von Visualisierungstypen</description>
<columns>
<column name="tid" type="SERIAL" size="" default="" notnull="true" description="tid" isKey="true"/>
<column name="viz_type_id" type="INTEGER" size="" default="" notnull="false" description="Diagrammtyp" isKey="true"/>
<column name="viz_property_id" type="INTEGER" size="255" default="" notnull="" description="Eigenschaft der Visualisierung" isKey="true"/>
<column name="viz_property_group_id" type="INTEGER" size="255" default="" notnull="" description="Eigenschaftsgruppe der Visualisierung" isKey="true"/>
<column name="sortnr" type="SMALLINT" size="255" default="0" notnull="false" description="Sortiernr." sortable="true" ><comment></comment></column>
<column name="is_mandatory" type="SMALLINT" size="255" default="0" notnull="false" description="Pflichteingabe" ><comment>1=ja, 0=nein</comment></column>
</columns>
<primaryKeys><rs>
<row>
<fld name='table_cat'>superx</fld>
<fld name='table_schem'>superx</fld>
<fld name='table_name'>viz_type_property_group</fld>
<fld name='column_name'>tid</fld>
<fld name='key_seq'>1</fld>
<fld name='pk_name'>viz_type_property_group_pk</fld>
</row>
</rs>
</primaryKeys>
<indexes>
</indexes>
</table>
<table name="viz_chart_renderer" thema="Administration" typ="Schlüsseltabelle"
releaseUnload="empty">
<description>Schlüsseltabelle für Diagramme pro Renderer</description>
<columns>
<column name="tid" type="SERIAL" size="" default="" notnull="true" description="tid" isKey="true"/>
<column name="viz_type_id" type="INTEGER" size="" default="" notnull="false" description="Diagrammtyp" isKey="true"/>
<column name="viz_property_id" type="INTEGER" size="255" default="" notnull="" description="Eigenschaft der Visualisierung" isKey="true"/>
<column name="viz_property_group_id" type="INTEGER" size="255" default="" notnull="" description="Eigenschaftsgruppe der Visualisierung" isKey="true"/>
<column name="sortnr" type="SMALLINT" size="255" default="0" notnull="false" description="Sortiernr." sortable="true" ><comment></comment></column>
<column name="is_mandatory" type="SMALLINT" size="255" default="0" notnull="false" description="Pflichteingabe" ><comment>1=ja, 0=nein</comment></column>
</columns>
<primaryKeys><rs>
<row>
<fld name='table_cat'>superx</fld>
<fld name='table_schem'>superx</fld>
<fld name='table_name'>viz_type_property</fld>
<fld name='table_name'>viz_type_property_group</fld>
<fld name='column_name'>tid</fld>
<fld name='key_seq'>1</fld>
<fld name='pk_name'>viz_type_property_pk</fld>
<fld name='pk_name'>viz_type_property_group_pk</fld>
</row>
</rs>
</primaryKeys>
<indexes>
</indexes>
</table>
<table name="viz_type_property_group" thema="Administration" typ="Schlüsseltabelle"
<table name="viz_chart_type_property" thema="Administration" typ="Schlüsseltabelle"
releaseUnload="empty">
<description>Schlüsseltabelle für Eigenschaften von Visualisierungstypen</description>
<description>Schlüsseltabelle für Diagramme pro Renderer</description>
<columns>
<column name="tid" type="SERIAL" size="" default="" notnull="true" description="tid" isKey="true"/>
<column name="viz_type_id" type="INTEGER" size="" default="" notnull="false" description="Diagrammtyp" isKey="true"/>
@ -267,6 +345,8 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[VIZ]" /> @@ -267,6 +345,8 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[VIZ]" />
<indexes>
</indexes>
</table>
-->
<!--<table name="viz_element" thema="Administration" typ="Schlüsseltabelle"
releaseUnload="empty">
<description>Schlüsseltabelle für Elemente von Visualisierungstypen</description>
@ -651,6 +731,39 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the @@ -651,6 +731,39 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the
<install>
<install-step name="Füllen der Modul-Tabellen">
<action error="stop">
<nativeaction sql="create table tmp_repository(
tid SERIAL not null,
id CHAR(200) not null,
content TEXT ,
caption CHAR(200) ,
comment TEXT ,
version SMALLINT ,
art CHAR(200) ,
art2 CHAR(200) ,
art3 CHAR(200) ,
sachgebiete_id INTEGER ,
sort1 INTEGER ,
sort2 INTEGER ,
sort3 INTEGER ,
geaendert_am DATE ,
aktiv smallint ,
gueltig_seit DATE ,
gueltig_bis DATE
);" scriptfile="" database=""/>
<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 error="stop">
<loadtable refresh="true" delimiter="^" header="false" tabname="tmp_repository"><file path="$VIZ_PFAD/schluesseltabellen/sx_repository.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="tmp_templates"><file path="$VIZ_PFAD/schluesseltabellen/fm_templates.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_type"><file path="$VIZ_PFAD/schluesseltabellen/viz_type.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_property"><file path="$VIZ_PFAD/schluesseltabellen/viz_property.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_property_input_type"><file path="$VIZ_PFAD/schluesseltabellen/viz_property_input_type.unl"/></loadtable>
@ -661,6 +774,10 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the @@ -661,6 +774,10 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_type_property"><file path="$VIZ_PFAD/schluesseltabellen/viz_type_property.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_chart"><file path="$VIZ_PFAD/schluesseltabellen/viz_chart.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_staat_isocode"><file path="$VIZ_PFAD/schluesseltabellen/viz_staat_isocode.unl"/></loadtable>
</action>
<action error="stop">
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sx_repository_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/fm_templates_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sachgebiete_fuellen.sql" database=""/>
<!--
@ -674,6 +791,10 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the @@ -674,6 +791,10 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sx_stylesheets_einfuegen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/macro_masken_bez_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/viz_type_plot_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/viz_properties_echarts_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/viz_properties_echarts_line_bar_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/viz_properties_echarts_line_bar_series_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/viz_properties_echarts_pie_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/studierende_datenblatt_dashboard.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/rpta_column_layout_sos_stud_fak_fuellen.sql" database=""/>
@ -758,6 +879,37 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the @@ -758,6 +879,37 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the
<upgrade>
<upgrade-step>
<action error="stop">
<nativeaction sql="create table tmp_repository(
tid SERIAL not null,
id CHAR(200) not null,
content TEXT ,
caption CHAR(200) ,
comment TEXT ,
version SMALLINT ,
art CHAR(200) ,
art2 CHAR(200) ,
art3 CHAR(200) ,
sachgebiete_id INTEGER ,
sort1 INTEGER ,
sort2 INTEGER ,
sort3 INTEGER ,
geaendert_am DATE ,
aktiv smallint ,
gueltig_seit DATE ,
gueltig_bis DATE
);" scriptfile="" database=""/>
<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 error="stop">
<loadtable refresh="true" delimiter="^" header="false" tabname="tmp_repository"><file path="$VIZ_PFAD/schluesseltabellen/sx_repository.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="tmp_templates"><file path="$VIZ_PFAD/schluesseltabellen/fm_templates.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_type"><file path="$VIZ_PFAD/schluesseltabellen/viz_type.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_property"><file path="$VIZ_PFAD/schluesseltabellen/viz_property.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_property_input_type"><file path="$VIZ_PFAD/schluesseltabellen/viz_property_input_type.unl"/></loadtable>
@ -767,10 +919,19 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the @@ -767,10 +919,19 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_property_group_renderer"><file path="$VIZ_PFAD/schluesseltabellen/viz_property_group_renderer.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_type_property"><file path="$VIZ_PFAD/schluesseltabellen/viz_type_property.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_staat_isocode"><file path="$VIZ_PFAD/schluesseltabellen/viz_staat_isocode.unl"/></loadtable>
</action>
<action error="stop">
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sx_repository_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/fm_templates_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/konstanten_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sachgebiete_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/upgrade/viz_upgrade_man.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/viz_type_plot_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/viz_properties_echarts_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/viz_properties_echarts_line_bar_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/viz_properties_echarts_line_bar_series_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/viz_properties_echarts_pie_fuellen.sql" database=""/>
</action>
<action error="stop">

13
src-modules/module/viz/masken/44000_felderinfo.unl

@ -1,6 +1,19 @@ @@ -1,6 +1,19 @@
44000^Benutzer/in^50^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,nvl(name,benutzer) from userinfo order by 2;^hidden^^
44001^Maske^1^0^0^100^380^1^integer^30^0^1^<<SQL>> select M.tid, M.tid || ' - ' || M.name from maskeninfo M, sachgeb_maske_bez S where M.tid=S.maskeninfo_id \
and (M.tid in (select distinct V.maskeninfo_id from viz_chart V)\
or M.tid in (select B.maskeninfo_id1 from macro_masken_bez B,viz_chart V\
where B.maskeninfo_id1 = V.maskeninfo_id or B.maskeninfo_id2 = V.maskeninfo_id) ) \
order by 2;^ ^^
44002^Eigenschaften verwalten^100^0^0^150^300^1^char^30^0^18^^^<<SQL>> select '../edit/viz/viz_property_list.jsp' from xdummy;^
44003^Name^20^0^0^150^150^1^sql^50^0^0^^^^
44004^Komponente^1^0^0^150^200^1^integer^200^0^13^<<SQL>> select tid,name from systeminfo order by 2;^ ^^
44005^Eigenschaftsgruppen verwalten^200^0^0^150^300^1^char^30^0^18^^^<<SQL>> select '../edit/viz/viz_property_group_list.jsp' from xdummy;^
44006^Renderer^10^0^0^100^380^1^integer^30^0^1^<<SQL>> SELECT tid,\
caption\
FROM viz_renderer \
order by 2;^ ^<<SQL>> SELECT tid,\
caption\
FROM viz_renderer \
where uniquename='echarts'\
;^
44007^Diagrammtypen verwalten^220^0^0^150^200^1^char^200^0^18^ ^^<<SQL>> select '../edit/viz/viz_type_list.jsp' from xdummy;^

2
src-modules/module/viz/masken/44000_masken_felder_bez.unl

@ -1,6 +1,8 @@ @@ -1,6 +1,8 @@
44000^44000^
44000^44001^
44000^44002^
44000^44003^
44000^44004^
44000^44005^
44000^44006^
44000^44007^

32
src-modules/module/viz/masken/44000_maskeninfo.unl

@ -37,9 +37,39 @@ where M.tid=C.maskeninfo_id\ @@ -37,9 +37,39 @@ where M.tid=C.maskeninfo_id\
/* and C.caption ilike '%<<Name>>%' */\
/* and C.uniquename ilike '%<<Schlüssel>>%' */\
/* and C.maskeninfo_id=<<Maske>> */\
/* and C.renderer_id=<<Renderer>> */\
\
;\
--Makros:\
insert into tmp_ergebnis (ord,\
tid,\
userinfo_id, \
benutzer,\
caption,\
uniquename,\
maskeninfo_id,\
maskeninfo_name,\
nextedit) \
select 1 as ord,\
C.tid,\
C.userinfo_id,\
nvl(U.name,U.benutzer),\
C.caption,\
C.uniquename,\
C.maskeninfo_id,\
M.name,\
('../edit/viz/viz_chart_edit.jsp|tid=' || C.tid)::varchar(255)\
FROM macro_masken_bez B, maskeninfo M, viz_chart C left outer join userinfo U\
on (U.tid=C.userinfo_id)\
where M.tid=B.maskeninfo_id1\
and C.maskeninfo_id=B.maskeninfo_id2\
/* and C.userinfo_id=<<Benutzer/in>> */\
/* and C.caption ilike '%<<Name>>%' */\
/* and C.uniquename ilike '%<<Schlüssel>>%' */\
/* and B.maskeninfo_id1=<<Maske>> */\
/* and C.renderer_id=<<Renderer>> */\
\
;\
\
insert into tmp_ergebnis (ord,\
--tid,userinfo_id, benutzer,\
@ -59,7 +89,7 @@ from viz_chart\ @@ -59,7 +89,7 @@ from viz_chart\
;\
\
<@selectintotmp \
select="caption,\
select="distinct caption,\
uniquename,\
maskeninfo_name,\
benutzer,\

111
src-modules/module/viz/schluesseltabellen/customxmladd.sql

@ -26,23 +26,12 @@ and PR.renderer_id=R.tid),P.prop_uniquename) as variable_name, @@ -26,23 +26,12 @@ and PR.renderer_id=R.tid),P.prop_uniquename) as variable_name,
P.prop_value_type,
P.is_generic
FROM viz_type T,
viz_property_input_type I,
viz_property P,
viz_property_group G,
viz_type_property_group TPG,
viz_renderer R,
viz_property_group_renderer GR,
viz_property_renderer PR
where G.tid=TPG.viz_property_group_id
and T.tid=TPG.viz_type_id
and P.tid=TPG.viz_property_id
and T.renderer_id=R.tid
and I.tid=P.input_type_id
and GR.renderer_id=R.tid
and GR.property_group_id=G.tid
and PR.property_id=P.tid
and PR.renderer_id=R.tid
FROM viz_property_input_type I, viz_property P left outer join viz_property_group G
on (P.property_group_id=G.tid)
left outer join viz_property_group_renderer GR on (GR.property_group_id=G.tid)
left outer join viz_renderer R on (R.tid=GR.renderer_id)
left outer join viz_property_renderer PR on (P.tid=PR.property_id)
where I.tid=P.input_type_id
order by G.sortnr,G.uniquename,P.sortnr,P.caption
;
</sqlvar>
@ -85,18 +74,16 @@ P.range_to, @@ -85,18 +74,16 @@ P.range_to,
I.caption as input_type_caption,
I.uniquename as input_type_uniquename,
G.uniquename as viz_property_group_uniquename,
TPG.is_mandatory,
TPG.sortnr,
TP.is_mandatory,
TP.sortnr,
P.prop_value_type,
P.is_generic
FROM viz_type T, viz_property P,
viz_property_input_type I, viz_property_group G, viz_type_property_group TPG
where I.tid=P.input_type_id
and G.tid=TPG.viz_property_group_id
and T.tid=TPG.viz_type_id
and P.tid=TPG.viz_property_id
--and T.uniquename='echarts_bar_y'
order by 2,TPG.sortnr,P.caption
FROM viz_type T, viz_type_property TP, viz_property_input_type I, viz_property P
left outer join viz_property_group G on (G.tid=P.property_group_id)
where T.tid=TP.viz_type_id
and P.tid=TP.viz_property_id
and I.tid=P.input_type_id
order by 2,TP.sortnr,P.caption
;
</sqlvar>
<sqlvar name="viz_chart" type="hashsequence">
@ -120,6 +107,61 @@ where R.tid=V.renderer_id @@ -120,6 +107,61 @@ where R.tid=V.renderer_id
and chart_active=1
order by 3
;
</sqlvar>
<sqlvar name="viz_property_tree" type="hashsequence">
with recursive tree_rec (renderer_uniquename,
renderer_id,
prop_tid,
prop_uniquename,
parent_prop_uniquename,
sortnr,
is_mandatory)
as (select R.uniquename as renderer_uniquename,
R.tid as renderer_id,
P.tid as prop_tid,
P.prop_uniquename,
null::varchar as parent_prop_uniquename,
N.sortnr,
N.is_mandatory
from viz_property_tree_node N, viz_renderer R, viz_property P
where N.renderer_id=R.tid
and N.property_id=P.tid
and N.parent_property_id is null
union all (select
R.uniquename as renderer_uniquename,
R.tid as renderer_id,
P.tid as prop_tid,
P.prop_uniquename,
(select P2.prop_uniquename from viz_property P2
where P2.tid=N.parent_property_id) as parent_property_uniquename,
N.sortnr,
N.is_mandatory
from viz_property_tree_node N, viz_renderer R, viz_property P,tree_rec T
where N.renderer_id=R.tid
and N.property_id=P.tid
and T.prop_tid=N.parent_property_id
)
)
--search depth first by name set sort1
select distinct R.renderer_uniquename,
T.uniquename as viz_type_uniquename,
R.prop_tid,
R.prop_uniquename,
R.parent_prop_uniquename,
P.caption as property_caption,
P.is_generic,
R.sortnr,
(case when P.is_generic =0 then TP.is_mandatory else R.is_mandatory end) as is_mandatory,
T.orientation
from tree_rec R,viz_property P,viz_type_property TP, viz_type T
where P.tid=R.prop_tid
and TP.viz_type_id=T.tid
and T.renderer_id=R.renderer_id
and (P.is_generic=1 or TP.viz_property_id=P.tid)
--and T.uniquename='echarts_bar_y_series'
order by 1,2,R.sortnr;
</sqlvar>
</sqlvars>
<#if !Semester?exists><#assign Semester=""></#if> <#if !Bezugssemester?exists><#assign Bezugssemester=""/></#if> <#if !Jahr?exists><#assign Jahr=""></#if> <#if !faecherkeys?exists><#assign faecherkeys=""></#if> <#if !Fächer?exists><#assign Fächer={"selectedKey":""}></#if> <#if !Kostenstelle?exists><#assign Kostenstelle={"selectedKey":""}></#if> <#if !(.vars["Datum (Personal)"]?exists)><#assign "Datum (Personal)"=""></#if> <#if !(.vars["Beschäftigungsstelle (Person)"]?exists)><#assign "Beschäftigungsstelle (Person)"=""></#if>
@ -222,3 +264,18 @@ order by 3 @@ -222,3 +264,18 @@ order by 3
</#foreach>
</#if>
</viz_charts>
<viz_property_trees>
<#if viz_property_tree?is_sequence>
<#foreach tree in viz_property_tree>
<viz_property_tree renderer="${tree.renderer_uniquename}"
viz_type_uniquename="${tree.viz_type_uniquename}"
orientation="${tree.orientation}"
prop_uniquename="${tree.prop_uniquename}"
property_caption="${tree.property_caption}"
parent_property_uniquename="${tree.parent_prop_uniquename}"
sortnr="${tree.sortnr}"
is_mandatory="${tree.is_mandatory}"
/>
</#foreach>
</#if>
</viz_property_trees>

346
src-modules/module/viz/schluesseltabellen/fm_templates.unl

@ -0,0 +1,346 @@ @@ -0,0 +1,346 @@
97^VIZ-Makros^<#macro create_temp_tables>\
\
CREATE temp TABLE tmp_viz_property_renderer\
(\
tid serial NOT NULL,\
renderer_id integer NOT NULL,\
property_id integer NOT NULL,\
variable_name varchar(255)\
);\
\
\
CREATE temp TABLE tmp_viz_property\
(\
tid integer,\
caption varchar(255),\
prop_uniquename varchar(255),\
prop_default varchar(255),\
prop_unit varchar(255),\
is_generic smallint DEFAULT 1,\
static_values text,\
is_mandatory smallint DEFAULT 0,\
input_type_id integer DEFAULT 1,\
input_type_uniquename varchar(255),\
property_group_id integer,\
property_group_uniquename varchar(255),\
property_group_variable_name varchar(255),\
explanation text,\
sortnr integer,\
range_from integer,\
range_to integer,\
prop_value_type varchar(255) DEFAULT 'STRING'::character varying,\
variable_name varchar(255),\
parent_property_uniquename varchar(255)\
\
);\
\
create temp table tmp_viz_property_tree_node(\
tid SERIAL not null, \
viz_type_id INTEGER , \
property_id INTEGER , \
parent_property_uniquename varchar(255),\
parent_property_id INTEGER , \
sortnr SMALLINT default 0 , \
is_mandatory SMALLINT default 0 \
\
) \
;\
\
CREATE temp TABLE tmp_viz_type\
(\
tid INTEGER ,\
uniquename varchar(255) NOT NULL,\
caption varchar(255),\
renderer_id integer,\
srcpath varchar(255),\
method varchar(255),\
orientation char(1),\
description text,\
explanation text\
);\
\
CREATE temp TABLE tmp_viz_type_property\
(\
tid serial NOT NULL,\
viz_type_id integer,\
viz_property_id integer,\
is_mandatory smallint DEFAULT 0,\
sortnr smallint DEFAULT 0\
);\
</#macro>\
\
<#macro drop_temp_tables>\
\
drop table if exists tmp_viz_property;\
drop table if exists tmp_viz_property_renderer;\
drop table if exists tmp_viz_property_tree_node;\
drop table if exists tmp_viz_type;\
drop table if exists tmp_viz_type_property;\
\
</#macro>\
\
\
<#macro fill_viz_properties>\
\
\
<#assign sortnr=0 />\
<#foreach viz_prop in viz_properties>\
<#assign sortnr=sortnr+100 />\
insert into tmp_viz_property(tid,\
caption,\
prop_uniquename,\
prop_default,\
prop_unit,\
is_generic,\
static_values,\
is_mandatory,\
input_type_uniquename,\
property_group_uniquename,\
explanation,\
sortnr,\
range_from,\
range_to,\
prop_value_type,\
variable_name,\
parent_property_uniquename)\
select P.tid,\
'${viz_prop.caption}',\
'${viz_prop.prop_uniquename}',\
'${viz_prop.prop_default}',\
'${viz_prop.prop_unit}',\
${viz_prop.is_generic},\
'${viz_prop.static_values}',\
${viz_prop.is_mandatory},\
'${viz_prop.input_type_uniquename}',\
<#if viz_prop.property_group_uniquename?exists> '${viz_prop.property_group_uniquename}' <#else>''</#if>,\
'${viz_prop.explanation}',\
${sortnr},\
val('${viz_prop.range_from}'),\
val('${viz_prop.range_to}'),\
'${viz_prop.prop_value_type}',\
<#if viz_prop.variable_name?exists>\
'${viz_prop.variable_name}',\
<#else>\
'',\
</#if>\
'${viz_prop.parent_property_uniquename}' as parent_prop_uniquename\
from xdummy left outer join viz_property P\
on (P.prop_uniquename='${viz_prop.prop_uniquename}')\
;\
</#foreach>\
update tmp_viz_property set input_type_id=T.tid\
from viz_property_input_type T\
where T.uniquename=tmp_viz_property.input_type_uniquename;\
\
select 'Warnung: Property ohne input_type: ' || prop_uniquename\
from tmp_viz_property\
where input_type_id is null;\
\
update tmp_viz_property set property_group_id=T.tid\
from viz_property_group T\
where T.uniquename=tmp_viz_property.property_group_uniquename;\
\
\
--neue Datensätze:\
insert into viz_property(\
caption,\
prop_uniquename,\
prop_default,\
prop_unit,\
is_generic,\
static_values,\
is_mandatory,\
input_type_id,\
property_group_id,\
explanation,\
sortnr,\
range_from,\
range_to,\
prop_value_type)\
select \
caption,\
prop_uniquename,\
prop_default,\
prop_unit,\
is_generic,\
static_values,\
is_mandatory,\
input_type_id,\
property_group_id,\
explanation,\
sortnr,\
range_from,\
range_to,\
prop_value_type\
from tmp_viz_property P\
where P.tid is null;\
\
update viz_property \
set caption=T.caption,\
--prop_uniquename,\
prop_default=T.prop_default,\
prop_unit=T.prop_unit,\
is_generic=T.is_generic,\
static_values=T.static_values,\
is_mandatory=T.is_mandatory,\
input_type_id=T.input_type_id,\
property_group_id=T.property_group_id,\
explanation=T.explanation,\
sortnr=T.sortnr,\
range_from=T.range_from,\
range_to=T.range_to,\
prop_value_type=T.prop_value_type\
from tmp_viz_property T\
where T.tid=viz_property.tid\
and viz_property.tid in (select T.tid from tmp_viz_property T);\
\
\
--renderer: \
delete from viz_property_renderer\
where (renderer_id, property_id)\
in (select ${renderer},P.tid\
from viz_property P, tmp_viz_property T\
where P.prop_uniquename=T.prop_uniquename);\
\
\
\
insert into viz_property_renderer(\
renderer_id,\
property_id,\
variable_name)\
select ${renderer},\
P.tid,\
case when T.variable_name !='' then T.variable_name else P.prop_uniquename end\
from viz_property P, tmp_viz_property T\
where P.prop_uniquename=T.prop_uniquename;\
\
\
--Hierarchie:\
insert into tmp_viz_property_tree_node(\
property_id,\
parent_property_uniquename,\
--parent_property_id,\
sortnr,\
is_mandatory)\
select P.tid as property_id,\
T.parent_property_uniquename,\
--parent_property_id,\
T.sortnr,\
T.is_mandatory\
from tmp_viz_property T, viz_property P\
where P.prop_uniquename=T.prop_uniquename\
; \
update tmp_viz_property_tree_node set parent_property_id=(select P.tid\
from viz_property P\
where P.prop_uniquename=tmp_viz_property_tree_node.parent_property_uniquename)\
;\
\
delete from viz_property_tree_node\
where renderer_id=${renderer};\
\
insert into viz_property_tree_node( renderer_id,\
property_id,\
parent_property_id,\
sortnr,\
is_mandatory)\
select ${renderer},\
T.property_id,\
T.parent_property_id,\
T.sortnr,\
T.is_mandatory\
from tmp_viz_property_tree_node T; \
\
\
</#macro>\
\
<#macro fill_viz_types viz_type_p>\
select 'Befülle Grafikelement ${viz_type_p.caption}' from xdummy;\
\
delete from tmp_viz_type;\
\
insert into tmp_viz_type(tid,\
uniquename,\
caption,\
renderer_id,\
-- srcpath,\
-- method,\
orientation,\
explanation)\
select T.tid,\
'${viz_type_p.uniquename}',\
'${viz_type_p.caption}',\
${renderer},\
'${viz_type_p.orientation}',\
'${viz_type_p.explanation}'\
from xdummy left outer join viz_type T on (\
T.uniquename='${viz_type_p.uniquename}'\
and T.renderer_id=${renderer}\
)\
;\
\
insert into viz_type(\
uniquename,\
caption,\
renderer_id,\
-- srcpath,\
-- method,\
orientation)\
select uniquename,\
caption,\
renderer_id,\
-- srcpath,\
-- method,\
orientation\
from tmp_viz_type T\
where T.tid is null;\
\
\
\
update viz_type set \
uniquename=T.uniquename,\
caption=T.caption,\
renderer_id=T.renderer_id,\
-- srcpath,\
-- method,\
orientation=T.orientation,\
explanation=T.explanation\
from tmp_viz_type T\
where T.tid=viz_type.tid\
and viz_type.tid in (select distinct T.tid from tmp_viz_type);\
\
\
</#macro>\
\
<#macro fill_viz_type_properties viz_type_p>\
\
delete from viz_type_property\
where (viz_type_id)\
in (select Y.tid as viz_type_id\
from viz_type Y\
where Y.uniquename='${viz_type_p.uniquename}'\
and Y.renderer_id=${renderer}) ;\
\
<#assign sortnr=1 />\
\
<#foreach viz_prop in viz_type_properties>\
\
<#assign sortnr=sortnr +10 />\
\
\
insert into viz_type_property(\
viz_type_id,\
viz_property_id,\
is_mandatory,\
sortnr)\
select Y.tid as viz_type_id,\
P.tid as viz_property_id,\
<#if viz_prop.is_mandatory?exists > ${viz_prop.is_mandatory} <#else> 0</#if>,\
${sortnr}\
from viz_type Y, viz_property P\
where Y.uniquename='${viz_type_p.uniquename}'\
and Y.renderer_id=${renderer}\
and P.prop_uniquename='${viz_prop.viz_property_uniquename}'\
;\
</#foreach>\
\
</#macro>^Makros zum Umgang mit Visualisierungen^ ^1^

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

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
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/viz/schluesseltabellen/fm_templates_unload.x

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
#!/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 ('VIZ-Makros')" false $DBDELIMITER ./fm_templates.unl txt

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

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
#!/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

2
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_abgrp_dashboard_fuellen.sql

@ -39,7 +39,7 @@ select count(*) from systeminfo where tid=330; @@ -39,7 +39,7 @@ select count(*) from systeminfo where tid=330;
"srcfieldname":"",
"targetfieldname":"anteil",
"column_type":"computedColumn",
"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
"col_function":"(select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer)",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",

6
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_abgrp_fuellen.sql

@ -5,9 +5,9 @@ @@ -5,9 +5,9 @@
select count(*) from systeminfo where tid=330;
</sqlvar>
</sqlvars>
<#assign rpta_column_layout = {"uniquename":"sos_stud_abgrp_dashboard",
<#assign rpta_column_layout = {"uniquename":"sos_stud_abgrp",
"caption":"Studierende nach Abschlussgruppe",
"rpta_resultset":"sos_stud_astat_dashboard",
"rpta_resultset":"sos_stud_astat",
"whereclause":"",
"description":"Studierende nach Abschlussgruppe"
}
@ -39,7 +39,7 @@ select count(*) from systeminfo where tid=330; @@ -39,7 +39,7 @@ select count(*) from systeminfo where tid=330;
"srcfieldname":"",
"targetfieldname":"anteil",
"column_type":"computedColumn",
"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
"col_function":"(select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer)",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",

2
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_bildungstyp_dashboard_fuellen.sql

@ -40,7 +40,7 @@ select count(*) from systeminfo where tid=330; @@ -40,7 +40,7 @@ select count(*) from systeminfo where tid=330;
"srcfieldname":"",
"targetfieldname":"anteil",
"column_type":"computedColumn",
"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
"col_function":"(select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer)",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",

2
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_bildungstyp_fuellen.sql

@ -40,7 +40,7 @@ select count(*) from systeminfo where tid=330; @@ -40,7 +40,7 @@ select count(*) from systeminfo where tid=330;
"srcfieldname":"",
"targetfieldname":"anteil",
"column_type":"computedColumn",
"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
"col_function":"(select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer)",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",

2
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_abschl_fach_fuellen.sql

@ -69,7 +69,7 @@ select count(*) from systeminfo where tid=330; @@ -69,7 +69,7 @@ select count(*) from systeminfo where tid=330;
"srcfieldname":"",
"targetfieldname":"anteil",
"column_type":"computedColumn",
"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
"col_function":"(select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer)",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",

4
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_dashboard_fuellen.sql

@ -26,7 +26,7 @@ select count(*) from systeminfo where tid=330; @@ -26,7 +26,7 @@ select count(*) from systeminfo where tid=330;
},
{"uniquename":"dim_studiengang_fak_str",
"caption":"Fakultät",
"srcfieldname":"dim_studiengang_fak_str",
"srcfieldname":"dim_studiengang_fb_str",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
@ -49,7 +49,7 @@ select count(*) from systeminfo where tid=330; @@ -49,7 +49,7 @@ select count(*) from systeminfo where tid=330;
"srcfieldname":"",
"targetfieldname":"anteil",
"column_type":"computedColumn",
"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
"col_function":"(select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer)",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",

2
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_fuellen.sql

@ -49,7 +49,7 @@ select count(*) from systeminfo where tid=330; @@ -49,7 +49,7 @@ select count(*) from systeminfo where tid=330;
"srcfieldname":"",
"targetfieldname":"anteil",
"column_type":"computedColumn",
"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
"col_function":"(select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer)",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",

2
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_geschl_dashboard_fuellen.sql

@ -69,7 +69,7 @@ select count(*) from systeminfo where tid=330; @@ -69,7 +69,7 @@ select count(*) from systeminfo where tid=330;
"srcfieldname":"",
"targetfieldname":"anteil",
"column_type":"computedColumn",
"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
"col_function":"(select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer)",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",

2
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_geschl_fuellen.sql

@ -69,7 +69,7 @@ select count(*) from systeminfo where tid=330; @@ -69,7 +69,7 @@ select count(*) from systeminfo where tid=330;
"srcfieldname":"",
"targetfieldname":"anteil",
"column_type":"computedColumn",
"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
"col_function":"(select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer)",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",

2
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_la_fuellen.sql

@ -40,7 +40,7 @@ select count(*) from systeminfo where tid=330; @@ -40,7 +40,7 @@ select count(*) from systeminfo where tid=330;
"srcfieldname":"",
"targetfieldname":"anteil",
"column_type":"computedColumn",
"col_function":"select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer",
"col_function":"(select (summe::float/(select G.summe from tmp_gesamt G)*100)::integer)",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"0",

433
src-modules/module/viz/schluesseltabellen/viz_chart.unl

@ -370,40 +370,6 @@ @@ -370,40 +370,6 @@
{"name":"dimension1","vizPropertyVariablename":"dimension1","propertyValue":"sos_stg_aggr_geschlecht_str","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"sos_stg_aggr_summe","propUnit":""}],\
"dataTransformation":[]}^ ^1^600^400^200^100^
33^STUDANF_HZB_LAND_BAR^Studierende nach HZB-Land^ ^{"version":"0.2b","id":1,"name":"","renderer":"echarts","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true},\
{"value":"1","nr":2,"name":"Tab. 2","isDefault":false},\
{"value":"2","nr":3,"name":"Tab. 3","isDefault":false},\
{"value":"3","nr":4,"name":"Tab. 4","isDefault":false}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"echarts_bar_x","caption":"bar_x","datasource":"3","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"hzb_bland","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#004c93","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende nach Bundesland der HZB"},\
{"name":"subtitle","vizPropertyVariablename":"caption","propertyValue":"Summe der Studierenden"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"marginBottom","vizPropertyVariablename":"marginBottom","propertyValue":"80","propUnit":""},\
{"name":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"0","propUnit":""},\
{"name":"labelRadiusFactor","vizPropertyVariablename":"labelRadiusFactor","propertyValue":"80","propUnit":""},\
{"name":"cornerRadius","vizPropertyVariablename":"cornerRadius","propertyValue":"10","propUnit":"px"},\
{"name":"labelOpacity","vizPropertyVariablename":"labelOpacity","propertyValue":"70","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#ffffff","propUnit":""},\
{"name":"color","vizPropertyVariablename":"color","propertyValue":"#000000","propUnit":""},\
{"name":"stroke_static","vizPropertyVariablename":"stroke_static","propertyValue":"#000000","propUnit":""},\
{"name":"fill_static","vizPropertyVariablename":"fill","propertyValue":"#004c93","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Studierende","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Fakultät","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"-45","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"blandLocalized","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"summe","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"hzb_bland","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44600^ ^3^ ^ ^1^600^400^200^100^
29^STUD_SEM_LINE^Studierende nach Semester^ ^{"version":"0.2b","id":1,"name":"","renderer":"echarts","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":"1","vizTypeUniquename":"echarts_line_y","caption":"line","datasource":"0","elementTypeProperties":[{"nr":"1","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
@ -498,40 +464,6 @@ @@ -498,40 +464,6 @@
{"name":"y","vizPropertyVariablename":"y","propertyValue":"summe","propUnit":""},\
{"name":"text","vizPropertyVariablename":"text","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^1^600^400^200^100^
18^STUDANF_FAK_BAR^Studierende nach Fakultät Balken^ ^{"version":"0.2b","id":1,"name":"","renderer":"echarts","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true},\
{"value":"1","nr":2,"name":"Tab. 2","isDefault":false},\
{"value":"2","nr":3,"name":"Tab. 3","isDefault":false},\
{"value":"3","nr":4,"name":"Tab. 4","isDefault":false}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"echarts_bar_x","caption":"bar_x","datasource":"3","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"dim_studiengang_fb_str","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#004c93","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende nach Fakultät"},\
{"name":"subtitle","vizPropertyVariablename":"caption","propertyValue":"Anzahl der Studierenden"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"marginBottom","vizPropertyVariablename":"marginBottom","propertyValue":"80","propUnit":""},\
{"name":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"0","propUnit":""},\
{"name":"labelRadiusFactor","vizPropertyVariablename":"labelRadiusFactor","propertyValue":"80","propUnit":""},\
{"name":"cornerRadius","vizPropertyVariablename":"cornerRadius","propertyValue":"10","propUnit":"px"},\
{"name":"labelOpacity","vizPropertyVariablename":"labelOpacity","propertyValue":"70","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#ffffff","propUnit":""},\
{"name":"color","vizPropertyVariablename":"color","propertyValue":"#000000","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"unique","propUnit":""},\
{"name":"stroke_static","vizPropertyVariablename":"stroke_static","propertyValue":"#000000","propUnit":""},\
{"name":"fill_static","vizPropertyVariablename":"fill","propertyValue":"#004c93","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Studierende","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Fakultät","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"-45","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"summe","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"dim_studiengang_fb_str","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44280^ ^3^ ^ ^1^600^400^200^100^
38^STUDANF_KOHORTEN_BAR_Y_ECHART_INVERTED^Studierende nach Kohorten Balken vertikal invertiert (Echart)^ ^{"version":"0.2b","id":1,"name":"","renderer":"echarts","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"",\
"chartElements":[{"elemID":1,"vizTypeUniquename":"echarts_native","sourceCode":\
@ -724,6 +656,100 @@ @@ -724,6 +656,100 @@
{"name":"dimension1","vizPropertyVariablename":"dimension1","propertyValue":"dim_studiengang_fb_str","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^1^600^400^200^100^
40^ABSOLV_SEM_LINE^Absolvent*innen nach Semester^ ^{"version":"0.2b","id":1,"name":"","renderer":"echarts","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":"1","vizTypeUniquename":"echarts_line_y","caption":"line","datasource":"0","elementTypeProperties":[{"nr":"1","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#004c93","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#ffffff","propertyType":"string"}]},\
{"elemID":2,"vizTypeUniquename":"dot","caption":"dot","datasource":"0","elementTypeProperties":[{"nr":2,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#1a5fb4","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"}]},\
{"elemID":"3","vizTypeUniquename":"text","caption":"text","datasource":"0","elementTypeProperties":[{"nr":"3","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"text","caption":"Beschriftung","propertyValue":"summe","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"dx","caption":"Offset (horizontal)","propertyValue":"4","propertyType":"integer"},\
{"nr":"3","vizTypePropertyUniquename":"dy","caption":"Offset (vertikal)","propertyValue":"-20","propertyType":"integer"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Absolvierende nach Semester"},\
{"name":"subtitle","vizPropertyVariablename":"caption","propertyValue":""},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"marginTop","vizPropertyVariablename":"marginTop","propertyValue":"70","propUnit":""},\
{"name":"marginBottom","vizPropertyVariablename":"marginBottom","propertyValue":"90","propUnit":""},\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"-45","propUnit":""},\
{"name":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"0","propUnit":""},\
{"name":"labelRadiusFactor","vizPropertyVariablename":"labelRadiusFactor","propertyValue":"80","propUnit":""},\
{"name":"cornerRadius","vizPropertyVariablename":"cornerRadius","propertyValue":"10","propUnit":"px"},\
{"name":"labelOpacity","vizPropertyVariablename":"labelOpacity","propertyValue":"100","propUnit":""},\
{"name":"dx","vizPropertyVariablename":"dx","propertyValue":"4","propUnit":"px"},\
{"name":"dy","vizPropertyVariablename":"dy","propertyValue":"-20","propUnit":"px"},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#ffffff","propUnit":""},\
{"name":"color","vizPropertyVariablename":"color","propertyValue":"#000000","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"unique","propUnit":""},\
{"name":"fontFamily","vizPropertyVariablename":"fontFamily","propertyValue":"sans-serif","propUnit":""},\
{"name":"fontSize","vizPropertyVariablename":"fontSize","propertyValue":"14","propUnit":"px"},\
{"name":"stroke_static","vizPropertyVariablename":"stroke_static","propertyValue":"#000000","propUnit":""},\
{"name":"fill_static","vizPropertyVariablename":"fill","propertyValue":"#000000","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Absolvierende","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Semester","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"semester_str","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"summe","propUnit":""},\
{"name":"text","vizPropertyVariablename":"text","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44720^ ^3^{"version":"0.2b","id":1,"name":"","renderer":"echarts","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":"1","vizTypeUniquename":"echarts_line_y","caption":"line","datasource":"0","elementTypeProperties":[{"nr":"1","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#1a5fb4","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#ffffff","propertyType":"string"}]},\
{"elemID":2,"vizTypeUniquename":"dot","caption":"dot","datasource":"0","elementTypeProperties":[{"nr":2,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#1a5fb4","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"}]},\
{"elemID":"3","vizTypeUniquename":"text","caption":"text","datasource":"0","elementTypeProperties":[{"nr":"3","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"text","caption":"Beschriftung","propertyValue":"summe","propertyType":"string"},\
{"name":"strokeWidth","vizPropertyVariablename":"strokeWidth","propertyValue":"1","propUnit":""},\
{"nr":"3","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"dx","caption":"Offset (horizontal)","propertyValue":"4","propertyType":"integer"},\
{"nr":"3","vizTypePropertyUniquename":"dy","caption":"Offset (vertikal)","propertyValue":"-20","propertyType":"integer"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studienanfäger_innen nach Semester"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"marginTop","vizPropertyVariablename":"marginTop","propertyValue":"70","propUnit":""},\
{"name":"strokeWidth","vizPropertyVariablename":"strokeWidth","propertyValue":"1","propUnit":""},\
{"name":"marginBottom","vizPropertyVariablename":"marginBottom","propertyValue":"80","propUnit":""},\
{"name":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"0","propUnit":""},\
{"name":"labelRadiusFactor","vizPropertyVariablename":"labelRadiusFactor","propertyValue":"80","propUnit":""},\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"-45","propUnit":""},\
{"name":"cornerRadius","vizPropertyVariablename":"cornerRadius","propertyValue":"10","propUnit":"px"},\
{"name":"labelOpacity","vizPropertyVariablename":"labelOpacity","propertyValue":"70","propUnit":""},\
{"name":"dx","vizPropertyVariablename":"dx","propertyValue":"4","propUnit":"px"},\
{"name":"dy","vizPropertyVariablename":"dy","propertyValue":"-20","propUnit":"px"},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#ffffff","propUnit":""},\
{"name":"color","vizPropertyVariablename":"color","propertyValue":"#000000","propUnit":""},\
{"name":"fontFamily","vizPropertyVariablename":"fontFamily","propertyValue":"sans-serif","propUnit":""},\
{"name":"fontSize","vizPropertyVariablename":"fontSize","propertyValue":"14","propUnit":"px"},\
{"name":"stroke_static","vizPropertyVariablename":"stroke_static","propertyValue":"#000000","propUnit":""},\
{"name":"fill_static","vizPropertyVariablename":"fill","propertyValue":"#000000","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Studierende","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Semester","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"semester_str","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"summe","propUnit":""},\
{"name":"text","vizPropertyVariablename":"text","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^1^600^400^200^100^
14^STUD_ALTER_BOXPLOT_H^Studierende nach Alter Boxplot horizontal^ ^{"version":"0.2b","id":1,"name":"","renderer":"plot","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"box_x","caption":"box_x","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"alter","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"geschlecht","propertyType":"string"},\
@ -1099,54 +1125,98 @@ @@ -1099,54 +1125,98 @@
{"name":"dimension1","vizPropertyVariablename":"dimension1","propertyValue":"dim_studiengang_fb_str","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^0^600^400^200^100^
40^ABSOLV_SEM_LINE^Absolvent*innen nach Semester^ ^{"version":"0.2b","id":1,"name":"","renderer":"echarts","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":"1","vizTypeUniquename":"echarts_line_y","caption":"line","datasource":"0","elementTypeProperties":[{"nr":"1","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#004c93","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#ffffff","propertyType":"string"}]},\
{"elemID":2,"vizTypeUniquename":"dot","caption":"dot","datasource":"0","elementTypeProperties":[{"nr":2,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#1a5fb4","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"}]},\
{"elemID":"3","vizTypeUniquename":"text","caption":"text","datasource":"0","elementTypeProperties":[{"nr":"3","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"text","caption":"Beschriftung","propertyValue":"summe","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"dx","caption":"Offset (horizontal)","propertyValue":"4","propertyType":"integer"},\
{"nr":"3","vizTypePropertyUniquename":"dy","caption":"Offset (vertikal)","propertyValue":"-20","propertyType":"integer"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Absolvent*innen nach Semester"},\
{"name":"subtitle","vizPropertyVariablename":"caption","propertyValue":""},\
18^STUDANF_FAK_BAR^Studierende nach Fakultät Balken^ ^{"version":"0.2b","id":1,"name":"","renderer":"echarts","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"echarts_bar_x","caption":"echarts_bar_x","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"dim_studiengang_fb_str","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende nach Fakultät"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"marginTop","vizPropertyVariablename":"marginTop","propertyValue":"70","propUnit":""},\
{"name":"marginBottom","vizPropertyVariablename":"marginBottom","propertyValue":"90","propUnit":""},\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"-45","propUnit":""},\
{"name":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"0","propUnit":""},\
{"name":"labelRadiusFactor","vizPropertyVariablename":"labelRadiusFactor","propertyValue":"80","propUnit":""},\
{"name":"cornerRadius","vizPropertyVariablename":"cornerRadius","propertyValue":"10","propUnit":"px"},\
{"name":"labelOpacity","vizPropertyVariablename":"labelOpacity","propertyValue":"100","propUnit":""},\
{"name":"dx","vizPropertyVariablename":"dx","propertyValue":"4","propUnit":"px"},\
{"name":"dy","vizPropertyVariablename":"dy","propertyValue":"-20","propUnit":"px"},\
{"name":"labelOpacity","vizPropertyVariablename":"labelOpacity","propertyValue":"70","propUnit":""},\
{"name":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"30","propUnit":"%"},\
{"name":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"30","propUnit":"%"},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#ffffff","propUnit":""},\
{"name":"color","vizPropertyVariablename":"color","propertyValue":"#000000","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"unique","propUnit":""},\
{"name":"fontFamily","vizPropertyVariablename":"fontFamily","propertyValue":"sans-serif","propUnit":""},\
{"name":"fontSize","vizPropertyVariablename":"fontSize","propertyValue":"14","propUnit":"px"},\
{"name":"stroke_static","vizPropertyVariablename":"stroke_static","propertyValue":"#000000","propUnit":""},\
{"name":"fill_static","vizPropertyVariablename":"fill","propertyValue":"#000000","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Absolvierende","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Semester","propUnit":""},\
{"name":"tickRotate_y","vizPropertyVariablename":"tickRotate","propertyValue":"-10","propUnit":""},\
{"name":"tickRotate_y","vizPropertyVariablename":"tickRotate","propertyValue":"-10","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"semester_str","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"summe","propUnit":""},\
{"name":"text","vizPropertyVariablename":"text","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44720^ ^3^{"version":"0.2b","id":1,"name":"","renderer":"echarts","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"0","propUnit":""},\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"0","propUnit":""},\
{"name":"title.left","vizPropertyVariablename":"title.left","propertyValue":"left","propUnit":""},\
{"name":"title.top","vizPropertyVariablename":"title.top","propertyValue":"top","propUnit":""},\
{"name":"margin.left","vizPropertyVariablename":"margin.left","propertyValue":"50","propUnit":"%"},\
{"name":"margin.right","vizPropertyVariablename":"margin.right","propertyValue":"0","propUnit":"%"},\
{"name":"margin.top","vizPropertyVariablename":"margin.top","propertyValue":"16","propUnit":"%"},\
{"name":"margin.bottom","vizPropertyVariablename":"margin.bottom","propertyValue":"20","propUnit":"%"},\
{"name":"margin_x","vizPropertyVariablename":"margin_x","propertyValue":"15","propUnit":""},\
{"name":"outerRadius","vizPropertyVariablename":"outerRadius","propertyValue":"80","propUnit":"%"},\
{"name":"cornerRadiusRounded","vizPropertyVariablename":"cornerRadiusRounded","propertyValue":"true","propUnit":""},\
{"name":"xAxisName","vizPropertyVariablename":"xAxisName","propertyValue":"Summe Studierende","propUnit":""},\
{"name":"width_x","vizPropertyVariablename":"width_x","propertyValue":"100","propUnit":"px"},\
{"name":"padding_x","vizPropertyVariablename":"padding_x","propertyValue":"5","propUnit":""},\
{"name":"yAxisName","vizPropertyVariablename":"yAxisName","propertyValue":"Fak.","propUnit":""},\
{"name":"padding_y","vizPropertyVariablename":"padding_y","propertyValue":"5","propUnit":""},\
{"name":"width_y","vizPropertyVariablename":"width_y","propertyValue":"50","propUnit":"px"},\
{"name":"distance_y","vizPropertyVariablename":"distance_y","propertyValue":"0","propUnit":""},\
{"name":"position_y","vizPropertyVariablename":"position_y","propertyValue":"center","propUnit":""},\
{"name":"valueLabelShow","vizPropertyVariablename":"valueLabelShow","propertyValue":"false","propUnit":""},\
{"name":"distance_valueLabel","vizPropertyVariablename":"distance_valueLabel","propertyValue":"10","propUnit":""},\
{"name":"position_valueLabel","vizPropertyVariablename":"position_valueLabel","propertyValue":"bottom","propUnit":""},\
{"name":"schemeArray","vizPropertyVariablename":"schemeArray","propertyValue":"fak","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44280^ ^3^ ^ ^1^600^400^200^100^
41^ABSOLV_RSZ_SEM_BAR^Absolvent*innen nach RSZ und Semester^ ^{"version":"0.2b","id":1,"name":"","renderer":"echarts",\
"dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"",\
"chartElements":[{"elemID":1,"vizTypeUniquename":"echarts_native","sourceCode":\
{\
title: {\
text: 'Absolvierende nach Regelstudienzeit',\
left: "center",\
top: "top",\
textStyle: {\
fontSize: 20\
}\
},\
grid: {\
top: "16%",\
left: "20%"\
},\
legend: {show:true,itemGap:5,itemHeight:6, top:'bottom',\
data: [{\
name: 'Absolv. in der Regelstudienzeit',\
icon: 'roundRect'},\
{\
name: 'Absolv. über der Regelstudienzeit',\
icon: 'roundRect'\
}\
]\
},\
tooltip: {},\
\
xAxis: [\
{ type: 'category', axisLabel:{rotate:30}}\
],\
yAxis: [{name:'', nameLocation:'middle', nameGap:40,id:0 }],\
\
series: [\
{ name:'Absolv. in der Regelstudienzeit',type: 'bar', encode:{x:'semester_str',y:'absolv_in_rsz'},stack:'summe', color:'#004a93',\
label: {\
show: true\
}},\
{ name:'Absolv. über der Regelstudienzeit',type: 'bar',encode:{x:'semester_str',y:'absolv_ueber_rsz'},stack:'summe', color:'#afcde4',\
label: {\
show: true\
}}\
]\
}\
}\
]\
}^ ^^25.08.2024^25.08.2024^44720^ ^3^{"version":"0.2b","id":1,"name":"","renderer":"echarts","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":"1","vizTypeUniquename":"echarts_line_y","caption":"line","datasource":"0","elementTypeProperties":[{"nr":"1","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#1a5fb4","propertyType":"string"},\
@ -1193,13 +1263,48 @@ @@ -1193,13 +1263,48 @@
{"name":"y","vizPropertyVariablename":"y","propertyValue":"summe","propUnit":""},\
{"name":"text","vizPropertyVariablename":"text","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^1^600^400^200^100^
33^STUDANF_HZB_LAND_BAR^Studierende nach HZB-Land^ ^{"version":"0.2b","id":1,"name":"","renderer":"echarts","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true},\
{"value":"1","nr":2,"name":"Tab. 2","isDefault":false},\
{"value":"2","nr":3,"name":"Tab. 3","isDefault":false},\
{"value":"3","nr":4,"name":"Tab. 4","isDefault":false}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"echarts_bar_x","caption":"bar_x","datasource":"3","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"hzb_bland","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#004c93","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende nach Bundesland der HZB"},\
{"name":"subtitle","vizPropertyVariablename":"caption","propertyValue":"Summe der Studierenden"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"marginBottom","vizPropertyVariablename":"marginBottom","propertyValue":"80","propUnit":""},\
{"name":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"0","propUnit":""},\
{"name":"labelRadiusFactor","vizPropertyVariablename":"labelRadiusFactor","propertyValue":"80","propUnit":""},\
{"name":"cornerRadius","vizPropertyVariablename":"cornerRadius","propertyValue":"10","propUnit":"px"},\
{"name":"labelOpacity","vizPropertyVariablename":"labelOpacity","propertyValue":"70","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#ffffff","propUnit":""},\
{"name":"color","vizPropertyVariablename":"color","propertyValue":"#000000","propUnit":""},\
{"name":"stroke_static","vizPropertyVariablename":"stroke_static","propertyValue":"#000000","propUnit":""},\
{"name":"fill_static","vizPropertyVariablename":"fill","propertyValue":"#004c93","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Studierende","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Fakultät","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"-45","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"blandLocalized","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"summe","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"hzb_bland","propUnit":""},\
{"name":"valueLabelShow","vizPropertyVariablename":"valueLabelShow","propertyValue":"false","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44600^ ^3^ ^ ^1^600^400^200^100^
42^ABSOLV_ABGRP_SEM_AREA^Absolvent*innen nach Abschlussgruppe und Semester^ ^{"version":"0.2b","id":1,"name":"","renderer":"echarts",\
"dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"",\
"chartElements":[{"elemID":1,"vizTypeUniquename":"echarts_native","sourceCode":\
{ \
title: {\
text: 'Absolvent*innen nach Abschluss',\
text: 'Absolvierende nach Abschluss',\
left: "center",\
top: "top",\
textStyle: {\
@ -1237,21 +1342,19 @@ title: {\ @@ -1237,21 +1342,19 @@ title: {\
type: 'cross',\
label: {\
backgroundColor: '#6a7985'\
} },\
valueFormatter: (value) => value.toLocaleString()\
\
}\
}\
},\
xAxis: [\
{ type: 'category', axisLabel:{rotate:30}}\
],\
yAxis: [{name:'', nameLocation:'middle', nameGap:40,id:0, axisLabel:{show:false} }],\
yAxis: [{name:'', nameLocation:'middle', nameGap:40,id:0, axisLabel:{show:true} }],\
series: [\
{ name:'BA',type: 'line', encode:{x:'semester_str',y:'absolv_ba'},stack:'summe', color:'#374ca',\
areaStyle: {},\
emphasis: {\
focus: 'series'\
}\
},\
}},\
{ name:'LA BA',type: 'line',encode:{x:'semester_str',y:'absolv_ba_la'},stack:'summe', color:'#5e70ba',\
areaStyle: {},\
emphasis: {\
@ -1323,109 +1426,3 @@ title: {\ @@ -1323,109 +1426,3 @@ title: {\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"summe","propUnit":""},\
{"name":"text","vizPropertyVariablename":"text","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^1^600^400^200^100^
41^ABSOLV_RSZ_SEM_BAR^Absolvent*innen nach RSZ und Semester^ ^{"version":"0.2b","id":1,"name":"","renderer":"echarts",\
"dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"",\
"chartElements":[{"elemID":1,"vizTypeUniquename":"echarts_native","sourceCode":\
{\
title: {\
text: 'Absolvent*innen nach Regelstudienzeit',\
left: "center",\
top: "top",\
textStyle: {\
fontSize: 20\
}\
},\
grid: {\
top: "16%",\
left: "20%"\
},\
legend: {show:true,itemGap:5,itemHeight:6, top:'bottom',\
data: [{\
name: 'Absolv. in der Regelstudienzeit',\
icon: 'roundRect'},\
{\
name: 'Absolv. über der Regelstudienzeit',\
icon: 'roundRect'\
}\
]\
},\
tooltip: {\
valueFormatter: (value) => value.toLocaleString()\
},\
\
xAxis: [\
{ type: 'category', axisLabel:{rotate:30}}\
],\
yAxis: [{name:'', nameLocation:'middle', nameGap:40,id:0 }],\
\
series: [\
{ name:'Absolv. in der Regelstudienzeit',type: 'bar', encode:{x:'semester_str',y:'absolv_in_rsz'},stack:'summe', color:'#004a93',\
label: {\
show: true,\
fontWeight:'bolder',\
formatter: function (params) {\
return params.value[params.dimensionNames[params.encode.y[0]]].toLocaleString()\
}\
} \
},\
{ name:'Absolv. über der Regelstudienzeit',type: 'bar',encode:{x:'semester_str',y:'absolv_ueber_rsz'},stack:'summe', color:'#afcde4',\
label: {\
show: true,\
fontWeight:'bolder',\
formatter: function (params) {\
return params.value[params.dimensionNames[params.encode.y[0]]].toLocaleString()\
}\
} \
}\
]\
}\
}\
]\
}^ ^^25.08.2024^25.08.2024^44720^ ^3^{"version":"0.2b","id":1,"name":"","renderer":"echarts","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":"1","vizTypeUniquename":"echarts_line_y","caption":"line","datasource":"0","elementTypeProperties":[{"nr":"1","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#1a5fb4","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#ffffff","propertyType":"string"}]},\
{"elemID":2,"vizTypeUniquename":"dot","caption":"dot","datasource":"0","elementTypeProperties":[{"nr":2,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#1a5fb4","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"}]},\
{"elemID":"3","vizTypeUniquename":"text","caption":"text","datasource":"0","elementTypeProperties":[{"nr":"3","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"semester_str","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"text","caption":"Beschriftung","propertyValue":"summe","propertyType":"string"},\
{"name":"strokeWidth","vizPropertyVariablename":"strokeWidth","propertyValue":"1","propUnit":""},\
{"nr":"3","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":"3","vizTypePropertyUniquename":"dx","caption":"Offset (horizontal)","propertyValue":"4","propertyType":"integer"},\
{"nr":"3","vizTypePropertyUniquename":"dy","caption":"Offset (vertikal)","propertyValue":"-20","propertyType":"integer"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studienanfäger_innen nach Semester"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"marginTop","vizPropertyVariablename":"marginTop","propertyValue":"70","propUnit":""},\
{"name":"strokeWidth","vizPropertyVariablename":"strokeWidth","propertyValue":"1","propUnit":""},\
{"name":"marginBottom","vizPropertyVariablename":"marginBottom","propertyValue":"80","propUnit":""},\
{"name":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"0","propUnit":""},\
{"name":"labelRadiusFactor","vizPropertyVariablename":"labelRadiusFactor","propertyValue":"80","propUnit":""},\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"-45","propUnit":""},\
{"name":"cornerRadius","vizPropertyVariablename":"cornerRadius","propertyValue":"10","propUnit":"px"},\
{"name":"labelOpacity","vizPropertyVariablename":"labelOpacity","propertyValue":"70","propUnit":""},\
{"name":"dx","vizPropertyVariablename":"dx","propertyValue":"4","propUnit":"px"},\
{"name":"dy","vizPropertyVariablename":"dy","propertyValue":"-20","propUnit":"px"},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#ffffff","propUnit":""},\
{"name":"color","vizPropertyVariablename":"color","propertyValue":"#000000","propUnit":""},\
{"name":"fontFamily","vizPropertyVariablename":"fontFamily","propertyValue":"sans-serif","propUnit":""},\
{"name":"fontSize","vizPropertyVariablename":"fontSize","propertyValue":"14","propUnit":"px"},\
{"name":"stroke_static","vizPropertyVariablename":"stroke_static","propertyValue":"#000000","propUnit":""},\
{"name":"fill_static","vizPropertyVariablename":"fill","propertyValue":"#000000","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Studierende","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Semester","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"semester_str","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"summe","propUnit":""},\
{"name":"text","vizPropertyVariablename":"text","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^1^600^400^200^100^

676
src-modules/module/viz/schluesseltabellen/viz_properties_echarts_fuellen.sql

@ -0,0 +1,676 @@ @@ -0,0 +1,676 @@
--Freemarker Template
<#include "SQL_lingua_franca"/>
<#include "SuperX_general"/>
<#include "VIZ-Makros"/>
<sqlvars>
<sqlvar name="renderer">
select tid from viz_renderer where uniquename='echarts';
</sqlvar>
</sqlvars>
<#assign viz_properties = [
{ "caption":"Dimensionen",
"prop_uniquename":"dimensionsNode",
"explanation":"Dimensionen",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"NODE",
"sortnr":"1",
"range_from":"",
"range_to":"",
"prop_value_type":"NODE",
"parent_property_uniquename":"",
"variableName":"encode"
},
{ "caption":"X-Achse",
"prop_uniquename":"x",
"explanation":"X-Achse",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"1",
"input_type_uniquename":"SELECT",
"property_group_uniquename":"CATEGORY",
"sortnr":"608",
"range_from":"",
"range_to":"",
"prop_value_type":"string",
"parent_property_uniquename":"dimensionsNode"
},
{ "caption":"Y-Achse",
"prop_uniquename":"y",
"explanation":"Y-Achse",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"1",
"input_type_uniquename":"SELECT",
"property_group_uniquename":"CATEGORY",
"sortnr":"610",
"range_from":"",
"range_to":"",
"prop_value_type":"string",
"parent_property_uniquename":"dimensionsNode"
},
{ "caption":"Dimension 1",
"prop_uniquename":"dimension1",
"explanation":"Dimension 1",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"1",
"input_type_uniquename":"SELECT",
"property_group_uniquename":"CATEGORY",
"sortnr":"608",
"range_from":"",
"range_to":"",
"prop_value_type":"string",
"parent_property_uniquename":"dimensionsNode"
},
{ "caption":"Maß 1",
"prop_uniquename":"measure1",
"explanation":"Maß 1",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"1",
"input_type_uniquename":"SELECT",
"property_group_uniquename":"MEASURE",
"sortnr":"610",
"range_from":"",
"range_to":"",
"prop_value_type":"string",
"parent_property_uniquename":"dimensionsNode"
},
{ "caption":"Serien-Dimension",
"prop_uniquename":"stroke",
"explanation":"Serien-Dimension",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"1",
"input_type_uniquename":"SELECT",
"property_group_uniquename":"CATEGORY",
"sortnr":"608",
"range_from":"",
"range_to":"",
"prop_value_type":"string",
"parent_property_uniquename":"dimensionsNode"
},
{ "caption":"Titel",
"prop_uniquename":"titleNode",
"explanation":"Titel-Element",
"prop_default":"",
"prop_unit":"",
"is_generic":"1",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"NODE",
"sortnr":"1",
"range_from":"",
"range_to":"",
"prop_value_type":"NODE",
"parent_property_uniquename":"",
"variableName":"subtitle"
},
{ "caption":"Untertitel-Text",
"prop_uniquename":"subtitle",
"explanation":"Text",
"prop_default":"",
"prop_unit":"",
"is_generic":"1",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"property_group_uniquename":"",
"sortnr":"10",
"range_from":"",
"range_to":"",
"prop_value_type":"STRING",
"parent_property_uniquename":"titleNode"
},
{ "caption":"Titel-Ausrichtung (horiz.)",
"prop_uniquename":"title.left",
"explanation":"",
"prop_default":"left",
"prop_unit":"",
"is_generic":"1",
"static_values":"left|center|right",
"is_mandatory":"0",
"input_type_uniquename":"SELECT",
"property_group_uniquename":"",
"sortnr":"10",
"range_from":"",
"range_to":"",
"prop_value_type":"STRING",
"parent_property_uniquename":"titleNode",
"variableName":"title.left"
},
{ "caption":"Titel-Ausrichtung (vertikal)",
"prop_uniquename":"title.top",
"explanation":"",
"prop_default":"top",
"prop_unit":"",
"is_generic":"1",
"static_values":"top|center|bottom",
"is_mandatory":"0",
"input_type_uniquename":"SELECT",
"property_group_uniquename":"",
"sortnr":"10",
"range_from":"",
"range_to":"",
"prop_value_type":"STRING",
"parent_property_uniquename":"titleNode",
"variableName":"title.top"
},
{ "caption":"Ränder",
"prop_uniquename":"marginNode",
"explanation":"",
"prop_default":"",
"prop_unit":"",
"is_generic":"1",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"NODE",
"property_group_uniquename":"",
"sortnr":"10",
"range_from":"",
"range_to":"",
"prop_value_type":"NODE",
"parent_property_uniquename":"",
"variableName":"marginNode"
},
{ "caption":"Rand links in %",
"prop_uniquename":"margin.left",
"explanation":"Linker Rand in %",
"prop_default":"20",
"prop_unit":"%",
"is_generic":"1",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"20",
"range_from":"",
"range_to":"",
"prop_value_type":"integer",
"parent_property_uniquename":"marginNode",
"variableName":"margin.left"
},
{ "caption":"Rand rechts in %",
"prop_uniquename":"margin.right",
"explanation":"Rechter Rand in %",
"prop_default":"0",
"prop_unit":"%",
"is_generic":"1",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"30",
"range_from":"",
"range_to":"",
"prop_value_type":"integer",
"parent_property_uniquename":"marginNode",
"variableName":"margin.right"
},
{ "caption":"Rand oben in %",
"prop_uniquename":"margin.top",
"explanation":"Oberer Rand in %",
"prop_default":"16",
"prop_unit":"%",
"is_generic":"1",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"40",
"range_from":"",
"range_to":"",
"prop_value_type":"integer",
"parent_property_uniquename":"marginNode",
"variableName":"margin.top"
},
{ "caption":"Rand unten in %",
"prop_uniquename":"margin.bottom",
"explanation":"Unterer Rand in %",
"prop_default":"20",
"prop_unit":"%",
"is_generic":"1",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"50",
"range_from":"",
"range_to":"",
"prop_value_type":"integer",
"parent_property_uniquename":"marginNode",
"variableName":"margin.bottom"
},
{ "caption":"X-Achse",
"prop_uniquename":"xAxisNode",
"explanation":"X-Achse-Element",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"NODE",
"sortnr":"10",
"range_from":"",
"range_to":"",
"prop_value_type":"NODE",
"parent_property_uniquename":"",
"variableName":"xAxis"
},
{ "caption":"X-Achse Name",
"prop_uniquename":"xAxisName",
"explanation":"X-Achse-Name",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"20",
"range_from":"",
"range_to":"",
"prop_value_type":"STRING",
"parent_property_uniquename":"xAxisNode",
"variableName":"xAxisName"
},
{ "caption":"X-Achse Beschriftung",
"prop_uniquename":"xAxisLabelNode",
"explanation":"X-Achse-Beschriftung",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"NODE",
"sortnr":"30",
"range_from":"",
"range_to":"",
"prop_value_type":"NODE",
"parent_property_uniquename":"xAxisNode",
"variableName":"xAxisLabelNode"
},
{ "caption":"X: Schriftneigung",
"prop_uniquename":"tickRotate_x",
"explanation":"X-Achse-Beschriftung Schriftneigung",
"prop_default":"30",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"40",
"range_from":"-90",
"range_to":"90",
"prop_value_type":"integer",
"parent_property_uniquename":"xAxisLabelNode",
"variableName":"tickRotate_x"
},
{ "caption":"X: Beschriftung Breite",
"prop_uniquename":"width_x",
"explanation":"X-Achse Breite Beschriftung",
"prop_default":"100",
"prop_unit":"px",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"50",
"range_from":"",
"range_to":"",
"prop_value_type":"integer",
"parent_property_uniquename":"xAxisLabelNode",
"variableName":"width_x"
},
{ "caption":"X: Abstand Beschriftung",
"prop_uniquename":"padding_x",
"explanation":"X-Achse Abstand Beschriftung zur Achsenlinie",
"prop_default":"5",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"60",
"range_from":"",
"range_to":"",
"prop_value_type":"integer",
"parent_property_uniquename":"xAxisLabelNode",
"variableName":"padding_x"
},
{ "caption":"Y-Achse",
"prop_uniquename":"yAxisNode",
"explanation":"Y-Achse-Element",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"NODE",
"sortnr":"100",
"range_from":"",
"range_to":"",
"prop_value_type":"NODE",
"parent_property_uniquename":"",
"variableName":"yAxis"
},
{ "caption":"Y-Achse Name",
"prop_uniquename":"yAxisName",
"explanation":"Y-Achse-Name",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"110",
"range_from":"",
"range_to":"",
"prop_value_type":"STRING",
"parent_property_uniquename":"yAxisNode",
"variableName":"yAxisName"
},
{ "caption":"Y-Achse Beschriftung",
"prop_uniquename":"yAxisLabelNode",
"explanation":"Y-Achse-Beschriftung",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"NODE",
"sortnr":"120",
"range_from":"",
"range_to":"",
"prop_value_type":"NODE",
"parent_property_uniquename":"yAxisNode",
"variableName":"yAxisLabelNode"
},
{ "caption":"Y: Schriftneigung",
"prop_uniquename":"tickRotate_y",
"explanation":"Y-Achse-Beschriftung Schriftneigung",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"130",
"range_from":"-90",
"range_to":"90",
"prop_value_type":"integer",
"parent_property_uniquename":"yAxisLabelNode",
"variableName":"tickRotate_y"
},
{ "caption":"Y: Abstand Beschriftung",
"prop_uniquename":"padding_y",
"explanation":"Y-Achse Abstand Beschriftung zur Achsenlinie",
"prop_default":"5",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"140",
"range_from":"",
"range_to":"",
"prop_value_type":"integer",
"parent_property_uniquename":"yAxisLabelNode",
"variableName":"padding_y"
},
{ "caption":"Y: Beschriftung Breite",
"prop_uniquename":"width_y",
"explanation":"Y-Achse Breite Beschriftung",
"prop_default":"50",
"prop_unit":"px",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"150",
"range_from":"",
"range_to":"",
"prop_value_type":"integer",
"parent_property_uniquename":"yAxisLabelNode",
"variableName":"width_y"
},
{ "caption":"Y: Distanz Beschriftung",
"prop_uniquename":"distance_y",
"explanation":"Y-Achse Abstand Beschriftung zum Item",
"prop_default":"0",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"160",
"range_from":"",
"range_to":"",
"prop_value_type":"integer",
"parent_property_uniquename":"yAxisLabelNode",
"variableName":"distance_y"
},
{ "caption":"Ausrichtung Y-Label (vertikal)",
"prop_uniquename":"position_y",
"explanation":"",
"prop_default":"center",
"prop_unit":"",
"is_generic":"1",
"static_values":"top|center|bottom",
"is_mandatory":"0",
"input_type_uniquename":"SELECT",
"property_group_uniquename":"",
"sortnr":"170",
"range_from":"",
"range_to":"",
"prop_value_type":"STRING",
"parent_property_uniquename":"yAxisLabelNode",
"variableName":"position_y"
},
{ "caption":"Wertelabel",
"prop_uniquename":"valueLabelNode",
"explanation":"Beschriftung der Diagrammelemente",
"prop_default":"",
"prop_unit":"",
"is_generic":"1",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"NODE",
"sortnr":"400",
"range_from":"",
"range_to":"",
"prop_value_type":"NODE",
"parent_property_uniquename":"",
"variableName":"valueLabelNode"
},
{ "caption":"Label anzeigen",
"prop_uniquename":"valueLabelShow",
"explanation":"",
"prop_default":"true",
"prop_unit":"",
"is_generic":"1",
"static_values":"true|false",
"is_mandatory":"0",
"input_type_uniquename":"SELECT",
"property_group_uniquename":"",
"sortnr":"410",
"range_from":"",
"range_to":"",
"prop_value_type":"STRING",
"parent_property_uniquename":"valueLabelNode",
"variableName":"valueLabelShow"
},
{ "caption":"Wertelabel: Distanz Beschriftung",
"prop_uniquename":"distance_valueLabel",
"explanation":"Wertelabel Abstand Beschriftung zum Item",
"prop_default":"10",
"prop_unit":"",
"is_generic":"1",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"sortnr":"420",
"range_from":"",
"range_to":"",
"prop_value_type":"integer",
"parent_property_uniquename":"valueLabelNode",
"variableName":"distance_y"
},
{ "caption":"Ausrichtung Wertelabel (vertikal)",
"prop_uniquename":"position_valueLabel",
"explanation":"",
"prop_default":"center",
"prop_unit":"",
"is_generic":"1",
"static_values":"top|center|bottom",
"is_mandatory":"0",
"input_type_uniquename":"SELECT",
"property_group_uniquename":"",
"sortnr":"430",
"range_from":"",
"range_to":"",
"prop_value_type":"STRING",
"parent_property_uniquename":"valueLabelNode",
"variableName":"position_valueLabel"
},
{ "caption":"Diagrammelement",
"prop_uniquename":"seriesNode",
"explanation":"Layout der Diagrammelemente",
"prop_default":"",
"prop_unit":"",
"is_generic":"1",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"NODE",
"sortnr":"400",
"range_from":"",
"range_to":"",
"prop_value_type":"NODE",
"parent_property_uniquename":"",
"variableName":"seriesNode"
},
{ "caption":"Farbpalette (vordef.)",
"prop_uniquename":"schemeArray",
"explanation":"Farbpalette",
"prop_default":"",
"prop_unit":"",
"is_generic":"1",
"static_values":"abgrp|fak|unique|dichotom|quadroColor|blandLocalized|colorGrades",
"is_mandatory":"0",
"input_type_uniquename":"SELECT",
"property_group_uniquename":"",
"sortnr":"410",
"range_from":"",
"range_to":"",
"prop_value_type":"STRING",
"parent_property_uniquename":"seriesNode",
"variableName":"schemeArray"
},
{ "caption":"Innerer Radius in %",
"prop_uniquename":"innerRadius",
"explanation":"Innerer Radius bei Tortendiagrammen (Faktor in %). Bei 0 wird kein innerer Radius genutzt, ein Wert größer 0 macht das Tortendiagramm zum Donut.",
"prop_default":"30",
"prop_unit":"%",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"property_group_uniquename":"",
"sortnr":"420",
"range_from":"",
"range_to":"",
"prop_value_type":"INTEGER",
"parent_property_uniquename":"seriesNode",
"variableName":"innerRadius"
},
{ "caption":"Äußerer Radius in %",
"prop_uniquename":"outerRadius",
"explanation":"Äußerer Radius bei Tortendiagrammen (Faktor in %). Parameter definiert den Anteil des Kreises am ganzen Rechteck",
"prop_default":"80",
"prop_unit":"%",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"property_group_uniquename":"",
"sortnr":"440",
"range_from":"",
"range_to":"",
"prop_value_type":"INTEGER",
"parent_property_uniquename":"seriesNode",
"variableName":"outerRadius"
},
{ "caption":"Abgerundete Ecken",
"prop_uniquename":"cornerRadiusRounded",
"explanation":"Abgerundete Ecken der Tortenstücke",
"prop_default":"true",
"prop_unit":"",
"is_generic":"0",
"static_values":"true|false",
"is_mandatory":"0",
"input_type_uniquename":"SELECT",
"property_group_uniquename":"",
"sortnr":"460",
"range_from":"",
"range_to":"",
"prop_value_type":"STRING",
"parent_property_uniquename":"seriesNode",
"variableName":"cornerRadiusRounded"
},
{ "caption":"Zeilenselektion bei Serien",
"prop_uniquename":"series_selection_line",
"explanation":"Optionale Auswahl der Zeilen einer Tabelle. Sie können mit Operator größer, kleiner, oder komma-getrennten Listen der Zeilennummern arbeiten.",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"property_group_uniquename":"",
"sortnr":"430",
"range_from":"",
"range_to":"",
"prop_value_type":"STRING",
"parent_property_uniquename":"seriesNode",
"variableName":"series_selection_line"
},
{ "caption":"Spaltenselektion bei Serien",
"prop_uniquename":"series_selection_column",
"explanation":"Optionale Auswahl der Spalten einer Tabelle. Sie können mit Operator größer, kleiner, oder komma-getrennten Listen der Spaltennummern arbeiten.",
"prop_default":"",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"property_group_uniquename":"",
"sortnr":"440",
"range_from":"",
"range_to":"",
"prop_value_type":"STRING",
"parent_property_uniquename":"seriesNode",
"variableName":"series_selection_column"
}
]
/>
<@create_temp_tables />
<@fill_viz_properties />

68
src-modules/module/viz/schluesseltabellen/viz_properties_echarts_line_bar_fuellen.sql

@ -0,0 +1,68 @@ @@ -0,0 +1,68 @@
--Freemarker Template
<#include "SQL_lingua_franca"/>
<#include "SuperX_general"/>
<#include "VIZ-Makros"/>
<sqlvars>
<sqlvar name="renderer">
select tid from viz_renderer where uniquename='echarts';
</sqlvar>
</sqlvars>
<#assign viz_types = [
{"uniquename":"echarts_bar_y", "caption":"Säulendiagramm (vertikal)",
"orientation":"V",
"description":"Vertikales Balkendiagramm",
"explanation":""},
{"uniquename":"echarts_bar_x", "caption":"Balkendiagramm (horizontal)",
"orientation":"H",
"description":"Horizontales Balkendiagramm",
"explanation":""},
{"uniquename":"echarts_line_y", "caption":"Liniendiagramm (vertikal)",
"orientation":"V",
"description":"Vertikales Liniendiagramm",
"explanation":""},
{"uniquename":"echarts_line_x", "caption":"Liniendiagramm (horizontal)",
"orientation":"H",
"description":"Horizontales Liniendiagramm",
"explanation":""}
]
/>
<#assign viz_type_properties = [
{"viz_property_uniquename":"x",
"is_mandatory":"1"},
{"viz_property_uniquename":"y",
"is_mandatory":"1"},
{"viz_property_uniquename":"xAxisNode"},
{"viz_property_uniquename":"xAxisName"},
{"viz_property_uniquename":"xAxisLabelNode"},
{"viz_property_uniquename":"tickRotate_x"},
{"viz_property_uniquename":"width_x"},
{"viz_property_uniquename":"padding_x"},
{"viz_property_uniquename":"yAxisNode"},
{"viz_property_uniquename":"yAxisName"},
{"viz_property_uniquename":"yAxisLabelNode"},
{"viz_property_uniquename":"tickRotate_y"},
{"viz_property_uniquename":"width_y"},
{"viz_property_uniquename":"padding_y"}
]
/>
<@create_temp_tables />
<#foreach viz_type in viz_types>
<@fill_viz_types viz_type_p=viz_type />
<@fill_viz_type_properties viz_type_p=viz_type />
</#foreach>

55
src-modules/module/viz/schluesseltabellen/viz_properties_echarts_line_bar_series_fuellen.sql

@ -0,0 +1,55 @@ @@ -0,0 +1,55 @@
--Freemarker Template
<#include "SQL_lingua_franca"/>
<#include "SuperX_general"/>
<#include "VIZ-Makros"/>
<sqlvars>
<sqlvar name="renderer">
select tid from viz_renderer where uniquename='echarts';
</sqlvar>
</sqlvars>
<#assign viz_types = [
{"uniquename":"echarts_bar_y_series", "caption":"Säulendiagramm mit Serien (vertikal)",
"orientation":"V",
"description":"Vertikales Balkendiagramm mit Serien",
"explanation":""},
{"uniquename":"echarts_line_y_series", "caption":"Liniendiagramm mit Serien (vertikal)",
"orientation":"V",
"description":"Vertikales Liniendiagramm mit Serien",
"explanation":""}
]
/>
<#assign viz_type_properties = [
{"viz_property_uniquename":"stroke",
"is_mandatory":"1"},
{"viz_property_uniquename":"series_selection_line"},
{"viz_property_uniquename":"series_selection_column"}
{"viz_property_uniquename":"xAxisNode"},
{"viz_property_uniquename":"xAxisName"},
{"viz_property_uniquename":"xAxisLabelNode"},
{"viz_property_uniquename":"tickRotate_x"},
{"viz_property_uniquename":"width_x"},
{"viz_property_uniquename":"padding_x"},
{"viz_property_uniquename":"yAxisNode"},
{"viz_property_uniquename":"yAxisName"},
{"viz_property_uniquename":"yAxisLabelNode"},
{"viz_property_uniquename":"tickRotate_y"},
{"viz_property_uniquename":"width_y"},
{"viz_property_uniquename":"padding_y"}
]
/>
<@create_temp_tables />
<#foreach viz_type in viz_types>
<@fill_viz_types viz_type_p=viz_type />
<@fill_viz_type_properties viz_type_p=viz_type />
</#foreach>

43
src-modules/module/viz/schluesseltabellen/viz_properties_echarts_pie_fuellen.sql

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
--Freemarker Template
<#include "SQL_lingua_franca"/>
<#include "SuperX_general"/>
<#include "VIZ-Makros"/>
<sqlvars>
<sqlvar name="renderer">
select tid from viz_renderer where uniquename='echarts';
</sqlvar>
</sqlvars>
<#assign viz_types = [
{"uniquename":"echarts_pie", "caption":"Kreisdiagramm",
"orientation":"Z",
"description":"Torten-/Donutdiagramm",
"explanation":""}
]
/>
<#assign viz_type_properties = [
{"viz_property_uniquename":"dimension1",
"is_mandatory":"1"},
{"viz_property_uniquename":"measure1",
"is_mandatory":"1"},
{"viz_property_uniquename":"innerRadius"},
{"viz_property_uniquename":"outerRadius"},
{"viz_property_uniquename":"cornerRadiusRounded"}
]
/>
<@create_temp_tables />
<#foreach viz_type in viz_types>
<@fill_viz_types viz_type_p=viz_type />
<@fill_viz_type_properties viz_type_p=viz_type />
</#foreach>

1
src-modules/module/viz/schluesseltabellen/viz_property_input_type.unl

@ -4,3 +4,4 @@ @@ -4,3 +4,4 @@
4^RANGE^Schieberegler^
5^TEXTAREA^Großes Textfeld^
6^CHECKBOX^Ankreuzfeld^
7^NODE^Knotenelement^

31
src-modules/module/viz/upgrade/viz_upgrade_man.sql

@ -1,3 +1,9 @@ @@ -1,3 +1,9 @@
--Freemarker Template
<sqlvars>
<sqlvar name="k_astat_abschl_grp_exists">
select sp_table_exists('k_astat_abschl_grp') from xdummy;
</sqlvar>
</sqlvars>
update viz_chart set chart_width=600 where chart_width is null;
update viz_chart set chart_height=400 where chart_height is null;
@ -5,3 +11,28 @@ update viz_chart set chart_height=400 where chart_height is null; @@ -5,3 +11,28 @@ update viz_chart set chart_height=400 where chart_height is null;
update viz_chart set chart_miniature_width=600 where chart_miniature_width is null;
update viz_chart set chart_miniature_height=400 where chart_miniature_height is null;
<#if k_astat_abschl_grp_exists==1>
--Querabhängigkeit zum Kernmodul 5.2 abwärtskomp.:
<#if TableFieldExists?exists && TableFieldExists('k_astat_abschl_grp','ist_lehramt')>
update k_astat_abschl_grp set ist_lehramt=1
where abschluss_astat_bund in ('15','16','19')
or substring(abschluss_astat_bund from 1 for 1) in ('2','3','4')
or abschluss_astat_bund in ('50','52','55','57','58','60','61','62','63','64','65','66','67','98','99');
</#if>
<#else>
create table k_astat_abschl_grp(
abschluss_astat_bund VARCHAR(255) not null,
abschluss_astat_bund_ktxt VARCHAR(255) ,
abschlussart VARCHAR(255) ,
abschluss_grp VARCHAR(255) ,
ist_lehramt SMALLINT default 0 ,
constraint pk_k_astat_abschl_grp primary key (abschluss_astat_bund)
)
;
</#if>

66
superx/style/sx_treeform.css

@ -0,0 +1,66 @@ @@ -0,0 +1,66 @@
#sichtentreeUL {
list-style-type: none;
margin-left: 2em;
padding: 0;
}
.sichtentreeCaret {
cursor: pointer;
-webkit-user-select: none; /* Safari 3.1 */
-moz-user-select: none; /* Firefox 2 */
-ms-user-select: none; /* IE 10 */
user-select: none;
}
.sichtentreeCaret::before {
content: "\25B6";
color: #014A7B;
display: inline-block;
margin-right: 0px;
}
.sichtentreeCaret-down::before {
-ms-transform: rotate(90deg); /* IE 9 */
-webkit-transform: rotate(90deg); /* Safari */'
transform: rotate(90deg);
}
.sichtentreePlaceholder {
margin-left: 16px;
}
.sichtentreeNested {
display: none;
margin-right: 0px;
padding-left: 13px;
}
.sichtentreeActive {
display: block;
margin-right: 0px;
padding-left: 13px;
}
.sichtentreeSpacer {
padding-left: 10px; /*wofür nötig?*/
}
.sichtentreeLink {
text-decoration: none; /* keine Unterstreichung für links */
}
.sichtentreeLinkWithSpace {
text-decoration: none; /* keine Unterstreichung für links */
margin-left:10px;
box-decoration-break: clone;
-webkit-box-decoration-break: clone;
}
ul.sichtentreeChildUL {
margin: 0px;
padding-left: 10px;
list-style-type: none;
list-style-position: inside;
list-style-image: none;
}

268
superx/xml/js/viz/viz_assistent.js

@ -248,7 +248,7 @@ return selectionProperties; @@ -248,7 +248,7 @@ return selectionProperties;
function generateFormFieldHtml(labelText,fieldname,tooltiptext,inputElem)
{
var zs="<div class='field is-grouped'>";
var zs="<div class='field'>";
zs+="<div class='label-container' lang='de'><span class='labelNormal has-tooltip-bottom' data-tooltip='"+tooltiptext+"'>"+labelText+"</span></div>";
zs+="<div class='control'><div class='field'><div class='control is-expanded'>";
@ -339,10 +339,17 @@ function createChartElementConfig1Form(renderer,elemID) @@ -339,10 +339,17 @@ function createChartElementConfig1Form(renderer,elemID)
//selDatasourceElem.style.width="100px";
fillSelectOptions(selDatasourceElem,rsTableMetaData,true,(myChartElem!=null?myChartElem.datasource:null));
var datasourceFieldHtml=generateFormFieldHtml("Datenquelle","chartElementDatasource","Datenquelle für das Diagrammelement, bei Makroberichten wählen Sie die Tabellennnummer",selDatasourceElem);
var datasourceFieldHtml="";
if(rsTableMetaData.length==1)
{
//wenn nur ein Resultset da ist, kann es ausgeblendet bleiben:
selDatasourceElem.style="display:none;";
datasourceFieldHtml=getOuterHTML(selDatasourceElem);
}
else
{
datasourceFieldHtml=generateFormFieldHtml("Datenquelle","chartElementDatasource","Datenquelle für das Diagrammelement, bei Makroberichten wählen Sie die Tabellennnummer",selDatasourceElem);
}
const selVizTypeElem = document.createElement("select");
selVizTypeElem.name="chartElementVizType";
@ -688,6 +695,9 @@ function showChartPropertiesFormDiv(formDiv,formElementsDiv,renderer) @@ -688,6 +695,9 @@ function showChartPropertiesFormDiv(formDiv,formElementsDiv,renderer)
var myDiv=document.getElementById(formDiv);
switch (formDiv)
{
case "chartPropertiesTreeFormDiv":
renderChartPropertiesTreeForm(formElementsDiv,commonChartProperties,myChartModel);
break;
case "generalChartPropertiesFormDiv":
renderGeneralChartPropertiesForm(formElementsDiv,commonChartProperties,myChartModel);
break;
@ -901,7 +911,159 @@ function renderDimensionFieldAlt(vizTypeProperty,datasource,selectedValue) @@ -901,7 +911,159 @@ function renderDimensionFieldAlt(vizTypeProperty,datasource,selectedValue)
return fieldElem;
}
function renderChartPropertiesTreeForm(formDiv,myCommonChartProperties,currentChartModel)
{
//first empty form:
var myForm=document.getElementById(formDiv);
while (myForm.firstChild) {
myForm.removeChild(myForm.firstChild);
}
const treeDiv = document.createElement("div");
const treeDivText = document.createTextNode(" Insg. " + vizPropertyTreeNodes.length+ "Eigenschaften:");
const treeDivTextBold = document.createElement("strong");
treeDivTextBold.appendChild(treeDivText);
treeDiv.appendChild(treeDivTextBold);
var propertyTree = new Array();
for(var k=0;k < vizPropertyTreeNodes.length;k++)
{
if(vizPropertyTreeNodes[k].typeUniquename== document.getElementById("chartElementVizType").value //Abfragen welcher VIZ-Type
)
{
var myProp=myCommonChartProperties.find(prop => prop.name === vizPropertyTreeNodes[k].propUniquename);
if(myProp.groupUniquename!="CATEGORY" && myProp.groupUniquename!="MEASURE" && myProp.propUniquename !="dimensionsNode")
{
var myPropValue=getPropertyValueFromModel(currentChartModel,vizPropertyTreeNodes[k].propUniquename,true,vizPropertyTreeNodes[k].typeUniquename )
let entry=new sxTreeNode;
entry.id=vizPropertyTreeNodes[k].propUniquename;
entry.caption=vizPropertyTreeNodes[k].propertyCaption;
entry.parent=vizPropertyTreeNodes[k].parentPropertyUniquename;
if(myProp.inputType!="NODE")
{
entry.inputPostCaption=renderTreeInput(myProp,entry.id,myPropValue);
}
if(myProp.inputType=="NODE")
{
entry.hasChildren=true;
}
entry.explanation=myProp.explanation;
propertyTree.push(entry);
}
/* alter Code Liste:if(myProp.groupUniquename!="CATEGORY" && myProp.groupUniquename!="MEASURE")
{
if(myProp.inputType=="NODE")
{
const treeNodeText = document.createTextNode(myProp.caption);
treeDiv.appendChild(treeNodeText);
}
else
{
treeDiv.appendChild(renderChartPropertyField(null,myProp,true));
}
}*/
}
}
if(propertyTree && propertyTree.length >0)
{
//zs +="<li>content.nodes.length"+content.nodes.length+"</li>";
var zs="";
zs +="<ul id='sichtentreeUL'>";
for(var j=0;j < propertyTree.length;j++)
{
var node=propertyTree[j];
if(node.parent==null || node.parent=="")
zs +=node.renderSxNode(propertyTree,true);
}
}
zs +="</ul>";
treeDiv.innerHTML=zs;
myForm.appendChild(treeDiv);
}
function getPropertyValueFromModel(myChartModel,propUniquename,isCommon,chartElemId )
{
//Wenn im chartModel schon ein Wert vorhanden ist, wird er vorbelegt: if(chartProperty)
var propValue="";
if(myChartModel && isCommon && myChartModel.chartPropertiesUsed.length>0)
{
propValue=getChartPropertyFromModel(myChartModel.chartPropertiesUsed,propUniquename,isCommon );
}
if(myChartModel && !isCommon && myChartModel.chartElements.length >0)
{
var filtered=myChartModel.chartElements.filter(obj => obj.elemID == chartElemId);
var myChartElem=filtered[0];
if(myChartElem && myChartElem.elementTypeProperties && myChartElem.elementTypeProperties.length)
{
propValue=getChartPropertyFromModel(myChartElem.elementTypeProperties,propUniquename,isCommon );
}
}
return propValue;
}
function renderTreeInput(chartProperty,inputId, previousValue)
{
var zs="";
switch (chartProperty.inputType) {
case "TEXT":
zs="&nbsp;<span class=\"field\"><input type=\"text\" size=\"6\" id=\""+inputId+"\" name=\""+inputId+"\"";
zs+=" value=\""+previousValue +"\" onChange=\"treeInputOnchange('chartDiv',myChartModel);\" /></span>";
break;
case "SELECT":
zs="&nbsp;<span class=\"field\"><select id=\""+inputId+"\" name=\""+inputId+"\"";
zs+=" value=\""+previousValue +"\" onChange=\"treeInputOnchange('chartDiv',myChartModel);\" >";
zs+=getTreeInputSelectOptions(chartProperty.getValueResultset(),previousValue,chartProperty.isMandatory) ;
zs+="</select></span>";
break;
case "CHECKBOX":
zs="&nbsp;<span class=\"field\"><input type=\"checkbox\" id=\""+inputId+"\" name=\""+inputId+"\"";
zs+=" value=\""+previousValue +"\" onChange=\"treeInputOnchange('chartDiv',myChartModel);\"";
zs+=(previousValue)?"checked ":"";
zs+="</input></span>";
break;
default:
zs="Unbekannter Feldtyp";
break;
}
return zs;
}
function getTreeInputSelectOptions(myValues,selectedValue,isMandatory)
{
var zs="";
for(var j=0;j < myValues.length;j++)
{
var defaultSelected=false;
if(myValues[j].value==selectedValue)
{
selectedOption=j+(isMandatory?0:1);
defaultSelected=true;
}
if(selectedOption==null && myValues[j].isDefault)
{
selectedOption=j+(isMandatory?0:1);
defaultSelected=true;
}
zs+="<option value=\""+myValues[j].value+"\"";
if(defaultSelected)
zs+=" selected=true";
zs+=">";
zs+=myValues[j].name;
zs+="</option>";
}
return zs;
}
function treeInputOnchange(targetDiv,myChartModel)
{
updateChartModel();
renderChart(targetDiv,myChartModel);
//TODO SRC-Textarea
}
function renderGeneralChartPropertiesForm(formDiv,myCommonChartProperties,currentChartModel)
{
//first empty form:
@ -1021,12 +1183,14 @@ function renderChartPropertyField(elemID,chartProperty,isCommon) @@ -1021,12 +1183,14 @@ function renderChartPropertyField(elemID,chartProperty,isCommon)
//label:
const labelElem = document.createElement("div");
labelElem.classList.add("label-container");
labelElem.setAttribute("style","min-width;5.0rem;width=5.0rem");
const label = document.createElement("label");
label.classList.add("label");
label.classList.add("is-required");
label.classList.add("is-small");
label.classList.add("has-tooltip-bottom");
label.setAttribute("data-tooltip",chartProperty.explanation);
const textnode = document.createTextNode(chartProperty.caption);
label.appendChild(textnode);
@ -1802,3 +1966,97 @@ function exportDataTable(rs,rsMetaData) @@ -1802,3 +1966,97 @@ function exportDataTable(rs,rsMetaData)
}
//generic tree
function sxTreeNode(id,
caption,
parent,
hasChildren,
explanation,
inputPreCaption,
inputPreCaptionPreviousValue,
inputPostCaption,
inputPostCaptionPreviousValue,
nodeHrefUrl,
nodeHrefTarget,
css_class,
sortnr,
searchString
)
{
this.id=id ;
this.caption=caption ;
this.parent=parent ;
this.hasChildren=hasChildren;
this.explanation=explanation ;
this.inputPreCaption=inputPreCaption ;
this.inputPreCaptionPreviousValue=inputPreCaptionPreviousValue ;
this.inputPostCaption=inputPostCaption ;
this.inputPostCaptionPreviousValue= inputPostCaptionPreviousValue;
this.nodeHrefUrl=nodeHrefUrl ;
this.nodeHrefTarget=nodeHrefTarget ;
this.css_class= css_class;
this.sortnr= sortnr;
this.searchString=searchString;
this.renderSxNode = function (treeArray) {
var zs="<li class='sichtentreeLI'>";
var nodeContentHtml=this.caption;
if(this.explanation !="")
{
nodeContentHtml="<span class='labelNormal has-tooltip-bottom' data-tooltip='"+this.explanation+"'>"+this.caption+"</span>";
}
if(this.inputPostCaption)
{
nodeContentHtml+=this.inputPostCaption;
}
if(this.hasChildren)
{
zs+="<span class='sichtentreeCaret' id='sichtentreeCaret_"+this.id+"'";
zs+="onClick=\"toggleChildNodes('"+this.id.trim()+"',this)\">";
zs+="</span>&nbsp;";
zs +="<span style='margin-left:10px'>&nbsp;</span>";
zs +="<span>"+nodeContentHtml+"</span>\n";
zs+= loadChildNodes(treeArray,this);
}
else
{
zs+="<span style='margin-left:15px'></span>";
zs +="<span>"+nodeContentHtml+"</span>\n";
}
zs +="</li>";
return zs;
}
}
function loadChildNodes(tree,myTreeNode)
{
var zs="";
for(var j=0;j < tree.length;j++)
{
var node=tree[j];
if(node.parent==myTreeNode.id)
{
zs +=node.renderSxNode(tree);
}
}
if(zs !="")
{
zs="<ul class='sichtentreeChildUL sichtentreeNested' style='margin-left:10px' id='childOf"+myTreeNode.id+"'>"+zs+"</ul>";
}
return zs;
}
function toggleChildNodes(nodeId,spanElem)
{
//spanElem.parentElement.querySelector(".sichtentreeNested").classList.toggle("sichtentreeActive");
var childUlId="childOf"+nodeId;
spanElem.classList.toggle("sichtentreeCaret-down");
if(document.getElementById(childUlId))
{
//Kind existiert bereits, wird nur unsichtbar:
document.getElementById(childUlId).classList.toggle("sichtentreeNested");
}
}

332
superx/xml/js/viz/viz_viewer.js

@ -171,12 +171,12 @@ function fillEchartsDataSet(myRs,myRsMetaData,currentChartModel) @@ -171,12 +171,12 @@ function fillEchartsDataSet(myRs,myRsMetaData,currentChartModel)
var dimension1Fldname=getChartElementPropertyValueFromModel(currentChartModel,"1","dimension1");
dataset=fillEchartsDataSetNameValue(myRs,myRsMetaData,dimension1Fldname,measure1Fldname);
break;
case "echarts_bar_y_stack":
//TODO klappt nich tnicht)
var measure1Fldname=getChartElementPropertyValueFromModel(currentChartModel,"1","measure1");
var dimension1Fldname=getChartElementPropertyValueFromModel(currentChartModel,"1","dimension1");
var dimension2Fldname=getChartElementPropertyValueFromModel(currentChartModel,"1","dimension2");
dataset=fillEchartsDataSetCrosstab(myRs,myRsMetaData,dimension1Fldname,dimension2Fldname,measure1Fldname);
case "echarts_bar_y_series":
case "echarts_line_y_series":
var dimension1Fldname=getChartElementPropertyValueFromModel(currentChartModel,"1","stroke");
var seriesSelectionLine=getChartPropertyValue(currentChartModel.chartPropertiesUsed,"series_selection_line");
var seriesSelectionColumn=getChartPropertyValue(currentChartModel.chartPropertiesUsed,"series_selection_column");
dataset=fillEchartsDataSetSeries(myRs,myRsMetaData,dimension1Fldname,seriesSelectionLine,seriesSelectionColumn);
break;
default:
dataset=fillEchartsDataSetSimpleCopy(myRs,myRsMetaData);
@ -186,6 +186,124 @@ function fillEchartsDataSet(myRs,myRsMetaData,currentChartModel) @@ -186,6 +186,124 @@ function fillEchartsDataSet(myRs,myRsMetaData,currentChartModel)
return dataset;
}
function fillEchartsDataSetSeries(myRs,myRsMetaData,dimension1Fldname,seriesSelectionLine,seriesSelectionColumn)
{
var myDimensions=[];
var mySource=[];
var colCounter=0;
var colNrOfdimension1Fldname=getColNrOfdimensionFldname(myRsMetaData,dimension1Fldname);
linesWanted=getLineOrColumnNumberArray(myRs.length,seriesSelectionLine);
colsWanted=getLineOrColumnNumberArray(myRsMetaData.length,seriesSelectionColumn);
//zuerst Überschriftenzeile:
var dataRow =[];
var rowCounter=0;
myRsMetaData.forEach((row) => {
rowCounter++;
if(colsWanted[rowCounter] || rowCounter==colNrOfdimension1Fldname)
{
for (var col in row) {
{
if(col=="colcaption" && row[col])
{
dataRow.push(row[col]);
}
}
}
}
});
mySource.push(dataRow);
//Dann die Daten
var rowCounter=0;
myRs.forEach((row) => {
rowCounter++;
if(linesWanted[rowCounter])
{
var dataRow =[];
colCounter=0;
for (var col in row)
{
colCounter++;
if(colsWanted[colCounter] || colCounter==colNrOfdimension1Fldname)
{
dataRow.push(row[col]);
}
}
mySource.push(dataRow);
}
});
console.log("Matrix:" + JSON.stringify(mySource));
//TODO:Sorting and filtering
return {source: mySource };
}
function getColNrOfdimensionFldname(myRsMetaData,dimensionFldname)
{
var colnr=0;
var rowCounter=0;
myRsMetaData.forEach((row) => {
rowCounter++;
for (var col in row) {
if(col=="colname" && row[col]==dimensionFldname)
{
colnr=rowCounter;
}
}
});
return colnr;
}
function getLineOrColumnNumberArray(elementcount,selectionString)
{
//*Übergeben wird z.B. ">1",">1 and <5" oder "2,3,6,8"
//alle user-Eingaben müssen -1 genommmen werden, weil der Array schon bei 0 beginnt
var myArray=new Array(elementcount);
var minElement=0;
if(selectionString && selectionString.indexOf(">")!=-1)
{
// find digit after ">":
var p1=selectionString.split(">");
var p2=p1[1].split(" ");
minElement=parseInt(p2[0])-1; //e.g. 2
}
var maxElement=elementcount;
if(selectionString && selectionString.indexOf("<")!=-1)
{
// find digit before "<":
var p1=selectionString.split("<");
var p2=p1[1].split(" ");
maxElement=parseInt(p2[0])-1;
}
var singleElement=[];
if(selectionString && selectionString.indexOf(",")!=-1)
{
singleElement=selectionString.split(",");
}
for(i=0;i<elementcount;i++)
{
var isElementWanted=true;
if(i<minElement || i>maxElement)
isElementWanted=false;
if(singleElement && singleElement.length>0)
{
isElementWanted=false;
for(j=0;j<singleElement.length;j++)
{
if(i==parseInt(singleElement[j])-1)
isElementWanted=true;
}
}
myArray[i]=isElementWanted ;
}
return myArray;
}
function fillEchartsDataSetSimpleCopy(myRs,myRsMetaData)
{
var myDimensions=[];
@ -1370,8 +1488,13 @@ function renderEChart2(currentChartModel,chartDiv,ergebniselementOrdnr,chartTitl @@ -1370,8 +1488,13 @@ function renderEChart2(currentChartModel,chartDiv,ergebniselementOrdnr,chartTitl
case "echarts_bar_y":
case "echarts_line_x":
case "echarts_line_y":
case "echarts_bar_y":
option=getEchartOptionsBarLine(currentChartModel,myDataset,chartType,titleText);
break;
case "echarts_bar_y_series":
case "echarts_line_y_series":
option=getEchartOptionsBarLineSeries(currentChartModel,myDataset,chartType,titleText);
break;
case "echarts_pie":
option=getEchartOptionsPie(currentChartModel,myDataset,titleText);
@ -1454,6 +1577,8 @@ function getEchartOptionsBarLine(currentChartModel,myDataset,chartType,titleText @@ -1454,6 +1577,8 @@ function getEchartOptionsBarLine(currentChartModel,myDataset,chartType,titleText
{
//TODO: bar_x und y abfangen'
var chartTypes = chartType.split(/_/);
var scheme = getChartPropertyValue(currentChartModel.chartPropertiesUsed,"schemeArray");
var myPalette=getSchemeArray(scheme);
var orientation=chartTypes[2];
var measure1Axis="y";
@ -1475,8 +1600,6 @@ var dimension1Fldname=getChartElementPropertyValueFromModel(currentChartModel,1, @@ -1475,8 +1600,6 @@ var dimension1Fldname=getChartElementPropertyValueFromModel(currentChartModel,1,
//var dimension1Fldname=getChartPropertyValue(currentChartModel.chartPropertiesUsed,dimension1Axis);
var subtitleText=getChartPropertyValue(currentChartModel.chartPropertiesUsed,"subtitle");
var scheme = getChartPropertyValue(currentChartModel.chartPropertiesUsed,"scheme");
var myPalette=getSchemeArray(scheme);
var encodeObj={x:dimension1Fldname,y:measure1Fldname};
if(orientation=="x")
encodeObj={y:dimension1Fldname,x:measure1Fldname};
@ -1492,8 +1615,8 @@ if(orientation=="x") @@ -1492,8 +1615,8 @@ if(orientation=="x")
title: {
text: titleText,
subtext: subtitleText,
left: "center",
top: "top",
left: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"title.left"), //"center",
top: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"title.top"), //"top",
textStyle: {
fontSize: 20
},
@ -1502,8 +1625,11 @@ if(orientation=="x") @@ -1502,8 +1625,11 @@ if(orientation=="x")
}
},
grid: {
top: "16%",
left: "20%"
top: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"margin.top")+"%",
bottom: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"margin.bottom")+"%",
left: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"margin.left")+"%",
right: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"margin.right")+"%"
},
tooltip: {
trigger: "axis",
@ -1517,13 +1643,14 @@ if(orientation=="x") @@ -1517,13 +1643,14 @@ if(orientation=="x")
},
xAxis: {
type:xAxisType, //horizontal oder vertikal
name:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"xAxisName"),
//type: 'category',
axisLabel: {
inside: false,
margin: 15,
margin: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"padding_x"),
fontSize: 12,
width:"100px",
rotate: 30,
width:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"width_x"),
rotate: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"tickRotate_x"),
/*formatter: function (value, index) {
return numberFormatter(value,xAxisType);
}*/
@ -1533,13 +1660,15 @@ if(orientation=="x") @@ -1533,13 +1660,15 @@ if(orientation=="x")
yAxis: {
//type:'value',
type: yAxisType,
name:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"yAxisName"),
axisLabel: {
inside: false,
margin: 5,
margin: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"padding_y"),
fontSize: 12,
width:"50px",
distance:20,
position:"bottom",
width:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"width_y"),
rotate: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"tickRotate_y"),
distance:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"distance_y"),
position:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"position_y"),
formatter: (value) => value.toLocaleString()
}
@ -1555,18 +1684,19 @@ if(orientation=="x") @@ -1555,18 +1684,19 @@ if(orientation=="x")
},
margin: 50,
fontSize: 14,
colorBy: 'data',
//colorBy: 'data',
color: myPalette,
lineStyle: {
width: 7
},
label: {
show: true,
show: (getChartPropertyValue(currentChartModel.chartPropertiesUsed,"valueLabelShow")=="false")?false:true, //true
fontWeight:'bolder',
/*distance:10,*/
/* offset:[30, 40]*/
/*labelLayout:{}*/
distance:30,
position:"bottom",
distance:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"distance_valueLabel"), //10,
position:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"position_valueLabel"), //"bottom",
formatter: function (params) {
return params.value[params.dimensionNames[params.encode.y[0]]].toLocaleString()
}
@ -1584,6 +1714,119 @@ return option; @@ -1584,6 +1714,119 @@ return option;
}
function getEchartOptionsBarLineSeries(currentChartModel,myDataset,chartType,titleText)
{
//TODO: bar_x und y abfangen'
var chartTypes = chartType.split(/_/);
var scheme = getChartPropertyValue(currentChartModel.chartPropertiesUsed,"schemeArray");
var myPalette=getSchemeArray(scheme);
var subtitleText=getChartPropertyValue(currentChartModel.chartPropertiesUsed,"subtitle");
var xAxisType="category";
var yAxisType="value";
var orientation=chartTypes[2];
var seriesFldname=getChartElementPropertyValueFromModel(currentChartModel,1,"stroke");
var seriesArray= new Array();
myDataset.source.forEach((row) => {
//}
//for (var i=0;i<5;i++)
//{
var mySeriesObj={
type: chartTypes[1], //bar,line,
smooth: true,
seriesLayoutBy: 'row',
emphasis: { focus: 'series' },
stack:"myStack"
};
seriesArray.push(mySeriesObj);
});
/*
var mySeriesObj2={
type: 'line',
smooth: true,
seriesLayoutBy: 'row',
emphasis: { focus: 'series' }
};
seriesArray.push(mySeriesObj2);
*/
var option = {
dataset: myDataset,
/*klappt nicht, noch testen: transfxAxis: {
typeorm: {
type: 'sort',
config: { dimension: "dim_studiengang_fb", order: 'asc' }
}
,*/
legend: {top:"10%"},
title: {
text: titleText,
subtext: subtitleText,
left: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"title.left"), //"center",
top: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"title.top"), //"top",
textStyle: {
fontSize: 20
},
subtextStyle: {
fontSize: 15
}
},
grid: {
top: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"margin.top")+"%",
bottom: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"margin.bottom")+"%",
left: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"margin.left")+"%",
right: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"margin.right")+"%"
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow"
},
/*valueFormatter: (value) => numberFormatter(value,"value")*/
/*valueFormatter: (value) => '$' + value.toFixed(2)*/
/*valueFormatter: (value) => value.toString().replace(",",".")*/
valueFormatter: (value) => value.toLocaleString()
},
xAxis: {
type:xAxisType, //horizontal oder vertikal
name:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"xAxisName"),
//type: 'category',
axisLabel: {
inside: false,
margin: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"padding_x"),
fontSize: 12,
width:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"width_x"),
rotate: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"tickRotate_x"),
/*formatter: function (value, index) {
return numberFormatter(value,xAxisType);
}*/
valueFormatter: (value) => value.toLocaleString()
}
},
yAxis: {
//type:'value',
type: yAxisType,
name:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"yAxisName"),
axisLabel: {
inside: false,
margin: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"padding_y"),
fontSize: 12,
width:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"width_y"),
rotate: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"tickRotate_y"),
distance:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"distance_y"),
position:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"position_y"),
formatter: (value) => value.toLocaleString()
}
},
series: seriesArray,
color:myPalette
};
return option;
}
/* Labels bei Balkendiagramm je nach Orientierung
- horizontal: rechts neben Balken
- vertikal: zentriert im Balken
@ -1626,7 +1869,8 @@ function getEchartOptionsPie(currentChartModel,myDataset) @@ -1626,7 +1869,8 @@ function getEchartOptionsPie(currentChartModel,myDataset)
var measure1Fldname=getChartElementPropertyValueFromModel(currentChartModel,"1","measure1");
var dimension1Fldname=getChartElementPropertyValueFromModel(currentChartModel,"1","dimension1");
var titleText=getChartPropertyValue(currentChartModel.chartPropertiesUsed,"caption");
var scheme = getChartPropertyValue(currentChartModel.chartPropertiesUsed,"scheme");
var subtitleText=getChartPropertyValue(currentChartModel.chartPropertiesUsed,"subtitle");
var scheme = getChartPropertyValue(currentChartModel.chartPropertiesUsed,"schemeArray");
var myPalette=getSchemeArray(scheme);
var option = {
@ -1635,9 +1879,9 @@ var option = { @@ -1635,9 +1879,9 @@ var option = {
},
title: {
text: titleText,
subtext: "",
left: "left",
top: "top",
subtext: subtitleText,
left: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"title.left"), //"center",
top: getChartPropertyValue(currentChartModel.chartPropertiesUsed,"title.top"), //"top",
textStyle: {
fontSize: 20
},
@ -1657,17 +1901,35 @@ var option = { @@ -1657,17 +1901,35 @@ var option = {
trigger: "item"
},
stillShowZeroSum: false,
label: {
/*label: {
show: true,
formatter: '{c}',
width:200
},
},*/
label: {
show: (getChartPropertyValue(currentChartModel.chartPropertiesUsed,"valueLabelShow")=="true")?true:false, //true
fontWeight:'bolder',
/*distance:10,*/
/* offset:[30, 40]*/
/*labelLayout:{}*/
//distance:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"distance_valueLabel"), //10,
//position:getChartPropertyValue(currentChartModel.chartPropertiesUsed,"position_valueLabel"), //"bottom",
/*formatter: function (params) {
return params.value.toLocaleString()
}*/
formatter: '{c}'
} /*,
labelLayout(params) {
return getLabelLayout(chartTypes[1],params,orientation)
}*/,
fontSize: 12,
radius: ['30%', '80%'], //1. Parameter inside radius, macht ihn zum Donut. 2.Parameter definiert den Anteil des Kreises am ganzen Viewport"
radius: [getChartPropertyValue(currentChartModel.chartPropertiesUsed,"innerRadius"),getChartPropertyValue(currentChartModel.chartPropertiesUsed,"outerRadius")],// ['30%', '80%'], //1. Parameter inside radius, macht ihn zum Donut. 2.Parameter definiert den Anteil des Kreises am ganzen Viewport"
color: myPalette,
itemStyle: {
borderRadius: (getChartPropertyValue(currentChartModel.chartPropertiesUsed,"cornerRadiusRounded")=="true" ? [20, 5, 5, 10] :[]),
//borderRadius: [20, 5, 5, 10], //abgerundete Ecken der Tortenstücke
borderColor: '#fff',
borderWidth: 2
@ -1696,6 +1958,16 @@ function getChartPropertyValue(propArray,propName) @@ -1696,6 +1958,16 @@ function getChartPropertyValue(propArray,propName)
}
}
//bei fehlenden Werten Defaults nachladen:
if(propertyValue=="")
{
let prop = commonChartProperties.find(o => o.name === propName);
if(prop && prop.defaultValue!="")
{
propertyValue=prop.defaultValue;
}
}
return propertyValue;
}

66
superx/xml/viz_components.xsl

@ -304,6 +304,7 @@ vizTypeProperties.push(newVizTypeProperty); @@ -304,6 +304,7 @@ vizTypeProperties.push(newVizTypeProperty);
</xsl:text>
</xsl:for-each>
</script>
<script language="Javascript" type="text/javascript" src="../xml/js/viz/viz_functions.js" />
<style type="text/css">
@ -472,6 +473,63 @@ var newVizTypeProperty = new vizTypeProperty("</xsl:text> @@ -472,6 +473,63 @@ var newVizTypeProperty = new vizTypeProperty("</xsl:text>
vizTypeProperties.push(newVizTypeProperty);
</xsl:text>
</xsl:for-each>
<xsl:text>
function vizPropertyTreeNode(typeUniquename,
typeCaption,
orientation,
propUniquename,
propertyCaption,
parentPropertyUniquename,
sortnr,
isMandatory,
renderer)
{
this.typeUniquename=typeUniquename;
this.typeCaption=typeCaption;
this.orientation=orientation;
this.propUniquename=propUniquename;
this.propertyCaption=propertyCaption;
this.parentPropertyUniquename=parentPropertyUniquename;
this.sortnr=sortnr;
this.isMandatory=isMandatory;
this.renderer=renderer;
}
var vizPropertyTreeNodes=[];
</xsl:text>
<xsl:for-each select="/ergebnisse/ergebnis[@ordnr='0']/ergebniselement/viz_property_trees/viz_property_tree">
<xsl:text>
var newVizPropertyTreeNode = new vizPropertyTreeNode("</xsl:text>
<xsl:value-of select="@viz_type_uniquename" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@viz_type_caption" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@orientation" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@prop_uniquename" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@property_caption" />
<xsl:text>","</xsl:text>
<xsl:value-of select="@parent_property_uniquename" />
<xsl:text>",</xsl:text>
<xsl:value-of select="@sortnr" />
<xsl:text>,</xsl:text>
<xsl:choose>
<xsl:when test="@is_mandatory='1'">
<xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text>,"</xsl:text>
<xsl:value-of select="@renderer" />
<xsl:text>");
vizPropertyTreeNodes.push(newVizPropertyTreeNode);
</xsl:text>
</xsl:for-each>
<xsl:text><![CDATA[
function initPage()
{
@ -930,17 +988,17 @@ Stand: <xsl:value-of select="../stand" /></p> @@ -930,17 +988,17 @@ Stand: <xsl:value-of select="../stand" /></p>
-->
<xsl:variable name="spalten_anz">
<!--<xsl:value-of select="2"/>-->
<xsl:value-of select="/ergebnisse/ergebnis/felder/feld[@varname='Spaltenanzahl']/value"/>
<xsl:value-of select="/ergebnisse/ergebnis/completefields/feld[@varname='Spaltenanzahl']/value"/>
</xsl:variable>
<xsl:variable name="kachelbreite">
<xsl:value-of select="/ergebnisse/ergebnis/felder/feld[@varname='Kachelbreite']/value"/>
<xsl:value-of select="/ergebnisse/ergebnis/completefields/feld[@varname='Kachelbreite']/value"/>
</xsl:variable>
<xsl:variable name="kachelhoehe">
<xsl:value-of select="/ergebnisse/ergebnis/felder/feld[@varname='Kachelhöhe']/value"/>
<xsl:value-of select="/ergebnisse/ergebnis/completefields/feld[@varname='Kachelhöhe']/value"/>
</xsl:variable>
<xsl:variable name="ergebniselemente_anz">
<xsl:value-of select="count(/ergebnisse/ergebnis[felder/feld[@varname='Grafik']])"/>
<xsl:value-of select="count(/ergebnisse/ergebnis[completefields/feld[@varname='Grafik']])"/>
</xsl:variable>
<xsl:variable name="kachelbreite_bulma">
<xsl:value-of select="round($kachelbreite div 24)"/><!-- 1 em=16px, für bulma dann *1,5 -->

160
superx/xml/viz_html_chart.xsl

@ -40,6 +40,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util @@ -40,6 +40,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util
</xsl:call-template>
<link rel="stylesheet" href="../style/sx_tabelle.css" />
<link rel="stylesheet" href="../style/sx_treeform.css" />
<!--<link rel="stylesheet" href="../style/superx.css" />-->
</head>
@ -223,7 +224,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util @@ -223,7 +224,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util
<label class="label is-required is-small"><strong>Datentabelle</strong></label>
</div>
<a onClick="exportDataTable(rs[0],rsColumnMetaData[0])">EXPORT</a>
<!--<a onClick="exportDataTable(rs[0],rsColumnMetaData[0])">EXPORT</a>-->
<span class="separator">&#160;</span>
<span class="separator">&#160;</span>
@ -390,69 +391,15 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util @@ -390,69 +391,15 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util
</span>
</a>
</div>
<div id="ChartElementsDiv" style="display:none" class="box">
<div class="field is-grouped">
<div class="label-container" lang="de"><span class="labelNormal has-tooltip-bottom" data-tooltip="Nur für Grafiktool Plot: Übersicht Grafikelemente, wählen Sie ein Element zum Bearbeiten, oder erzeugen einen neuen Grafikelementtyp. Sie können auch mehrere erzeugen bzw. entfernen mit dem + bzw - Button">
Grafikelement</span></div>
<div class="control">
<div class="field"><div class="control is-expanded">
<div class="select is-small is-fullwidth is-focused">
<select id="chartElementID" name="chartElementID"
onchange="loadChartElementConfig(this);">
<option>Bitte fügen Sie ein Element ein</option>
</select>
<input class="is-small" type="hidden" size="1" name="vizElementCounter" id="vizElementCounter" value="0" readonly="readonly" style="background-color:#cccccc;"/>
</div>
</div>
<div class="control">
<a onClick="createChartElementConfig1Form(document.getElementById('fldVizRenderer').value,null)">
<img src="../images/plus-circled.svg" width="12" height="12" title="Neues Element anlegen" />
</a>
<span class="separator">&#160;</span>
<a onClick="removeChartElementConfig()">
<img src="../images/minus-circled.svg" width="12" height="12" title="Ausgewähltes Element entfernen" />
</a>
</div>
</div>
</div>
</div><!--ende Feld Grafikelemente-->
<!--<div id="ChartElementListDiv"></div>-->
<div id="ChartElementConfig1Div"> </div>
<div id="ChartElementConfig2Div"> </div>
</div> <!--Ende Grafikelemente-->
<!--Beginn Layoutmerkmale-->
<div class="field is-grouped">
<div class="label-container">
<label class="label is-required is-small"><strong>Allgem. Layoutmerkmale</strong></label>
</div>
<span class="separator">&#160;</span>
<span class="separator">&#160;</span>
<a onClick="showChartPropertiesFormDiv('generalChartPropertiesFormDiv','generalChartPropertiesFormElementsDiv',document.getElementById('fldVizRenderer').value);">
<span class="icon">
<img src="../images/icons/more.svg" title="Laden" />
</span>
</a>
</div>
<div id="generalChartPropertiesFormDiv" class="box" style="display:none">
<div id="generalChartPropertiesFormElementsDiv"> </div>
</div>
<!--Beginn Quellcode-->
<xsl:choose>
<xsl:when test="1=0">
<xsl:call-template name="chartPropertiesFormPlotD3" />
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="chartPropertiesTreeForm" />
</xsl:otherwise>
</xsl:choose>
<!--Beginn Quellcode-->
<div class="field is-grouped">
<div class="label-container">
<label class="label is-required is-small"><strong>Quellcode</strong></label>
@ -826,6 +773,91 @@ Stand: <xsl:value-of select="../stand" /></p> @@ -826,6 +773,91 @@ Stand: <xsl:value-of select="../stand" /></p>
</div>
</xsl:template>
<xsl:template name="ChartTypeSelection">
<div class="field"><!-- is-grouped-->
<div class="label-container" lang="de"><span class="labelNormal has-tooltip-bottom" data-tooltip="Nur für Grafiktool Plot: Übersicht Grafikelemente, wählen Sie ein Element zum Bearbeiten, oder erzeugen einen neuen Grafikelementtyp. Sie können auch mehrere erzeugen bzw. entfernen mit dem + bzw - Button">
Grafikelement</span></div>
<div class="control">
<div class="field"><div class="control is-expanded">
<div class="select is-small is-fullwidth is-focused">
<select id="chartElementID" name="chartElementID"
onchange="loadChartElementConfig(this);">
<option>Bitte fügen Sie ein Element ein</option>
</select>
<input class="is-small" type="hidden" size="1" name="vizElementCounter" id="vizElementCounter" value="0" readonly="readonly" style="background-color:#cccccc;"/>
</div>
</div>
<div class="control">
<a onClick="createChartElementConfig1Form(document.getElementById('fldVizRenderer').value,null)">
<img src="../images/plus-circled.svg" width="12" height="12" title="Neues Element anlegen" />
</a>
<span class="separator">&#160;</span>
<a onClick="removeChartElementConfig()">
<img src="../images/minus-circled.svg" width="12" height="12" title="Ausgewähltes Element entfernen" />
</a>
</div>
</div>
</div>
</div><!--ende Feld Grafikelemente-->
</xsl:template>
<xsl:template name="chartPropertiesFormPlotD3" >
<div id="ChartElementsDiv" style="display:none" class="box">
<xsl:call-template name="ChartTypeSelection" />
<div id="ChartElementConfig1Div"> </div>
<div id="ChartElementConfig2Div"> </div>
</div> <!--Ende Grafikelemente-->
<!--Beginn Layoutmerkmale-->
<div class="field is-grouped">
<div class="label-container">
<label class="label is-required is-small"><strong>Allgem. Layoutmerkmale</strong></label>
</div>
<span class="separator">&#160;</span>
<span class="separator">&#160;</span>
<a onClick="showChartPropertiesFormDiv('generalChartPropertiesFormDiv','generalChartPropertiesFormElementsDiv',document.getElementById('fldVizRenderer').value);">
<span class="icon">
<img src="../images/icons/more.svg" title="Laden" />
</span>
</a>
</div>
<div id="generalChartPropertiesFormDiv" class="box" style="display:none">
<div id="generalChartPropertiesFormElementsDiv"> </div>
</div>
</xsl:template>
<xsl:template name="chartPropertiesTreeForm" >
<div id="ChartElementsDiv" style="display:none" class="box">
<xsl:call-template name="ChartTypeSelection" />
<div id="ChartElementConfig1Div"> </div>
<div id="ChartElementConfig2Div"><p>Root</p> </div>
</div> <!--Ende Grafikelemente-->
<!--Beginn Layoutmerkmale-->
<!--Beginn Layoutmerkmale-->
<div class="field">
<div class="label-container">
<label class="label is-required is-small"><strong>Layoutmerkmale</strong></label>
</div>
<span class="separator">&#160;</span>
<span class="separator">&#160;</span>
<a onClick="showChartPropertiesFormDiv('chartPropertiesTreeFormDiv','chartPropertiesTreeFormElementsDiv',document.getElementById('fldVizRenderer').value);">
<span class="icon">
<img src="../images/icons/more.svg" title="Laden" />
</span>
</a>
</div>
<div id="chartPropertiesTreeFormDiv" class="box" style="display:none">
<div id="chartPropertiesTreeFormElementsDiv"> </div>
</div>
</xsl:template>
</xsl:stylesheet>

Loading…
Cancel
Save