Compare commits
24 Commits
rpta_0.1_R
...
master
Author | SHA1 | Date |
---|---|---|
Marlies Winterstein | 2412b44fb2 | 3 days ago |
Daniel Quathamer | 13c9b648fe | 3 days ago |
Daniel Quathamer | ea898da86b | 3 days ago |
Marlies Winterstein | b93392c44b | 4 days ago |
Daniel Quathamer | 9ea519ba8c | 2 weeks ago |
Daniel Quathamer | ead2889a94 | 2 weeks ago |
Daniel Quathamer | 4abffa49a9 | 2 weeks ago |
Daniel Quathamer | e9d33449f3 | 2 weeks ago |
Daniel Quathamer | 87e5524734 | 2 weeks ago |
Daniel Quathamer | 3ad01e5b5b | 3 weeks ago |
Daniel Quathamer | 1ef9a41ca2 | 3 weeks ago |
Daniel Quathamer | 6470556dd8 | 4 weeks ago |
Daniel Quathamer | 6f27b2cf8f | 4 weeks ago |
Daniel Quathamer | 94829d39e0 | 4 weeks ago |
Daniel Quathamer | ddd8e1f0aa | 4 weeks ago |
Daniel Quathamer | ec0eac6989 | 4 weeks ago |
Daniel Quathamer | 76fda7be0f | 4 weeks ago |
Marlies Winterstein | 0645936ec3 | 1 month ago |
Daniel Quathamer | 07e49424df | 2 months ago |
Daniel Quathamer | ebaba25d86 | 6 months ago |
Daniel Quathamer | 811e2d042d | 6 months ago |
Daniel Quathamer | a9e9d19a88 | 8 months ago |
Daniel Quathamer | 9273533bb2 | 9 months ago |
Daniel Quathamer | d25a955e75 | 10 months ago |
29 changed files with 2198 additions and 518 deletions
@ -0,0 +1,18 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<classpath> |
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> |
||||||
|
<classpathentry kind="src" path="src"/> |
||||||
|
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/freemarker-2.3.25.jar"/> |
||||||
|
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/postgresql-42.2.19.jar"/> |
||||||
|
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/superx5.0.jar"/> |
||||||
|
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/saxon-he-10.5.jar"/> |
||||||
|
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib_ext/servlet-api.jar"/> |
||||||
|
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jersey-core-1.11.jar"/> |
||||||
|
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/fop-2.2.jar"/> |
||||||
|
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-jdbc-3.0.3.RELEASE.jar"/> |
||||||
|
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/kettle-core-6.0.0.0-353.jar"/> |
||||||
|
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/log4j-core-2.16.0.jar"/> |
||||||
|
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/log4j-1.2-api-2.16.0.jar"/> |
||||||
|
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/log4j-api-2.16.0.jar"/> |
||||||
|
<classpathentry kind="output" path="superx/WEB-INF/classes"/> |
||||||
|
</classpath> |
@ -0,0 +1,17 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<projectDescription> |
||||||
|
<name>rpta</name> |
||||||
|
<comment></comment> |
||||||
|
<projects> |
||||||
|
</projects> |
||||||
|
<buildSpec> |
||||||
|
<buildCommand> |
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name> |
||||||
|
<arguments> |
||||||
|
</arguments> |
||||||
|
</buildCommand> |
||||||
|
</buildSpec> |
||||||
|
<natures> |
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature> |
||||||
|
</natures> |
||||||
|
</projectDescription> |
@ -0,0 +1,2 @@ |
|||||||
|
--rücksichern der eigenen Styles: |
||||||
|
\! cp $WEBAPP/WEB-INF/reports/simple_table_myorg.jrtx $WEBAPP/WEB-INF/reports/simple_table.jrtx |
@ -0,0 +1,25 @@ |
|||||||
|
45000^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='sos_stud_astat'\ |
||||||
|
and R.systeminfo_id=7)\ |
||||||
|
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='sos_stud_astat'\ |
||||||
|
and R.systeminfo_id=7)\ |
||||||
|
order by sortnr, caption\ |
||||||
|
;^ |
||||||
|
45001^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;^ |
||||||
|
45002^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;^ ^ ^ |
||||||
|
45003^Abschluss^40^0^0^100^200^3^char^1500^0^1^<<SQL>> select apnr, druck from cifx where key=35 order by 2;^ ^ ^ |
||||||
|
45004^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^0^^ ^ ^ |
||||||
|
45006^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^apnr, eintrag^ ^ |
||||||
|
45007^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;^ |
||||||
|
45008^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;^ ^ ^ |
||||||
|
45009^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;^ ^ ^ |
||||||
|
45011^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';^ |
||||||
|
45012^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';^ |
||||||
|
45018^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';^ |
||||||
|
45022^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;^ ^ ^ |
@ -0,0 +1 @@ |
|||||||
|
45000^7^ |
@ -0,0 +1,13 @@ |
|||||||
|
45000^45000^ |
||||||
|
45000^45001^ |
||||||
|
45000^45002^ |
||||||
|
45000^45003^ |
||||||
|
45000^45004^ |
||||||
|
45000^45006^ |
||||||
|
45000^45007^ |
||||||
|
45000^45008^ |
||||||
|
45000^45009^ |
||||||
|
45000^45011^ |
||||||
|
45000^45012^ |
||||||
|
45000^45018^ |
||||||
|
45000^45022^ |
@ -0,0 +1,201 @@ |
|||||||
|
45000^Tabellenausgabe Studierende (amtlich und intern)^--Freemarker Template\ |
||||||
|
<#include "SQL_lingua_franca"/>\ |
||||||
|
<#include "SuperX_general"/>\ |
||||||
|
--\ |
||||||
|
--Autor D. Quathamer 2024\ |
||||||
|
<sqlvars>\ |
||||||
|
<sqlvar name="basetable" type="hash"><![CDATA[\ |
||||||
|
<#assign my_base_rs='sos_stud_astat' />\ |
||||||
|
SELECT distinct name,\ |
||||||
|
0::smallint as is_virtual,\ |
||||||
|
name as runtime_tablename\ |
||||||
|
from sx_tables\ |
||||||
|
where name in ('${my_base_rs}')\ |
||||||
|
and 0=(select count(*) from rpta_resultset R where R.uniquename='${my_base_rs}')\ |
||||||
|
union\ |
||||||
|
select R.uniquename,\ |
||||||
|
1::smallint as is_virtual,\ |
||||||
|
'tmp_' || R.uniquename as runtime_tablename\ |
||||||
|
from rpta_resultset R where R.uniquename='${my_base_rs}'\ |
||||||
|
;\ |
||||||
|
]]>\ |
||||||
|
</sqlvar>\ |
||||||
|
<sqlvar name="rpta_resultset" type="hash"><![CDATA[\ |
||||||
|
select caption,\ |
||||||
|
uniquename,\ |
||||||
|
fieldclause,\ |
||||||
|
joinclause,\ |
||||||
|
whereclause,\ |
||||||
|
systeminfo_id\ |
||||||
|
from rpta_resultset\ |
||||||
|
where uniquename='${basetable.name}';\ |
||||||
|
\ |
||||||
|
]]></sqlvar>\ |
||||||
|
<sqlvar name="rpta_column_layout" type="hash"><![CDATA[\ |
||||||
|
select L.uniquename,\ |
||||||
|
L.caption,\ |
||||||
|
L.whereclause\ |
||||||
|
from rpta_resultset R, rpta_column_layout L\ |
||||||
|
where L.resultset_id=R.tid\ |
||||||
|
and R.uniquename='${basetable.name}'\ |
||||||
|
and L.tid=<<Spaltenlayout>>;\ |
||||||
|
\ |
||||||
|
]]></sqlvar>\ |
||||||
|
<sqlvar name="columns" type="hashsequence"><![CDATA[\ |
||||||
|
SELECT C.srcfieldname,\ |
||||||
|
(case when string_not_null(C.targetfieldname)='' then C.srcfieldname else C.targetfieldname end) as targetfieldname,\ |
||||||
|
T.uniquename as coltype,\ |
||||||
|
C.is_aggregate,\ |
||||||
|
(case when string_not_null(CL.caption)='' then C.caption else CL.caption end) as caption,\ |
||||||
|
CL.is_visible,\ |
||||||
|
CL.visible_size as visible_width,\ |
||||||
|
(select F.sql_code from rpta_format_code F where F.tid=CL.format_code_id) as format_sql,\ |
||||||
|
C.col_function as colfunction,\ |
||||||
|
(case when string_not_null(CL.description)='' then C.description else CL.description end) as description\ |
||||||
|
FROM rpta_column_layout L, rpta_column2layout CL, rpta_column C, rpta_column_type T\ |
||||||
|
where L.tid=CL.layout_id\ |
||||||
|
and C.tid=CL.column_id\ |
||||||
|
and T.tid=C.column_type\ |
||||||
|
and L.tid=<<Spaltenlayout>>\ |
||||||
|
/* and C.uniquename in (<<Spalten>>) */\ |
||||||
|
order by CL.sortnr\ |
||||||
|
;\ |
||||||
|
]]></sqlvar>\ |
||||||
|
</sqlvars>\ |
||||||
|
\ |
||||||
|
<#assign filter="<<Köpfe oder Fälle ?>>\ |
||||||
|
/* and sem_rueck_beur_ein >= <<Seit Semester>> */\ |
||||||
|
/* and sem_rueck_beur_ein <= <<Bis Semester>> */\ |
||||||
|
/* and sem_rueck_beur_ein = <<Semester>> */\ |
||||||
|
/* and stichtag = <<Stichtag>> */\ |
||||||
|
/* and <<Hochschulzugangsberechtigung>> */\ |
||||||
|
/* and <<Hörerstatus>>*/\ |
||||||
|
/* and abschluss in (<<Abschluss>>) */\ |
||||||
|
/* and geschlecht = <<Geschlecht>> */\ |
||||||
|
/* and fach_sem_zahl <= <<bis Fachsemester>> */\ |
||||||
|
" />\ |
||||||
|
\ |
||||||
|
<#assign filter = filter + " and 's_' || tid_stg in "+Studiengang.allNeededKeysList /> \ |
||||||
|
/* <#assign filter = filter + " and '' || ca12_staat in "+Staatsangehörigkeit.allNeededKeysList /> --<<Staatsangehörigkeit>> */\ |
||||||
|
/* <#assign filter = filter + " and stg in "+Fächer.allNeededKeysList /> --<<Fächer>> */\ |
||||||
|
\ |
||||||
|
<#if columns?has_content>\ |
||||||
|
\ |
||||||
|
<#if basetable.is_virtual==1>\ |
||||||
|
\ |
||||||
|
create temp table ${basetable.runtime_tablename} as\ |
||||||
|
select ${rpta_resultset.fieldclause} \ |
||||||
|
from ${rpta_resultset.joinclause} \ |
||||||
|
where 1=1\ |
||||||
|
<#if rpta_resultset.whereclause != ""> \ |
||||||
|
${rpta_resultset.whereclause} </#if>\ |
||||||
|
and ${filter}\ |
||||||
|
;\ |
||||||
|
</#if>\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
select \ |
||||||
|
--zuerst die Basisdaten:\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.coltype="physicalColumn">\ |
||||||
|
${column.srcfieldname},\ |
||||||
|
<#elseif column.coltype="logicalColumn">\ |
||||||
|
${column.colfunction} as ${column.targetfieldname},\ |
||||||
|
<#elseif column.coltype="lookupColumn">\ |
||||||
|
(${column.colfunction}) as ${column.targetfieldname},\ |
||||||
|
<#elseif column.coltype="computedColumn">\ |
||||||
|
null::decimal(19,6) as ${column.targetfieldname},\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
null::char(1) as dummycol\ |
||||||
|
into temp tmp_stud\ |
||||||
|
from ${basetable.runtime_tablename}\ |
||||||
|
<#if rpta_column_layout.whereclause !="">\ |
||||||
|
where ${rpta_column_layout.whereclause}\ |
||||||
|
</#if>\ |
||||||
|
;\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
--ergebnistabelle:\ |
||||||
|
select \ |
||||||
|
--zuerst die nicht-Aggregate:\ |
||||||
|
<#assign groupby=0 />\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.is_aggregate==0>\ |
||||||
|
<#assign groupby=groupby+1 />\ |
||||||
|
${column.targetfieldname},\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
--dann die Aggregate:\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.is_aggregate==1 && column.coltype!="computedColumn">\ |
||||||
|
sum(${column.targetfieldname}) as ${column.targetfieldname},\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
null::char(1) as dummycol\ |
||||||
|
into temp tmp_stud2\ |
||||||
|
from tmp_stud\ |
||||||
|
where 1=1\ |
||||||
|
/* ${<<Zusatzfilter>>} */\ |
||||||
|
group by\ |
||||||
|
<#list 1..groupby as i>${i}\ |
||||||
|
<#if i != groupby>\ |
||||||
|
,\ |
||||||
|
</#if>\ |
||||||
|
</#list>\ |
||||||
|
;\ |
||||||
|
\ |
||||||
|
<#assign number_of_visible_colums=0 />\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.is_visible!=0>\ |
||||||
|
<#assign number_of_visible_colums=number_of_visible_colums+1 />\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
<#assign colnr=0 />\ |
||||||
|
select \ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.is_visible!=0>\ |
||||||
|
<#assign colnr=colnr+1 />\ |
||||||
|
<#assign format_sql="" />\ |
||||||
|
<#if column.format_sql?string != "">\ |
||||||
|
<#assign format_sql=column.format_sql />\ |
||||||
|
</#if>\ |
||||||
|
\ |
||||||
|
<#if column.coltype=="computedColumn">\ |
||||||
|
(${column.colfunction})${format_sql} as ${column.targetfieldname}\ |
||||||
|
<#else>\ |
||||||
|
${column.targetfieldname}${format_sql} as ${column.targetfieldname}\ |
||||||
|
</#if>\ |
||||||
|
\ |
||||||
|
<#if colnr < number_of_visible_colums>,</#if>\ |
||||||
|
</#if> --wenn sichtbar\ |
||||||
|
</#foreach>\ |
||||||
|
from tmp_stud2\ |
||||||
|
order by <#list 1..number_of_visible_colums as i>${i}\ |
||||||
|
<#if i != number_of_visible_colums>\ |
||||||
|
,\ |
||||||
|
</#if>\ |
||||||
|
</#list>\ |
||||||
|
;\ |
||||||
|
<#if basetable.is_virtual==1>\ |
||||||
|
drop table if exists ${basetable.runtime_tablename};\ |
||||||
|
</#if>\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
drop table if exists tmp_stud;\ |
||||||
|
\ |
||||||
|
</#if> --wenn columns?has_content^--Freemarker Template\ |
||||||
|
XIL List\ |
||||||
|
sizable_columns horizontal_scrolling\ |
||||||
|
drop_and_delete movable_columns \ |
||||||
|
white_space_color=COLOR_WHITE fixed_columns=1\ |
||||||
|
min_heading_height=55\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.is_visible!=0>\ |
||||||
|
Column CID=0 heading_text="${column.caption}" center_heading explanation="${column.description}"\ |
||||||
|
row_selectable heading_platform readonly\ |
||||||
|
width=${column.visible_width} text_size=60\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
@@@^Studienfach^Anzahl bzw. Anteil^Datenblatt Studierendenstatistik^drop table if exists tmp_stud2; drop table if exists tmp_stud3;^^2^850^540^^1^<<SQL>>SELECT description FROM rpta_column_layout where tid=<<Spaltenlayout>>;^ |
@ -0,0 +1 @@ |
|||||||
|
16^45000^ |
@ -0,0 +1,8 @@ |
|||||||
|
45040^Benutzer/in^50^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,nvl(name,benutzer) from userinfo order by 2;^hidden^^ |
||||||
|
45041^Spaltenlayout^10^0^0^150^80^1^integer^200^0^1^<<SQL>> select tid,caption from rpta_column_layout where 1=1 /* and resultset_id=<<Virtuelle Tabelle>> */ order by 2;^^^ |
||||||
|
45042^Spaltenlayouts verwalten^110^0^0^140^80^1^char^255^0^18^ ^ ^<<SQL>> select '../edit/rpta/rpta_column_layout_list.jsp' from xdummy;^ |
||||||
|
45043^Stichwort^20^0^0^150^150^1^sql^50^0^0^^^^ |
||||||
|
45044^Komponente^1^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,name from systeminfo order by 2;^ ^^ |
||||||
|
45045^Virtuelle Tabellen bearbeiten^100^0^0^140^80^1^char^255^0^18^ ^ ^<<SQL>> select '../edit/rpta/rpta_resultset_list.jsp' from xdummy;^ |
||||||
|
45046^Virtuelle Tabelle^5^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,caption from rpta_resultset where 1=1 /* and systeminfo_id=<<Komponente>> */ order by 2;^^^ |
||||||
|
45047^Spaltentyp^200^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,caption from rpta_column_type order by 2;^^ ^ |
@ -0,0 +1 @@ |
|||||||
|
45040^330^ |
@ -0,0 +1,8 @@ |
|||||||
|
45040^45040^ |
||||||
|
45040^45041^ |
||||||
|
45040^45042^ |
||||||
|
45040^45043^ |
||||||
|
45040^45044^ |
||||||
|
45040^45045^ |
||||||
|
45040^45046^ |
||||||
|
45040^45047^ |
@ -0,0 +1,121 @@ |
|||||||
|
45040^Spalten und Spaltenlayouts verwalten^--Autor: D. Quathamer\ |
||||||
|
--Datum: 15.3.2024\ |
||||||
|
--freemarker template\ |
||||||
|
create temp table tmp_rpta_column (\ |
||||||
|
ord smallint,\ |
||||||
|
tid INTEGER , \ |
||||||
|
uniquename varchar(255),\ |
||||||
|
caption varchar(255),\ |
||||||
|
srcfieldname varchar(255),\ |
||||||
|
column_type integer,\ |
||||||
|
column_type_str varchar(255),\ |
||||||
|
col_function text,\ |
||||||
|
is_aggregate smallint,\ |
||||||
|
resultset_id integer,\ |
||||||
|
resultset_str varchar(255),\ |
||||||
|
systeminfo_str varchar(255),\ |
||||||
|
custom integer ,\ |
||||||
|
description text,\ |
||||||
|
targetfieldname varchar(255),\ |
||||||
|
nextedit varchar(255)\ |
||||||
|
);\ |
||||||
|
insert into tmp_rpta_column (ord,\ |
||||||
|
tid,\ |
||||||
|
uniquename,\ |
||||||
|
caption,\ |
||||||
|
srcfieldname,\ |
||||||
|
column_type_str,\ |
||||||
|
col_function,\ |
||||||
|
is_aggregate,\ |
||||||
|
resultset_id,\ |
||||||
|
custom,\ |
||||||
|
description,\ |
||||||
|
targetfieldname,\ |
||||||
|
nextedit) \ |
||||||
|
select 1 as ord,\ |
||||||
|
C.tid,\ |
||||||
|
C.uniquename,\ |
||||||
|
C.caption,\ |
||||||
|
C.srcfieldname,\ |
||||||
|
T.caption as column_type,\ |
||||||
|
C.col_function,\ |
||||||
|
C.is_aggregate,\ |
||||||
|
C.resultset_id,\ |
||||||
|
C.custom,\ |
||||||
|
C.description,\ |
||||||
|
C.targetfieldname,\ |
||||||
|
('../edit/rpta/rpta_column_edit.jsp|tid=' || C.tid)::varchar(255)\ |
||||||
|
FROM rpta_column C, rpta_column_type T\ |
||||||
|
where T.tid=C.column_type\ |
||||||
|
/* and C.resultset_id=<<Virtuelle Tabelle>> */\ |
||||||
|
/* and C.caption like '%<<Stichwort>>%' */\ |
||||||
|
/* and C.tid in (select P.column_id from rpta_column2layout P where P.layout_id=<<Spaltenlayout>> )*/\ |
||||||
|
/* and C.resultset_id in (select R.tid from rpta_resultset R where R.systeminfo_id=<<Komponente>> )*/\ |
||||||
|
/* and C.column_type=<<Spaltentyp>> */\ |
||||||
|
;\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
update tmp_rpta_column set resultset_str=R.caption\ |
||||||
|
from rpta_resultset R\ |
||||||
|
where R.tid=tmp_rpta_column.resultset_id;\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
insert into tmp_rpta_column (ord,\ |
||||||
|
caption, \ |
||||||
|
nextedit) \ |
||||||
|
select 10, --ord\ |
||||||
|
'Neuer Eintrag',\ |
||||||
|
nvl(('../edit/qa/rpta_column_edit.jsp|tid=' || max(tid)+1)::varchar(255),'../edit/qa/rpta_column_edit.jsp'::varchar(255))\ |
||||||
|
from rpta_column\ |
||||||
|
;\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
select \ |
||||||
|
caption,\ |
||||||
|
uniquename,\ |
||||||
|
resultset_str,\ |
||||||
|
srcfieldname,\ |
||||||
|
column_type_str,\ |
||||||
|
-- col_function,\ |
||||||
|
is_aggregate,\ |
||||||
|
custom,\ |
||||||
|
-- description,\ |
||||||
|
-- targetfieldname\ |
||||||
|
nextedit \ |
||||||
|
\ |
||||||
|
from tmp_rpta_column\ |
||||||
|
order by ord,caption ,uniquename\ |
||||||
|
;^XIL List\ |
||||||
|
drop_and_delete movable_columns sizable_columns horizontal_scrolling\ |
||||||
|
white_space_color=COLOR_WHITE fixed_columns=2\ |
||||||
|
min_heading_height=35\ |
||||||
|
Column CID=0 heading_text="Name" center_heading\ |
||||||
|
row_selectable col_selectable heading_platform readonly\ |
||||||
|
width=50 text_size=100\ |
||||||
|
Column CID=0 heading_text="Schlüssel" center_heading\ |
||||||
|
row_selectable col_selectable heading_platform readonly\ |
||||||
|
width=50 text_size=100\ |
||||||
|
Column CID=1 heading_text="Virtuelle Tabelle" center_heading\ |
||||||
|
row_selectable col_selectable heading_platform readonly\ |
||||||
|
width=150 text_size=200\ |
||||||
|
Column CID=1 heading_text="Quellfeld" center_heading\ |
||||||
|
row_selectable col_selectable heading_platform readonly\ |
||||||
|
width=10 text_size=200\ |
||||||
|
Column CID=1 heading_text="Spaltentyp" center_heading\ |
||||||
|
row_selectable col_selectable heading_platform readonly\ |
||||||
|
width=5 text_size=200\ |
||||||
|
Column CID=1 heading_text="Ist Aggregat?" center_heading\ |
||||||
|
row_selectable col_selectable heading_platform readonly\ |
||||||
|
width=5 text_size=200\ |
||||||
|
Column CID=1 heading_text="Individuelle Spalte" center_heading\ |
||||||
|
row_selectable col_selectable heading_platform readonly\ |
||||||
|
width=5 text_size=200\ |
||||||
|
Column CID=1 heading_text="Bearbeiten" center_heading\ |
||||||
|
row_selectable col_selectable heading_platform readonly\ |
||||||
|
width=5 text_size=200\ |
||||||
|
@@@^^^Spaltendefinitionen und deren Zuordnung zu Berichten verwalten.^drop table tmp_rpta_column;^^1^440^360^0^1^^ |
@ -0,0 +1 @@ |
|||||||
|
331^45040^ |
@ -0,0 +1,292 @@ |
|||||||
|
--freemarker template |
||||||
|
<sqlvars> |
||||||
|
<sqlvar name="sos_stud_astat_exists"> |
||||||
|
select count(*) from rpta_resultset where uniquename='sos_stud_astat'; |
||||||
|
</sqlvar> |
||||||
|
</sqlvars> |
||||||
|
<#assign rpta_column_layout = {"uniquename":"sos_stud_astat_rsz", |
||||||
|
"caption":"MKW-Abfrage_Studierende_RSZ", |
||||||
|
"rpta_resultset":"sos_stud_astat", |
||||||
|
"whereclause":"fach_sem_zahl <= dim_studiengang_regel and dim_studiengang_regel between 1 and 20 and studiengang_nr <=2 and fach_nr <=4", |
||||||
|
"description":"Fachbelegungen: 1. & 2. Studiengang; 1.-4. Fach; nur Studiengänge mit Angabe einer Regelstudienzeit" |
||||||
|
} |
||||||
|
/> |
||||||
|
|
||||||
|
<#assign rpta_columns = [ |
||||||
|
{"uniquename":"sos_k_stort_astat", |
||||||
|
"caption":"Hochschulnummer Statistik", |
||||||
|
"srcfieldname":"sos_k_stort_astat", |
||||||
|
"column_type":"physicalColumn", |
||||||
|
"col_function":"", |
||||||
|
"is_visible":"1", |
||||||
|
"visible_size":"10", |
||||||
|
"is_aggregate":"0", |
||||||
|
"description":"Amtliche Standortnummer" |
||||||
|
}, |
||||||
|
{"uniquename":"dim_studiengang_stg_astat", |
||||||
|
"caption":"HSF-Schlüssel", |
||||||
|
"srcfieldname":"dim_studiengang_stg_astat", |
||||||
|
"column_type":"physicalColumn", |
||||||
|
"col_function":"", |
||||||
|
"is_visible":"1", |
||||||
|
"visible_size":"10", |
||||||
|
"is_aggregate":"0", |
||||||
|
"description":"Amtliches Fach" |
||||||
|
}, |
||||||
|
{"uniquename":"sos_k_stufrm_astat", |
||||||
|
"caption":"Art des Studiums", |
||||||
|
"srcfieldname":"sos_k_stufrm_astat", |
||||||
|
"column_type":"physicalColumn", |
||||||
|
"col_function":"", |
||||||
|
"is_visible":"1", |
||||||
|
"visible_size":"10", |
||||||
|
"is_aggregate":"0", |
||||||
|
"description":"Amtliche Studienform" |
||||||
|
}, |
||||||
|
{"uniquename":"dim_studiengang_abschluss_astat", |
||||||
|
"caption":"Abschlussschlüssel Statistik NRW", |
||||||
|
"srcfieldname":"dim_studiengang_abschluss_astat", |
||||||
|
"column_type":"physicalColumn", |
||||||
|
"col_function":"", |
||||||
|
"is_visible":"1", |
||||||
|
"visible_size":"10", |
||||||
|
"is_aggregate":"0", |
||||||
|
"description":"Amtlicher Abschluss" |
||||||
|
}, |
||||||
|
{"uniquename":"sos_k_stutyp_astat", |
||||||
|
"caption":"Vollzeit / Teilzeit / ausbildungsintegriert / praxisintegriert / berufsintegriert", |
||||||
|
"srcfieldname":"sos_k_stutyp_astat", |
||||||
|
"column_type":"physicalColumn", |
||||||
|
"col_function":"", |
||||||
|
"is_visible":"1", |
||||||
|
"visible_size":"10", |
||||||
|
"is_aggregate":"0", |
||||||
|
"description":"Amtlicher Studiumstyp" |
||||||
|
}, |
||||||
|
{"uniquename":"dim_studiengang_regel", |
||||||
|
"caption":"Angabe der Regelstudienzeit", |
||||||
|
"srcfieldname":"dim_studiengang_regel", |
||||||
|
"column_type":"physicalColumn", |
||||||
|
"col_function":"", |
||||||
|
"is_visible":"1", |
||||||
|
"visible_size":"10", |
||||||
|
"is_aggregate":"0", |
||||||
|
"description":"Regelstudienzeit in Semestern" |
||||||
|
}, |
||||||
|
{"uniquename":"summe", |
||||||
|
"caption":"Anzahl der Studierenden in der Regelstudienzeit", |
||||||
|
"srcfieldname":"summe", |
||||||
|
"column_type":"physicalColumn", |
||||||
|
"col_function":"sum", |
||||||
|
"is_visible":"1", |
||||||
|
"visible_size":"5", |
||||||
|
"is_aggregate":"1", |
||||||
|
"description":"Summe der Studierenden mit Fachsemester kleiner oder gleich der Regelstudienzeit" |
||||||
|
} |
||||||
|
] |
||||||
|
/> |
||||||
|
|
||||||
|
---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; |
||||||
|
|
||||||
|
|
@ -0,0 +1,4 @@ |
|||||||
|
1^physicalColumn^Physische Spalte^ |
||||||
|
2^logicalColumn^Logische Spalte^ |
||||||
|
3^lookupColumn^Lookup-Spalte^ |
||||||
|
4^computedColumn^Berechnete Spalte^ |
@ -0,0 +1,3 @@ |
|||||||
|
1^INTEGER^Ganzzahlig^::integer^ |
||||||
|
2^INT_NO_SEP^Ganzzahlig ohne 1000er Trenner^::varchar^ |
||||||
|
3^INT_PERCENT^Ganzzahlig %^::integer || ' %'^ |
@ -0,0 +1,14 @@ |
|||||||
|
--Das Sachgebiet 331 (RPTA Administr.) wird installiert |
||||||
|
|
||||||
|
|
||||||
|
delete from sachgebiete where tid in (331); |
||||||
|
insert into sachgebiete(tid,name) values (331,'Qualitätssicherung Administr.'); |
||||||
|
|
||||||
|
delete from group_sachgeb_bez where sachgebiete_id in (330,331) |
||||||
|
and groupinfo_id in (select G.tid from groupinfo G where G.name='Administratoren' or G.name='superx') ; |
||||||
|
|
||||||
|
insert into group_sachgeb_bez |
||||||
|
select G.tid,330 from groupinfo G where G.name='Administratoren' or G.name='superx'; |
||||||
|
insert into group_sachgeb_bez |
||||||
|
select G.tid,331 from groupinfo G where G.name='Administratoren' or G.name='superx'; |
||||||
|
|
@ -0,0 +1,3 @@ |
|||||||
|
delete from sachgebiete where tid in (330,331); |
||||||
|
delete from group_sachgeb_bez where sachgebiete_id in (330,331); |
||||||
|
delete from user_sachgeb_bez where sachgebiete_id in (330,331); |
@ -0,0 +1,449 @@ |
|||||||
|
--freemarker template |
||||||
|
<sqlvars> |
||||||
|
<sqlvar name="sos_stg_aggr_exists"> |
||||||
|
select sp_table_exists('sos_stg_aggr') from xdummy; |
||||||
|
</sqlvar> |
||||||
|
<sqlvar name="fact_table_source" type="hash"> |
||||||
|
select name |
||||||
|
from sx_tables where name ='sos_stg_aggr' |
||||||
|
|
||||||
|
</sqlvar> |
||||||
|
<sqlvar name="added_tables" type="hashsequence"> |
||||||
|
select 1::smallint as sortnr, |
||||||
|
name, trim(name) ||'_' as prefix, |
||||||
|
caption, |
||||||
|
'dim_studiengang.tid=sos_stg_aggr.tid_stg' as joinclause |
||||||
|
from sx_tables where name in ('dim_studiengang') |
||||||
|
union |
||||||
|
select 10::smallint as sortnr, |
||||||
|
name, trim(name) ||'_' as prefix, |
||||||
|
caption, |
||||||
|
'dim_studiengang.stort=sos_k_stort.apnr' as joinclause |
||||||
|
from sx_tables where name in ('sos_k_stort') |
||||||
|
union |
||||||
|
select 20::smallint as sortnr, |
||||||
|
name, trim(name) ||'_' as prefix, |
||||||
|
caption, |
||||||
|
'sos_stg_aggr.stutyp=sos_k_stutyp.apnr' as joinclause |
||||||
|
from sx_tables where name in ('sos_k_stutyp') |
||||||
|
union |
||||||
|
select 30::smallint as sortnr, |
||||||
|
name, trim(name) ||'_' as prefix, |
||||||
|
caption, |
||||||
|
'sos_stg_aggr.stuart=sos_k_stuart.apnr' as joinclause |
||||||
|
from sx_tables where name in ('sos_k_stuart') |
||||||
|
union |
||||||
|
select 40::smallint as sortnr, |
||||||
|
name, trim(name) ||'_' as prefix, |
||||||
|
caption, |
||||||
|
'sos_stg_aggr.stufrm=sos_k_stufrm.apnr' as joinclause |
||||||
|
from sx_tables where name in ('sos_k_stufrm') |
||||||
|
union |
||||||
|
select 50::smallint as sortnr, |
||||||
|
name, trim(name) ||'_' as prefix, |
||||||
|
caption, |
||||||
|
'sos_stg_aggr.hrst=sos_k_hrst.apnr' as joinclause |
||||||
|
from sx_tables where name in ('sos_k_hrst') |
||||||
|
order by 1 |
||||||
|
</sqlvar> |
||||||
|
<sqlvar name="fields_target" type="hashsequence"><![CDATA[ |
||||||
|
select tid, table_name, |
||||||
|
name, |
||||||
|
name as targetname |
||||||
|
from sx_fields where table_name ='${fact_table_source.name}' |
||||||
|
and currentlyused=1 |
||||||
|
<#foreach added_table in added_tables> |
||||||
|
union |
||||||
|
select tid,table_name, |
||||||
|
name, |
||||||
|
'${added_table.prefix}' || name as targetname |
||||||
|
from sx_fields where table_name ='${added_table.name}' |
||||||
|
and currentlyused=1 |
||||||
|
|
||||||
|
</#foreach> |
||||||
|
order by 1 |
||||||
|
|
||||||
|
]]> |
||||||
|
</sqlvar> |
||||||
|
</sqlvars> |
||||||
|
|
||||||
|
<#if sos_stg_aggr_exists==1> |
||||||
|
|
||||||
|
<#assign fact_table_target = {"name":"sos_stud_astat", "caption":"Studierende (intern und amtlich)"} |
||||||
|
/> |
||||||
|
|
||||||
|
|
||||||
|
CREATE temp table tmp_tables( |
||||||
|
name CHAR(255) , |
||||||
|
caption CHAR(255) , |
||||||
|
description CHAR(255) , |
||||||
|
table_type CHAR(255) , |
||||||
|
systeminfo_id INTEGER , |
||||||
|
systeminfo_orig INTEGER , |
||||||
|
thema CHAR(255) , |
||||||
|
sachgebiete_id CHAR(255) |
||||||
|
); |
||||||
|
CREATE temp TABLE tmp_fields( |
||||||
|
tid serial NOT NULL, |
||||||
|
table_name VARCHAR(255) not null, |
||||||
|
name VARCHAR(255) not null, |
||||||
|
caption VARCHAR(255) , |
||||||
|
description VARCHAR(255) , |
||||||
|
field_type VARCHAR(255) not null, |
||||||
|
field_size VARCHAR(255) , |
||||||
|
field_not_null smallint, |
||||||
|
currentlyused SMALLINT , |
||||||
|
is_primarykey SMALLINT default 0 , |
||||||
|
foreignkey_tab VARCHAR(255) , |
||||||
|
foreignkey_col VARCHAR(255) , |
||||||
|
foreignkey_int VARCHAR(255) , |
||||||
|
foreignkey_cap VARCHAR(255) , |
||||||
|
foreignkey_cond VARCHAR(255) , |
||||||
|
foreignkey_func VARCHAR(255) , |
||||||
|
check_integrity SMALLINT, |
||||||
|
is_sum SMALLINT default 1, |
||||||
|
foreignkey_uniquename VARCHAR(255) |
||||||
|
|
||||||
|
); |
||||||
|
|
||||||
|
|
||||||
|
--Vorbereitung: |
||||||
|
UPDATE sx_tables |
||||||
|
SET caption = 'Standorte' |
||||||
|
WHERE name='sos_k_stort'; |
||||||
|
UPDATE sx_tables |
||||||
|
SET caption = 'Studienart' |
||||||
|
WHERE name = 'sos_k_stuart'; |
||||||
|
UPDATE sx_tables |
||||||
|
SET caption = 'Studiumstyp' |
||||||
|
WHERE name = 'sos_k_stutyp'; |
||||||
|
UPDATE sx_tables |
||||||
|
SET caption = 'Studienform' |
||||||
|
WHERE name = 'sos_k_stufrm'; |
||||||
|
UPDATE sx_tables |
||||||
|
SET caption = 'Hörerstatus' |
||||||
|
WHERE name = 'sos_k_hrst'; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--drop view if exists sos_stud_astat; |
||||||
|
|
||||||
|
|
||||||
|
drop VIEW sos_k_stutyp; |
||||||
|
|
||||||
|
CREATE VIEW sos_k_stutyp |
||||||
|
( |
||||||
|
apnr, |
||||||
|
druck, |
||||||
|
astat |
||||||
|
) |
||||||
|
AS |
||||||
|
SELECT cifx.apnr, |
||||||
|
cifx.druck, |
||||||
|
astat |
||||||
|
FROM cifx |
||||||
|
WHERE cifx.key = 40; |
||||||
|
|
||||||
|
|
||||||
|
update sx_fields set |
||||||
|
is_sum=0 |
||||||
|
where table_name='sos_stg_aggr' |
||||||
|
and name!='summe'; |
||||||
|
update sx_fields set |
||||||
|
is_sum=1 |
||||||
|
where table_name='sos_stg_aggr' |
||||||
|
and name='summe'; |
||||||
|
|
||||||
|
|
||||||
|
insert into tmp_tables ( |
||||||
|
name, |
||||||
|
caption, |
||||||
|
description, |
||||||
|
table_type, |
||||||
|
systeminfo_id, |
||||||
|
thema, |
||||||
|
sachgebiete_id |
||||||
|
) |
||||||
|
select |
||||||
|
'${fact_table_target.name}', |
||||||
|
'${fact_table_target.caption}', |
||||||
|
description, |
||||||
|
table_type, |
||||||
|
systeminfo_id, |
||||||
|
thema, |
||||||
|
sachgebiete_id |
||||||
|
from sx_tables where name='${fact_table_source.name}' |
||||||
|
; |
||||||
|
|
||||||
|
|
||||||
|
insert into tmp_fields (table_name, |
||||||
|
name, |
||||||
|
caption, |
||||||
|
description, |
||||||
|
field_type, |
||||||
|
field_size, |
||||||
|
field_not_null, |
||||||
|
currentlyused, |
||||||
|
is_primarykey, |
||||||
|
foreignkey_tab, |
||||||
|
foreignkey_col, |
||||||
|
foreignkey_int, |
||||||
|
foreignkey_cap, |
||||||
|
foreignkey_cond, |
||||||
|
foreignkey_func, |
||||||
|
check_integrity, |
||||||
|
is_sum, |
||||||
|
foreignkey_uniquename) |
||||||
|
select '${fact_table_target.name}' as table_name, |
||||||
|
name, |
||||||
|
caption, |
||||||
|
description, |
||||||
|
field_type, |
||||||
|
field_size, |
||||||
|
field_not_null, |
||||||
|
currentlyused, |
||||||
|
is_primarykey, |
||||||
|
foreignkey_tab, |
||||||
|
foreignkey_col, |
||||||
|
foreignkey_int, |
||||||
|
foreignkey_cap, |
||||||
|
foreignkey_cond, |
||||||
|
foreignkey_func, |
||||||
|
check_integrity, |
||||||
|
is_sum, |
||||||
|
foreignkey_uniquename |
||||||
|
from sx_fields where table_name ='${fact_table_source.name}' |
||||||
|
and currentlyused=1; |
||||||
|
<#foreach added_table in added_tables> |
||||||
|
insert into tmp_fields (table_name, |
||||||
|
name, |
||||||
|
caption, |
||||||
|
description, |
||||||
|
field_type, |
||||||
|
field_size, |
||||||
|
field_not_null, |
||||||
|
currentlyused, |
||||||
|
is_primarykey, |
||||||
|
foreignkey_tab, |
||||||
|
foreignkey_col, |
||||||
|
foreignkey_int, |
||||||
|
foreignkey_cap, |
||||||
|
foreignkey_cond, |
||||||
|
foreignkey_func, |
||||||
|
check_integrity, |
||||||
|
is_sum, |
||||||
|
foreignkey_uniquename) |
||||||
|
select '${fact_table_target.name}' as table_name, |
||||||
|
'${added_table.prefix}' || name, |
||||||
|
'${added_table.caption}: ' || caption, |
||||||
|
description, |
||||||
|
field_type, |
||||||
|
field_size, |
||||||
|
field_not_null, |
||||||
|
currentlyused, |
||||||
|
is_primarykey, |
||||||
|
foreignkey_tab, |
||||||
|
foreignkey_col, |
||||||
|
foreignkey_int, |
||||||
|
foreignkey_cap, |
||||||
|
foreignkey_cond, |
||||||
|
foreignkey_func, |
||||||
|
check_integrity, |
||||||
|
is_sum, |
||||||
|
foreignkey_uniquename |
||||||
|
from sx_fields where table_name ='${added_table.name}' |
||||||
|
and currentlyused=1; |
||||||
|
</#foreach> |
||||||
|
|
||||||
|
CREATE temp TABLE tmp_rpta_resultset |
||||||
|
( |
||||||
|
caption varchar(255), |
||||||
|
uniquename varchar(255), |
||||||
|
fieldclause text, |
||||||
|
joinclause text, |
||||||
|
whereclause text, |
||||||
|
systeminfo_id integer |
||||||
|
); |
||||||
|
|
||||||
|
insert into tmp_rpta_resultset(caption, |
||||||
|
uniquename, |
||||||
|
systeminfo_id) |
||||||
|
select '${fact_table_target.caption}', |
||||||
|
'${fact_table_target.name}', |
||||||
|
7 |
||||||
|
; |
||||||
|
|
||||||
|
|
||||||
|
update tmp_rpta_resultset set fieldclause=' |
||||||
|
<#foreach field_target in fields_target> |
||||||
|
${field_target.table_name}.${field_target.name} as ${field_target.targetname}, |
||||||
|
</#foreach> |
||||||
|
null::varchar as dummy', |
||||||
|
joinclause='${fact_table_source.name} |
||||||
|
<#foreach added_table in added_tables> |
||||||
|
left outer join ${added_table.name} on (${added_table.joinclause}) |
||||||
|
</#foreach>'; |
||||||
|
|
||||||
|
select * into temp tmp_rs1 |
||||||
|
from rpta_resultset |
||||||
|
; |
||||||
|
|
||||||
|
update rpta_resultset set caption=T.caption, |
||||||
|
fieldclause=T.fieldclause, |
||||||
|
joinclause=T.joinclause, |
||||||
|
whereclause=T.whereclause |
||||||
|
from tmp_rpta_resultset T |
||||||
|
where T.systeminfo_id=rpta_resultset.systeminfo_id |
||||||
|
and T.uniquename=rpta_resultset.uniquename |
||||||
|
; |
||||||
|
|
||||||
|
insert into rpta_resultset(caption, |
||||||
|
uniquename, |
||||||
|
fieldclause, |
||||||
|
joinclause, |
||||||
|
whereclause, |
||||||
|
systeminfo_id) |
||||||
|
select caption, |
||||||
|
uniquename, |
||||||
|
fieldclause, |
||||||
|
joinclause, |
||||||
|
whereclause, |
||||||
|
systeminfo_id |
||||||
|
from tmp_rpta_resultset |
||||||
|
where 0=(select count(*) |
||||||
|
from tmp_rs1 T |
||||||
|
where T.systeminfo_id=tmp_rpta_resultset.systeminfo_id |
||||||
|
and T.uniquename=tmp_rpta_resultset.uniquename) |
||||||
|
; |
||||||
|
drop table tmp_rpta_resultset; |
||||||
|
drop table tmp_rs1; |
||||||
|
|
||||||
|
delete from sx_tables where name |
||||||
|
in (select T.name from tmp_tables T); |
||||||
|
|
||||||
|
insert into sx_tables (name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id) |
||||||
|
select name,caption,description,table_type,systeminfo_id,systeminfo_orig,thema,sachgebiete_id |
||||||
|
from tmp_tables; |
||||||
|
|
||||||
|
|
||||||
|
delete from sx_fields where table_name |
||||||
|
in (select T.table_name from tmp_fields T); |
||||||
|
|
||||||
|
insert into sx_fields (table_name,name,caption,description,field_type, |
||||||
|
field_size, |
||||||
|
field_not_null, |
||||||
|
currentlyUsed, |
||||||
|
foreignkey_tab, |
||||||
|
foreignkey_col, |
||||||
|
foreignkey_cap, |
||||||
|
foreignkey_int, |
||||||
|
foreignkey_cond, |
||||||
|
foreignkey_func, |
||||||
|
check_integrity, |
||||||
|
is_sum, |
||||||
|
foreignkey_uniquename |
||||||
|
) |
||||||
|
select |
||||||
|
F.table_name,F.name,F.caption,F.description,F.field_type, |
||||||
|
F.field_size, |
||||||
|
F.field_not_null, |
||||||
|
F.currentlyUsed, |
||||||
|
F.foreignkey_tab, |
||||||
|
F.foreignkey_col, |
||||||
|
F.foreignkey_cap, |
||||||
|
F.foreignkey_int, |
||||||
|
F.foreignkey_cond, |
||||||
|
F.foreignkey_func, |
||||||
|
F.check_integrity, |
||||||
|
F.is_sum, |
||||||
|
F.foreignkey_uniquename |
||||||
|
|
||||||
|
from tmp_fields F; |
||||||
|
|
||||||
|
|
||||||
|
drop table tmp_fields; |
||||||
|
drop table tmp_tables; |
||||||
|
|
||||||
|
|
||||||
|
--rpta_column füllen: |
||||||
|
select * into temp tmp_rc1 |
||||||
|
from rpta_column; |
||||||
|
|
||||||
|
|
||||||
|
create temp table tmp_rpta_column( |
||||||
|
uniquename varchar(255) NOT NULL, |
||||||
|
caption varchar(255), |
||||||
|
srcfieldname varchar(255), |
||||||
|
column_type integer, |
||||||
|
col_function text, |
||||||
|
is_aggregate smallint, |
||||||
|
resultset_id integer, |
||||||
|
description text, |
||||||
|
custom integer default 0 |
||||||
|
); |
||||||
|
|
||||||
|
insert into tmp_rpta_column( uniquename, |
||||||
|
caption, |
||||||
|
srcfieldname, |
||||||
|
column_type, |
||||||
|
col_function, |
||||||
|
is_aggregate, |
||||||
|
resultset_id, |
||||||
|
description) |
||||||
|
select F.name as uniquename, |
||||||
|
coalesce(T.caption,T.name) || ' - ' || F.caption, |
||||||
|
F.name as srcfieldname, |
||||||
|
1 as column_type, |
||||||
|
(case when F.is_sum=1 then 'sum' else null::varchar end) as col_function, |
||||||
|
(case when F.is_sum=1 then 1 else 0 end) as is_aggregate, |
||||||
|
R.tid as resultset_id, |
||||||
|
F.description |
||||||
|
from rpta_resultset R, sx_fields F left outer join sx_tables T on (T.name=F.table_name) |
||||||
|
where F.table_name='${fact_table_target.name}' |
||||||
|
and R.uniquename='${fact_table_target.name}' |
||||||
|
and F.currentlyused=1 |
||||||
|
; |
||||||
|
|
||||||
|
update rpta_column set |
||||||
|
caption=T.caption, |
||||||
|
srcfieldname=T.srcfieldname, |
||||||
|
column_type=T.column_type, |
||||||
|
col_function=T.col_function, |
||||||
|
is_aggregate=T.is_aggregate, |
||||||
|
resultset_id=R.tid, |
||||||
|
description=T.description, |
||||||
|
custom=T.custom |
||||||
|
from tmp_rpta_column T, rpta_resultset R |
||||||
|
where T.uniquename=rpta_column.uniquename |
||||||
|
and rpta_column.resultset_id=R.tid |
||||||
|
and R.uniquename='${fact_table_target.name}' |
||||||
|
; |
||||||
|
insert into rpta_column( uniquename, |
||||||
|
caption, |
||||||
|
srcfieldname, |
||||||
|
column_type, |
||||||
|
col_function, |
||||||
|
is_aggregate, |
||||||
|
resultset_id, |
||||||
|
description, |
||||||
|
custom) |
||||||
|
select T.uniquename, |
||||||
|
T.caption, |
||||||
|
T.srcfieldname, |
||||||
|
T.column_type, |
||||||
|
T.col_function, |
||||||
|
T.is_aggregate, |
||||||
|
R.tid as resultset_id, |
||||||
|
T.description, |
||||||
|
T.custom |
||||||
|
from tmp_rpta_column T, rpta_resultset R |
||||||
|
where R.uniquename='${fact_table_target.name}' |
||||||
|
and 0=(select count(*) from tmp_rc1 C |
||||||
|
where C.uniquename=T.uniquename |
||||||
|
and C.resultset_id=R.tid) |
||||||
|
; |
||||||
|
|
||||||
|
drop table tmp_rpta_column; |
||||||
|
drop table tmp_rc1; |
||||||
|
|
||||||
|
</#if> --wenn sos_stg_aggr_exists=1 |
@ -0,0 +1,95 @@ |
|||||||
|
|
||||||
|
--Freemarker Template |
||||||
|
<#if '${SQLdialect}'='Postgres' > |
||||||
|
|
||||||
|
alter table rpta_resultset alter column fieldclause type text; |
||||||
|
alter table rpta_resultset alter column joinclause type text; |
||||||
|
alter table rpta_resultset alter column whereclause type text; |
||||||
|
|
||||||
|
</#if> |
||||||
|
|
||||||
|
--update current sos module to most recent version: |
||||||
|
|
||||||
|
update sx_fields set is_sum=0 |
||||||
|
where table_name in ('dim_studiengang','sos_stg_aggr','sos_k_stort','sos_k_stuart','sos_k_stutyp','sos_k_stufrm') |
||||||
|
and name !='summe'; |
||||||
|
|
||||||
|
|
||||||
|
UPDATE sx_tables |
||||||
|
SET caption = 'Standorte' |
||||||
|
WHERE name='sos_k_stort'; |
||||||
|
UPDATE sx_tables |
||||||
|
SET caption = 'Studienart' |
||||||
|
WHERE name = 'sos_k_stuart'; |
||||||
|
UPDATE sx_tables |
||||||
|
SET caption = 'Studiumstyp' |
||||||
|
WHERE name = 'sos_k_stutyp'; |
||||||
|
UPDATE sx_tables |
||||||
|
SET caption = 'Studienform' |
||||||
|
WHERE name = 'sos_k_stufrm'; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW sos_k_stutyp |
||||||
|
( |
||||||
|
apnr, |
||||||
|
druck, |
||||||
|
astat |
||||||
|
) |
||||||
|
AS |
||||||
|
SELECT cifx.apnr, |
||||||
|
cifx.druck, |
||||||
|
astat |
||||||
|
FROM cifx |
||||||
|
WHERE cifx.key = 40; |
||||||
|
|
||||||
|
select * into temp tmp_sos_k_stutyp_astat |
||||||
|
from sx_fields where table_name='sos_k_stutyp' |
||||||
|
and name='astat'; |
||||||
|
|
||||||
|
INSERT INTO sx_fields |
||||||
|
( |
||||||
|
table_name, |
||||||
|
name, |
||||||
|
caption, |
||||||
|
description, |
||||||
|
field_type, |
||||||
|
field_size, |
||||||
|
field_not_null, |
||||||
|
currentlyused, |
||||||
|
is_primarykey, |
||||||
|
foreignkey_tab, |
||||||
|
foreignkey_col, |
||||||
|
foreignkey_int, |
||||||
|
foreignkey_cap, |
||||||
|
foreignkey_cond, |
||||||
|
foreignkey_func, |
||||||
|
check_integrity, |
||||||
|
is_sum, |
||||||
|
foreignkey_uniquename |
||||||
|
) |
||||||
|
select |
||||||
|
'sos_k_stutyp', |
||||||
|
'astat', |
||||||
|
'astat', |
||||||
|
'', |
||||||
|
'CHAR', |
||||||
|
'150', |
||||||
|
0, |
||||||
|
1, |
||||||
|
0, |
||||||
|
NULL, |
||||||
|
NULL, |
||||||
|
NULL, |
||||||
|
NULL, |
||||||
|
NULL, |
||||||
|
NULL, |
||||||
|
0, |
||||||
|
1, |
||||||
|
NULL |
||||||
|
from xdummy |
||||||
|
where 0=(select count(*) |
||||||
|
from tmp_sos_k_stutyp_astat); |
||||||
|
|
||||||
|
drop table tmp_sos_k_stutyp_astat; |
||||||
|
|
@ -0,0 +1,64 @@ |
|||||||
|
package de.superx.rpta; |
||||||
|
|
||||||
|
public class SvgProducer { |
||||||
|
|
||||||
|
public static void main(String[] args) { |
||||||
|
// TODO Auto-generated method stub
|
||||||
|
System.out.println(SimpleBarChart("40|110",100,120,50,"#cccccc","steelblue",true)); |
||||||
|
|
||||||
|
} |
||||||
|
/* erzeugt Datenbalken aus "_graph"-Columns, mit Maxvalue Def. |
||||||
|
* Beispielaufruf aus JR: |
||||||
|
* <imageExpression>net.sf.jasperreports.renderers.SimpleDataRenderer.getInstance(de.superx.rpta.SvgProducer.SimpleBarChart($F{männlich},100,149,30,"#cccccc","steelblue",false).getBytes("UTF-8"))</imageExpression> |
||||||
|
* |
||||||
|
*/ |
||||||
|
public static String SimpleBarChart(String barValueStr, double totalValue, double totalWidth, double height,String bgColor, String fgColor,boolean alignLeft) |
||||||
|
{ |
||||||
|
double barValue=0; |
||||||
|
int delim=barValueStr.indexOf("|"); |
||||||
|
if(delim!=0) |
||||||
|
{ |
||||||
|
barValue=Double.valueOf(barValueStr.substring(0, delim)); |
||||||
|
totalValue=Double.valueOf(barValueStr.substring(delim+1)); |
||||||
|
} |
||||||
|
else |
||||||
|
barValue=Double.valueOf(barValueStr); |
||||||
|
|
||||||
|
if(Double.valueOf(totalValue)==null) |
||||||
|
totalValue=100; //percent is default
|
||||||
|
String ret = generateSvg(totalValue, totalWidth, height, bgColor, fgColor, alignLeft, barValue); |
||||||
|
return ret; |
||||||
|
} |
||||||
|
/* erzeugt Datenbalken aus "_graph"-Columns, zum maxValue 100 |
||||||
|
* Beispielaufruf aus JR: |
||||||
|
* <imageExpression>net.sf.jasperreports.renderers.SimpleDataRenderer.getInstance(de.superx.rpta.SvgProducer.SimpleBarChart($F{ Anteil Benutzer an Gesamtzahl (in %) },100,199,30,"#cccccc","steelblue",true).getBytes("UTF-8"))</imageExpression> * |
||||||
|
*/ |
||||||
|
public static String SimpleBarChart(double barValue, double totalValue, double totalWidth, double height,String bgColor, String fgColor,boolean alignLeft) |
||||||
|
{ |
||||||
|
|
||||||
|
if(Double.valueOf(totalValue)==null) |
||||||
|
totalValue=100; //percent is default
|
||||||
|
String ret = generateSvg(totalValue, totalWidth, height, bgColor, fgColor, alignLeft, barValue); |
||||||
|
return ret; |
||||||
|
} |
||||||
|
/* erzeugt svg-Code für Datenbalken aus "_graph"-Columns |
||||||
|
* |
||||||
|
*/ |
||||||
|
private static String generateSvg(double totalValue, double totalWidth, double height, String bgColor, |
||||||
|
String fgColor, boolean alignLeft, double barValue) { |
||||||
|
//Compute width:
|
||||||
|
double barWidth=totalWidth*(barValue/totalValue); |
||||||
|
double x=0; |
||||||
|
if(!alignLeft) |
||||||
|
x=totalWidth-barWidth; //rechtsbündig
|
||||||
|
String ret="<svg xmlns=\"http://www.w3.org/2000/svg\" width=\""+totalWidth+"px\" height=\""+height+"px\">"; |
||||||
|
//background:
|
||||||
|
ret+="<g><rect x=\"0\" y=\"0\" width=\""+totalWidth+"px\" height=\""+height+"px\" fill=\""+bgColor+"\"><title>"+totalValue+"</title></rect>"; |
||||||
|
|
||||||
|
//foreground:
|
||||||
|
ret+="<rect class=\"chartBar\" width=\""+barWidth+"\" height=\""+(height-1) +"\" x=\""+x+"\" y=\"0\" rx=\"5\" ry=\"5\" fill=\""+fgColor+"\"><title>"+barValue+"</title></rect>"; |
||||||
|
ret+="</g></svg>"; |
||||||
|
return ret; |
||||||
|
} |
||||||
|
|
||||||
|
} |
Binary file not shown.
Loading…
Reference in new issue