Browse Source

Worldmap erster Entwurf im Diagrammassistent #8

viz_kern51
Daniel Quathamer 3 weeks ago
parent
commit
40057c1520
  1. 2
      src-modules/module/viz/conf/includes.txt
  2. 61
      src-modules/module/viz/conf/viz.xml
  3. 4
      src-modules/module/viz/masken/44020_felderinfo.unl
  4. 462
      src-modules/module/viz/masken/44020_maskeninfo.unl
  5. 25
      src-modules/module/viz/masken/44190_felderinfo.unl
  6. 1
      src-modules/module/viz/masken/44190_maske_system_bez.unl
  7. 21
      src-modules/module/viz/masken/44190_masken_felder_bez.unl
  8. 1
      src-modules/module/viz/masken/44190_maskeninfo.unl
  9. 1
      src-modules/module/viz/masken/44190_sachgeb_maske_bez.unl
  10. 29
      src-modules/module/viz/masken/44220_felderinfo.unl
  11. 1
      src-modules/module/viz/masken/44220_maske_system_bez.unl
  12. 15
      src-modules/module/viz/masken/44220_masken_felder_bez.unl
  13. 1
      src-modules/module/viz/masken/44220_maskeninfo.unl
  14. 1
      src-modules/module/viz/masken/44220_sachgeb_maske_bez.unl
  15. 30
      src-modules/module/viz/masken/44250_felderinfo.unl
  16. 1
      src-modules/module/viz/masken/44250_maske_system_bez.unl
  17. 15
      src-modules/module/viz/masken/44250_masken_felder_bez.unl
  18. 1
      src-modules/module/viz/masken/44250_maskeninfo.unl
  19. 1
      src-modules/module/viz/masken/44250_sachgeb_maske_bez.unl
  20. 29
      src-modules/module/viz/masken/44280_felderinfo.unl
  21. 1
      src-modules/module/viz/masken/44280_maske_system_bez.unl
  22. 15
      src-modules/module/viz/masken/44280_masken_felder_bez.unl
  23. 1
      src-modules/module/viz/masken/44280_maskeninfo.unl
  24. 1
      src-modules/module/viz/masken/44280_sachgeb_maske_bez.unl
  25. 37
      src-modules/module/viz/schluesseltabellen/macro_masken_bez_fuellen.sql
  26. 253
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_fuellen.sql
  27. 255
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_geschl_fuellen.sql
  28. 246
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_geschl_fuellen.sql
  29. 246
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_hzbstaat_fuellen.sql
  30. 246
      src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_staat_fuellen.sql
  31. 11
      src-modules/module/viz/schluesseltabellen/sx_stylesheets_einfuegen.sql
  32. 179
      src-modules/module/viz/schluesseltabellen/viz_chart.unl
  33. 6
      src-modules/module/viz/schluesseltabellen/viz_property_renderer.unl
  34. 240
      src-modules/module/viz/schluesseltabellen/viz_staat_isocode.unl
  35. 2
      src-modules/module/viz/schluesseltabellen/viz_type.unl
  36. 44
      src-modules/module/viz/schluesseltabellen/viz_type_d3js_fuellen.sql
  37. 19
      src-modules/module/viz/schluesseltabellen/viz_type_property.unl
  38. 335
      superx/xml/js/viz/viz_functions.js
  39. 178
      superx/xml/js/viz/world.geojson
  40. 10
      superx/xml/js/viz/world.geojson.license.txt
  41. 119
      superx/xml/viz_components.xsl
  42. 35
      superx/xml/viz_html_chart_viewer_grid.xsl

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

@ -13,6 +13,8 @@ xml/js/viz/plot-0.6.1-license.txt
xml/js/viz/d3-sankey.js xml/js/viz/d3-sankey.js
xml/js/viz/d3-sankey-license.txt xml/js/viz/d3-sankey-license.txt
xml/js/viz/viz_functions.js xml/js/viz/viz_functions.js
xml/js/viz/world.geojson.license.txt
xml/js/viz/world.geojson
xml/pageComponents_html_final_viz.xsl.sam xml/pageComponents_html_final_viz.xsl.sam
xml/viz_html_chart.xsl xml/viz_html_chart.xsl
xml/viz_html_chart_sankey.xsl xml/viz_html_chart_sankey.xsl

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

@ -280,6 +280,32 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[VIZ]" />
<indexes> <indexes>
</indexes> </indexes>
</table> </table>
<table name="viz_staat_isocode" thema="Visualisierung" typ="Schlüsseltabelle"
caption="Staaten (Geocodes)" releaseUnload="demo">
<columns><column name="name" type ="VARCHAR" size ="4000" default ="" notnull ="false" />
<column name="iso3" type ="VARCHAR" size ="3" default ="" notnull ="false" />
<column name="kurzbezeichnung" type ="VARCHAR" size ="3" default ="" notnull ="false" />
<column name="astat" type ="INTEGER" size ="10" default ="" notnull ="false" />
</columns>
<indexes></indexes>
<primaryKeys><rs>
<row>
<fld name='table_cat'>superx</fld>
<fld name='table_schem'>superx</fld>
<fld name='table_name'>viz_staat_isocode</fld>
<fld name='column_name'>astat</fld>
<fld name='key_seq'>1</fld>
<fld name='pk_name'>viz_staat_isocode_pk</fld>
</row>
</rs>
</primaryKeys><foreignKeys><rs>
</rs></foreignKeys>
<importedKeys><rs>
</rs></importedKeys>
<privileges><rs>
</rs></privileges>
</table>
<views> <views>
<view name="viz_property_dimension_measure"> <view name="viz_property_dimension_measure">
<description>View Eigenschaften für Dimensionen und Maße</description> <description>View Eigenschaften für Dimensionen und Maße</description>
@ -367,6 +393,30 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the
<path>$VIZ_PFAD/masken</path> <path>$VIZ_PFAD/masken</path>
</src> </src>
</maske> </maske>
<maske tid="44190" name="Studienanfänger_innen Makro" thema="Visualisierungen">
<description> </description>
<src>
<path>$VIZ_PFAD/masken</path>
</src>
</maske>
<maske tid="44220" name="Studierende nach Geschlecht" thema="Visualisierungen">
<description> </description>
<src>
<path>$VIZ_PFAD/masken</path>
</src>
</maske>
<maske tid="44250" name="Studierende nach Staaten" thema="Visualisierungen">
<description> </description>
<src>
<path>$VIZ_PFAD/masken</path>
</src>
</maske>
<maske tid="44280" name="Studierende nach Fakultät" thema="Visualisierungen">
<description> </description>
<src>
<path>$VIZ_PFAD/masken</path>
</src>
</maske>
</masken> </masken>
<data-integrity> <data-integrity>
@ -466,6 +516,8 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_property_group_renderer"><file path="$VIZ_PFAD/schluesseltabellen/viz_property_group_renderer.unl"/></loadtable> <loadtable refresh="true" delimiter="^" header="false" tabname="viz_property_group_renderer"><file path="$VIZ_PFAD/schluesseltabellen/viz_property_group_renderer.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_type_property"><file path="$VIZ_PFAD/schluesseltabellen/viz_type_property.unl"/></loadtable> <loadtable refresh="true" delimiter="^" header="false" tabname="viz_type_property"><file path="$VIZ_PFAD/schluesseltabellen/viz_type_property.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_chart"><file path="$VIZ_PFAD/schluesseltabellen/viz_chart.unl"/></loadtable> <loadtable refresh="true" delimiter="^" header="false" tabname="viz_chart"><file path="$VIZ_PFAD/schluesseltabellen/viz_chart.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_staat_isocode"><file path="$VIZ_PFAD/schluesseltabellen/viz_staat_isocode.unl"/></loadtable>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sachgebiete_fuellen.sql" database=""/> <nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sachgebiete_fuellen.sql" database=""/>
<!-- <!--
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_type_type"><file path="$VIZ_PFAD/schluesseltabellen/viz_type_type.unl"/></loadtable> <loadtable refresh="true" delimiter="^" header="false" tabname="viz_type_type"><file path="$VIZ_PFAD/schluesseltabellen/viz_type_type.unl"/></loadtable>
@ -476,6 +528,10 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sx_stylesheets_einfuegen.sql" database=""/> <nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sx_stylesheets_einfuegen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/macro_masken_bez_fuellen.sql" database=""/> <nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/macro_masken_bez_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/viz_type_plot_fuellen.sql" database=""/> <nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/viz_type_plot_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/rpta_column_layout_sos_stud_fak_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/rpta_column_layout_sos_stud_geschl_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/rpta_column_layout_sos_stud_hzbstaat_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/rpta_column_layout_sos_stud_staat_fuellen.sql" database=""/>
</action> </action>
@ -494,12 +550,17 @@ parent="Visualisierungen">Abfragen zur Administration von Visualisierungen </the
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_property_renderer"><file path="$VIZ_PFAD/schluesseltabellen/viz_property_renderer.unl"/></loadtable> <loadtable refresh="true" delimiter="^" header="false" tabname="viz_property_renderer"><file path="$VIZ_PFAD/schluesseltabellen/viz_property_renderer.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_property_group_renderer"><file path="$VIZ_PFAD/schluesseltabellen/viz_property_group_renderer.unl"/></loadtable> <loadtable refresh="true" delimiter="^" header="false" tabname="viz_property_group_renderer"><file path="$VIZ_PFAD/schluesseltabellen/viz_property_group_renderer.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_type_property"><file path="$VIZ_PFAD/schluesseltabellen/viz_type_property.unl"/></loadtable> <loadtable refresh="true" delimiter="^" header="false" tabname="viz_type_property"><file path="$VIZ_PFAD/schluesseltabellen/viz_type_property.unl"/></loadtable>
<loadtable refresh="true" delimiter="^" header="false" tabname="viz_staat_isocode"><file path="$VIZ_PFAD/schluesseltabellen/viz_staat_isocode.unl"/></loadtable>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sachgebiete_fuellen.sql" database=""/> <nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sachgebiete_fuellen.sql" database=""/>
</action> </action>
<action error="stop"> <action error="stop">
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sx_stylesheets_einfuegen.sql" database=""/> <nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/sx_stylesheets_einfuegen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/macro_masken_bez_fuellen.sql" database=""/> <nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/macro_masken_bez_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/rpta_column_layout_sos_stud_fak_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/rpta_column_layout_sos_stud_geschl_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/rpta_column_layout_sos_stud_hzbstaat_fuellen.sql" database=""/>
<nativeaction sql="" scriptfile="$VIZ_PFAD/schluesseltabellen/rpta_column_layout_sos_stud_staat_fuellen.sql" database=""/>
</action> </action>
<action> <action>

4
src-modules/module/viz/masken/44020_felderinfo.unl

@ -25,8 +25,8 @@ and apnr=1)) \
44035^tablestylesheet^121^0^0^100^200^1^char^200^1^1^<<SQL>> select distinct filename,X.caption,ord from sx_stylesheets X,sx_mask_style S where X.tid=S.stylesheet_id and S.maskeninfo_id=44070 order by ord^^<<SQL>> select distinct filename,X.caption from sx_stylesheets X,sx_mask_style S where X.tid=S.stylesheet_id and S.maskeninfo_id=44070 and S.ord=1^ 44035^tablestylesheet^121^0^0^100^200^1^char^200^1^1^<<SQL>> select distinct filename,X.caption,ord from sx_stylesheets X,sx_mask_style S where X.tid=S.stylesheet_id and S.maskeninfo_id=44070 order by ord^^<<SQL>> select distinct filename,X.caption from sx_stylesheets X,sx_mask_style S where X.tid=S.stylesheet_id and S.maskeninfo_id=44070 and S.ord=1^
44036^Ausgabeformat^2001^0^0^100^150^1^char^200^1^1^<<SQL>> select element_value,description from menu_element where element='Ausgabeformat' and nature::smallint<100 order by nature::smallint^^<<SQL>> select element_value,description from menu_element where element='Ausgabeformat' and description='HTML'^ 44036^Ausgabeformat^2001^0^0^100^150^1^char^200^1^1^<<SQL>> select element_value,description from menu_element where element='Ausgabeformat' and nature::smallint<100 order by nature::smallint^^<<SQL>> select element_value,description from menu_element where element='Ausgabeformat' and description='HTML'^
44037^Grafik^1000^300^-1^170^150^1^integer^30^0^1^<<SQL>> select tid, caption from viz_chart order by 2;^^ ^ 44037^Grafik^1000^300^-1^170^150^1^integer^30^0^1^<<SQL>> select tid, caption from viz_chart order by 2;^^ ^
44038^Jahrgang^42^350^-1^140^180^1^sql^30^0^13^<<SQL>> select attributevalue from personattribute_value_list where personattributetype_id = (select personattributetype_id from personattributetype where attributevalue = 'Jahrgang');^^^ 44038^Semester^42^350^-1^140^180^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^^^
44039^Name der Hochschule^15^350^-1^140^80^1^char^255^0^13^<<SQL>> select name from hochschulinfo;^Eintrag^<<SQL>> select name from hochschulinfo;^ 44039^Semestertyp^15^350^-1^140^80^1^integer^255^0^1^<<SQL>> select 1,'nur Sommersemester' from xdummy union select 2,'nur Wintersemester' from xdummy^ ^ ^
44040^Spaltenanzahl^300^0^0^140^80^1^integer^30^0^1^<<SQL>> SELECT 1,'1-spaltig' from xdummy \ 44040^Spaltenanzahl^300^0^0^140^80^1^integer^30^0^1^<<SQL>> SELECT 1,'1-spaltig' from xdummy \
union SELECT 2,'2-spaltig' from xdummy \ union SELECT 2,'2-spaltig' from xdummy \
union SELECT 3,'3-spaltig' from xdummy \ union SELECT 3,'3-spaltig' from xdummy \

462
src-modules/module/viz/masken/44020_maskeninfo.unl

@ -1 +1,461 @@
44020^Studierende Datenblatt (Teiltabelle)^<sximport>select select_stmt from maskeninfo where tid=160440</sximport>^<sximport>select xil_proplist from maskeninfo where tid=160440</sximport>^Altersgruppe^Anzahl^Flexible Ausgabe der Studierendenstatistik, Studiengänge und Lehreinheiten^<sximport>select cleanup_stmt from maskeninfo where tid=160440</sximport>^^3^700^360^0^1^ ^ 44020^Studierende Datenblatt (Teiltabelle)^--Freemarker Template\
<#include "SQL_lingua_franca"/>\
<#include "SuperX_general"/>\
<#include "SQL_multitable_output"/>\
\
--ram excelexport\
\
<sqlvars>\
<sqlvar name="basetable"><![CDATA[<#if "<<Köpfe oder Fälle ?>>"?index_of("S.gewichtung_id=")==-1>select 'sos_stg_aggr' from xdummy<#else>select 'sos_stud_gewichtung' from xdummy</#if>]]></sqlvar>\
<sqlvar name="restriction"><![CDATA[<#if basetable='sos_stg_aggr'>\
<#assign restrict=DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)/>;\
<#else>\
<#assign restrict=DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)?replace('sos_stg_aggr',basetable)?replace("'dim_studiengang'","'dim_studiengang_gew'")/>;\
</#if>\
select '${restrict?replace("\\x0027","\\x0027\\x0027")}' from xdummy;]]>\
</sqlvar>\
<sqlvar name="get_joins" type="hashsequence"><![CDATA[\
SELECT foreignkey_tab,min(table_name) as table_name,\
min(name) as name,\
min(foreignkey_col) as foreignkey_col,\
min(foreignkey_cond) as foreignkey_cond,\
min(foreignkey_func) as foreignkey_func\
from sx_fields\
where table_name in ('${basetable}'/* ,<<Weitere Tabellen>> */ ${restriction})\
and foreignkey_tab in ('${basetable}'/* ,<<Weitere Tabellen>> */ ${restriction})\
group by 1\
order by 1,2,3;\
]]>\
</sqlvar>\
<sqlvar name="semester"><![CDATA[\
select tid, eintrag from semester where 1=1\
/* and tid >= <<Seit Semester>> */\
/* and tid <= <<Bis Semester>>*/\
;]]>\
</sqlvar>\
<sqlvar name="get_felder_fk" type="hashsequence"><![CDATA[\
SELECT name,\
caption,\
table_name,\
foreignkey_tab,\
foreignkey_col,\
foreignkey_cap,\
foreignkey_cond,\
foreignkey_func,\
case when foreignkey_uniquename!='' then foreignkey_uniquename else foreignkey_col end as foreignkey_uniquename\
\
from sx_fields\
where table_name in ('${basetable}' /* ,<<Weitere Tabellen>> */ ${restriction}\
)\
and currentlyused=1\
--Pseudonyme eingeschaltet:\
and (name != 'matrikel_nr' or 0=(select \
count(*) from konstanten where beschreibung='SOS_MTKNR_EXT'\
and apnr=1))\
<#if basetable='sos_stg_aggr'>\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>",FelderObject.allKeys)}\
<#else>\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>"?replace("sos_stg_aggr","sos_stud_gewichtung")?replace("dim_studiengang.","dim_studiengang_gew."),\
FelderObject.allKeys?replace("sos_stg_aggr","sos_stud_gewichtung")?replace("dim_studiengang.","dim_studiengang_gew."))}\
</#if>\
and table_name !='dim_person_attribute_aggr'\
--hier Personattribute wg. Sortierung\
union\
SELECT F.name,\
P.attributevalue ,--caption,\
table_name,\
foreignkey_tab,\
foreignkey_col,\
foreignkey_cap,\
foreignkey_cond,\
foreignkey_func,\
case when foreignkey_uniquename!='' then foreignkey_uniquename else foreignkey_col end as foreignkey_uniquename\
\
from sx_fields F, personattributetype P\
where table_name in ('${basetable}' /* ,<<Weitere Tabellen>> */ ${restriction}\
)\
and currentlyused=1\
--Pseudonyme eingeschaltet:\
and (name != 'matrikel_nr' or 0=(select \
count(*) from konstanten where beschreibung='SOS_MTKNR_EXT'\
and apnr=1))\
<#if basetable='sos_stg_aggr'>\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>",FelderObject.allKeys)}\
<#else>\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>"?replace("sos_stg_aggr","sos_stud_gewichtung")?replace("dim_studiengang.","dim_studiengang_gew."),\
FelderObject.allKeys?replace("sos_stg_aggr","sos_stud_gewichtung")?replace("dim_studiengang.","dim_studiengang_gew."))}\
</#if>\
and table_name ='dim_person_attribute_aggr'\
and F.name='attribute' || P.personattributetype_id\
\
order by 2,3;\
]]>\
</sqlvar>\
</sqlvars>\
\
<#assign lehr_stg_ab="lehr_stg_ab"/>\
<#if "<<Köpfe oder Fälle ?>>"?index_of("S.gewichtung_id=")!=-1>\
<#assign lehr_stg_ab="lehr_stg_ab_gew"/>\
</#if>\
\
delete from dim_person_attribute_aggr;\
\
<#foreach einSemester in semester>\
insert into dim_person_attribute_aggr \
select dim_person_attribute.matrikel_nr, \
max(attribute1),max(attribute2),max(attribute3),max(attribute4),max(attribute5),max(attribute6)\
,max(attribute7),max(attribute8),max(attribute9),max(attribute10), semester.tid\
from dim_person_attribute, semester\
where (${einSemester.key} between semester_von and semester_bis and semester.tid = ${einSemester.key}) \
\
group by dim_person_attribute.matrikel_nr, semester.tid;\
</#foreach>\
\
\
--zum testen der sqlvars\
--select * from sx_fields\
-- <#if <<tablestylesheet>>='tabelle_html.xsl'>\
-- /*,<<Weitere Tabellen>> */\
-- <#else>\
-- , ${.vars["Weitere TabellenObject"].allKeys?replace("'","")}\
--</#if>\
--where 1=1 \
-- <#if <<tablestylesheet>>='tabelle_html.xsl'>\
-- /* and trim(table_name) || '.' || name in ( <<Felder>> )*/\
-- <#else>\
-- and trim(table_name) || '.' || name in (${FelderObject.allKeys})\
-- </#if>;\
\
--drop table if exists tmp_tabelle ;\
\
\
<#assign filter="\
/* and <<Hörerstatus>> */\
/* and sem_rueck_beur_ein >= <<Seit Semester>> */\
/* and sem_rueck_beur_ein <= <<Bis Semester>> */\
/* and sem_rueck_beur_ein = <<Semester>> */\
/* AND fach_sem_zahl <= <<bis Fachsemester>> */\
/* and "+basetable+".stichtag = <<Stichtag>> */\
/* and kz_rueck_beur_ein in(<<Status>>) */\
/* and geschlecht=<<Geschlecht>> */\
/* and ${<<Filter Studierende>>} */\
/* and substring('' || sem_rueck_beur_ein from 5 for 1)='<<Semestertyp>>' */\
" />\
\
\
<#if "<<Matrikel-Nr.>>"!="">\
<#assign filter=filter+" and " + basetable + ".matrikel_nr in (<<Matrikel-Nr.>>)"?replace("'","")/>\
</#if>\
<#if "<<Köpfe oder Fälle ?>>"?index_of("S.gewichtung_id=")!=-1>\
<#assign filter=filter+" and "+.vars["Köpfe oder Fälle ?"]?replace('S.','sos_stud_gewichtung.')/>\
<#if "<<Weitere Tabellen>>"?index_of("dim_studiengang_gew")&gt;-1>\
<#assign filter=filter+" and (dim_studiengang_gew.gewichtid is null or "+.vars["Köpfe oder Fälle ?"]?replace('S.','dim_studiengang_gew.')?replace("gewichtung_id","gewichtid")+")"/>\
</#if>\
<#elseif "<<Köpfe oder Fälle ?>>"!="">\
<#assign filter=filter+" and "+.vars["Köpfe oder Fälle ?"]/>\
</#if>\
\
\
<#assign filter = filter + " and 's_' || tid_stg in "+Studiengang.allNeededKeysList /> \
\
<#assign semester_von_filter="19000" />\
/* <#assign semester_von_filter="<<Seit Semester>>" /> */\
<#assign semester_bis_filter="30000" />\
/* <#assign semester_bis_filter="<<Bis Semester>>" /> */\
\
/*<#assign filter = filter + " and 0 < (select count(*) from personattribute PA, personattributetype TY\
where TY.personattributetype_id=PA.personattributetype_id\
and TY.attributevalue='Jahrgang'\
and PA.matrikel_nr="+basetable+".matrikel_nr\
and (${semester_von_filter} between PA.semester_von and PA.semester_bis\
or ${semester_bis_filter} between PA.semester_von and PA.semester_bis)\
and PA.attributevalue='<<Jahrgang>>') "/>*/\
\
/* <#assign filter = filter + " and 0 < (select count(*) from personattribute PA, personattributetype TY\
where TY.personattributetype_id=PA.personattributetype_id\
and TY.attributevalue='Status'\
and PA.matrikel_nr="+basetable+".matrikel_nr\
and (${semester_von_filter} between PA.semester_von and PA.semester_bis\
or ${semester_bis_filter} between PA.semester_von and PA.semester_bis)\
and PA.attributevalue='<<Zivilstatus>>') "/>*/\
\
\
/* <#assign filter = filter + " and '' || ca12_staat in "+Staatsangehörigkeit.allNeededKeysList /> --<<Staatsangehörigkeit>> */\
\
/* <#assign filter = filter + " and tid_stg in (select L2.tid from lehr_stg_ab L2 where L2.abschluss in " + Abschluss.allNeededKeysList +")" /> --<<Abschluss>> */\
\
\
-- /*<#assign filter = filter + " and dim_person_attribute.attribute9 = '<<StatusZ>>'"/> */\
--/*<#assign jahrgang_filter = " and dim_person_attribute.attribute10 = '<<Jahrgang>>'"/>*/\
--<#assign filter = filter + jahrgang_filter />\
\
--first denormalize basetable:\
\
--get field_list_select\
<#assign field_list_select="''::char(250) as _meldung" />\
<#foreach feld in get_felder_fk>\
\
<#if feld.name="summe">\
<#assign field_list_select=field_list_select+", sum(summe) as "+basetable+"_summe" />\
<#else>\
<#assign field_list_select=field_list_select+", "+feld.table_name +"."+feld.name +" as "+feld.table_name +"_"+feld.name />\
</#if>\
<#if feld.foreignkey_uniquename != "">\
<#assign field_list_select=field_list_select+",''::char(255) as " + feld.table_name +"_"+feld.name + "_uniquename" />\
<#assign field_list_select=field_list_select+",''::char(255) as " + feld.table_name +"_"+feld.name + "_str" />\
</#if>\
</#foreach>\
\
--get fromclause\
\
<#assign fromclause=lehr_stg_ab+" L,"+basetable />\
<#foreach join in get_joins>\
<#assign fromclause=fromclause+" left outer join "+join.foreignkey_tab +" on (" />\
<#if join.foreignkey_tab ="dim_person_attribute_aggr" >\
<#assign fromclause=fromclause+ basetable+".matrikel_nr=dim_person_attribute_aggr.matrikel_nr and dim_person_attribute_aggr.semester = "+basetable+".sem_rueck_beur_ein " />\
<#else>\
<#assign fromclause=fromclause+ basetable+"."+ join.name+"=" />\
<#if join.foreignkey_func != "">\
<#assign fromclause=fromclause+join.foreignkey_func+"(" />\
</#if>\
<#assign fromclause=fromclause+join.foreignkey_tab+"." +join.foreignkey_col />\
<#if join.foreignkey_func != "">\
<#assign fromclause=fromclause+")" />\
</#if>\
<#if join.foreignkey_cond != "">\
<#if join.foreignkey_cond[0..0] = "1" || \
join.foreignkey_cond[0..0] = "2" ||\
join.foreignkey_cond[0..0] = "3" ||\
join.foreignkey_cond[0..0] = "4" ||\
join.foreignkey_cond[0..0] = "5" ||\
join.foreignkey_cond[0..0] = "6" ||\
join.foreignkey_cond[0..0] = "7" ||\
join.foreignkey_cond[0..0] = "8" ||\
join.foreignkey_cond[0..0] = "9" ||\
join.foreignkey_cond[0..0] = "0" ||\
join.foreignkey_cond[0..0] = "'" >\
<#assign fromclause=fromclause+" and "+join.foreignkey_cond />\
<#else>\
<#assign fromclause=fromclause+" and tmp_tabelle."+join.table_name+"_"+join.foreignkey_cond />\
</#if>\
</#if>\
\
</#if> --wenn nicht dim_person_attritubte_aggr\
<#assign fromclause=fromclause+") " />\
</#foreach>\
<#if ("<<Weitere Tabellen>>"+restriction)?index_of("dim_person_attribute_aggr") !=-1>\
<#assign fromclause=fromclause+" left outer join dim_person_attribute_aggr on ("+basetable+".matrikel_nr=dim_person_attribute_aggr.matrikel_nr and "+basetable+".sem_rueck_beur_ein=dim_person_attribute_aggr.semester)" />\
</#if>\
\
--whereclause\
<#assign whereclause=" L.tid="+basetable+".tid_stg " />\
\
--get groupbyclause\
<#assign groupbyclause="group by 1" />\
<#foreach feld in get_felder_fk>\
<#if feld.name!="summe">\
<#assign groupbyclause=groupbyclause+", "+feld.table_name +"_"+feld.name />\
</#if>\
</#foreach>\
\
<@selectintotmp\
select=field_list_select\
source=fromclause\
target="tmp_tabelle">\
where ${whereclause}\
${filter}\
${groupbyclause}\
</@selectintotmp>\
<@informixnolog/> ;\
\
create temp table tmp_rows(anz integer,max_anz integer) \
<@informixnolog/> \
;\
insert into tmp_rows(anz) select count(*) from tmp_tabelle;\
update tmp_rows set max_anz=(select apnr from konstanten where beschreibung='Datenblatt max.Zeilenzahl');\
\
delete from tmp_tabelle where 0 < (select count(*) from tmp_rows\
where anz > max_anz);\
\
select 'Warnung: die Abfrage kann nicht ausgeführt werden, denn ' || anz || ' Zeilen liegen über max. Grenze von ' || max_anz as _runtimeMessage\
from tmp_rows\
where anz > max_anz;\
\
drop table tmp_rows;\
\
--denormalize:\
\
\
<#foreach feld in get_felder_fk>\
<#if feld.foreignkey_tab != "" >\
<#if SQLdialect="Postgres">\
update tmp_tabelle set\
(${feld.table_name}_${feld.name}_uniquename, ${feld.table_name}_${feld.name}_str)=\
(select ${feld.foreignkey_uniquename},${feld.foreignkey_cap}\
from ${feld.foreignkey_tab}\
where tmp_tabelle.${feld.table_name}_${feld.name}=\
<#if feld.foreignkey_func != "">\
${feld.foreignkey_func}(\
</#if>\
${feld.foreignkey_tab}.${feld.foreignkey_col}\
<#if feld.foreignkey_func != "">\
)\
</#if>\
<#if feld.foreignkey_cond != "">\
<#if feld.foreignkey_cond[0..0] = "1" || \
feld.foreignkey_cond[0..0] = "2" ||\
feld.foreignkey_cond[0..0] = "3" ||\
feld.foreignkey_cond[0..0] = "4" ||\
feld.foreignkey_cond[0..0] = "5" ||\
feld.foreignkey_cond[0..0] = "6" ||\
feld.foreignkey_cond[0..0] = "7" ||\
feld.foreignkey_cond[0..0] = "8" ||\
feld.foreignkey_cond[0..0] = "9" ||\
feld.foreignkey_cond[0..0] = "0" ||\
feld.foreignkey_cond[0..0] = "'" >\
and ${feld.foreignkey_cond}\
<#else>\
and tmp_tabelle.${feld.table_name}_${feld.foreignkey_cond}\
</#if>\
</#if>\
);\
<#else> --Wenn Informix:\
\
update tmp_tabelle set (${feld.table_name}_${feld.name}_uniquename,${feld.table_name}_${feld.name}_str)\
=(( select ${feld.foreignkey_uniquename},${feld.foreignkey_cap}\
from ${feld.foreignkey_tab}\
where tmp_tabelle.${feld.table_name}_${feld.name}=\
<#if feld.foreignkey_func != "">\
${feld.foreignkey_func}(\
</#if>\
${feld.foreignkey_tab}.${feld.foreignkey_col}\
<#if feld.foreignkey_func != "">\
)\
</#if>\
<#if feld.foreignkey_cond != "">\
<#if feld.foreignkey_cond[0..0] = "1" || \
feld.foreignkey_cond[0..0] = "2" ||\
feld.foreignkey_cond[0..0] = "3" ||\
feld.foreignkey_cond[0..0] = "4" ||\
feld.foreignkey_cond[0..0] = "5" ||\
feld.foreignkey_cond[0..0] = "6" ||\
feld.foreignkey_cond[0..0] = "7" ||\
feld.foreignkey_cond[0..0] = "8" ||\
feld.foreignkey_cond[0..0] = "9" ||\
feld.foreignkey_cond[0..0] = "0" ||\
feld.foreignkey_cond[0..0] = "'" >\
and ${feld.foreignkey_cond}\
<#else>\
and tmp_tabelle.${feld.table_name}_${feld.foreignkey_cond}\
</#if>\
</#if>\
))\
where tmp_tabelle.${feld.table_name}_${feld.name} is not null\
;\
\
</#if> --Wenn Postgres/Informix\
</#if> --wenn foreign_key\
</#foreach>\
\
\
<#if get_felder_fk?has_content >\
select \
\
<#assign rownum=1 />\
<#foreach feld in get_felder_fk>\
<#if feld.foreignkey_tab != "">\
\
${feld.table_name}_${feld.name}_str\
<#if <<Schlüssel anzeigen>>=1>\
<#if feld.foreignkey_col=feld.foreignkey_uniquename>\
,${feld.table_name}_${feld.name}\
<#else>\
,${feld.table_name}_${feld.name}_uniquename\
</#if>\
</#if>\
\
<#else>\
${feld.table_name}_${feld.name}\
</#if>\
<#if rownum &lt; get_felder_fk?size>\
,\
</#if>\
<#assign rownum= rownum+1 />\
</#foreach>\
from tmp_tabelle\
order by 2\
;\
</#if>^--Freemarker Template \
<sqlvars>\
<sqlvar name="basetable"><![CDATA[<#if "<<Köpfe oder Fälle ?>>"?index_of("S.gewichtung_id=")==-1>select 'sos_stg_aggr' from xdummy<#else>select 'sos_stud_gewichtung' from xdummy</#if>]]></sqlvar>\
<sqlvar name="restriction"><![CDATA[<#if basetable='sos_stg_aggr'>\
<#assign restrict=DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)/>;\
<#else>\
<#assign restrict=DatenblattTables(<<tablestylesheet>>,"<<Weitere Tabellen>>",.vars["Weitere TabellenObject"].allKeys)?replace('sos_stg_aggr',basetable)?replace("'dim_studiengang'","'dim_studiengang_gew'")/>;\
</#if>\
select '${restrict?replace("\\x0027","\\x0027\\x0027")}' from xdummy;]]>\
</sqlvar>\
<sqlvar name="get_felder"><![CDATA[\
SELECT caption,\
foreignkey_tab,\
description as strukturStr\
from sx_fields\
where table_name in ('${basetable}'\
${restriction}\
)\
and currentlyused=1\
--Pseudonyme eingeschaltet:\
and (name != 'matrikel_nr' or 0=(select \
count(*) from konstanten where beschreibung='SOS_MTKNR_EXT'\
and apnr=1))\
<#if basetable='sos_stg_aggr'>\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>",FelderObject.allKeys)}\
<#else>\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>"?replace("sos_stg_aggr","sos_stud_gewichtung")?replace("dim_studiengang.","dim_studiengang_gew."),\
FelderObject.allKeys?replace("sos_stg_aggr","sos_stud_gewichtung")?replace("dim_studiengang.","dim_studiengang_gew."))}\
</#if>\
and table_name !='dim_person_attribute_aggr'\
--hier personattribute:\
union SELECT P.attributevalue , -- F.caption,\
F.foreignkey_tab,\
F.description as strukturStr\
from sx_fields F, personattributetype P\
where F.table_name in ('${basetable}'\
${restriction}\
)\
and currentlyused=1\
--Pseudonyme eingeschaltet:\
and (name != 'matrikel_nr' or 0=(select \
count(*) from konstanten where beschreibung='SOS_MTKNR_EXT'\
and apnr=1))\
<#if basetable='sos_stg_aggr'>\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>",FelderObject.allKeys)}\
<#else>\
${DatenblattFields(<<tablestylesheet>>,"<<Felder>>"?replace("sos_stg_aggr","sos_stud_gewichtung")?replace("dim_studiengang.","dim_studiengang_gew.")\
,FelderObject.allKeys?replace("sos_stg_aggr","sos_stud_gewichtung")?replace("dim_studiengang.","dim_studiengang_gew."))}\
</#if>\
and table_name ='dim_person_attribute_aggr'\
and F.name='attribute' || P.personattributetype_id\
order by 1;]]>\
</sqlvar>\
</sqlvars>\
XIL List\
sizable_columns horizontal_scrolling\
white_space_color=COLOR_WHITE fixed_columns=0\
min_heading_height=35\
<#assign i=1 />\
<#if get_felder?has_content >\
<#foreach myfield in get_felder>\
<#assign i=i+1 />\
Column CID=${i} heading_text="${myfield.key}" explanation="${myfield.strukturStr}" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=20\
<#if myfield.name != '' && <<Schlüssel anzeigen>>==1>\
<#assign i=i+1 />\
Column CID=${i} heading_text="${myfield.key}\\n(Schlüssel)" explanation="Schlüssel des Feldes ${myfield.key}" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=20\
</#if>\
</#foreach>\
</#if>\
@@@^Altersgruppe^Anzahl^Flexible Ausgabe der Studierendenstatistik, Studiengänge und Lehreinheiten^<sximport>select cleanup_stmt from maskeninfo where tid=160440</sximport>^^3^700^360^0^1^ ^

25
src-modules/module/viz/masken/44190_felderinfo.unl

@ -0,0 +1,25 @@
44190^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='Köpfe';^
44191^Seit Semester^3^0^0^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^Eintrag^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
44192^Stichtag^1^350^-1^140^100^1^sql^30^0^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';^
44193^Staatsangehörigkeit^36^0^0^130^150^10^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art='SOS-Staaten-Sicht' order by 3,2;^hidden^^
44194^Status^14^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.';^
44195^Hörerstatus^33^0^0^140^170^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';^
44196^Spaltenanzahl^300^0^0^140^80^1^integer^30^0^1^<<SQL>> SELECT 1,'1-spaltig' from xdummy \
union SELECT 2,'2-spaltig' from xdummy \
union SELECT 3,'3-spaltig' from xdummy \
union SELECT 4,'4-spaltig' from xdummy \
order by 1;^^<<SQL>> SELECT 3,'3-spaltig' from xdummy^
44197^bis Fachsemester^35^350^-1^140^100^1^integer^30^0^999^^^^
44199^Bis Semester^4^350^-1^140^80^1^integer^30^0^1^<<SQL>> select tid, eintrag from semester order by tid DESC;^Eintrag^<<SQL>> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
44200^Filter Studierende^119^0^0^140^150^1^sql^20^0^999^<<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;^^^
44201^Geschlecht^37^0^0^140^80^1^integer^30^0^999^<<SQL>> SELECT apnr,druck FROM cif where key = 9003 and apnr between 1 and 4 order by 1;^^^
44203^Studiengang^6^0^0^140^150^50^char^30^0^12^<<SQL>> select tid,name,sortnr from sichten where art in ('SOS-Kostenstellen-Sicht', 'SOS-Studiengang-Sicht') order by 3,2;^^^
44204^Schlüssel anzeigen^150^0^0^100^100^1^integer^30^1^1^<<SQL>> select 1,'Ja' from xdummy union select 0,'Nein' from xdummy^hidden^<<SQL>> select 1,'Ja' from xdummy^
44205^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=44070 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=44070 and ord =1^
44207^Grafik^1000^300^-1^170^150^1^integer^30^0^1^<<SQL>> select tid, caption from viz_chart order by 2;^hidden^ ^
44208^Jahrgang^42^350^-1^140^180^1^sql^30^0^999^<<SQL>> select attributevalue from personattribute_value_list where personattributetype_id = (select personattributetype_id from personattributetype where attributevalue = 'Jahrgang');^^^
44209^Semestertyp^5^350^-1^140^80^1^integer^255^0^1^<<SQL>> select 1,'nur Sommersemester' from xdummy union select 2,'nur Wintersemester' from xdummy^Eintrag^<<SQL>> select 2,'nur Wintersemester' from xdummy^
44210^##line##^30^0^0^100^100^1^char^5000^0^8^^^1^
44211^Abschluss^7^0^0^140^170^5^char^30^0^1^<<SQL>> select abint,dtxt from k_abint order by 2;^^^
44212^Matrikel-Nr.^20^350^-1^150^180^1^char^200^0^13^^{InputCheck:matrikelnummern}^^
44213^##line##^40^0^0^100^100^1^char^5000^0^8^^^1^

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

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

21
src-modules/module/viz/masken/44190_masken_felder_bez.unl

@ -0,0 +1,21 @@
44190^44190^
44190^44191^
44190^44192^
44190^44193^
44190^44194^
44190^44195^
44190^44196^
44190^44197^
44190^44199^
44190^44200^
44190^44201^
44190^44203^
44190^44204^
44190^44205^
44190^44207^
44190^44208^
44190^44209^
44190^44210^
44190^44211^
44190^44212^
44190^44213^

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

@ -0,0 +1 @@
44190^Studienanfänger_innen Übersicht^ ^ ^Altersgruppe^Anzahl^Studienanfänger_innen als Zeitreihe, nach Gesschlecht und Fakultät in verschiedenen Visualisierungen^drop table tmp_tabelle;^^3^700^360^0^1^^

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

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

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

@ -0,0 +1,29 @@
44220^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_geschl')\
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_geschl')\
order by sortnr, caption limit 1\
;^
44221^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;^
44222^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;^ ^ ^
44223^Abschluss^40^0^0^100^200^3^char^1500^0^1^<<SQL>> select apnr, druck from cifx where key=35 order by 2;^ ^ ^
44224^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^13^^ ^ ^
44225^Grafik^4000^300^-1^170^150^1^integer^30^0^1^<<SQL>> select tid, caption from viz_chart where maskeninfo_id=44220 order by 2;^^<<SQL>> select tid, caption from viz_chart where maskeninfo_id=44220 order by 2 limit 1;^
44226^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^apnr, eintrag^ ^
44227^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;^
44228^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;^ ^ ^
44229^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;^ ^ ^
44230^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=44100 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=44100 order by ord limit 1^
44231^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';^
44232^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';^
44238^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';^
44242^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/44220_maske_system_bez.unl

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

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

@ -0,0 +1,15 @@
44220^44220^
44220^44221^
44220^44222^
44220^44223^
44220^44224^
44220^44225^
44220^44226^
44220^44227^
44220^44228^
44220^44229^
44220^44230^
44220^44231^
44220^44232^
44220^44238^
44220^44242^

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

@ -0,0 +1 @@
44220^Studierende nach Geschlecht^<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/44220_sachgeb_maske_bez.unl

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

30
src-modules/module/viz/masken/44250_felderinfo.unl

@ -0,0 +1,30 @@
44250^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_ca12_staat','sos_stud_hzb_staat')\
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_ca12_staat','sos_stud_hzb_staat')\
order by sortnr, caption\
limit 1\
;^
44251^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;^
44252^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;^ ^ ^
44253^Abschluss^40^0^0^100^200^3^char^1500^0^1^<<SQL>> select apnr, druck from cifx where key=35 order by 2;^ ^ ^
44254^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^13^^ ^ ^
44255^Grafik^4000^300^-1^170^150^1^integer^30^0^1^<<SQL>> select tid, caption from viz_chart where maskeninfo_id=44250 order by 2;^^<<SQL>> select tid, caption from viz_chart where maskeninfo_id=44250 order by 2 limit 1;^
44256^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^apnr, eintrag^ ^
44257^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;^
44258^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;^ ^ ^
44259^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;^ ^ ^
44260^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=44250 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=44100 order by ord limit 1^
44261^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';^
44262^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';^
44268^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';^
44272^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/44250_maske_system_bez.unl

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

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

@ -0,0 +1,15 @@
44250^44250^
44250^44251^
44250^44252^
44250^44253^
44250^44254^
44250^44255^
44250^44256^
44250^44257^
44250^44258^
44250^44259^
44250^44260^
44250^44261^
44250^44262^
44250^44268^
44250^44272^

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

@ -0,0 +1 @@
44250^Studierende nach Staaten^<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 Staat (Staatsangehörigkeit, Staat der Hochschulzugangsberechtigung) als Datenblatt oder Weltkarte^<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/44250_sachgeb_maske_bez.unl

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

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

@ -0,0 +1,29 @@
44280^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_fak')\
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_fak')\
order by sortnr, caption limit 1\
;^
44281^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;^
44282^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;^ ^ ^
44283^Abschluss^40^0^0^100^200^3^char^1500^0^1^<<SQL>> select apnr, druck from cifx where key=35 order by 2;^ ^ ^
44284^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^13^^ ^ ^
44285^Grafik^4000^300^-1^170^150^1^integer^30^0^1^<<SQL>> select tid, caption from viz_chart where maskeninfo_id=44280 order by 2;^^<<SQL>> select tid, caption from viz_chart where maskeninfo_id=44280 order by 2 limit 1;^
44286^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^apnr, eintrag^ ^
44287^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;^
44288^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;^ ^ ^
44289^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;^ ^ ^
44290^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=44100 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=44100 order by ord limit 1^
44291^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';^
44292^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';^
44298^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';^
44302^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/44280_maske_system_bez.unl

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

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

@ -0,0 +1,15 @@
44280^44280^
44280^44281^
44280^44282^
44280^44283^
44280^44284^
44280^44285^
44280^44286^
44280^44287^
44280^44288^
44280^44289^
44280^44290^
44280^44291^
44280^44292^
44280^44298^
44280^44302^

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

@ -0,0 +1 @@
44280^Studierende nach Fakultät^<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 Fakultät mit 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/44280_sachgeb_maske_bez.unl

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

37
src-modules/module/viz/schluesseltabellen/macro_masken_bez_fuellen.sql

@ -1,7 +1,8 @@
--freemarker template --freemarker template
<#assign makros = [ <#assign makros = [
{"tid":"44070"} {"tid":"44070"},
{"tid":"44190"}
] /> ] />
@ -16,7 +17,12 @@
{"makro":"44070", "tid":"44020", "sortnr":"60"}, {"makro":"44070", "tid":"44020", "sortnr":"60"},
{"makro":"44070", "tid":"44020", "sortnr":"70"}, {"makro":"44070", "tid":"44020", "sortnr":"70"},
{"makro":"44070", "tid":"44020", "sortnr":"80"} {"makro":"44070", "tid":"44020", "sortnr":"80"},
{"makro":"44190", "tid":"44020", "sortnr":"1"},
{"makro":"44190", "tid":"44020", "sortnr":"10"},
{"makro":"44190", "tid":"44020", "sortnr":"20"}
] /> ] />
<#assign felder = [ <#assign felder = [
@ -78,7 +84,32 @@
{"makro":"44070", "sortnr":"80", "feldname":"Grafik", "value":"9"}, {"makro":"44070", "sortnr":"80", "feldname":"Grafik", "value":"9"},
{"makro":"44070", "sortnr":"80", "feldname":"Weitere Tabellen", "value":"dim_studiengang"}, {"makro":"44070", "sortnr":"80", "feldname":"Weitere Tabellen", "value":"dim_studiengang"},
{"makro":"44070", "sortnr":"80", "feldname":"Filter Studierende", "value":"SOS_HSSEM_1"}, {"makro":"44070", "sortnr":"80", "feldname":"Filter Studierende", "value":"SOS_HSSEM_1"},
{"makro":"44070", "sortnr":"80", "feldname":"tablestylesheet", "value":"tabelle_html_datenblatt.xsl"} {"makro":"44070", "sortnr":"80", "feldname":"tablestylesheet", "value":"tabelle_html_datenblatt.xsl"},
{"makro":"44190", "sortnr":"1", "feldname":"Köpfe oder Fälle ?", "value":"studiengang_nr = 1 and fach_nr = 1"},
{"makro":"44190", "sortnr":"1", "feldname":"Felder", "value":"sos_stg_aggr.sem_rueck_beur_ein|sos_stg_aggr.summe"},
{"makro":"44190", "sortnr":"1", "feldname":"Grafik", "value":"16"},
{"makro":"44190", "sortnr":"1", "feldname":"Weitere Tabellen", "value":"dim_studiengang"},
{"makro":"44190", "sortnr":"1", "feldname":"bis Fachsemester", "value":"1"},
{"makro":"44190", "sortnr":"1", "feldname":"tablestylesheet", "value":"tabelle_html_datenblatt.xsl"},
{"makro":"44190", "sortnr":"10", "feldname":"Köpfe oder Fälle ?", "value":"studiengang_nr = 1 and fach_nr = 1"},
{"makro":"44190", "sortnr":"10", "feldname":"Felder", "value":"sos_stg_aggr.geschlecht|sos_stg_aggr.summe"},
{"makro":"44190", "sortnr":"10", "feldname":"Grafik", "value":"17"},
{"makro":"44190", "sortnr":"10", "feldname":"Weitere Tabellen", "value":"dim_studiengang"},
{"makro":"44190", "sortnr":"10", "feldname":"bis Fachsemester", "value":"1"},
{"makro":"44190", "sortnr":"10", "feldname":"Semester", "value":"20232"},
{"makro":"44190", "sortnr":"10", "feldname":"tablestylesheet", "value":"tabelle_html_datenblatt.xsl"},
{"makro":"44190", "sortnr":"20", "feldname":"Köpfe oder Fälle ?", "value":"studiengang_nr = 1 and fach_nr = 1"},
{"makro":"44190", "sortnr":"20", "feldname":"Felder", "value":"dim_studiengang.fb|dim_studiengang.fb_str|sos_stg_aggr.summe"},
{"makro":"44190", "sortnr":"20", "feldname":"Grafik", "value":"18"},
{"makro":"44190", "sortnr":"20", "feldname":"Weitere Tabellen", "value":"dim_studiengang"},
{"makro":"44190", "sortnr":"20", "feldname":"bis Fachsemester", "value":"1"},
{"makro":"44190", "sortnr":"20", "feldname":"Semester", "value":"20232"},
{"makro":"44190", "sortnr":"20", "feldname":"tablestylesheet", "value":"tabelle_html_datenblatt.xsl"}
] /> ] />

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

@ -0,0 +1,253 @@
--freemarker template
<sqlvars>
<sqlvar name="rpta_installed">
select count(*) from systeminfo where tid=330;
</sqlvar>
</sqlvars>
<#assign rpta_column_layout = {"uniquename":"sos_stud_fak",
"caption":"Studierende nach Fakultät",
"rpta_resultset":"sos_stud_astat",
"whereclause":"",
"description":"Studierende nach Fakultät"
}
/>
<#assign rpta_columns = [
{"uniquename":"dim_studiengang_fak",
"caption":"Fakultät (Schlüssel)",
"srcfieldname":"dim_studiengang_fb",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"Fakultät (Schlüssel)"
},
{"uniquename":"dim_studiengang_fak_str",
"caption":"Fakultät",
"srcfieldname":"dim_studiengang_fb_str",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"Fakultät (Name)"
},
{"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>

255
src-modules/module/viz/schluesseltabellen/rpta_column_layout_sos_stud_fak_geschl_fuellen.sql

@ -0,0 +1,255 @@
--freemarker template
<sqlvars>
<sqlvar name="rpta_installed">
select count(*) from systeminfo where tid=330;
</sqlvar>
</sqlvars>
<#assign rpta_column_layout = {"uniquename":"sos_stud_fak_geschl",
"caption":"Studierende nach Fak. und Geschlecht",
"rpta_resultset":"sos_stud_astat",
"whereclause":"",
"description":"Studierende nach Fak. und Geschlecht"
}
/>
<#assign rpta_columns = [
{"uniquename":"dim_studiengang_fak",
"caption":"Fakultät",
"srcfieldname":"dim_studiengang_fb_str",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"Fakultät"
},
{"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>

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

@ -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>

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

@ -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_hzb_staat",
"caption":"Studierende nach Staat der HZB",
"rpta_resultset":"sos_stud_astat",
"whereclause":"",
"description":"Studierende nach Staat der HZB"
}
/>
<#assign rpta_columns = [
{"uniquename":"hzbstaat_iso3",
"caption":"Staat der HZB",
"srcfieldname":"hzbkfz",
"targetfieldname":"staat_iso3",
"column_type":"lookupColumn",
"col_function":"select I.iso3 from viz_staat_isocode I where I.astat=hzbkfz and hzbkfzkz=1 union select I.iso3 from viz_staat_isocode I where I.astat=0 and hzbkfzkz=0",
"is_visible":"1",
"format_code":"",
"visible_size":"5",
"is_aggregate":"0",
"description":"Staat (ISO Code)"
},
{"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>

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

@ -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_ca12_staat",
"caption":"Studierende nach Staatsangehörigkeit",
"rpta_resultset":"sos_stud_astat",
"whereclause":"",
"description":"Studierende nach Staatsangehörigkeit"
}
/>
<#assign rpta_columns = [
{"uniquename":"staat_iso3",
"caption":"Staatsangehörigkeit",
"srcfieldname":"ca12_staat",
"targetfieldname":"staat_iso3",
"column_type":"lookupColumn",
"col_function":"select I.iso3 from viz_staat_isocode I where I.astat=ca12_staat",
"is_visible":"1",
"format_code":"",
"visible_size":"5",
"is_aggregate":"0",
"description":"Staat (ISO Code)"
},
{"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>

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

@ -12,7 +12,16 @@
{"mask":"44130", "filename":"tabelle_html_datenblatt.xsl", "ord":"20"}, {"mask":"44130", "filename":"tabelle_html_datenblatt.xsl", "ord":"20"},
{"mask":"44160", "filename":"viz_html_chart_viewer.xsl", "ord":"1"}, {"mask":"44160", "filename":"viz_html_chart_viewer.xsl", "ord":"1"},
{"mask":"44160", "filename":"tabelle_html_datenblatt.xsl", "ord":"20"}, {"mask":"44160", "filename":"tabelle_html_datenblatt.xsl", "ord":"20"},
{"mask":"44160", "filename":"viz_html_chart_viewer_mask.xsl", "ord":"30"} {"mask":"44160", "filename":"viz_html_chart_viewer_mask.xsl", "ord":"30"},
{"mask":"44190", "filename":"tabelle_html_datenblatt.xsl", "ord":"20"},
{"mask":"44190", "filename":"viz_html_chart_viewer_grid.xsl", "ord":"1"},
{"mask":"44190", "filename":"viz_html_chart_viewer_mask.xsl", "ord":"30"},
{"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":"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"}
] /> ] />

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

@ -44,3 +44,182 @@
\ \
{"name":"y","vizPropertyVariablename":"y","propertyValue":"gesamt","propUnit":""}]\ {"name":"y","vizPropertyVariablename":"y","propertyValue":"gesamt","propUnit":""}]\
,"dataTransformation":""}^ ^^25.08.2024^25.08.2024^44100^ ^2^ ^ ^ ,"dataTransformation":""}^ ^^25.08.2024^25.08.2024^44100^ ^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}],\
"targetDiv":"","chartElements":[{"elemID":"1","vizTypeUniquename":"bar_y","caption":"bar_y","datasource":"2","elementTypeProperties":[{"nr":"1","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"dim_studiengang_fb_str","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"sos_stg_aggr_summe","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#2ec27e","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studienanfänger_innen"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"marginBottom","vizPropertyVariablename":"marginBottom","propertyValue":"150","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":"#2ec27e","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Summe","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Fakultät","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"-45","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"dim_studiengang_fb_str","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"sos_stg_aggr_summe","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44190^ ^2^{"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}],\
"targetDiv":"","chartElements":[{"elemID":"1","vizTypeUniquename":"bar_y","caption":"bar_y","datasource":"2","elementTypeProperties":[{"nr":"1","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"dim_studiengang_fb_str","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"sos_stg_aggr_summe","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":"1","vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#2ec27e","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studienanfänger_innen"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"marginBottom","vizPropertyVariablename":"marginBottom","propertyValue":"150","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":"#2ec27e","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Summe","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Fakultät","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"-45","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"dim_studiengang_fb_str","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"sos_stg_aggr_summe","propUnit":""}],\
"dataTransformation":[]}^ ^
16^STUDANF_SEM_LINE^Studierende Zeitreihe Linien mit Beschr.^ ^{"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}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"line","caption":"line","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"sos_stg_aggr_sem_rueck_beur_ein_str","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"sos_stg_aggr_summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"sortchannel","caption":"Zusätzl. Sortierung","propertyValue":"rownr","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"","propertyType":"string"}]},\
{"elemID":"2","vizTypeUniquename":"text","caption":"text","datasource":"0","elementTypeProperties":[{"nr":"2","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"sos_stg_aggr_sem_rueck_beur_ein_str","propertyType":"string"},\
{"nr":"2","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"sos_stg_aggr_summe","propertyType":"string"},\
{"nr":"2","vizTypePropertyUniquename":"text","caption":"Beschriftung","propertyValue":"sos_stg_aggr_summe","propertyType":"string"},\
{"nr":"2","vizTypePropertyUniquename":"sortchannel","caption":"Zusätzl. Sortierung","propertyValue":"rownr","propertyType":"string"},\
{"nr":"2","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#33d17a","propertyType":"string"},\
{"nr":"2","vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studienanfänger_innen"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"450","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"650","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"marginBottom","vizPropertyVariablename":"marginBottom","propertyValue":"100","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#ffffff","propUnit":""},\
{"name":"color","vizPropertyVariablename":"color","propertyValue":"#000000","propUnit":""},\
{"name":"stroke_static","vizPropertyVariablename":"stroke_static","propertyValue":"#33d17a","propUnit":""},\
{"name":"fill_static","vizPropertyVariablename":"fill","propertyValue":"#000000","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Summe","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Semester","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"-45","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"sos_stg_aggr_sem_rueck_beur_ein_str","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"sos_stg_aggr_summe","propUnit":""},\
{"name":"text","vizPropertyVariablename":"text","propertyValue":"sos_stg_aggr_summe","propUnit":""},\
{"name":"sortchannel","vizPropertyVariablename":"sortchannel","propertyValue":"sos_stg_aggr_sem_rueck_beur_ein","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44190^ ^2^{"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}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"line","caption":"line","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"sos_stg_aggr_sem_rueck_beur_ein_str","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"sos_stg_aggr_summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"sortchannel","caption":"Zusätzl. Sortierung","propertyValue":"rownr","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#000000","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"","propertyType":"string"}]},\
{"elemID":"2","vizTypeUniquename":"text","caption":"text","datasource":"0","elementTypeProperties":[{"nr":"2","vizTypePropertyUniquename":"x","caption":"X-Achse","propertyValue":"sos_stg_aggr_sem_rueck_beur_ein_str","propertyType":"string"},\
{"nr":"2","vizTypePropertyUniquename":"y","caption":"Y-Achse","propertyValue":"sos_stg_aggr_summe","propertyType":"string"},\
{"nr":"2","vizTypePropertyUniquename":"text","caption":"Beschriftung","propertyValue":"sos_stg_aggr_summe","propertyType":"string"},\
{"nr":"2","vizTypePropertyUniquename":"sortchannel","caption":"Zusätzl. Sortierung","propertyValue":"rownr","propertyType":"string"},\
{"nr":"2","vizTypePropertyUniquename":"stroke_static","caption":"Strichfarbe","propertyValue":"#33d17a","propertyType":"string"},\
{"nr":"2","vizTypePropertyUniquename":"fill_static","caption":"Flächenfarbe","propertyValue":"#000000","propertyType":"string"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studienanfänger_innen"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"150","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"250","propUnit":""},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"marginBottom","vizPropertyVariablename":"marginBottom","propertyValue":"100","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#ffffff","propUnit":""},\
{"name":"color","vizPropertyVariablename":"color","propertyValue":"#000000","propUnit":""},\
{"name":"stroke_static","vizPropertyVariablename":"stroke_static","propertyValue":"#33d17a","propUnit":""},\
{"name":"fill_static","vizPropertyVariablename":"fill","propertyValue":"#000000","propUnit":""},\
{"name":"label_y","vizPropertyVariablename":"label","propertyValue":"Summe","propUnit":""},\
{"name":"line_y","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"label_x","vizPropertyVariablename":"label","propertyValue":"Semester","propUnit":""},\
{"name":"line_x","vizPropertyVariablename":"line","propertyValue":"true","propUnit":""},\
{"name":"tickRotate_x","vizPropertyVariablename":"tickRotate","propertyValue":"-45","propUnit":""},\
{"name":"scale_x","vizPropertyVariablename":"type","propertyValue":"band","propUnit":""},\
{"name":"x","vizPropertyVariablename":"x","propertyValue":"sos_stg_aggr_sem_rueck_beur_ein_str","propUnit":""},\
{"name":"y","vizPropertyVariablename":"y","propertyValue":"sos_stg_aggr_summe","propUnit":""},\
{"name":"text","vizPropertyVariablename":"text","propertyValue":"sos_stg_aggr_summe","propUnit":""},\
{"name":"sortchannel","vizPropertyVariablename":"sortchannel","propertyValue":"sos_stg_aggr_sem_rueck_beur_ein","propUnit":""}],\
"dataTransformation":[]}^ ^
17^STUDANF_GESCHL_PIE^Studierende nach Geschlecht Tortendiagramm^ ^{"version":"0.2b","id":1,"name":"","renderer":"d3js","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}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"pie","caption":"pie","datasource":"1","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"sos_stg_aggr_geschlecht_str","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"sos_stg_aggr_summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"width","caption":"Grafik-Breite","propertyValue":"640","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"640","propertyType":"integer"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studienanfänger_innen"},\
{"name":"marginLeft","vizPropertyVariablename":"marginLeft","propertyValue":"100","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#ffffff","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":"sos_stg_aggr_geschlecht_str","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"sos_stg_aggr_summe","propUnit":""}],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44190^ ^1^{"version":"0.2b","id":1,"name":"","renderer":"d3js","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}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"pie","caption":"pie","datasource":"1","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"sos_stg_aggr_geschlecht_str","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"sos_stg_aggr_summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"width","caption":"Grafik-Breite","propertyValue":"250","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"250","propertyType":"integer"}]}],\
"chartPropertiesUsed":[{"name":"caption","vizPropertyVariablename":"caption","propertyValue":"Studienanfänger_innen"},\
{"name":"height","vizPropertyVariablename":"height","propertyValue":"200","propUnit":""},\
{"name":"width","vizPropertyVariablename":"width","propertyValue":"200","propUnit":""},\
{"name":"backgroundColor","vizPropertyVariablename":"backgroundColor","propertyValue":"#ffffff","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":"sos_stg_aggr_geschlecht_str","propUnit":""},\
{"name":"measure1","vizPropertyVariablename":"measure1","propertyValue":"sos_stg_aggr_summe","propUnit":""}],\
"dataTransformation":[]}^ ^
21^STUD_GESCHL_W_PIE^Studierende nach Geschlecht (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":"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"}]}],\
"chartPropertiesUsed":[],\
"dataTransformation":[]}^ ^^25.08.2024^25.08.2024^44220^ ^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":"geschlecht","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"measure1","caption":"Maß 1","propertyValue":"summe","propertyType":"string"},\
{"nr":1,"vizTypePropertyUniquename":"width","caption":"Grafik-Breite","propertyValue":"250","propertyType":"integer"},\
{"nr":1,"vizTypePropertyUniquename":"height","caption":"Grafik-Höhe","propertyValue":"250","propertyType":"integer"}]}],\
"chartPropertiesUsed":[],\
"dataTransformation":[]}^ ^
19^STUD_STAAT^Studierende nach Staat (Weltkarte)^ ^{"version":"0.2b","id":1,"name":"","renderer":"d3js","dataSources":[{"value":"0","nr":1,"name":"Tab. 1","isDefault":true}],\
"targetDiv":"","chartElements":[{"elemID":1,"vizTypeUniquename":"worldmap","caption":"worldmap","datasource":"0","elementTypeProperties":[{"nr":1,"vizTypePropertyUniquename":"dimension1","caption":"Dimension 1","propertyValue":"staat_iso3","propertyType":"string"},\
{"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"},\
{"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^ ^ ^

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

@ -27,9 +27,6 @@
32^2^99^type^ 32^2^99^type^
262^1^2^width^ 262^1^2^width^
263^1^1^height^ 263^1^1^height^
264^1^95^dimension1^
265^1^96^dimension2^
266^1^73^measure1^
268^2^70^x^ 268^2^70^x^
269^2^72^y^ 269^2^72^y^
270^2^76^stroke^ 270^2^76^stroke^
@ -47,3 +44,6 @@
282^2^106^opacity^ 282^2^106^opacity^
283^2^100^strokeDasharray^ 283^2^100^strokeDasharray^
284^2^45^strokeWidth^ 284^2^45^strokeWidth^
303^1^95^dimension1^
304^1^96^dimension2^
305^1^73^measure1^

240
src-modules/module/viz/schluesseltabellen/viz_staat_isocode.unl

@ -0,0 +1,240 @@
Südsudan^SSD^SS^278^
Nordmazedonien^MKD^MK^144^
Afghanistan^AFG^AF^423^
Ägypten^EGY^EG^287^
Albanien^ALB^AL^121^
Algerien^DZA^DZ^221^
Amerikanische Jungferninseln^VIR^VI^316^
Amerikanische Überseeinseln, Kleinere^UMI^UM^534^
Amerikanisch-Samoa^ASM^AS^517^
Andorra^AND^AD^123^
Angola^AGO^AO^223^
Antigua und Barbuda^ATG^AG^320^
Äquatorialguinea^GNQ^GQ^274^
Argentinien^ARG^AR^323^
Armenien^ARM^AM^422^
Aruba^ABW^AW^311^
Aserbaidschan^AZE^AZ^425^
Äthiopien^ETH^ET^225^
Australien^AUS^AU^523^
Bahamas^BHS^BS^324^
Bahrain^BHR^BH^424^
Bangladesch^BGD^BD^460^
Barbados^BRB^BB^322^
Belarus (Weißrussland)^BLR^BY^169^
Belgien^BEL^BE^124^
Belize^BLZ^BZ^330^
Benin^BEN^BJ^229^
Bhutan^BTN^BT^426^
Bolivien^BOL^BO^326^
Bosnien und Herzegowina^BIH^BA^122^
Botsuana^BWA^BW^227^
Bouvetinsel^BVT^BV^522^
Brasilien^BRA^BR^327^
Britisches Territorium im Indischen Ozean^IOT^IO^185^
Brunei Darussalam^BRN^BN^429^
Bulgarien^BGR^BG^125^
Burkina Faso^BFA^BF^258^
Burundi^BDI^BI^291^
Chile^CHL^CL^332^
China^CHN^CN^479^
Cookinseln^COK^CK^527^
Costa Rica^CRI^CR^334^
Cote d'Ivoire (Elfenbeinküste)^CIV^CI^231^
Dänemark^DNK^DK^126^
Deutschland^DEU^DE^0^
Dominica^DMA^DM^333^
Dominikanische Republik^DOM^DO^335^
Dschibuti^DJI^DJ^230^
Ecuador^ECU^EC^336^
El Salvador^SLV^SV^337^
Eritrea^ERI^ER^224^
Estland^EST^EE^127^
Färöer Inseln^FRO^FO^182^
Fidschi^FJI^FJ^526^
Finnland^FIN^FI^128^
Frankreich^FRA^FR^129^
Französische Südseegebiete^ATF^TF^542^
Französisch-Guayana^GUF^GF^315^
Französisch-Polynesien^PYF^PF^528^
Gabun^GAB^GA^236^
Gambia^GMB^GM^237^
Georgien^GEO^GE^430^
Ghana^GHA^GH^238^
Gibraltar^GIB^GI^112^
Grenada^GRD^GD^340^
Griechenland^GRC^GR^134^
Grönland^GRL^GL^342^
Guadeloupe^GLP^GP^317^
Guam^GUM^GU^529^
Guatemala^GTM^GT^345^
Guinea^GIN^GN^261^
Guinea-Bissau^GNB^GW^259^
Guyana^GUY^GY^328^
Haiti^HTI^HT^346^
Heard und die McDonaldinseln^HMD^HM^510^
Honduras^HND^HN^347^
Hongkong^HKG^HK^411^
Indien^IND^IN^436^
Indonesien^IDN^ID^437^
Irak^IRQ^IQ^438^
Iran^IRN^IR^439^
Irland^IRL^IE^135^
Island^ISL^IS^136^
Israel^ISR^IL^441^
Italien^ITA^IT^137^
Jamaika^JAM^JM^355^
Japan^JPN^JP^442^
Jemen^YEM^YE^421^
Jordanien^JOR^JO^445^
Sudan^SDN^SD^277^
Suriname^SUR^SR^364^
Svalbard und Jan Mayen^SJM^SJ^116^
Eswatini^SWZ^SZ^281^
Syrien^SYR^SY^475^
Tadschikistan^TJK^TJ^470^
Taiwan (China)^TWN^TW^465^
Tansania^TZA^TZ^282^
Thailand^THA^TH^476^
Togo^TGO^TG^283^
Tokelau^TKL^TK^519^
Tonga^TON^TO^541^
Trinidad und Tobago^TTO^TT^371^
Tschad^TCD^TD^284^
Tschechien^CZE^CZ^164^
Tunesien^TUN^TN^285^
Türkei^TUR^TR^163^
Turkmenistan^TKM^TM^471^
Tuvalu^TUV^TV^540^
Uganda^UGA^UG^286^
Ukraine^UKR^UA^166^
Ungarn^HUN^HU^165^
Uruguay^URY^UY^365^
Usbekistan^UZB^UZ^477^
Vanuatu^VUT^VU^532^
Vatikanstadt^VAT^VA^167^
Venezuela^VEN^VE^367^
Vereinigte Arabische Emirate^ARE^AE^469^
Vereinigte Staaten (USA)^USA^US^368^
Vereinigtes Königreich^GBR^GB^168^
Vietnam^VNM^VN^432^
Wallis und Futuna^WLF^WF^520^
Weihnachtsinsel^CXR^CX^521^
Zentralafrikanische Republik^CAF^CF^289^
Zypern^CYP^CY^181^
Staatenlos^---^ZZ^997^
Serbien^SRB^RS^170^
Kongo, Republik^COG^CG^245^
Palästina^PSE^PS^459^
Montenegro^MNE^ME^140^
Staatsbürgerschaft ungeklärt^^XX^998^
Kosovo^XKX^KSV^150^
Kambodscha^KHM^KH^446^
Kamerun^CMR^CM^262^
Kanada^CAN^CA^348^
Cabo Verde^CPV^CV^242^
Kasachstan^KAZ^KZ^444^
Katar^QAT^QA^447^
Kenia^KEN^KE^243^
Kirgisistan^KGZ^KG^450^
Kiribati^KIR^KI^530^
Kokosinseln (Keeling)^CCK^CC^512^
Kolumbien^COL^CO^349^
Komoren^COM^KM^244^
Kongo, Demokratische Republik^COD^CD^246^
Korea, Demokratische Volksrepublik^PRK^KP^434^
Korea, Republik^KOR^KR^467^
Kroatien^HRV^HR^130^
Kuba^CUB^CU^351^
Kuwait^KWT^KW^448^
Laos^LAO^LA^449^
Lesotho^LSO^LS^226^
Lettland^LVA^LV^139^
Libanon^LBN^LB^451^
Liberia^LBR^LR^247^
Libyen^LBY^LY^248^
Liechtenstein^LIE^LI^141^
Litauen^LTU^LT^142^
Luxemburg^LUX^LU^143^
Macau^MAC^MO^412^
Madagaskar^MDG^MG^249^
Malawi^MWI^MW^256^
Malaysia^MYS^MY^482^
Malediven^MDV^MV^454^
Mali^MLI^ML^251^
Malta^MLT^MT^145^
Marianen, Nördliche^MNP^MP^514^
Marokko^MAR^MA^252^
Marshallinseln^MHL^MH^544^
Martinique^MTQ^MQ^319^
Mauretanien^MRT^MR^239^
Mauritius^MUS^MU^253^
Mayotte^MYT^YT^211^
Mexiko^MEX^MX^353^
Mikronesien (Föderierte Staaten von)^FSM^FM^545^
Moldau^MDA^MD^146^
Monaco^MCO^MC^147^
Mongolei^MNG^MN^457^
Mosambik^MOZ^MZ^254^
Myanmar^MMR^MM^427^
Namibia^NAM^NA^267^
Nauru^NRU^NR^531^
Nepal^NPL^NP^458^
Neukaledonien^NCL^NC^513^
Neuseeland^NZL^NZ^536^
Nicaragua^NIC^NI^354^
Niederlande^NLD^NL^148^
Curaçao^CUW^AN^321^
Niger^NER^NE^255^
Nigeria^NGA^NG^232^
Niue^NIU^NU^533^
Norfolkinseln^NFK^NF^515^
Norwegen^NOR^NO^149^
Oman^OMN^OM^456^
Österreich^AUT^AT^151^
Timor-Leste^TMP^TP^483^
Pakistan^PAK^PK^461^
Palau^PLW^PW^537^
Panama^PAN^PA^357^
Papua-Neuguinea^PNG^PG^538^
Paraguay^PRY^PY^359^
Peru^PER^PE^361^
Philippinen^PHL^PH^462^
Polen^POL^PL^152^
Portugal^PRT^PT^153^
Puerto Rico^PRI^PR^325^
Réunion^REU^RE^214^
Ruanda^RWA^RW^265^
Rumänien^ROU^RO^154^
Russische Föderation^RUS^RU^160^
Salomonen^SLB^SB^524^
Sambia^ZMB^ZM^257^
Samoa^WSM^WS^543^
San Marino^SMR^SM^156^
Sao Tomé und Principe^STP^ST^268^
Saudi-Arabien^SAU^SA^472^
Schweden^SWE^SE^157^
Schweiz^CHE^CH^158^
Senegal^SEN^SN^269^
Seychellen^SYC^SC^271^
Sierra Leone^SLE^SL^272^
Simbabwe^ZWE^ZW^233^
Singapur^SGP^SG^474^
Slowakei^SVK^SK^155^
Slowenien^SVN^SI^131^
Somalia^SOM^SO^273^
Spanien^ESP^ES^161^
Sri Lanka^LKA^LK^431^
St. Kitts und Nevis^KNA^KN^370^
St. Lucia^LCA^LC^366^
St. Pierre und Miquelon^SPM^PM^338^
St. Vincent und die Grenadinen^VCT^VC^369^
Südafrika^ZAF^ZA^263^
Guernsey^GGY^GG^113^
Jersey^JEY^JE^114^
Insel Man^IMN^IM^115^
Sint Maarten^SXM^SM1^341^
Bonaire, Sint Eustatius, Saba^BES^BQ^344^
Saint-Martin^MAF^SM2^331^
Saint-Barthélemy^BLM^BL^329^
unbekannt^^YY^999^

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

@ -10,3 +10,5 @@
11^bar_x_d3^Balken (horizontal)^1^^^H^^^ 11^bar_x_d3^Balken (horizontal)^1^^^H^^^
12^sankey^Sankey^1^ ^^H^ ^^ 12^sankey^Sankey^1^ ^^H^ ^^
13^worldmap^Weltkarte^1^ ^^H^^^ 13^worldmap^Weltkarte^1^ ^^H^^^
14^pie^Tortendiagramm^1^^^Z^ ^^
15^sunburst^Sunburst-Diagramm^1^^^Z^^^

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

@ -12,6 +12,14 @@
{"uniquename":"sankey", "caption":"Sankey", {"uniquename":"sankey", "caption":"Sankey",
"orientation":"H", "orientation":"H",
"description":"Horizontales Sankeydiagramm", "description":"Horizontales Sankeydiagramm",
"explanation":""},
{"uniquename":"pie", "caption":"Tortendiagramm",
"orientation":"Z",
"description":"Tortendiagramm",
"explanation":""},
{"uniquename":"sunburst", "caption":"Sunburst-Diagramm",
"orientation":"Z",
"description":"Sunburst-Diagramm",
"explanation":""} "explanation":""}
] ]
@ -95,7 +103,35 @@
{ "viz_type_uniquename":"sankey", { "viz_type_uniquename":"sankey",
"viz_property_uniquename":"color", "viz_property_uniquename":"color",
"is_mandatory":"0", "is_mandatory":"0",
"sortnr":"120"} "sortnr":"120"},
{ "viz_type_uniquename":"pie",
"viz_property_uniquename":"dimension1",
"is_mandatory":"1",
"sortnr":"1"},
{ "viz_type_uniquename":"pie",
"viz_property_uniquename":"measure1",
"is_mandatory":"1",
"sortnr":"20"},
{ "viz_type_uniquename":"pie",
"viz_property_uniquename":"width",
"is_mandatory":"1",
"sortnr":"30"},
{ "viz_type_uniquename":"pie",
"viz_property_uniquename":"height",
"is_mandatory":"1",
"sortnr":"40"},
{ "viz_type_uniquename":"sunburst",
"viz_property_uniquename":"dimension1",
"is_mandatory":"1",
"sortnr":"1"},
{ "viz_type_uniquename":"sunburst",
"viz_property_uniquename":"dimension2",
"is_mandatory":"1",
"sortnr":"10"},
{ "viz_type_uniquename":"sunburst",
"viz_property_uniquename":"measure1",
"is_mandatory":"1",
"sortnr":"20"}
] ]
@ -106,9 +142,6 @@
/> />
--ab hier nicht mehr ändern:
--Die Sortierunmmer ergibt sich aus der Reihenfolge
--daher hier mit Bedacht ändern:
<@create_temp_tables /> <@create_temp_tables />
@ -116,6 +149,7 @@
<#foreach viz_type in viz_types> <#foreach viz_type in viz_types>
<@fill_viz_type_properties_general viz_type_p=viz_type />
<@fill_viz_type_properties viz_type_p=viz_type /> <@fill_viz_type_properties viz_type_p=viz_type />
@ -253,7 +287,7 @@ and P.prop_uniquename='${viz_prop.viz_property_uniquename}'
<#macro create_temp_tables> <#macro create_temp_tables>
CREATE temp TABLE tmp_viz_type CREATE temp TABLE tmp_viz_type
( (
tid serial NOT NULL, tid INTEGER ,
uniquename varchar(255) NOT NULL, uniquename varchar(255) NOT NULL,
caption varchar(255), caption varchar(255),
renderer_id integer, renderer_id integer,

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

@ -9,12 +9,6 @@
611^5^72^0^200^ 611^5^72^0^200^
613^5^76^0^300^ 613^5^76^0^300^
1693^12^97^0^100^ 1693^12^97^0^100^
1695^12^95^1^1^
1696^12^96^1^10^
1697^12^73^1^20^
1699^12^6^0^100^
1700^12^7^0^110^
1701^12^5^0^120^
1702^2^109^0^900^ 1702^2^109^0^900^
1703^1^109^0^800^ 1703^1^109^0^800^
1704^7^109^0^800^ 1704^7^109^0^800^
@ -151,3 +145,16 @@
1835^10^79^0^30^ 1835^10^79^0^30^
1836^3^109^0^800^ 1836^3^109^0^800^
1837^10^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^

335
superx/xml/js/viz/viz_functions.js

@ -306,7 +306,8 @@ function getPlotOptionsObj(chartPropertiesUsed)
{ {
var commonChartPropertyGroups=[]; var commonChartPropertyGroups=[];
var previousGroup=""; var previousGroup="";
var optionsString="{"; var optionsString="{";//"\"width\":100,\"height\":100,";
optionsString+="\"caption\":\""+getChartPropertyValue(chartPropertiesUsed,"caption")+"\""; optionsString+="\"caption\":\""+getChartPropertyValue(chartPropertiesUsed,"caption")+"\"";
for(var k=0;k < commonChartProperties.length;k++) for(var k=0;k < commonChartProperties.length;k++)
@ -1971,10 +1972,10 @@ function renderChartElementWithD3(currentChartModel,chartElemNr,targetDiv)
{ {
// append the svg canvas to the page // append the svg canvas to the page
var margin = { top: 10, right: 10, bottom: 10, left: 10 }, var margin = { top: 10, right: 20, bottom: 10, left: 20 };
//var margin = { top: 0, right: 50, bottom: 0, left: 0 }, //var margin = { top: 0, right: 50, bottom: 0, left: 0 },
width = getChartPropertyFromModel(currentChartModel.chartPropertiesUsed,"width") - margin.left - margin.right, var width = Number(getChartPropertyFromModel(currentChartModel.chartPropertiesUsed,"width")) ;//margin.left - margin.right;
height = getChartPropertyFromModel(currentChartModel.chartPropertiesUsed,"height") - margin.top - margin.bottom; var height = Number(getChartPropertyFromModel(currentChartModel.chartPropertiesUsed,"height"));//margin.top - margin.bottom;
if(width <20) if(width <20)
width=630; width=630;
if(height <20) if(height <20)
@ -1985,12 +1986,8 @@ var margin = { top: 10, right: 10, bottom: 10, left: 10 },
clearCanvas.removeChild(clearCanvas.firstChild); clearCanvas.removeChild(clearCanvas.firstChild);
} }
//targetDiv //targetDiv
var mySvg = d3.select("#"+targetDiv).append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform",
"translate(" + margin.left + "," + margin.top + ")");
chartElem=currentChartModel.chartElements[chartElemNr]; chartElem=currentChartModel.chartElements[chartElemNr];
if(chartElem) if(chartElem)
@ -2002,14 +1999,63 @@ console.log("Mark-option for "+chartType);
switch (chartType) switch (chartType)
{ {
case "bar_x_d3": case "bar_x_d3":
var mySvg = d3.select("#"+targetDiv).append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.attr("viewBox", [0,0, width+ margin.left + margin.right, height+ margin.top + margin.bottom])
.append("g")
.attr("transform",
"translate(" + margin.left + "," + margin.top + ")")
;
mySvg=makeBarX_d3(currentChartModel.chartPropertiesUsed,mySvg,data,chartElem); mySvg=makeBarX_d3(currentChartModel.chartPropertiesUsed,mySvg,data,chartElem);
break; break;
case "sankey": case "sankey":
var mySvg = d3.select("#"+targetDiv).append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.attr("viewBox", [0,0, width+ margin.left + margin.right, height+ margin.top + margin.bottom])
.append("g")
.attr("transform",
"translate(" + margin.left + "," + margin.top + ")")
;
mySvg=makeSankeyD3(currentChartModel.chartPropertiesUsed,mySvg,data,rsColumnMetaData[chartElem.datasource],chartElem); mySvg=makeSankeyD3(currentChartModel.chartPropertiesUsed,mySvg,data,rsColumnMetaData[chartElem.datasource],chartElem);
break; break;
case "worldmap": case "worldmap":
var mySvg = d3.select("#"+targetDiv).append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.attr("viewBox", [0,0, width+ margin.left + margin.right, height+ margin.top + margin.bottom])
.append("g")
.attr("transform",
"translate(" + margin.left + "," + margin.top + ")")
;
mySvg=makeWorldmapD3(currentChartModel.chartPropertiesUsed,mySvg,data,rsColumnMetaData[chartElem.datasource],chartElem); mySvg=makeWorldmapD3(currentChartModel.chartPropertiesUsed,mySvg,data,rsColumnMetaData[chartElem.datasource],chartElem);
break; break;
case "pie":
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])
.append("g")
;
mySvg=makePie_d3(currentChartModel.chartPropertiesUsed,mySvg,data,chartElem,width,height);
break;
case "sunburst":
width = 928;
height = width;
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])
.append("g")
.attr("transform",
"translate(" + margin.left + "," + margin.top + ")")
;
mySvg=makeSunburstD3(currentChartModel.chartPropertiesUsed,mySvg,data,rsColumnMetaData[chartElem.datasource],chartElem);
break;
default: default:
alert("Unknown chart type"); alert("Unknown chart type");
break; break;
@ -2138,6 +2184,77 @@ function makeBarX_d3(myCommonChartProperties,svg,data,chartElem)
return bar; return bar;
} }
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()
.domain(data.map(d => d.dimension1))
.range(d3.quantize(t => d3.interpolateSpectral(t * 0.8 + 0.1), data.length).reverse())
// 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)
.cornerRadius(10);
const labelRadius = arc.outerRadius()() * 0.8;
// A separate arc generator for labels.
const arcLabel = d3.arc()
.innerRadius(labelRadius)
.outerRadius(labelRadius);
const arcs = pie(data);
//svg.width=width;
//svg.height=width;
//d3.select(svg).attr("viewBox",[-width / 2, -height / 2, width, height]);
//svg.style="max-width: 100%; height: auto; font: 10px sans-serif;";
/*const svg = d3.create("svg")
.attr("width", width)
.attr("height", height)
.attr("viewBox", [-width / 2, -height / 2, width, height])
.attr("style", "max-width: 100%; height: auto; font: 10px sans-serif;");
*/
// Add a sector path for each value.
svg.append("g")
.attr("stroke", "white")
.selectAll()
.data(arcs)
.join("path")
.attr("fill", d => color(d.data.dimension1))
.attr("d", arc)
.append("title")
.text(d => `${d.data.dimension1}: ${d.data.measure1.toLocaleString("en-US")}`);
// Create a new arc generator to place a label close to the edge.
// The label shows the value if there is enough room.
svg.append("g")
.attr("text-anchor", "middle")
.selectAll()
.data(arcs)
.join("text")
.attr("transform", d => `translate(${arcLabel.centroid(d)})`)
.call(text => text.append("tspan")
.attr("y", "-0.4em")
.attr("font-weight", "bold")
.text(d => d.data.dimension1))
.call(text => text.filter(d => (d.endAngle - d.startAngle) > 0.25).append("tspan")
.attr("x", 0)
.attr("y", "0.7em")
.attr("fill-opacity", 0.7)
.text(d => d.data.measure1.toLocaleString("en-US")));
//return svg.node();
return svg.node();
}
function makeLine_alt(svg,data) { function makeLine_alt(svg,data) {
var xLabel=rsMetaData[document.getElementById("dimension1").value-1].colcaption; var xLabel=rsMetaData[document.getElementById("dimension1").value-1].colcaption;
var yLabel=rsMetaData[document.getElementById("measure1").value-1].colcaption; var yLabel=rsMetaData[document.getElementById("measure1").value-1].colcaption;
@ -2714,8 +2831,8 @@ renderWorldMap(myCommonChartProperties,mySvg,data);
} }
function renderWorldMap(myCommonChartProperties,mySvg,data) function renderWorldMap(myCommonChartProperties,mySvg,data)
{ {
const worldWidth = 960; const worldWidth = 670;
const worldHeight = 600; const worldHeight = 450;
const worldTooltip = d3.select(".vizTooltip"); const worldTooltip = d3.select(".vizTooltip");
@ -2737,12 +2854,15 @@ const worldProjection = d3.geoMercator()
const worldPath = d3.geoPath().projection(worldProjection); const worldPath = d3.geoPath().projection(worldProjection);
var d=getWorldMapData(data); var d=getWorldMapData(data);
// Load the world data files // Load the world data files
Promise.all([ Promise.all([
d3.json("https://raw.githubusercontent.com/holtzy/D3-graph-gallery/master/DATA/world.geojson"), /*d3.json("https://raw.githubusercontent.com/holtzy/D3-graph-gallery/master/DATA/world.geojson"),*/
/*d3.csv("/superx/viz_worldmap/data.csv", d => ({ /*d3.csv("/superx/viz_worldmap/data.csv", d => ({
iso3: d.iso3, iso3: d.iso3,
value: +d.value value: +d.value
}))*/ }))*/
d3.json("../xml/js/viz/world.geojson"),
/*getLocalJson("/superx/xml/js/viz/world_superx2.geojson"),*/
d d
]).then(([worldGeojson, worldData]) => { ]).then(([worldGeojson, worldData]) => {
const worldDataMap = new Map(worldData.map(d => [d.iso3, d.value])); const worldDataMap = new Map(worldData.map(d => [d.iso3, d.value]));
@ -2775,6 +2895,23 @@ Promise.all([
console.error('Error loading or parsing data:', error); console.error('Error loading or parsing data:', error);
}); });
async function getLocalJson(url)
{
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error(`Serverantwort: ${response.status}`);
}
const myJson = await response.json();
return myJson;
} catch (error) {
console.log(error.message);
}
}
function getWorldMapData(data) function getWorldMapData(data)
{ {
var myData=[]; var myData=[];
@ -2787,6 +2924,7 @@ for (var i = 0; i < data.length; i++)
return myData; return myData;
} }
} }
function makeSankeyD3(myCommonChartProperties,mySvg,data,metaData,chartElem) function makeSankeyD3(myCommonChartProperties,mySvg,data,metaData,chartElem)
{ {
// load the data // load the data
@ -3051,6 +3189,177 @@ var graph=sankey(data);
; ;
} }
function makeSunburstD3(myCommonChartProperties,svg,data,metaData,chartElem)
{
var sorted = d3.sort(data, d => d.dimension1,d => d.dimension2, d => d.measure1);
//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.dimension1,d => d.dimension2, d => d.measure1 );
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 dataHierarchy=JSON.parse(data_str);
return renderSunburst(dataHierarchy,svg);
}
function renderSunburst(data,svg) {
// Specify the chart’s dimensions.
const width = 928;
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.
// 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 openModalImage(ergebniselementOrdnr) function openModalImage(ergebniselementOrdnr)
{ {
var myModalCard=document.getElementById("modalCard"+ergebniselementOrdnr); var myModalCard=document.getElementById("modalCard"+ergebniselementOrdnr);

178
superx/xml/js/viz/world.geojson

File diff suppressed because one or more lines are too long

10
superx/xml/js/viz/world.geojson.license.txt

@ -0,0 +1,10 @@
The MIT License (MIT)
Copyright (c) 2023 Holtz Yan
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

119
superx/xml/viz_components.xsl

@ -1,6 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sx="http://memtext.de"> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sx="http://memtext.de">
<xsl:variable name="quote"><xsl:text>"</xsl:text></xsl:variable>
<xsl:template name="head_superx_viz"> <xsl:template name="head_superx_viz">
<xsl:param name="css" /> <xsl:param name="css" />
<xsl:param name="title" /> <xsl:param name="title" />
@ -634,14 +636,115 @@ Stand: <xsl:value-of select="../stand" /></p>
</xsl:for-each> </xsl:for-each>
</xsl:for-each> </xsl:for-each>
</xsl:template> </xsl:template>
<xsl:template name="modalCards_neu" >
<xsl:for-each select="/ergebnisse">
<xsl:for-each select="ergebnis/ergebniselement">
<xsl:variable name="chart_id"><xsl:value-of select="../felder/feld[@varname='Grafik']/value" /></xsl:variable>
<xsl:variable name="ergebniselement_ordnr"><xsl:value-of select="@ordnr" /></xsl:variable>
<xsl:if test="$chart_id != ''">
<div class="modal" id="{concat('modalCard',$ergebniselement_ordnr)}">
<div class="modal-background"></div>
<div class="modal-card">
<header class="modal-card-head">
<div class="box" style="text-align:right">
<a href="{concat('javascript:closeModalImage(',$ergebniselement_ordnr,');')}">
<span class="button is-black is-outlined"> X </span>
</a>
</div>
</header>
<section class="modal-card-body">
<div id="{concat('modalCardImage',$ergebniselement_ordnr)}">
Picture placeholder
</div>
</section>
<footer class="modal-card-foot"></footer>
</div>
</div>
<div class="modal" id="{concat('modalCardDetail',$ergebniselement_ordnr)}">
<div class="modal-background"></div>
<div class="modal-card">
<header class="modal-card-head">
<div class="box" style="text-align:right">
<h4><xsl:value-of select="viz_charts/viz_chart[@tid=$chart_id]/@caption"/></h4>
<a href="{concat('javascript:closeModalCardDetail(',$ergebniselement_ordnr,');')}">
<span class="button is-black is-outlined"> X </span>
</a>
</div></header>
<section class="modal-card-body">
<!-- content -->
<div id="{concat('modalCardDetailImage',$ergebniselement_ordnr)}">
Picture placeholder
</div>
</section>
<footer class="modal-card-foot">
<p><xsl:value-of select="viz_charts/viz_chart[@tid=$chart_id]/@description"/></p>
<p class="legende">
<xsl:for-each select="../felder/feld">
<xsl:if test="(value !='' or sicht/@isFirstInGroup='false' or @isstandtoday='false') and @varname != 'sort' and @varname != 'maxoffset' and value_caption != ''">
<span class="feldname">
<xsl:choose>
<xsl:when test="string-length(caption_short) &gt; 0 and caption_short != 'null'" >
<![CDATA[]]><xsl:value-of select="caption_short" /><![CDATA[]]>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@varname" />
</xsl:otherwise>
</xsl:choose></span>:&#160;
<xsl:if test="string-length(value_caption) &lt; 50">
<span class="feldwert"><xsl:value-of select="value_caption" /><![CDATA[]]></span>
</xsl:if>
<xsl:if test="string-length(value_caption) &gt; 49">
<span class="feldwert"><![CDATA[]]><xsl:value-of select="substring(value_caption,0,50)" /><![CDATA[]]>...</span>
</xsl:if>
<xsl:if test="sicht!=''">
<span><![CDATA[ (]]><xsl:value-of select="sicht" />
<xsl:if test="@stand!=''"><xsl:text> - Stand:</xsl:text><xsl:value-of select="@stand"/></xsl:if>
<xsl:text><![CDATA[)]]> </xsl:text></span>
</xsl:if>
;
</xsl:if>
</xsl:for-each>
User: <xsl:value-of select="/ergebnisse/user"/>&#160;
Stand: <xsl:value-of select="../stand" /></p>
<xsl:if test="../hinweis != ''">
<xsl:call-template name="newline_to_br">
<xsl:with-param name="string" select="../hinweis" />
</xsl:call-template>
</xsl:if>
<p align="right"><a href="{concat('javascript:closeModalCardDetail(',$ergebniselement_ordnr,');')}">
<span class="button is-black is-outlined"> X </span>
</a></p>
</footer>
</div>
</div>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
<xsl:template name="viewer_kachel"> <xsl:template name="viewer_kachel">
<xsl:param name="caption" /> <xsl:param name="caption" />
<xsl:param name="ergebniselement_ordnr" /> <xsl:param name="ergebniselement_ordnr" />
<div class="card is-shady"> <div class="card is-shady">
<div class="card-image"> <div class="card-image">
<div id="{concat('chartDiv',$ergebniselement_ordnr)}"> <div id="{concat('chartDiv',$ergebniselement_ordnr)}">
Platzhalter Platzhalter
</div> </div>
</div> </div>
<p> <p>
<a onClick="{concat('javascript:openModalImage(',$ergebniselement_ordnr,');')}"> <a onClick="{concat('javascript:openModalImage(',$ergebniselement_ordnr,');')}">
@ -947,4 +1050,20 @@ Platzhalter
</script> </script>
</xsl:template> </xsl:template>
<xsl:template name="getChartModel">
<xsl:param name="chart_id" />
<xsl:param name="useMiniatureIfAvailable" select="'true'"/>
<xsl:variable name="chartModel">
<xsl:choose>
<xsl:when test="$useMiniatureIfAvailable='true' and viz_charts/viz_chart[@tid=$chart_id]/@chartmodel_miniature !=''">
<xsl:value-of select="viz_charts/viz_chart[@tid=$chart_id]/@chartmodel_miniature"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="viz_charts/viz_chart[@tid=$chart_id]/@chartmodel"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="translate($chartModel,'§',$quote)"/>
</xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

35
superx/xml/viz_html_chart_viewer_grid.xsl

@ -201,24 +201,39 @@ var myDiv="";
<xsl:variable name="chart_id"><xsl:value-of select="../felder/feld[@varname='Grafik']/value" /></xsl:variable> <xsl:variable name="chart_id"><xsl:value-of select="../felder/feld[@varname='Grafik']/value" /></xsl:variable>
<xsl:variable name="ergebniselement_ordnr"><xsl:value-of select="@ordnr" /></xsl:variable> <xsl:variable name="ergebniselement_ordnr"><xsl:value-of select="@ordnr" /></xsl:variable>
<xsl:if test="$chart_id != ''"> <xsl:if test="$chart_id != ''">
<xsl:text><![CDATA[ <xsl:text>
myChartModelStr=']]></xsl:text> myChartModelStr='</xsl:text>
<xsl:value-of select="translate(viz_charts/viz_chart[@tid=$chart_id]/@chartmodel,'§',$quote)" /> <xsl:call-template name="getChartModel">
<xsl:text><![CDATA['; <xsl:with-param name="chart_id" select="$chart_id"/>
myDiv="]]></xsl:text> <xsl:with-param name="useMiniatureIfAvailable" select="'true'"/>
</xsl:call-template>
<xsl:text>';
myDiv="</xsl:text>
<xsl:value-of select="concat('chartDiv',$ergebniselement_ordnr)" /> <xsl:value-of select="concat('chartDiv',$ergebniselement_ordnr)" />
<xsl:text><![CDATA["; <xsl:text><![CDATA[";
createViewer(myChartModelStr,myDiv); createViewer(myChartModelStr,myDiv);
myDiv="]]></xsl:text> myDiv="]]></xsl:text>
<xsl:value-of select="concat('modalCardImage',$ergebniselement_ordnr)" /> <xsl:value-of select="concat('modalCardImage',$ergebniselement_ordnr)" />
<xsl:text><![CDATA["; <xsl:text>";
myChartModelStr='</xsl:text>
<xsl:call-template name="getChartModel">
<xsl:with-param name="chart_id" select="$chart_id"/>
<xsl:with-param name="useMiniatureIfAvailable" select="'false'"/>
</xsl:call-template>
<xsl:text>';
createViewer(myChartModelStr,myDiv); createViewer(myChartModelStr,myDiv);
myDiv="]]></xsl:text> myDiv="</xsl:text>
<xsl:value-of select="concat('modalCardDetailImage',$ergebniselement_ordnr)" /> <xsl:value-of select="concat('modalCardDetailImage',$ergebniselement_ordnr)" />
<xsl:text><![CDATA["; <xsl:text>";
myChartModelStr='</xsl:text>
<xsl:call-template name="getChartModel">
<xsl:with-param name="chart_id" select="$chart_id"/>
<xsl:with-param name="useMiniatureIfAvailable" select="'false'"/>
</xsl:call-template>
<xsl:text>';
createViewer(myChartModelStr,myDiv); createViewer(myChartModelStr,myDiv);
</xsl:text>
]]></xsl:text>
</xsl:if> </xsl:if>
</xsl:for-each> </xsl:for-each>
</xsl:for-each> </xsl:for-each>

Loading…
Cancel
Save