Browse Source

Pie Chart und Donut Diagramm ermöglichen #9

viz_kern51
Daniel Quathamer 2 months ago
parent
commit
f7464f7de3
  1. 61
      src-modules/module/viz/conf/viz.xml
  2. 29
      src-modules/module/viz/masken/44510_felderinfo.unl
  3. 1
      src-modules/module/viz/masken/44510_maske_system_bez.unl
  4. 15
      src-modules/module/viz/masken/44510_masken_felder_bez.unl
  5. 1
      src-modules/module/viz/masken/44510_maskeninfo.unl
  6. 1
      src-modules/module/viz/masken/44510_sachgeb_maske_bez.unl
  7. 16
      src-modules/module/viz/masken/44540_felderinfo.unl
  8. 1
      src-modules/module/viz/masken/44540_maske_system_bez.unl
  9. 16
      src-modules/module/viz/masken/44540_masken_felder_bez.unl
  10. 151
      src-modules/module/viz/masken/44540_maskeninfo.unl
  11. 1
      src-modules/module/viz/masken/44540_sachgeb_maske_bez.unl
  12. 4
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_fuellen.sql
  13. 246
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_geschl_zeitreihe_fuellen.sql
  14. 258
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_zeitreihe_fuellen.sql
  15. 3
      src-modules/module/viz/schluesseltabellen/sx_stylesheets_einfuegen.sql
  16. 293
      src-modules/module/viz/schluesseltabellen/viz_chart.unl
  17. 3
      src-modules/module/viz/schluesseltabellen/viz_property.unl
  18. 7
      src-modules/module/viz/schluesseltabellen/viz_property_renderer.unl
  19. 2
      src-modules/module/viz/schluesseltabellen/viz_type.unl
  20. 27
      src-modules/module/viz/schluesseltabellen/viz_type_d3js_fuellen.sql
  21. 28
      src-modules/module/viz/schluesseltabellen/viz_type_property.unl
  22. 80
      superx/xml/js/viz/viz_functions.js
  23. 6
      superx/xml/viz_html_chart.xsl
  24. 7
      superx/xml/viz_html_chart_viewer.xsl
  25. 2
      superx/xml/viz_html_chart_viewer_grid.xsl
  26. 519
      superx/xml/viz_html_chart_viewer_sunburst_man.xsl

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

@ -417,8 +417,21 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the @@ -417,8 +417,21 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the
<path>$VIZ_PFAD/masken</path>
</src>
</maske>
<maske tid="44510" name="Studienanfänger_innen nach Jahr" thema="Visualisierungen">
<description> </description>
<src>
<path>$VIZ_PFAD/masken</path>
</src>
</maske>
<maske tid="44540" name="Studierende nach Semester und Studiengang" thema="Visualisierungen">
<description> </description>
<src>
<path>$VIZ_PFAD/masken</path>
</src>
</maske>
</masken>
<data-integrity>
<!--viz_type_property-->
<relation from="viz_type" to="viz_type_property" delete="FALSE"
@ -538,6 +551,54 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the @@ -538,6 +551,54 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the
</install-step>
</install>
<!-- Elemente nur für die neue KV von HIS:-->
<install_upgrade_job>
<install-upgrade-step name="pre_upgrade" type="container" id="viz_preupgrade_containernode">
<action error="stop"/>
</install-upgrade-step>
<install-upgrade-step name="upgrade_tables" type="" id="viz_upgrade_tables_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$VIZ_PFAD/upgrade/viz_upgrade_tables_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="upgrade_fields" type="" id="viz_upgrade_fields_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$VIZ_PFAD/upgrade/viz_upgrade_fields_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="upgrade_views" type="" id="viz_upgrade_views_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$VIZ_PFAD/upgrade/viz_upgrade_views_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="install_functions" type="container" id="viz_install_functions_containernode">
<action error="stop"/>
</install-upgrade-step>
<install-upgrade-step name="upgrade_indices" type="" id="viz_upgrade_indices_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$VIZ_PFAD/upgrade/viz_upgrade_indexes_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="fill_tables" type="" id="viz_fill_tables_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$VIZ_PFAD/conf/sx_tables_fuellen.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="Update Module Metadata" type="container" id="viz_update_module_metadata_container">
<action error="stop">
<nativeaction sql="" scriptfile="$VIZ_PFAD/conf/module_metadata.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="update_topic_tree" type="" id="viz_update_topictree_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$VIZ_PFAD/upgrade/viz_upgrade_themenbaum.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="install_masks" type="container" id="viz_install_masks_containernode">
<action error="stop"/>
</install-upgrade-step>
</install_upgrade_job>
<upgrade>
<upgrade-step>

29
src-modules/module/viz/masken/44510_felderinfo.unl

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
44510^Spaltenlayout^3000^350^-1^140^180^1^integer^30^1^1^<<SQL>>SELECT tid,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename in ('sos_stud_astat')\
and R.systeminfo_id=7)\
and uniquename in ('sos_stud_sem_jahr')\
order by sortnr, caption\
;^^<<SQL>>SELECT tid,\
caption\
FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename in ('sos_stud_astat')\
and R.systeminfo_id=7)\
and uniquename in ('sos_stud_sem_jahr')\
order by sortnr, caption limit 1\
;^
44511^Seit Semester^10^0^0^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^ ^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
44512^Fächer^30^0^0^130^200^6^char^1000^0^12^<<SQL>> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^
44513^Abschluss^40^0^0^100^200^3^char^1500^0^1^<<SQL>> select apnr, druck from cifx where key=35 order by 2;^ ^ ^
44514^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^13^^ ^1^
44515^Grafik^4000^300^-1^170^150^1^integer^30^0^1^<<SQL>> select tid, caption from viz_chart where maskeninfo_id=44510 order by 2;^^<<SQL>> select tid, caption from viz_chart where maskeninfo_id=44510 order by 2 limit 1;^
44516^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^apnr, eintrag^ ^
44517^Bis Semester^20^350^-1^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^ ^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
44518^Staatsangehörigkeit^150^0^0^140^150^10^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art='SOS-Staaten-Sicht' order by 3,2;^ ^ ^
44519^Studiengang^25^0^0^140^150^50^char^1000^0^12^<<SQL>> select tid,name,sortnr from sichten where art in ('SOS-Kostenstellen-Sicht', 'SOS-Studiengang-Sicht') order by 3,2;^ ^ ^
44520^tablestylesheet^150^0^0^100^100^1^char^255^1^1^<<SQL>> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=44510 order by ord^ ^<<SQL>> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=44510 order by ord limit 1^
44521^Stichtag^23^330^-1^130^100^1^sql^30^1^1^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende';^ ^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende' and appl_key='0';^
44522^Hörerstatus^200^330^-1^140^150^1^sql^30^0^1^<<SQL>> select apnr, eintrag from hoererstatus order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from hoererstatus where eintrag='alle';^
44528^Köpfe oder Fälle ?^0^0^0^140^150^1^sql^70^0^1^<<SQL>> select apnr, eintrag from koepfe_oder_faelle order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Fälle';^
44532^Geschlecht^110^0^0^140^80^1^integer^30^0^1^<<SQL>> SELECT apnr,druck FROM cif where key = 9003 and apnr between 1 and 4 order by 1;^ ^ ^

1
src-modules/module/viz/masken/44510_maske_system_bez.unl

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

15
src-modules/module/viz/masken/44510_masken_felder_bez.unl

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
44510^44510^
44510^44511^
44510^44512^
44510^44513^
44510^44514^
44510^44515^
44510^44516^
44510^44517^
44510^44518^
44510^44519^
44510^44520^
44510^44521^
44510^44522^
44510^44528^
44510^44532^

1
src-modules/module/viz/masken/44510_maskeninfo.unl

@ -0,0 +1 @@ @@ -0,0 +1 @@
44510^Studienanfänger_innen nach Jahr^<sximport>select select_stmt from maskeninfo where tid=45000</sximport>^<sximport>select xil_proplist from maskeninfo where tid=45000</sximport>^Studienfach^Anzahl bzw. Anteil^Ausgabe der Studierenden nach Geschlecht in verschiedenen Visualisierungen (z.B. Tortendiagramm)^<sximport>select cleanup_stmt from maskeninfo where tid=45000</sximport>^^2^850^540^^1^<<SQL>>SELECT description FROM rpta_column_layout where tid=<<Spaltenlayout>>;^

1
src-modules/module/viz/masken/44510_sachgeb_maske_bez.unl

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

16
src-modules/module/viz/masken/44540_felderinfo.unl

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
44540^Köpfe oder Fälle ?^0^0^0^140^150^1^sql^50^1^1^<<SQL>> select apnr, eintrag from koepfe_oder_faelle order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Köpfe';^
44541^Seit Semester^3^0^0^140^80^1^integer^30^1^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^Eintrag^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
44542^Stichtag^1^350^-1^140^100^1^sql^30^1^1^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende';^^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende' and appl_key='0';^
44543^Fächer^8^0^0^140^200^6^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^^^
44544^Status^10^350^-1^140^180^1^sql^30^0^1^<<SQL>> select apnr,eintrag from sos_status order by 2^^<<SQL>> select apnr,eintrag from sos_status where eintrag='Alle ohne Beurl.';^
44545^Hörerstatus^15^0^0^140^170^1^sql^30^1^1^<<SQL>> select apnr, eintrag from hoererstatus order by 2^apnr, eintrag^<<SQL>> select apnr, eintrag from hoererstatus where eintrag='alle';^
44547^bis Fachsemester^16^350^-1^140^100^1^integer^30^0^0^^^^
44548^Abschluss^7^350^-1^140^190^4^char^30^0^12^<<SQL>> select tid from sichten where art='SOS-Abschluss-Sicht' order by 1;^^^
44549^Bis Semester^4^350^-1^140^80^1^integer^30^1^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^Eintrag^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
44550^Filter Studierende^120^350^-1^140^150^1^sql^20^0^1^<<SQL>> SELECT id,caption from sx_repository where aktiv =1 and today() between gueltig_seit and gueltig_bis and art='SOS_STUD_FILTER' order by 2;^^^
44551^Geschlecht^110^0^0^140^80^1^integer^30^0^1^<<SQL>> SELECT apnr,druck FROM cif where key = 9003 and apnr between 1 and 4 order by 1;^^^
44552^Filter bis Ebene^125^0^0^140^20^1^integer^30^0^0^^^^
44553^Studiengang^6^0^0^140^150^50^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art in ('SOS-Kostenstellen-Sicht', 'SOS-Studiengang-Sicht') and aktiv=1 order by 3,2;^^^
44555^In der RSZ^14^330^-1^130^100^1^sql^30^0^1^<<SQL>> select wert, name from aggregierung where kategorie='RSZ-Filter';^^^
44556^##line##^13^0^0^100^100^1^char^5000^0^8^^^1^
44557^##line##^115^0^0^100^100^1^char^5000^0^8^^^1^

1
src-modules/module/viz/masken/44540_maske_system_bez.unl

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

16
src-modules/module/viz/masken/44540_masken_felder_bez.unl

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
44540^44540^
44540^44541^
44540^44542^
44540^44543^
44540^44544^
44540^44545^
44540^44547^
44540^44548^
44540^44549^
44540^44550^
44540^44551^
44540^44552^
44540^44553^
44540^44555^
44540^44556^
44540^44557^

151
src-modules/module/viz/masken/44540_maskeninfo.unl

@ -0,0 +1,151 @@ @@ -0,0 +1,151 @@
44540^Studierende nach Semester und Studiengang^--Freemarker Template\
<#include "SQL_lingua_franca"/>\
<#include "SuperX_general"/>\
<sqlvars>\
<sqlvar name="semesterliste" type="hashsequence"><![CDATA[\
select tid as nr,eintrag as name from semester where 1=1\
/* and tid >= <<Seit Semester>> */\
/* and tid <= <<Bis Semester>> */\
order by 1 desc;\
]]>\
</sqlvar>\
</sqlvars>\
\
<#assign feldtyp="integer" />\
\
<#assign maxEbene=20 />\
<#if '<<Filter bis Ebene>>' != ''>\
<#assign maxEbene='<<Filter bis Ebene>>'?number />\
</#if>\
\
<#assign lehr_stg_ab="lehr_stg_ab"/>\
<#assign quelltabelle='sos_stg_aggr'/>\
\
-- ##################################################\
-- ##### Zwischentabelle #############\
-- ##################################################\
-- 1. FS start Datentabelle\
<@selectintotmp \
select="S.tid_stg,S.sem_rueck_beur_ein,S.geschlecht,sum(summe) as summe"\
source=quelltabelle+" S, "+lehr_stg_ab+" L"\
target="tmp_zwischen"> \
where \
\
<<Köpfe oder Fälle ?>>\
and <<Hörerstatus>>\
and S.sem_rueck_beur_ein between <<Seit Semester>> and <<Bis Semester>>\
and 's_' || L.tid in <@printkeys Studiengang.allNeededKeysList/>\
/* and L.stg in <@printkeys Fächer.allNeededKeysList/> --<<Fächer>> */ \
/* AND S.fach_sem_zahl <= <<bis Fachsemester>> */\
/* and S.stichtag = <<Stichtag>> */\
/* and L.abschluss in (<<Abschluss>>) */ \
and S.tid_stg = L.tid\
/* and S.fach_sem_zahl <= <<In der RSZ>> */\
/* and kz_rueck_beur_ein in(<<Status>>) */\
/* and geschlecht=<<Geschlecht>> */\
/* and ca12_staat <<Staatsangehörigkeit>> */\
/* and ${<<Filter Studierende>>} */\
and S.sem_rueck_beur_ein >= L.semester_von \
and S.sem_rueck_beur_ein <= L.semester_bis \
group by 1,2,3\
</@selectintotmp>\
<@informixnolog/>;\
\
\
\
-- Ausgabe-Tabelle\
create temp table tmp_aggre\
(ebene int,\
struktur varchar(255),\
text varchar(255),\
sortnr int,\
semester_nr integer,\
semester_name varchar(255),\
summe ${feldtyp},\
summe_w ${feldtyp}\
) <@informixnolog/>;\
\
\
\
\
\
-- ##################################################\
-- ######## Inserts in die Tabelle ##################\
-- ##################################################\
--Start der Schleifenverarbeitung über Fächer im ausgewählten Baum, Reihenfolge genau wie im Baum\
\
<#if semesterliste?has_content>\
<#assign sortnr=1>\
<#foreach semester in semesterliste>\
\
\
<#foreach einElement in Studiengang.elements>\
<@addcomment "############ Schleife Nr. " + "${sortnr}" + " Element: " + "${einElement.name}" + " strukturStr: " + "${einElement.strukturStr} ###########################"/>\
\
--select '${einElement.name} - ${einElement.strukturStr}' from xdummy; \
\
<#if einElement.level &lt;= maxEbene >\
<#assign sortnr=sortnr+1>\
\
-- ########## Einfügen ####################\
insert into tmp_aggre (ebene,\
struktur,\
text, \
sortnr,\
semester_nr,\
semester_name,\
summe,\
summe_w\
)\
select ${einElement.level}::smallint,\
'${einElement.strukturStr}'::char(50),\
'${einElement.name}'::char(255),\
${sortnr},\
${semester.nr} as semester_nr,\
'${semester.name}' as semester_name,\
summe,\
(case when geschlecht=2 then summe else 0 end) as summe_w\
from tmp_zwischen S\
where 's_' || tid_stg in ${einElement.subkeys}\
and sem_rueck_beur_ein=${semester.nr}\
; \
\
</#if> \
\
</#foreach>--Studiengang Baum\
</#foreach>--Semester\
</#if>\
-- ##################################################\
-- ######## Ende Inserts in die Tabelle #############\
-- ##################################################\
\
\
drop table tmp_zwischen;\
\
-- Endselect\
select ebene,\
(case when ebene=1 then semester_name else text end) as text,\
sum(summe) as summe,\
sum(summe_w) as summe_w\
from tmp_aggre\
group by 1,2,sortnr\
order by sortnr,2\
;^XIL List\
sizable_columns horizontal_scrolling\
drop_and_delete movable_columns\
white_space_color=COLOR_WHITE\
fixed_columns=3\
min_heading_height=35\
Column CID=0 heading_text="Ebene" explanation="" center_heading\
row_selectable heading_platform readonly\
width=7 text_size=20 \
Column CID=1 heading_text="Studiengang" explanation="@@@sos_studiengang@@@" center_heading\
row_selectable heading_platform readonly\
width=40 text_size=60\
Column CID=2 heading_text="Summe" explanation="@@@sos_gesamt_stud@@@" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=8\
Column CID=2 heading_text="Summe weiblich" explanation="@@@sos_durchschnittsalter@@@" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=12\
@@@^Altersgruppe^Anzahl^je Fach/Studiengang^drop table tmp_aggre;^^3^700^360^0^1^^

1
src-modules/module/viz/masken/44540_sachgeb_maske_bez.unl

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

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

@ -26,8 +26,8 @@ select count(*) from systeminfo where tid=330; @@ -26,8 +26,8 @@ select count(*) from systeminfo where tid=330;
{"uniquename":"dim_studiengang_fak_str",
"caption":"Fakultät",
"srcfieldname":"dim_studiengang_fb_str",
"column_type":"physicalColumn",
"col_function":"",
"column_type":"lookupColumn",
"col_function":"select C.kurz from cifx C where C.key=90 and C.apnr=dim_studiengang_fb",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",

246
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_geschl_zeitreihe_fuellen.sql

@ -0,0 +1,246 @@ @@ -0,0 +1,246 @@
--freemarker template
<sqlvars>
<sqlvar name="rpta_installed">
select count(*) from systeminfo where tid=330;
</sqlvar>
</sqlvars>
<#assign rpta_column_layout =
{"uniquename":"sos_stud_geschl",
"caption":"Studierende nach Geschlecht",
"rpta_resultset":"sos_stud_astat",
"whereclause":"",
"description":"Studierende nach Geschlecht"
}
/>
<#assign rpta_columns = [
{"uniquename":"geschlecht_w",
"caption":"Geschlecht (weiblich)",
"srcfieldname":"geschlecht",
"targetfieldname":"",
"column_type":"logicalColumn",
"col_function":"case when geschlecht=2 then ''Weiblich''::varchar(255) else ''Nicht weiblich''::varchar(255) end",
"is_visible":"1",
"format_code":"",
"visible_size":"5",
"is_aggregate":"0",
"description":"Geschlecht weiblich"
},
{"uniquename":"summe",
"caption":"Anzahl der Studierenden",
"srcfieldname":"summe",
"column_type":"physicalColumn",
"col_function":"sum",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"1",
"description":"Summe der Studierenden"
}
]
/>
<#if rpta_installed==1>
---ab hier nicht mehr ändern:
CREATE temp TABLE tmp_rpta_column
(
uniquename varchar(255) NOT NULL,
caption varchar(255),
srcfieldname varchar(255),
targetfieldname varchar(255),
column_type integer,
col_function text,
is_visible smallint,
visible_size smallint,
is_aggregate smallint,
resultset_id integer,
sortnr integer,
description TEXT
);
CREATE temp TABLE tmp_rpta_column_layout
(
uniquename varchar(255) NOT NULL,
caption varchar(255),
resultset_id integer,
whereclause text,
description text
);
insert into tmp_rpta_column_layout(
resultset_id,
uniquename,
caption,
whereclause,
description
)
select tid,
'${rpta_column_layout.uniquename}',
'${rpta_column_layout.caption}',
'${rpta_column_layout.whereclause}',
'${rpta_column_layout.description}'
FROM rpta_resultset
where uniquename='${rpta_column_layout.rpta_resultset}';
<#assign sortnr=0 />
<#foreach column in rpta_columns>
<#assign sortnr=sortnr +1 />
INSERT INTO tmp_rpta_column
(resultset_id,
uniquename,
caption,
srcfieldname,
targetfieldname,
column_type,
col_function,
is_visible,
visible_size,
is_aggregate,
sortnr,
description
)
select R.tid,
'${column.uniquename}',
'${column.caption}',
'${column.srcfieldname}',
<#if !column.targetfieldname?exists || column.targetfieldname=="">null::varchar <#else>'${column.targetfieldname}' </#if>,
T.tid as column_type,
'${column.col_function}',
${column.is_visible},
${column.visible_size},
${column.is_aggregate},
${sortnr*10},
'${column.description}'
FROM rpta_resultset R, rpta_column_type T
where R.uniquename='${rpta_column_layout.rpta_resultset}'
and T.uniquename='${column.column_type}';
</#foreach>
select * into temp tmp_rpta_column2layout
from rpta_column2layout
where layout_id in (select L.tid
from rpta_column_layout L,rpta_resultset R
where R.tid=L.resultset_id
and R.uniquename='${rpta_column_layout.rpta_resultset}'
and L.uniquename='${rpta_column_layout.uniquename}'
)
;
select * into temp tmp_rpta_column_layout_target
from rpta_column_layout
where resultset_id in (select tid
FROM rpta_resultset
where uniquename='${rpta_column_layout.rpta_resultset}')
and uniquename in (select uniquename from tmp_rpta_column_layout)
;
insert into rpta_column_layout
(uniquename,
caption,
resultset_id,
whereclause,
description)
select uniquename,
caption,
resultset_id,
whereclause,
description
FROM tmp_rpta_column_layout T
where 0=(select count(*) from tmp_rpta_column_layout_target T2
where T.uniquename=T2.uniquename);
drop table tmp_rpta_column_layout_target;
delete from rpta_column2layout
where layout_id in (select L.tid
from rpta_column_layout L,rpta_resultset R
where R.tid=L.resultset_id
and R.uniquename='${rpta_column_layout.rpta_resultset}'
and L.uniquename='${rpta_column_layout.uniquename}'
)
;
select * into temp tmp_rpta_column2
from tmp_rpta_column T
where (resultset_id,uniquename) not in
(select resultset_id,uniquename from rpta_column);
INSERT INTO rpta_column
(resultset_id,
uniquename,
caption,
srcfieldname,
targetfieldname,
column_type,
col_function,
is_aggregate,
description,
custom
)
select
resultset_id,
uniquename,
caption,
srcfieldname,
targetfieldname,
column_type,
col_function,
is_aggregate,
description,
0 as custom
from tmp_rpta_column2;
--evtl. neuen Satz einfügen, dann alle updaten
update rpta_column set ( caption,
srcfieldname,
targetfieldname,
column_type,
col_function,
is_aggregate,
description)
= (select caption,
srcfieldname,
targetfieldname,
column_type,
col_function,
is_aggregate,
description
from tmp_rpta_column T
where T.resultset_id=rpta_column.resultset_id
and T.uniquename=rpta_column.uniquename)
where custom=0
and (resultset_id,uniquename) in
(select T.resultset_id,T.uniquename
from tmp_rpta_column T)
;
drop table tmp_rpta_column2;
insert into rpta_column2layout(column_id,
layout_id,
sortnr,
is_visible,
visible_size,
caption,
description)
select C.tid as column_id,
L.tid as layout_id,
T.sortnr,
T.is_visible,
T.visible_size,
T.caption,
T.description
FROM rpta_column C, rpta_column_layout L, tmp_rpta_column T
where C.uniquename=T.uniquename
and C.resultset_id=T.resultset_id
and L.uniquename='${rpta_column_layout.uniquename}'
and L.resultset_id=T.resultset_id
;
drop table tmp_rpta_column;
drop TABLE tmp_rpta_column_layout;
</#if>

258
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_zeitreihe_fuellen.sql

@ -0,0 +1,258 @@ @@ -0,0 +1,258 @@
--freemarker template
<sqlvars>
<sqlvar name="rpta_installed">
select count(*) from systeminfo where tid=330;
</sqlvar>
</sqlvars>
<#assign rpta_column_layout =
{"uniquename":"sos_stud_sem_jahr",
"caption":"Studierende nach Studienjahr",
"rpta_resultset":"sos_stud_astat",
"whereclause":"",
"description":"Studierende nach Studienjahr"
}
/>
<#assign rpta_columns = [
{"uniquename":"jahr",
"caption":"Jahr",
"srcfieldname":"sem_rueck_beur_ein",
"targetfieldname":"jahr",
"column_type":"logicalColumn",
"col_function":"get_akad_jahr(sem_rueck_beur_ein,''A'')",
"is_visible":"1",
"format_code":"",
"visible_size":"5",
"is_aggregate":"0",
"description":"(WS + darauffolgendes SS)"
},
{"uniquename":"semestertyp",
"caption":"Semestertyp",
"srcfieldname":"sem_rueck_beur_ein",
"targetfieldname":"semestertyp",
"column_type":"logicalColumn",
"col_function":"(case when substring('''' || sem_rueck_beur_ein from 5 for 1)=''2'' then ''WiSe'' else ''SoSe'' end)::varchar(255) ",
"is_visible":"1",
"format_code":"",
"visible_size":"5",
"is_aggregate":"0",
"description":"Winter oder Sommersemester"
},
{"uniquename":"summe",
"caption":"Anzahl der Studierenden",
"srcfieldname":"summe",
"column_type":"physicalColumn",
"col_function":"sum",
"is_visible":"1",
"visible_size":"5",
"is_aggregate":"1",
"description":"Summe der Studierenden"
}
]
/>
<#if rpta_installed==1>
---ab hier nicht mehr ändern:
CREATE temp TABLE tmp_rpta_column
(
uniquename varchar(255) NOT NULL,
caption varchar(255),
srcfieldname varchar(255),
targetfieldname varchar(255),
column_type integer,
col_function text,
is_visible smallint,
visible_size smallint,
is_aggregate smallint,
resultset_id integer,
sortnr integer,
description TEXT
);
CREATE temp TABLE tmp_rpta_column_layout
(
uniquename varchar(255) NOT NULL,
caption varchar(255),
resultset_id integer,
whereclause text,
description text
);
insert into tmp_rpta_column_layout(
resultset_id,
uniquename,
caption,
whereclause,
description
)
select tid,
'${rpta_column_layout.uniquename}',
'${rpta_column_layout.caption}',
'${rpta_column_layout.whereclause}',
'${rpta_column_layout.description}'
FROM rpta_resultset
where uniquename='${rpta_column_layout.rpta_resultset}';
<#assign sortnr=0 />
<#foreach column in rpta_columns>
<#assign sortnr=sortnr +1 />
INSERT INTO tmp_rpta_column
(resultset_id,
uniquename,
caption,
srcfieldname,
targetfieldname,
column_type,
col_function,
is_visible,
visible_size,
is_aggregate,
sortnr,
description
)
select R.tid,
'${column.uniquename}',
'${column.caption}',
'${column.srcfieldname}',
<#if !column.targetfieldname?exists || column.targetfieldname=="">null::varchar <#else>'${column.targetfieldname}' </#if>,
T.tid as column_type,
'${column.col_function}',
${column.is_visible},
${column.visible_size},
${column.is_aggregate},
${sortnr*10},
'${column.description}'
FROM rpta_resultset R, rpta_column_type T
where R.uniquename='${rpta_column_layout.rpta_resultset}'
and T.uniquename='${column.column_type}';
</#foreach>
select * into temp tmp_rpta_column2layout
from rpta_column2layout
where layout_id in (select L.tid
from rpta_column_layout L,rpta_resultset R
where R.tid=L.resultset_id
and R.uniquename='${rpta_column_layout.rpta_resultset}'
and L.uniquename='${rpta_column_layout.uniquename}'
)
;
select * into temp tmp_rpta_column_layout_target
from rpta_column_layout
where resultset_id in (select tid
FROM rpta_resultset
where uniquename='${rpta_column_layout.rpta_resultset}')
and uniquename in (select uniquename from tmp_rpta_column_layout)
;
insert into rpta_column_layout
(uniquename,
caption,
resultset_id,
whereclause,
description)
select uniquename,
caption,
resultset_id,
whereclause,
description
FROM tmp_rpta_column_layout T
where 0=(select count(*) from tmp_rpta_column_layout_target T2
where T.uniquename=T2.uniquename);
drop table tmp_rpta_column_layout_target;
delete from rpta_column2layout
where layout_id in (select L.tid
from rpta_column_layout L,rpta_resultset R
where R.tid=L.resultset_id
and R.uniquename='${rpta_column_layout.rpta_resultset}'
and L.uniquename='${rpta_column_layout.uniquename}'
)
;
select * into temp tmp_rpta_column2
from tmp_rpta_column T
where (resultset_id,uniquename) not in
(select resultset_id,uniquename from rpta_column);
INSERT INTO rpta_column
(resultset_id,
uniquename,
caption,
srcfieldname,
targetfieldname,
column_type,
col_function,
is_aggregate,
description,
custom
)
select
resultset_id,
uniquename,
caption,
srcfieldname,
targetfieldname,
column_type,
col_function,
is_aggregate,
description,
0 as custom
from tmp_rpta_column2;
--evtl. neuen Satz einfügen, dann alle updaten
update rpta_column set ( caption,
srcfieldname,
targetfieldname,
column_type,
col_function,
is_aggregate,
description)
= (select caption,
srcfieldname,
targetfieldname,
column_type,
col_function,
is_aggregate,
description
from tmp_rpta_column T
where T.resultset_id=rpta_column.resultset_id
and T.uniquename=rpta_column.uniquename)
where custom=0
and (resultset_id,uniquename) in
(select T.resultset_id,T.uniquename
from tmp_rpta_column T)
;
drop table tmp_rpta_column2;
insert into rpta_column2layout(column_id,
layout_id,
sortnr,
is_visible,
visible_size,
caption,
description)
select C.tid as column_id,
L.tid as layout_id,
T.sortnr,
T.is_visible,
T.visible_size,
T.caption,
T.description
FROM rpta_column C, rpta_column_layout L, tmp_rpta_column T
where C.uniquename=T.uniquename
and C.resultset_id=T.resultset_id
and L.uniquename='${rpta_column_layout.uniquename}'
and L.resultset_id=T.resultset_id
;
drop table tmp_rpta_column;
drop TABLE tmp_rpta_column_layout;
</#if>

3
src-modules/module/viz/schluesseltabellen/sx_stylesheets_einfuegen.sql

@ -19,6 +19,9 @@ @@ -19,6 +19,9 @@
{"mask":"44220", "filename":"tabelle_html_datenblatt.xsl", "ord":"20"},
{"mask":"44220", "filename":"viz_html_chart_viewer.xsl", "ord":"1"},
{"mask":"44220", "filename":"viz_html_chart_viewer_mask.xsl", "ord":"30"},
{"mask":"44510", "filename":"tabelle_html_datenblatt.xsl", "ord":"20"},
{"mask":"44510", "filename":"viz_html_chart_viewer.xsl", "ord":"1"},
{"mask":"44510", "filename":"viz_html_chart_viewer_mask.xsl", "ord":"30"},
{"mask":"44250", "filename":"tabelle_html_datenblatt.xsl", "ord":"20"},
{"mask":"44250", "filename":"viz_html_chart_viewer.xsl", "ord":"1"},
{"mask":"44250", "filename":"viz_html_chart_viewer_mask.xsl", "ord":"30"}

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

@ -44,6 +44,13 @@ @@ -44,6 +44,13 @@
\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"gesamt","propUnit":""}]\
,"dataTransformation":""}^ ^^25.08.2024^25.08.2024^44100^ ^2^ ^ ^
20^STUD_FAK_KURZ_PIE^Studierende nach Fakultät (Tortendiagramm)^ ^{"version":"0.2b","id":1,"name":"","renderer":"d3js","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"pie","caption":"pie","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"dim_studiengang_fb","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"width","caption":"Grafik-Breite","propertyValue":"650","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"450","propertyType":"integer"}]}],\
"chartPropertiesUsed":[],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44280^ ^2^ ^ ^
18^STUDANF_FAK_BAR^Studierende nach Fakultät Balken^ ^{"version":"0.2b","id":1,"name":"","renderer":"plot","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}],\
@ -216,10 +223,288 @@ @@ -216,10 +223,288 @@
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"summe","propertyType":"string"}]}],\
"chartPropertiesUsed":[],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44250^ ^2^ ^ ^
20^STUD_FAK_KURZ_PIE^Studierende nach Fakultät (Tortendiagramm)^ ^{"version":"0.2b","id":1,"name":"","renderer":"d3js","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"pie","caption":"pie","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"dim_studiengang_fb","propertyType":"string"},\
22^STUD_FAK_KURZ_DONUT^Studierende nach Fakultät (Donutdiagramm)^ ^{"version":"0.2b","id":1,"name":"","renderer":"d3js","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"pie","caption":"pie","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"dim_studiengang_fb_str","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"width","caption":"Grafik-Breite","propertyValue":"650","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"450","propertyType":"integer"}]}],\
"chartPropertiesUsed":[],\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"450","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"backgroundColor","caption":"Hintergrundfarbe","propertyValue":"#ffffff","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"innerRadius","caption":"Innerer Radius","propertyValue":"0","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":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"40","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#20333e","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"custom1","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"dimension1","vizPropertyVariablename":"dimension1","propertyValue":"dim_studiengang_fb","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44280^ ^2^ ^ ^
23^STUD_GESCHL_W_DONUT^Studierende nach Geschlecht (Donutdiagramm)^ ^{"version":"0.2b","id":1,"name":"","renderer":"d3js","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"pie","caption":"pie","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"geschlecht","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"width","caption":"Grafik-Breite","propertyValue":"650","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"450","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"backgroundColor","caption":"Hintergrundfarbe","propertyValue":"#20333e","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"innerRadius","caption":"Innerer Radius","propertyValue":"40","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende nach Geschlecht"},\
{"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":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"40","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#20333e","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"custom1","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"dimension1","vizPropertyVariablename":"dimension1","propertyValue":"geschlecht","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44220^ ^2^ ^ ^
26^STUD_GESCHL_W_DONUT_JB^Studierende nach Geschlecht (Wintersemester)^ ^{"version":"0.2b","id":1,"name":"","renderer":"d3js","dataSources":[{"value":"1","nr":2,"name":"Tab. 2","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"pie","caption":"pie","datasource":"1","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"geschlecht","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"width","caption":"Grafik-Breite","propertyValue":"650","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"450","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"backgroundColor","caption":"Hintergrundfarbe","propertyValue":"#20333e","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"innerRadius","caption":"Innerer Radius","propertyValue":"40","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende nach Geschlecht"},\
{"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":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"40","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#20333e","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"custom1","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"dimension1","vizPropertyVariablename":"dimension1","propertyValue":"geschlecht","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44220^ ^2^{"version":"0.2b","id":1,"name":"","renderer":"d3js","dataSources":[{"value":"1","nr":2,"name":"Tab. 2","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"pie","caption":"pie","datasource":"1","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"geschlecht","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"width","caption":"Grafik-Breite","propertyValue":"640","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"400","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"backgroundColor","caption":"Hintergrundfarbe","propertyValue":"#20333e","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"innerRadius","caption":"Innerer Radius","propertyValue":"40","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende nach Geschlecht"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"400","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"640","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"40","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#20333e","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"custom1","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"dimension1","vizPropertyVariablename":"dimension1","propertyValue":"geschlecht","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^
25^STUDANF_FAK_KURZ_DONUT_JB^Studienanfänger nach Fakultät (Sommer- und Wintersemester)^ ^{"version":"0.2b","id":1,"name":"","renderer":"d3js","dataSources":[{"value":"2","nr":3,"name":"Tab. 3","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"pie","caption":"pie","datasource":"2","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"dim_studiengang_fb_str","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"width","caption":"Grafik-Breite","propertyValue":"650","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"450","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"backgroundColor","caption":"Hintergrundfarbe","propertyValue":"#ffffff","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"innerRadius","caption":"Innerer Radius","propertyValue":"0","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":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"40","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#20333e","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"custom1","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"dimension1","vizPropertyVariablename":"dimension1","propertyValue":"dim_studiengang_fb_str","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44280^ ^2^{"version":"0.2b","id":1,"name":"","renderer":"d3js","dataSources":[{"value":"2","nr":3,"name":"Tab. 3","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"pie","caption":"pie","datasource":"2","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"dim_studiengang_fb_str","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"width","caption":"Grafik-Breite","propertyValue":"640","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"400","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"backgroundColor","caption":"Hintergrundfarbe","propertyValue":"#ffffff","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"innerRadius","caption":"Innerer Radius","propertyValue":"0","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende nach Fakultät"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"400","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"640","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"40","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#20333e","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"custom1","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"dimension1","vizPropertyVariablename":"dimension1","propertyValue":"dim_studiengang_fb","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^
24^STUD_FAK_KURZ_DONUT_JB^Studierende nach Fakultät (Wintersemester)^ ^{"version":"0.2b","id":1,"name":"","renderer":"d3js","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"pie","caption":"pie","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"dim_studiengang_fb_str","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"width","caption":"Grafik-Breite","propertyValue":"650","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"450","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"backgroundColor","caption":"Hintergrundfarbe","propertyValue":"#ffffff","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"innerRadius","caption":"Innerer Radius","propertyValue":"0","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":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"40","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#20333e","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"custom1","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"dimension1","vizPropertyVariablename":"dimension1","propertyValue":"dim_studiengang_fb_str","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44280^ ^2^{"version":"0.2b","id":1,"name":"","renderer":"d3js","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"pie","caption":"pie","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"dim_studiengang_fb_str","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"width","caption":"Grafik-Breite","propertyValue":"640","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"400","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"backgroundColor","caption":"Hintergrundfarbe","propertyValue":"#ffffff","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"innerRadius","caption":"Innerer Radius","propertyValue":"0","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende nach Fakultät"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"400","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"640","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"40","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#20333e","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"custom1","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"dimension1","vizPropertyVariablename":"dimension1","propertyValue":"dim_studiengang_fb_str","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"summe","propUnit":""}],\
"dataTransformation":[]}^ ^
27^STUD_SJAHR_JB^Studienanfänger_innen nach Studienjahr^ ^{"version":"0.2b","id":1,"name":"","renderer":"plot","dataSources":[{"value":"3","nr":4,"name":"Tab. 4","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"bar_y","caption":"bar_y","datasource":"3","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"jahr","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke","caption":"Serien-Dimension","propertyValue":"semestertyp","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende 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":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"0","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":"#000000","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Studierende","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Jahr","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"set1","propUnit":""},\
{"name":"legend","vizPropertyVariablename":"legend","propertyValue":"true","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"jahr","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"summe","propUnit":""},\
{"name":"stroke","vizPropertyVariablename":"stroke","propertyValue":"semestertyp","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44510^ ^1^{"version":"0.2b","id":1,"name":"","renderer":"plot","dataSources":[{"value":"3","nr":4,"name":"Tab. 4","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"bar_y","caption":"bar_y","datasource":"3","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"jahr","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke","caption":"Serien-Dimension","propertyValue":"semestertyp","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende 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":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"0","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#20333e","propUnit":""},\
{"name":"color","vizPropertyVariablename":"color","propertyValue":"white","propUnit":""},\
{"name":"stroke_static","vizPropertyVariablename":"stroke_static","propertyValue":"#000000","propUnit":""},\
{"name":"fill_static","vizPropertyVariablename":"fill","propertyValue":"#000000","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"custom1","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Studierende","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Jahr","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"greens","propUnit":""},\
{"name":"legend","vizPropertyVariablename":"legend","propertyValue":"true","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"jahr","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"summe","propUnit":""},\
{"name":"stroke","vizPropertyVariablename":"stroke","propertyValue":"semestertyp","propUnit":""}],\
"dataTransformation":[]}^ ^
28^STUDANF_JAHR_BAR^Studienanfänger_innen nach Jahr Balken^ ^{"version":"0.2b","id":1,"name":"","renderer":"plot","dataSources":[{"value":"0","nr":1,"name":"Tab. 4","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"bar_y","caption":"bar_y","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"jahr","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke","caption":"Serien-Dimension","propertyValue":"semestertyp","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende 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":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"0","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":"#000000","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Studierende","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Jahr","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"set1","propUnit":""},\
{"name":"legend","vizPropertyVariablename":"legend","propertyValue":"true","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"jahr","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"summe","propUnit":""},\
{"name":"stroke","vizPropertyVariablename":"stroke","propertyValue":"semestertyp","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44510^ ^2^{"version":"0.2b","id":1,"name":"","renderer":"plot","dataSources":[{"value":"0","nr":1,"name":"Tab. 4","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"bar_y","caption":"bar_y","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"jahr","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke","caption":"Serien-Dimension","propertyValue":"semestertyp","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"}]},\
{"elemID":2,"vizTypeUniquename":"text","caption":"text","datasource":"0","elementTypeProperties":[{"nr":2,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"jahr","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"summe","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"stroke","caption":"Serien-Dimension","propertyValue":"semestertyp","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"text","caption":"Beschriftung","propertyValue":"summe","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":2,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studierende 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":"innerRadius","vizPropertyVariablename":"innerRadius","propertyValue":"0","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#20333e","propUnit":""},\
{"name":"color","vizPropertyVariablename":"color","propertyValue":"white","propUnit":""},\
{"name":"stroke_static","vizPropertyVariablename":"stroke_static","propertyValue":"#000000","propUnit":""},\
{"name":"fill_static","vizPropertyVariablename":"fill","propertyValue":"#000000","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"custom1","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Studierende","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Jahr","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"scheme","vizPropertyVariablename":"scheme","propertyValue":"greens","propUnit":""},\
{"name":"legend","vizPropertyVariablename":"legend","propertyValue":"true","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"jahr","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"summe","propUnit":""},\
{"name":"stroke","vizPropertyVariablename":"stroke","propertyValue":"semestertyp","propUnit":""}],\
"dataTransformation":[]}^ ^

3
src-modules/module/viz/schluesseltabellen/viz_property.unl

@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
21^Innenrand unten^insetBottom^ ^^0^ ^0^4^10^Abstand zwischen Grafik und Achsenbeschriftung unten^108^^^integer^
22^Innenrand links^insetLeft^ ^^0^ ^0^4^10^Abstand zwischen Grafik und Achsenbeschriftung links^109^^^integer^
23^Innenrand rechts^insetRight^ ^^0^ ^0^4^10^Abstand zwischen Grafik und Achsenbeschriftung rechts^110^^^integer^
24^Farbschema^scheme^ ^ ^0^blues|greens|greys|oranges|purples|reds|paired|set1|pastel1|pastel2|tableau10|category10|accent|dark2^0^2^22^Nur für Grafikelemente Balken und Linien: Farbtonschema für Serien.^303^^^string^
24^Farbschema^scheme^ ^ ^0^blues|greens|greys|oranges|purples|reds|paired|set1|pastel1|pastel2|tableau10|category10|accent|dark2|custom1^0^2^22^Nur für Grafikelemente Balken, Linien, Torten: Farbtonschema für Serien.^303^^^string^
25^Farbtyp^type^^ ^0^einfarbig|mehrfarbig|zyklisch^0^2^20^Ein-/Mehrfarbigkeit von Diagrammelementen^302^^^string^
43^Deckungsgrad Farbe^fillOpacity^ ^ ^0^ ^0^1^11^Deckungsrad (opacity) zwischen 0 und 1^1800^0^1^string^
45^Strichlinie Breite^strokeWidth^ ^px^0^ ^0^1^11^Strichbreite in Pixel^2100^^^integer^
@ -64,3 +64,4 @@ @@ -64,3 +64,4 @@
107^Tooltip einschalten^tip^ ^ ^0^true|false^0^2^10^Sollen implizite Tooltips angezeigt werden (true,false)^2200^^^boolean^
108^Strichfarbe^stroke_static^ ^ ^0^ ^0^3^11^Strichfarbe (einfach)^1200^^^string^
109^Zusätzl. Sortierung^sortchannel^ ^ ^0^ ^0^1^5^Standardmäßig wird nach den Achsendimensionen alphabetisch aufsteigend sortiert. Wenn Sie nach einem anderen Merkmal sortieren wollen, geben Sie dies hier an (z.B. die Zeilennummer, um die Sortierung der Datentabelle zu nutzen). Nützlich z.B. um Semesternamen zu sortieren.^500^^^string^
110^Innerer Radius^innerRadius^0^ ^0^ ^0^1^10^Innerer Radius bei Tortendiagrammen (Faktor in %). Bei 0 wird kein innerer Radius genutzt, ein Wert größer 0 macht das Tortendiagramm zum Donut.^400^0^100^string^

7
src-modules/module/viz/schluesseltabellen/viz_property_renderer.unl

@ -44,6 +44,7 @@ @@ -44,6 +44,7 @@
282^2^106^opacity^
283^2^100^strokeDasharray^
284^2^45^strokeWidth^
303^1^95^dimension1^
304^1^96^dimension2^
305^1^73^measure1^
314^1^95^dimension1^
315^1^96^dimension2^
316^1^73^measure1^
317^1^110^innerRadius^

2
src-modules/module/viz/schluesseltabellen/viz_type.unl

@ -11,4 +11,4 @@ @@ -11,4 +11,4 @@
12^sankey^Sankey^1^ ^^H^ ^^
13^worldmap^Weltkarte^1^ ^^H^^^
14^pie^Tortendiagramm^1^^^Z^ ^^
15^sunburst^Sunburst-Diagramm^1^^^Z^^^
15^sunburst^Sunburst-Diagramm^1^^^Z^ ^^

27
src-modules/module/viz/schluesseltabellen/viz_type_d3js_fuellen.sql

@ -71,6 +71,21 @@ @@ -71,6 +71,21 @@
"range_from":"",
"range_to":"",
"prop_value_type":"string"
},
{ "caption":"Innerer Radius",
"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":"0",
"prop_unit":"",
"is_generic":"0",
"static_values":"",
"is_mandatory":"0",
"input_type_uniquename":"TEXT",
"property_group_uniquename":"LAYOUT",
"sortnr":"",
"range_from":"0",
"range_to":"100",
"prop_value_type":"string"
}
]
/>
@ -120,6 +135,18 @@ @@ -120,6 +135,18 @@
"viz_property_uniquename":"height",
"is_mandatory":"1",
"sortnr":"40"},
{ "viz_type_uniquename":"pie",
"viz_property_uniquename":"innerRadius",
"is_mandatory":"1",
"sortnr":"50"},
{ "viz_type_uniquename":"pie",
"viz_property_uniquename":"backgroundColor",
"is_mandatory":"1",
"sortnr":"45"},
{ "viz_type_uniquename":"pie",
"viz_property_uniquename":"scheme",
"is_mandatory":"1",
"sortnr":"47"},
{ "viz_type_uniquename":"sunburst",
"viz_property_uniquename":"dimension1",
"is_mandatory":"1",

28
src-modules/module/viz/schluesseltabellen/viz_type_property.unl

@ -145,16 +145,18 @@ @@ -145,16 +145,18 @@
1835^10^79^0^30^
1836^3^109^0^800^
1837^10^109^0^800^
1884^12^95^1^1^
1885^12^96^1^10^
1886^12^73^1^20^
1888^12^6^0^100^
1889^12^7^0^110^
1890^12^5^0^120^
1891^14^95^1^1^
1892^14^73^1^20^
1893^14^2^1^30^
1894^14^1^1^40^
1895^15^95^1^1^
1896^15^96^1^10^
1897^15^73^1^20^
1928^12^95^1^1^
1929^12^96^1^10^
1930^12^73^1^20^
1932^12^6^0^100^
1933^12^7^0^110^
1934^12^5^0^120^
1935^14^95^1^1^
1936^14^73^1^20^
1937^14^2^1^30^
1938^14^1^1^40^
1939^14^110^1^50^
1940^14^4^1^45^
1941^15^95^1^1^
1942^15^96^1^10^
1943^15^73^1^20^

80
superx/xml/js/viz/viz_functions.js

@ -2032,10 +2032,12 @@ switch (chartType) @@ -2032,10 +2032,12 @@ switch (chartType)
mySvg=makeWorldmapD3(currentChartModel.chartPropertiesUsed,mySvg,data,rsColumnMetaData[chartElem.datasource],chartElem);
break;
case "pie":
var backgroundColorSelected=getChartPropertyFromModel(currentChartModel.chartPropertiesUsed,"backgroundColor",false);
var mySvg = d3.select("#"+targetDiv).append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.attr("viewBox", [-(width+ margin.left + margin.right) / 2, -(height+ margin.top + margin.bottom) / 2, width+ margin.left + margin.right, height+ margin.top + margin.bottom])
.style("background-color", backgroundColorSelected)
.append("g")
;
mySvg=makePie_d3(currentChartModel.chartPropertiesUsed,mySvg,data,chartElem,width,height);
@ -2189,18 +2191,33 @@ function makePie_d3(myCommonChartProperties,svg,data,chartElem,width,height) @@ -2189,18 +2191,33 @@ function makePie_d3(myCommonChartProperties,svg,data,chartElem,width,height)
//const width = 928;
//const height = Math.min(width, 500);
// Create the color scale.
const color = d3.scaleOrdinal()
const radius = Math.min(width, height) / 2;
var innerRadiusPercent = parseFloat(getChartPropertyFromModel(myCommonChartProperties,"innerRadius"),false);
var innnerRadiusComputed= radius * innerRadiusPercent / 100;
var myPalette=getChartPropertyFromModel(myCommonChartProperties,"scheme",false);
/*const color = d3.scaleOrdinal()
.domain(data.map(d => d.dimension1))
.range(d3.quantize(t => d3.interpolateSpectral(t * 0.8 + 0.1), data.length).reverse())
const color = d3.scaleOrdinal()
.domain(data.map(d => d.dimension1))
.range(["#8cc277","#78a767","#1d71b8","#5b89c7","#2fac66"]); //Palette HMS
*/
//const color = d3.scaleOrdinal(d3.schemeAccent);
const color = d3.scaleOrdinal(getD3ColorScheme(myPalette));
/*const color = d3.scaleOrdinal()
.domain(data.map(d => d.dimension1))
.range(d3.schemePastel2)
;
*/
// Create the pie layout and arc generator.
const pie = d3.pie()
.sort(null)
.value(d => d.measure1);
const arc = d3.arc()
.innerRadius(0)
.outerRadius(Math.min(width, height) / 2 - 1)
.innerRadius(innnerRadiusComputed )
.outerRadius(radius - 1)
.cornerRadius(10);
const labelRadius = arc.outerRadius()() * 0.8;
@ -3435,3 +3452,60 @@ function vizTabelleComboOderSichtLaden(maskentid,fname, caption,fnameEscaped,zei @@ -3435,3 +3452,60 @@ function vizTabelleComboOderSichtLaden(maskentid,fname, caption,fnameEscaped,zei
}
function getD3ColorScheme(name,size)
{
//blues|greens|greys|oranges|purples|reds|paired|set1|pastel1|pastel2|tableau10|category10|accent|dark2
if(size==null || size==0)
size=9;
switch (name) {
case "blues":
return d3.schemeBlues[size];
break;
case "greens":
return d3.schemeGreens[size];
break;
case "greys":
return d3.schemeGreys[size];
break;
case "oranges":
return d3.schemeOranges[size];
break;
case "purples":
return d3.schemePurples[size];
break;
case "reds":
return d3.schemeReds[size];
break;
case "accent":
return d3.schemeAccent;
break;
case "paired":
return d3.schemePaired;
break;
case "set1":
return d3.schemeSet1;
break;
case "category10":
return d3.schemeCategory10;
break;
case "dark2":
return d3.schemeDark2;
break;
case "pastel1":
return d3.schemePastel1;
break;
case "pastel2":
return d3.schemePastel2;
break;
case "tableau10":
return d3.schemeTableau10;
break;
case "custom1":
return ["#5b89c7","#2fac66","#8cc277","#78a767","#1d71b8"];
break;
default:
return d3.schemePastel2;
break;
}
}

6
superx/xml/viz_html_chart.xsl

@ -107,7 +107,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util @@ -107,7 +107,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util
<!--Beginn Selektions-Card-->
<!--Beginn Berichtstitel, Pfad, Knopfleiste-->
<section class="hero-body has-background-light">
<section class="hero-body">
<!--<div class="columns is-mobile is-left">
<div class="card has-background-light">
<div class="card-content">-->
@ -387,9 +387,9 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util @@ -387,9 +387,9 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util
<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">
<div class="label-container" lang="de"><span class="labelNormal">
Grafikelement</span></div>
<div class="control">
<div class="control has-tooltip-right" 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">
<div class="field"><div class="control is-expanded">
<div class="select is-small is-fullwidth is-focused">
<select id="chartElementID" name="chartElementID"

7
superx/xml/viz_html_chart_viewer.xsl

@ -76,6 +76,13 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util @@ -76,6 +76,13 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util
<xsl:call-template name="nd_progressbar" />
<xsl:call-template name="nd_pagetitle" >
<xsl:with-param name="title" select="/ergebnisse/ergebnis/maskenname" />
<xsl:with-param name="subtitle" />
<xsl:with-param name="icon_classname" />
</xsl:call-template>
<xsl:call-template name="viz_viewer"/>
<xsl:call-template name="bottombar" />
<xsl:comment>customfooter</xsl:comment>

2
superx/xml/viz_html_chart_viewer_grid.xsl

@ -129,7 +129,7 @@ Formel: ANZ / 2 kaufm. gerundet @@ -129,7 +129,7 @@ Formel: ANZ / 2 kaufm. gerundet
<span class="separator">&#160;</span>
<!--Beginn Selektions-Card-->
<!--Beginn Berichtstitel, Pfad, Knopfleiste-->
<section class="hero-body has-background-light">
<section class="hero-body">
<section class="container"> <!--Beginn Kartenreihe -->
<div class="columns features is-mobile is-left"> <!--Beginn columns Kartenreihe -->

519
superx/xml/viz_html_chart_viewer_sunburst_man.xsl

@ -0,0 +1,519 @@ @@ -0,0 +1,519 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:HtmlUtils="de.superx.util.HtmlUtils">
<xsl:import href="xsl_functions.xsl" />
<xsl:import href="resultset_html.xsl" />
<xsl:import href="interLinks_html.xsl" />
<xsl:import href="pageComponents_html.xsl" />
<xsl:import href="menue_html_dojo.xsl" />
<xsl:import href="tabelle_html.xsl" />
<xsl:import href="viz_components.xsl" />
<!--In diesem Stylesheet können Sie individuelle templates unterbringen,
die in ihrer Präzedenz das normale Stylesheet
pageComponents_html.xsl überragt. -->
<xsl:import href="pageComponents_html_final.xsl" />
<xsl:decimal-format name="German" grouping-separator="." NaN="" zero-digit ="0" decimal-separator="," />
<!-- wichtig für DOJO!-->
<xsl:output method="xml" media-type="text/html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="DTD/xhtml1-strict.dtd" cdata-section-elements="script style" indent="yes" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:call-template name="table"/>
</xsl:template>
<xsl:template name="importVizJavascriptLibs">
<script language="Javascript" type="text/javascript" src="../xml/js/viz/d3.v3.min.js" />
<!--<script language="Javascript" type="text/javascript" src="../xml/js/viz/viz_functions.js" />
<script language="Javascript" type="text/javascript" src="../xml/js/viz/sankey_v3.js" />-->
</xsl:template>
<!-- start table main-->
<xsl:template name="table">
<html>
<xsl:choose>
<xsl:when test="/ergebnisse/@hisinone_active='true'">
<xsl:call-template name="head_hisinone" ><xsl:with-param name="title" select="concat('Ergebnis ',/ergebnisse/ergebnis[ position()=1]/maskenname)" />
<xsl:with-param name="css" select="'../style/bulma.css'" /></xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="head_superx" >
<xsl:with-param name="title" select="concat('Ergebnis ',/ergebnisse/ergebnis[ position()=1]/maskenname)" />
<xsl:with-param name="css" select="'../style/bulma.css'" /></xsl:call-template>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="tableCSS"></xsl:call-template>
<xsl:call-template name="pccustomize"><xsl:with-param name="position" select="'table_pre_javascript'"></xsl:with-param></xsl:call-template>
<xsl:call-template name="tablecustomize"><xsl:with-param name="position" select="'table_pre_javascript'"></xsl:with-param></xsl:call-template>
<xsl:call-template name="tableJavascript"></xsl:call-template>
<xsl:call-template name="pccustomize"><xsl:with-param name="position" select="'table_post_javascript'"></xsl:with-param></xsl:call-template>
<xsl:call-template name="tablecustomize"><xsl:with-param name="position" select="'table_post_javascript'"></xsl:with-param></xsl:call-template>
<script language="Javascript" type="text/javascript" src="../xml/js/viz/d3.min.js"></script>
<xsl:call-template name="buildVizMetadata">
</xsl:call-template>
<script language="javascript"><![CDATA[
var sorted = d3.sort(rs[0], d => d.man_kennz_aggr_ch110_institut,d => d.man_kennz_aggr_abschluss_grp_str, d => d.man_kennz_aggr_studiengang_str, d => d.man_kennz_aggr_value);
//var group = d3.group(sorted, d => d.sos_stg_aggr_sem_rueck_beur_ein_str);
//console.log(group);
var group = d3.group(sorted, d => d.man_kennz_aggr_ch110_institut,d => d.man_kennz_aggr_abschluss_grp_str, d => d.man_kennz_aggr_studiengang_str , d => d.man_kennz_aggr_value );
var hierarchy = d3.hierarchy(group);
var level1count=hierarchy.children.length;
console.log("level1count:"+level1count);
var data_str = "{\"name\":\"root\",\"children\":[";
for(var i=0; i < level1count ; i++){
console.log("Zeile "+i+ ":" + hierarchy.children[i].data[0]);
data_str+="{\"name\":\""+hierarchy.children[i].data[0]+"\",\"children\":[";
var level2count=hierarchy.children[i].children.length;
for(var j=0; j < level2count ; j++){
console.log("unterZeile "+j+ ":" + hierarchy.children[i].children[j].data[0]);
data_str+="{\"name\":\""+hierarchy.children[i].children[j].data[0]+"\",\"children\":[";
var level3count=hierarchy.children[i].children[j].children.length;
console.log("level3count: "+level3count);
for(var k=0; k < level3count ; k++){
console.log("unterUnterZeile "+k+ ":" + hierarchy.children[i].children[j].children[k].data[0]);
data_str+="{\"name\":\""+hierarchy.children[i].children[j].children[k].data[0]+"\",\"value\":"+hierarchy.children[i].children[j].children[k].children[0].data[0] +"}";
if(k < level3count -1)
data_str+=",";
}
data_str+="]}";
if(j < level2count -1)
data_str+=",";
}
data_str+="]}";
if(i < level1count -1)
data_str+=",";
//console.log("Zeile "+i+ ":" + hierarchy.children[i].children[0].data);
}
data_str+="]}"
console.log(data_str);
var data2=JSON.parse(data_str);
function chart(data) {
// Specify the chart’s dimensions.
const width = 800;
const height = width;
const radius = width / 6;
// Create the color scale.
const color = d3.scaleOrdinal(d3.quantize(d3.interpolateRainbow, data.children.length + 1));
// Compute the layout.
const hierarchy = d3.hierarchy(data)
.sum(d => d.value)
.sort((a, b) => b.value - a.value);
const root = d3.partition()
.size([2 * Math.PI, hierarchy.height + 1])
(hierarchy);
root.each(d => d.current = d);
// Create the arc generator.
const arc = d3.arc()
.startAngle(d => d.x0)
.endAngle(d => d.x1)
.padAngle(d => Math.min((d.x1 - d.x0) / 2, 0.005))
.padRadius(radius * 1.5)
.innerRadius(d => d.y0 * radius)
.outerRadius(d => Math.max(d.y0 * radius, d.y1 * radius - 1))
// Create the SVG container.
const svg = d3.create("svg")
.attr("viewBox", [-width / 2, -height / 2, width, width])
.attr("width",width)
.attr("height",height)
.style("font", "10px sans-serif");
// Append the arcs.
const path = svg.append("g")
.selectAll("path")
.data(root.descendants().slice(1))
.join("path")
.attr("fill", d => { while (d.depth > 1) d = d.parent; return color(d.data.name); })
.attr("fill-opacity", d => arcVisible(d.current) ? (d.children ? 0.6 : 0.4) : 0)
.attr("pointer-events", d => arcVisible(d.current) ? "auto" : "none")
.attr("d", d => arc(d.current));
// Make them clickable if they have children.
path.filter(d => d.children)
.style("cursor", "pointer")
.on("click", clicked);
const format = d3.format(",d");
path.append("title")
.text(d => `${d.ancestors().map(d => d.data.name).reverse().join("/")}\n${format(d.value)}`);
const label = svg.append("g")
.attr("pointer-events", "none")
.attr("text-anchor", "middle")
.style("user-select", "none")
.selectAll("text")
.data(root.descendants().slice(1))
.join("text")
.attr("dy", "0.35em")
.attr("fill-opacity", d => +labelVisible(d.current))
.attr("transform", d => labelTransform(d.current))
.text(d => d.data.name);
const parent = svg.append("circle")
.datum(root)
.attr("r", radius)
.attr("fill", "none")
.attr("pointer-events", "all")
.on("click", clicked);
// Handle zoom on click.
function clicked(event, p) {
parent.datum(p.parent || root);
root.each(d => d.target = {
x0: Math.max(0, Math.min(1, (d.x0 - p.x0) / (p.x1 - p.x0))) * 2 * Math.PI,
x1: Math.max(0, Math.min(1, (d.x1 - p.x0) / (p.x1 - p.x0))) * 2 * Math.PI,
y0: Math.max(0, d.y0 - p.depth),
y1: Math.max(0, d.y1 - p.depth)
});
const t = svg.transition().duration(750);
// Transition the data on all arcs, even the ones that aren’t visible,
// so that if this transition is interrupted, entering arcs will start
// the next transition from the desired position.
path.transition(t)
.tween("data", d => {
const i = d3.interpolate(d.current, d.target);
return t => d.current = i(t);
})
.filter(function(d) {
return +this.getAttribute("fill-opacity") || arcVisible(d.target);
})
.attr("fill-opacity", d => arcVisible(d.target) ? (d.children ? 0.6 : 0.4) : 0)
.attr("pointer-events", d => arcVisible(d.target) ? "auto" : "none")
.attrTween("d", d => () => arc(d.current));
label.filter(function(d) {
return +this.getAttribute("fill-opacity") || labelVisible(d.target);
}).transition(t)
.attr("fill-opacity", d => +labelVisible(d.target))
.attrTween("transform", d => () => labelTransform(d.current));
}
function arcVisible(d) {
return d.y1 <= 3 && d.y0 >= 1 && d.x1 > d.x0;
}
function labelVisible(d) {
return d.y1 <= 3 && d.y0 >= 1 && (d.y1 - d.y0) * (d.x1 - d.x0) > 0.03;
}
function labelTransform(d) {
const x = (d.x0 + d.x1) / 2 * 180 / Math.PI;
const y = (d.y0 + d.y1) / 2 * radius;
return `rotate(${x - 90}) translate(${y},0) rotate(${x < 180 ? 0 : 180})`;
}
return svg.node();
}
function showChart(){
var mySvg=chart(data2);
//alert(mySvg);
document.getElementById("chartDiv").appendChild(mySvg);
}
]]>
</script>
<!-- start Body-->
<body onload="document.getElementById('progressbar').style.display='none';showChart();">
<div id="progressbar" style="position:absolute; width:150px; height:150px; left:200px; top:200px; background:#AAAAAA">
<p>&#160;<b>Laden...</b><br/><img src="/superx/images/progress_bar.gif"></img><br/></p></div>
<xsl:if test="/ergebnisse/@showNavigation='true'">
<xsl:for-each select="/ergebnisse/menue">
<xsl:call-template name="menuFrame" />
</xsl:for-each>
</xsl:if>
<div>
<xsl:if test="/ergebnisse/@showNavigation='true'">
<xsl:attribute name="class"><xsl:text>page-wrap</xsl:text></xsl:attribute>
<xsl:for-each select="/ergebnisse/menue">
<xsl:call-template name="topbar_menue" />
</xsl:for-each>
</xsl:if>
<div>
<xsl:if test="/ergebnisse/@showNavigation='true'">
<xsl:attribute name="id"><xsl:text>wrapper</xsl:text></xsl:attribute>
</xsl:if>
<xsl:call-template name="customheader"/> <!--Standard in pageCompnents.xsl wird ggfs. direkt vom Servlet ersetzt!!-->
<xsl:call-template name="topbar_table" /> <!-- momentan nur in pageCompnents_final fuer h1 gefullet -->
<xsl:call-template name="pccustomize"><xsl:with-param name="position" select="'table_pre_center'"></xsl:with-param></xsl:call-template>
<xsl:call-template name="tablecustomize"><xsl:with-param name="position" select="'table_pre_center'"></xsl:with-param></xsl:call-template>
<xsl:for-each select="ergebnisse">
<xsl:for-each select="ergebnis/ergebniselement">
<h2><xsl:value-of select="../felder/feld [@varname='Kennzahl']/value_caption" /></h2>
<xsl:call-template name="legende" />
</xsl:for-each>
</xsl:for-each>
<div class="box" style="align:center;">
<div class="card is-shady">
<div class="card-content">
<div id="chartDiv">
</div>
</div>
</div>
</div>
<!--<input type="button" value="Start" onClick="showChart()" />-->
<!--<xsl:call-template name="tableCenter"/>-->
<xsl:call-template name="pccustomize"><xsl:with-param name="position" select="'table_post_center'"></xsl:with-param></xsl:call-template>
<xsl:call-template name="tablecustomize"><xsl:with-param name="position" select="'table_post_center'"></xsl:with-param></xsl:call-template>
<xsl:call-template name="tableDialogs"></xsl:call-template>
<!--<div class="dontprint" id="dojoDebug"></div>-->
<xsl:call-template name="bottombar" />
<xsl:comment>customfooter</xsl:comment>
</div>
</div>
<xsl:call-template name="footer" />
</body>
<!-- end body -->
</html>
</xsl:template>
<xsl:template name="buildVizData">
<xsl:param name="tableId" />
<script language="Javascript">
<xsl:text>
rsTableMetaData.push(new tableMetaData(
</xsl:text>
<xsl:value-of select="position()"/>
<xsl:text>,'</xsl:text>
<xsl:value-of select="$tableId"/>
<xsl:text>','</xsl:text>
<xsl:value-of select="concat('Tab. ',$tableId+1)"/>
<xsl:text>',
</xsl:text>
<xsl:choose>
<xsl:when test="position()=1">
<xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text>
));
rs[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>]=new Array();
//var myChartModel=new chartModel(1,"","",rsTableMetaData);
function dataRow_</xsl:text><xsl:value-of select="$tableId"/><xsl:text>(rownr</xsl:text>
<xsl:for-each select="sqlerg/complete_headers/header">
<xsl:text>,</xsl:text>
<xsl:call-template name="getColumnNameJS">
<xsl:with-param name="columnNameFromDB" select="f_name"/>
</xsl:call-template>
</xsl:for-each>
<xsl:text>
)
{
this.rownr=rownr;
</xsl:text>
<xsl:for-each select="sqlerg/complete_headers/header">
<xsl:text>this.</xsl:text><xsl:call-template name="getColumnNameJS">
<xsl:with-param name="columnNameFromDB" select="f_name"/>
</xsl:call-template><xsl:text>=</xsl:text>
<xsl:call-template name="getColumnNameJS">
<xsl:with-param name="columnNameFromDB" select="f_name"/>
</xsl:call-template><xsl:text>;
</xsl:text>
</xsl:for-each><xsl:text>
}
rsColumnMetaData[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>]=new Array();
rsColumnMetaData[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>].push(new dataRowMetaData('</xsl:text>
<xsl:value-of select="$tableId"/><xsl:text>',</xsl:text>
<xsl:value-of select="0"/>
<xsl:text>,'rownr','Zeilennr.',0,4));
</xsl:text>
<xsl:for-each select="sqlerg/complete_headers/header">
<xsl:variable name="rownr">
<xsl:value-of select="position()"/>
</xsl:variable>
<xsl:text>
rsColumnMetaData[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>].push(new dataRowMetaData('</xsl:text>
<xsl:value-of select="$tableId"/><xsl:text>',</xsl:text>
<xsl:value-of select="$rownr"/>
<xsl:text>,'</xsl:text>
<xsl:call-template name="getColumnNameJS">
<xsl:with-param name="columnNameFromDB" select="f_name"/>
</xsl:call-template>
<xsl:text>','</xsl:text>
<xsl:call-template name="remove_linebreaksAndQuot">
<xsl:with-param name="volltext" select="wert" />
</xsl:call-template>
<xsl:text>',0,null));</xsl:text> <!--coltype noch unbekannt, colfunction unnötig-->
</xsl:for-each>
<xsl:for-each select="sqlerg/row">
<xsl:variable name="rownr">
<xsl:value-of select="position()"/>
</xsl:variable>
<xsl:if test="$rownr=1">
<!-- first metadata -->
<xsl:for-each select="col">
<xsl:variable name="colnr">
<xsl:value-of select="position()"/>
</xsl:variable>
<xsl:text>
rsColumnMetaData[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>][</xsl:text><xsl:value-of select="number($colnr)"/><xsl:text>].coltype=</xsl:text><xsl:value-of select="@typ"/>
<xsl:text>;
</xsl:text>
</xsl:for-each>
</xsl:if>
<!--now resultset-->
<xsl:text>
//rs[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>]= new Array();
rs[</xsl:text><xsl:value-of select="$tableId"/><xsl:text>].push(new dataRow_</xsl:text><xsl:value-of select="$tableId"/><xsl:text>(</xsl:text><xsl:value-of select="$rownr"/>
<xsl:for-each select="col">
<xsl:text>,</xsl:text>
<xsl:choose>
<xsl:when test="@typ='1'"><xsl:text>'</xsl:text>
<xsl:call-template name="remove_linebreaksAndQuot">
<xsl:with-param name="volltext" select="wert" />
</xsl:call-template>
<xsl:text>'</xsl:text></xsl:when>
<!--todo:Typ Datum -->
<xsl:when test="string-length(wert)=0"><xsl:text>null</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="wert"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:text>));
</xsl:text>
</xsl:for-each>
</script>
</xsl:template>
<xsl:template name="head_superx">
<xsl:param name="css" />
<xsl:param name="title" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</meta><!-- <link rel="stylesheet" type="text/css" href="/superx/xml/his1/css/superx_menue_html.css" /> -->
<link rel="stylesheet" type="text/css" href="../style/superx.css"/>
<link rel="stylesheet" type="text/css" href="../xml/menue_html.css"/>
<!-- <LINK REL="stylesheet" type="text/css" href="../xml/superxml_html.css" ></LINK> unschoene CSS Trick mit img size 16-->
<link rel="stylesheet" type="text/css" href="../xml/superx_standalone.css"/>
<link rel="stylesheet" type="text/css" href="../xml/maske_html.css" />
<link rel="stylesheet" type="text/css" href="../xml/tabelle_html.css" />
<link rel="stylesheet" type="text/css" href="../xml/css/fontello-codes.css" />
<link rel="stylesheet" type="text/css" href="../xml/css/start_portlet.css" />
<!--<LINK REL="stylesheet" type="text/css" href="../style/superx.css"
></LINK> <LINK REL="stylesheet" type="text/css" href="../xml/superxml_html.css"
></LINK> -->
<xsl:choose>
<xsl:when test="$title != ''">
<xsl:choose>
<xsl:when test="starts-with($title,'Mask') ">
<link rel="stylesheet" type="text/css" href="../xml/maske_html.css" />
</xsl:when>
<xsl:otherwise>
<!-- Styles für HIS1 sind in xml/his1/css/superx_menue_html.css definiert
<LINK REL="stylesheet" type="text/css" href="../xml/tabelle_html.css" ></LINK> -->
</xsl:otherwise>
</xsl:choose>
<title>
<xsl:value-of select="$title" />
</title>
</xsl:when>
<xsl:otherwise>
<title>
<xsl:text>SuperX</xsl:text>
</title>
</xsl:otherwise>
</xsl:choose>
<!-- <script src="../xml/js/jquery/jquery-1.12.4.min.js"></script>-->
<script src="../xml/js/jquery/jquery.mobile-1.4.2.min.js"></script>
<link rel="stylesheet" href="../xml/js/jquery/jquery.mobile.structure-1.4.2.dw.css" />
<link rel="stylesheet" href="../xml/js/jquery/jqm-demos.dw.css" />
<xsl:if test="$css != ''">
<link rel="stylesheet" type="text/css" href="{$css}" />
</xsl:if>
</head>
</xsl:template>
<xsl:template name="head_hisinone">
<xsl:param name="css" />
<xsl:param name="title" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</meta>
<link rel="stylesheet" type="text/css"
href="../xml/his1/css/superx_menue_html.css" />
<link rel="stylesheet" type="text/css" href="../xml/maske_html.css" />
<!--<LINK REL="stylesheet" type="text/css" href="../style/superx.css"
></LINK> <LINK REL="stylesheet" type="text/css" href="../xml/superxml_html.css"
></LINK> -->
<xsl:choose>
<xsl:when test="$title != ''">
<xsl:choose>
<xsl:when test="starts-with($title,'Mask') ">
<link rel="stylesheet" type="text/css" href="../xml/maske_html.css" />
</xsl:when>
<xsl:otherwise>
<!-- Styles für HIS1 sind in xml/his1/css/superx_menue_html.css definiert
<LINK REL="stylesheet" type="text/css" href="../xml/tabelle_html.css" ></LINK> -->
</xsl:otherwise>
</xsl:choose>
<title>
<xsl:value-of select="$title" />
</title>
</xsl:when>
<xsl:otherwise>
<title>
<xsl:text>HISinOne-BI</xsl:text>
</title>
</xsl:otherwise>
</xsl:choose>
<link rel="stylesheet" type="text/css" href="../xml/his1/css/HISinOne.css" />
<link rel="stylesheet" href="../xml/js/jquery/jquery.mobile.structure-1.4.2.dw.css" />
<link rel="stylesheet" href="../xml/js/jquery/jqm-demos.dw.css" />
<xsl:if test="$css != ''">
<link rel="stylesheet" type="text/css" href="{$css}" />
</xsl:if>
</head>
</xsl:template>
</xsl:stylesheet>
Loading…
Cancel
Save