Browse Source

Feld Abschluss als Sicht #14

master
Daniel Quathamer 1 week ago
parent
commit
9734145615
  1. 5
      src-modules/module/rpta/masken/48000_felderinfo.unl
  2. 1
      src-modules/module/rpta/masken/48000_masken_felder_bez.unl
  3. 21
      src-modules/module/rpta/masken/48000_maskeninfo.unl
  4. 4
      src-modules/module/rpta/masken/48040_felderinfo.unl
  5. 1
      src-modules/module/rpta/masken/48040_masken_felder_bez.unl
  6. 1
      src-modules/module/rpta/masken/48040_maskeninfo.unl
  7. 8
      src-modules/module/rpta/masken/48250_maskeninfo.unl
  8. 25
      src-modules/module/rpta/schluesseltabellen/fm_templates.unl
  9. 124
      src-modules/module/rpta/schluesseltabellen/rpta_column_layout_sos_stud_validierung_astat_fuellen.sql
  10. 2
      src-modules/module/rpta/schluesseltabellen/rpta_format_code.unl
  11. 116
      superx/xml/rpta_templates.xsl
  12. 13
      superx/xml/rpta_templates_final.xsl

5
src-modules/module/rpta/masken/48000_felderinfo.unl

@ -11,9 +11,9 @@ where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='so @@ -11,9 +11,9 @@ where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='so
and R.systeminfo_id=7) and uniquename='sos_stud_astat_rsz';^
48001^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;^
48002^Fächer^30^0^0^130^200^6^integer^1000^0^12^<<SQL>> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^
48003^Abschluss^40^0^0^100^200^3^char^1500^0^1^<<SQL>> select apnr, druck from cifx where key=35 order by 2;^ ^ ^
48003^Abschluss^40^0^0^100^200^3^char^1500^0^12^<<SQL>> select tid,name,sortnr from sichten where art='SOS-Abschluss-Sicht' order by 3,2;^ ^ ^
48004^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^0^^ ^ ^
48005^Semestertyp^22^350^-1^140^80^1^integer^255^0^1^<<SQL>> select 1,'nur Sommersemester' from xdummy union select 2,'nur Wintersemester' from xdummy^ ^<<SQL>> select 2,'nur Wintersemester' from xdummy^
48005^Semestertyp^22^350^-1^140^80^1^integer^255^0^1^<<SQL>> select 1,'nur Sommersemester' from xdummy union select 2,'nur Wintersemester' from xdummy^ ^ ^
48006^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^ ^ ^
48007^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;^
48008^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;^ ^ ^
@ -24,6 +24,7 @@ and R.systeminfo_id=7) and uniquename='sos_stud_astat_rsz';^ @@ -24,6 +24,7 @@ and R.systeminfo_id=7) and uniquename='sos_stud_astat_rsz';^
48013^Jahr^110^0^0^140^80^1^integer^30^0^13^ ^ ^ ^
48014^Filter Studierende^100^0^0^140^150^1^sql^20^0^1^<<SQL>> SELECT id,caption from sx_repository where aktiv =1 and today() between gueltig_seit and gueltig_bis and art='SOS_STUD_FILTER' order by 2;^^^
48015^Nur Endsemester^21^0^0^140^80^1^integer^30^0^1^<<SQL>> select 1,'ja' from xdummy^Eintrag^ ^
48016^Matrikel-Nr.^35^350^-1^140^80^1^char^30^0^13^^^^
48018^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^ ^<<SQL>> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Fälle';^
48022^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;^ ^ ^
48023^Spalten^3001^0^0^150^190^10^char^30^0^1^<<SQL>>\

1
src-modules/module/rpta/masken/48000_masken_felder_bez.unl

@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
48000^48013^
48000^48014^
48000^48015^
48000^48016^
48000^48018^
48000^48022^
48000^48023^

21
src-modules/module/rpta/masken/48000_maskeninfo.unl

@ -59,10 +59,12 @@ C.is_aggregate,\ @@ -59,10 +59,12 @@ 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,\
F.sql_code as format_sql,\
F.uniquename as format_uniquename,\
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\
FROM rpta_column_layout L, rpta_column C, rpta_column_type T,rpta_column2layout CL \
left outer join rpta_format_code F on (F.tid=CL.format_code_id)\
where L.tid=CL.layout_id\
and C.tid=CL.column_id\
and T.tid=C.column_type\
@ -114,7 +116,6 @@ and substring('' || tid from 5 for 1)='<<Semestertyp>>'\ @@ -114,7 +116,6 @@ and substring('' || tid from 5 for 1)='<<Semestertyp>>'\
/* and stichtag = <<Stichtag>> */\
/* and <<Hochschulzugangsberechtigung>> */\
/* and <<Hörerstatus>>*/\
/* and abschluss in (<<Abschluss>>) */\
/* and geschlecht = <<Geschlecht>> */\
/* and fach_sem_zahl <= <<bis Fachsemester>> */\
/* and substring('' || sem_rueck_beur_ein from 5 for 1)='<<Semestertyp>>' */\
@ -129,7 +130,19 @@ and substring('' || tid from 5 for 1)='<<Semestertyp>>'\ @@ -129,7 +130,19 @@ and substring('' || tid from 5 for 1)='<<Semestertyp>>'\
<#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>> */\
/* <#assign filter = filter + " and tid_stg in (select L2.tid from lehr_stg_ab L2 where L2.abschluss in "+Abschluss.allNeededKeysList +")" /> --<<Abschluss>> */\
\
<#assign mtknr_filter="matrikel_nr::varchar(255)" />\
<#if K_SOS_MTKNR_EXT=1>\
<#assign mtknr_filter="pseudonym" />\
</#if>\
<#assign matrikel_nr_sel="" />\
/*<#assign matrikel_nr_sel=<<Matrikel-Nr.>> />*/\
\
\
<#if matrikel_nr_sel !="">\
<#assign filter=filter+" and "+mtknr_filter+"='"+matrikel_nr_sel+"'" />\
</#if>\
<#if columns?has_content>\
\
<#if basetable.is_virtual==1>\
@ -145,7 +158,7 @@ and ${filter}\ @@ -145,7 +158,7 @@ and ${filter}\
</#if>\
\
\
<@rpta_interpret_column_layout />\
<@rpta_interpret_column_layout nonvirtualTableFilter=filter />\
\
</#if> --wenn columns?has_content^--Freemarker Template\
XIL List\

4
src-modules/module/rpta/masken/48040_felderinfo.unl

@ -6,3 +6,7 @@ @@ -6,3 +6,7 @@
48045^Virtuelle Tabellen bearbeiten^100^0^0^140^80^1^char^255^0^18^ ^ ^<<SQL>> select '../edit/rpta/rpta_resultset_list.jsp' from xdummy;^
48046^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;^^^
48047^Spaltentyp^200^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,caption from rpta_column_type order by 2;^^ ^
48048^Spalte (Schlüssel)^15^0^0^150^80^1^char^200^0^1^<<SQL>> select C.uniquename,C.caption from rpta_column C where 1=1 /* and resultset_id=<<Virtuelle Tabelle>> */\
/* and tid in (select L.column_id from rpta_column2layout L\
where L.layout_id=<<Spaltenlayout>>) */\
order by 2;^^^

1
src-modules/module/rpta/masken/48040_masken_felder_bez.unl

@ -6,3 +6,4 @@ @@ -6,3 +6,4 @@
48040^48045^
48040^48046^
48040^48047^
48040^48048^

1
src-modules/module/rpta/masken/48040_maskeninfo.unl

@ -52,6 +52,7 @@ where T.tid=C.column_type\ @@ -52,6 +52,7 @@ where T.tid=C.column_type\
/* 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>> */\
/* and C.uniquename = <<Spalte (Schlüssel)>> */\
;\
\
\

8
src-modules/module/rpta/masken/48250_maskeninfo.unl

@ -50,10 +50,12 @@ C.is_aggregate,\ @@ -50,10 +50,12 @@ 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,\
F.sql_code as format_sql,\
F.uniquename as format_uniquename,\
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\
FROM rpta_column_layout L, rpta_column C, rpta_column_type T,rpta_column2layout CL \
left outer join rpta_format_code F on (F.tid=CL.format_code_id)\
where L.tid=CL.layout_id\
and C.tid=CL.column_id\
and T.tid=C.column_type\
@ -104,7 +106,7 @@ and ${filter}\ @@ -104,7 +106,7 @@ and ${filter}\
</#if>\
\
\
<@rpta_interpret_column_layout nonvirtualTableFilter=filter/>\
<@rpta_interpret_column_layout nonvirtualTableFilter=filter />\
\
</#if> --wenn columns?has_content^--Freemarker Template\
XIL List\

25
src-modules/module/rpta/schluesseltabellen/fm_templates.unl

@ -359,17 +359,12 @@ drop TABLE tmp_rpta_column2layout;\ @@ -359,17 +359,12 @@ drop TABLE tmp_rpta_column2layout;\
<#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>\
\
<#assign myfieldclause=column.targetfieldname />\
<#if column.coltype=="computedColumn">\
(${column.colfunction})${format_sql} as ${column.targetfieldname}\
<#else>\
${column.targetfieldname}${format_sql} as ${column.targetfieldname}\
<#assign myfieldclause=column.colfunction />\
</#if>\
\
<@format_code2sql selectclause=myfieldclause format_code_uniquename=column.format_uniquename format_sql=column.format_sql /> as ${column.targetfieldname}\
\
<#if colnr &lt; number_of_visible_colums>,</#if>\
</#if> \
</#foreach>\
@ -800,4 +795,16 @@ and L.resultset_id=T.resultset_id\ @@ -800,4 +795,16 @@ and L.resultset_id=T.resultset_id\
drop table tmp_rpta_column;\
drop TABLE tmp_rpta_column_layout;\
drop TABLE tmp_rpta_column2layout;\
</#macro>\
\
<#macro format_code2sql selectclause format_code_uniquename format_sql>\
<#if format_code_uniquename=="MASK_ZERO">\
(case when ${selectclause}=0 then null else ${selectclause} end)\
<#elseif format_code_uniquename=="MASK_ZERO_INT">\
(case when ${selectclause}=0 then null::integer else ${selectclause}::integer end)\
<#elseif format_sql=="">\
${selectclause}\
<#else>\
${selectclause}${format_sql}\
</#if>\
</#macro>^Makros zum Umgang mit Spaltenlayouts^ ^1^

124
src-modules/module/rpta/schluesseltabellen/rpta_column_layout_sos_stud_validierung_astat_fuellen.sql

@ -0,0 +1,124 @@ @@ -0,0 +1,124 @@
--freemarker template
<#include "RPTA-Makros"/>
<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_ef",
"caption":"Studierende Einzelfälle",
"rpta_resultset":"sos_stud_astat",
"whereclause":"",
"description":"Einzelfälle nach Studienang-Nr., Fach-Nr., Fach und Abschluss sowie Status"
}
/>
<#assign rpta_columns = [
{"uniquename":"sem_rueck_beur_ein",
"caption":"Semester (Schlüssel)",
"srcfieldname":"sem_rueck_beur_ein",
"targetfieldname":"",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"format_code":"INT_NO_SEP",
"visible_size":"5",
"is_aggregate":"0",
"description":"Semester"
},
{"uniquename":"matrikel_nr",
"caption":"Matrikel-Nr.",
"srcfieldname":"matrikel_nr",
"column_type":"physicalColumn",
"col_function":"",
"format_code":"INT_NO_SEP",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"ggf. pseudonymisiert, bei Datenquelle HIS1 ist dies die student.id"
},
{"uniquename":"studiengang_nr",
"caption":"Studiengang-Nr.",
"srcfieldname":"studiengang_nr",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"Studiengang_nr"
},
{"uniquename":"fach_nr",
"caption":"Fach-Nr.",
"srcfieldname":"fach_nr",
"column_type":"physicalColumn",
"col_function":"",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":"fach_nr"
},
{"uniquename":"dim_studiengang_stg",
"caption":"Fach (Schlüssel)",
"srcfieldname":"dim_studiengang_stg",
"column_type":"physicalColumn",
"col_function":"",
"format_code":"",
"is_visible":"1",
"is_aggregate":0,
"visible_size":10,
"description":""
},
{"uniquename":"dim_studiengang_stg_str",
"caption":"Fach",
"srcfieldname":"dim_studiengang_stg_str",
"column_type":"physicalColumn",
"col_function":"",
"format_code":"",
"is_visible":"1",
"is_aggregate":0,
"visible_size":20,
"description":""
},
{"uniquename":"dim_studiengang_abschluss",
"caption":"Abschluss (intern) (Schlüssel)",
"srcfieldname":"dim_studiengang_abschluss",
"column_type":"physicalColumn",
"col_function":"",
"format_code":"",
"is_visible":"1",
"is_aggregate":0,
"visible_size":10,
"description":""
},
{"uniquename":"dim_studiengang_abschluss_str",
"caption":"Abschluss (intern)",
"srcfieldname":"dim_studiengang_abschluss_str",
"column_type":"physicalColumn",
"col_function":"",
"format_code":"",
"is_visible":"1",
"is_aggregate":0,
"visible_size":15,
"description":""
},
{"uniquename":"kz_rueck_beur_ein_lang_str",
"caption":"Rückmeldestatus",
"srcfieldname":"",
"targetfieldname":"kz_rueck_beur_ein",
"column_type":"logicalColumn",
"col_function":"(case when kz_rueck_beur_ein=1 then ''Ersteinschr.'' when kz_rueck_beur_ein=2 then ''Neueinschr.''
when kz_rueck_beur_ein=3 then ''Rückmeldung''
when kz_rueck_beur_ein=4 then ''Beurlaubung''
when kz_rueck_beur_ein=5 then ''Exmatrik.''
else ''unbekannt'' end)",
"is_visible":"1",
"visible_size":"10",
"is_aggregate":"0",
"description":""
}
]
/>
<@rpta_column_layout_fuellen />

2
src-modules/module/rpta/schluesseltabellen/rpta_format_code.unl

@ -2,3 +2,5 @@ @@ -2,3 +2,5 @@
2^INT_NO_SEP^Ganzzahlig ohne 1000er Trenner^::varchar^
3^INT_PERCENT^Ganzzahlig %^::integer || ' %'^
4^DEC_2^Dezimal mit 2 Nachkommastellen^::decimal(18,2)^
5^MASK_ZERO^0-Werte ausblenden^ ^
6^MASK_ZERO_INT^0-Werte ausblenden (ganzzahlig)^ ^

116
superx/xml/rpta_templates.xsl

@ -146,6 +146,7 @@ isIgnorePagination="{$runTimePagination}" > @@ -146,6 +146,7 @@ isIgnorePagination="{$runTimePagination}" >
<xsl:if test="$isMainReport='true'">
<xsl:call-template name="generateTitleBand" >
<xsl:with-param name="druckbreite" select="$druckbreite" />
<xsl:with-param name="seitenrand" select="$seitenrand" />
</xsl:call-template>
</xsl:if>
@ -157,6 +158,9 @@ isIgnorePagination="{$runTimePagination}" > @@ -157,6 +158,9 @@ isIgnorePagination="{$runTimePagination}" >
<xsl:when test="sqlerg/@istreetable='true'">
<xsl:text>treeTable</xsl:text>
</xsl:when>
<xsl:when test="$groupLayoutElem/groupLayout/@flavorTableRowStyleDetail!=''">
<xsl:value-of select="$groupLayoutElem/groupLayout/@flavorTableRowStyleDetail"/>
</xsl:when>
<xsl:when test="count($groupLayoutElem/groupLayout/group)!=0">
<xsl:text>simple</xsl:text>
</xsl:when>
@ -235,7 +239,18 @@ and not(starts-with(f_name,'next')) ]"> @@ -235,7 +239,18 @@ and not(starts-with(f_name,'next')) ]">
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<!-- ggf. weitere styles-->
<!-- flavorTableRowStyle einfach weitergeben: -->
<xsl:call-template name="jr_textField">
<xsl:with-param name="ergebnisElementOrdnr" select="$ergebniselementOrdnr" />
<xsl:with-param name="fieldName" select="wert" />
<xsl:with-param name="colName" select="f_name" />
<xsl:with-param name="colId" select="@id" />
<xsl:with-param name="x" select="$columnX" />
<xsl:with-param name="width" select="$columnWidth" />
<xsl:with-param name="height" select="$std_zeilenhoehe_tablerow" />
<xsl:with-param name="flavorTableRowStyle" select="$flavorTableRowStyle" />
<xsl:with-param name="tableRowLevel" select="''" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
@ -298,6 +313,7 @@ and not(starts-with(f_name,'next')) ]"> @@ -298,6 +313,7 @@ and not(starts-with(f_name,'next')) ]">
<xsl:with-param name="flavorTableRowStyle" select="$flavorTableRowStyle" />
<xsl:with-param name="ergebniselementOrdnr" select="$ergebniselementOrdnr" />
</xsl:call-template>
<xsl:call-template name="additionalStyles" />
</xsl:template>
<xsl:template name="tableRowStyle">
@ -354,6 +370,7 @@ and not(starts-with(f_name,'next')) ]"> @@ -354,6 +370,7 @@ and not(starts-with(f_name,'next')) ]">
<xsl:for-each select="sqlerg/complete_headers/header">
<xsl:variable name="fieldName" select="wert" />
<xsl:variable name="colName" select="f_name" />
<xsl:variable name="jasperFieldname">
@ -384,12 +401,12 @@ and not(starts-with(f_name,'next')) ]"> @@ -384,12 +401,12 @@ and not(starts-with(f_name,'next')) ]">
<xsl:if test="normalize-space($jasperFieldname)!='' and $isNumericField='true'
and count($groupLayoutElem/groupLayout/group/*/field [@name=$fieldName]) != 0"> <!-- keine leeren Feldnamen-->
and count($groupLayoutElem/groupLayout/group/*/field [@name=$colName]) != 0"> <!-- keine leeren Feldnamen-->
<variable name="{concat($fldPrefix,$jasperFieldname)}"
class="{$fieldType}"
resetType="Group"
resetGroup="{$groupbyField}"
calculation="{$groupLayoutElem/groupLayout/group/*/field [@name=$fieldName]/@aggrFunction }" >
calculation="{$groupLayoutElem/groupLayout/group/*/field [@name=$colName]/@aggrFunction }" >
<variableExpression><xsl:value-of select="concat('$F{',$jasperFieldname,'}')" /></variableExpression>
</variable>
@ -788,11 +805,22 @@ weil es Rundungsfehler bei der Spaltenbreite geben kann.--> @@ -788,11 +805,22 @@ weil es Rundungsfehler bei der Spaltenbreite geben kann.-->
<xsl:text>''</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($doubleQuote,$groupExpressionPrefix,$doubleQuote,'+','$',$expressionType,'{',$groupbyField,$fldPrefix,$jasperFieldname,'}')" />
<xsl:variable name="JRField">
<xsl:value-of select="concat('$',$expressionType,'{',$groupbyField,$fldPrefix,$jasperFieldname,'}')"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$fieldType='1'"><!--string-->
<xsl:value-of select="concat($JRField,'==null?null:',$doubleQuote,$groupExpressionPrefix,$doubleQuote,'+',$JRField)" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$JRField" />
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:comment><xsl:value-of select="$expressionType" /></xsl:comment>
<xsl:comment><xsl:value-of select="concat($fieldType,'-',$expressionType)" /></xsl:comment>
<textFieldExpression><xsl:value-of select="$textFieldExpression" /></textFieldExpression>
<xsl:call-template name="tableCellPatternExpression">
<xsl:with-param name="fieldType" select="$fieldType" />
@ -943,11 +971,11 @@ genommen. Wenn nicht, wird mit colspan multipliziert.--> @@ -943,11 +971,11 @@ genommen. Wenn nicht, wird mit colspan multipliziert.-->
<xsl:if test="$computedWidth!='0'">
<textField isStretchWithOverflow="true">
<!--<xsl:comment><xsl:value-of select="concat('ROW ' ,$rowCounter ,'-', $rowspan)"/>
</xsl:comment>-->
<xsl:comment><xsl:value-of select="concat('ROW ' ,$rowCounter ,'-', $rowspan,'.',$rowCount)"/>
</xsl:comment>
<reportElement style="TableColumnHeader" mode="Opaque"
x="{$columnX}" y="{$y_offset+( $rowCounter * $zeilenhoehe )}" width="{$computedWidth}" height="{$zeilenhoehe*$rowspan}">
<xsl:if test="$rowCounter &gt;0 or $rowspan &gt;1">
<xsl:if test="$rowCounter = ($rowCount - 1 ) or $rowspan &gt;1"><!-- &gt;0 -->
<!-- verschachtelte Überschriften: oberste Zeile darf keinen stretchType haben, wenn darunter Zellen sind.
Sonst zeigt Excel das nicht an.-->
<xsl:attribute name="stretchType"><xsl:text>ContainerHeight</xsl:text></xsl:attribute>
@ -994,7 +1022,7 @@ genommen. Wenn nicht, wird mit colspan multipliziert.--> @@ -994,7 +1022,7 @@ genommen. Wenn nicht, wird mit colspan multipliziert.-->
<textField isStretchWithOverflow="true">
<reportElement positionType="Float" style="TableColumnHeader" mode="Opaque" stretchType="ContainerHeight"
<reportElement positionType="Float" style="TableColumnHeader" mode="Opaque"
x="{$columnX}" y="{$y_offset}" width="{$columnWidth}" height="{$zeilenhoehe}" />
<textFieldExpression><xsl:text>"</xsl:text><!--<xsl:call-template name="getColHeaderText">
<xsl:with-param name="header_wert" select="." /></xsl:call-template>-->
@ -1111,7 +1139,7 @@ genommen. Wenn nicht, wird mit colspan multipliziert.--> @@ -1111,7 +1139,7 @@ genommen. Wenn nicht, wird mit colspan multipliziert.-->
and not(starts-with(f_name,'next')) ])"/></xsl:variable>
<xsl:for-each select="sqlerg/headers/header[not(starts-with(f_name,'hidden'))
and not(starts-with(f_name,'next')) ]">
<xsl:comment><xsl:value-of select="concat('START mit Feld',wert)"/></xsl:comment>
<xsl:variable name="fieldType">
<xsl:call-template name="getJavaType">
<xsl:with-param name="ordnr"><xsl:value-of select="$ergebniselementOrdnr"/></xsl:with-param>
@ -1140,35 +1168,48 @@ and not(starts-with(f_name,'next')) ]"> @@ -1140,35 +1168,48 @@ and not(starts-with(f_name,'next')) ]">
<!-- ist das Feld im Band vorgesehen? -->
<xsl:variable name="isDeclared">
<xsl:call-template name="isFieldDeclaredInGroupBand">
<xsl:with-param name="fieldName" select="wert" />
<xsl:with-param name="fieldName" select="f_name" />
<xsl:with-param name="groupbyField" select="$groupbyField" />
<xsl:with-param name="groupLayoutElem" select="$groupLayoutElem" />
<xsl:with-param name="headerOrFooter" select="$headerOrFooter" />
</xsl:call-template>
</xsl:variable>
<xsl:comment><xsl:value-of select="concat('WERT:',f_name,':',$isDeclared)"/></xsl:comment>
<xsl:variable name="groupExpressionPrefix">
<xsl:if test="$isDeclared='true' and $isNumericField='false'">
<xsl:call-template name="getDeclaredFieldPrefixInGroupBand">
<xsl:with-param name="fieldName" select="wert" />
<xsl:with-param name="fieldName" select="f_name" />
<xsl:with-param name="groupbyField" select="$groupbyField" />
<xsl:with-param name="groupLayoutElem" select="$groupLayoutElem" />
<xsl:with-param name="headerOrFooter" select="$headerOrFooter" />
</xsl:call-template>
</xsl:if>
</xsl:variable>
<xsl:comment><xsl:value-of select="concat('groupExpressionPrefix:',f_name,':',$groupExpressionPrefix)"/></xsl:comment>
<xsl:variable name="groupLabel">
<xsl:if test="$isDeclared='true' and $isNumericField='false'">
<xsl:call-template name="getDeclaredFieldLabelInGroupBand">
<xsl:with-param name="fieldName" select="f_name" />
<xsl:with-param name="groupbyField" select="$groupbyField" />
<xsl:with-param name="groupLayoutElem" select="$groupLayoutElem" />
<xsl:with-param name="headerOrFooter" select="$headerOrFooter" />
</xsl:call-template>
</xsl:if>
</xsl:variable>
<xsl:comment><xsl:value-of select="concat('groupLabel:',f_name,':',$groupLabel)"/></xsl:comment>
<xsl:variable name="columnWidth">
<xsl:choose>
<xsl:when test="$isDeclared='true' and $isNumericField='false'">
<xsl:call-template name="getDeclaredWidthInGroupBand">
<xsl:with-param name="fieldName" select="wert" />
<xsl:with-param name="fieldName" select="f_name" />
<xsl:with-param name="groupbyField" select="$groupbyField" />
<xsl:with-param name="groupLayoutElem" select="$groupLayoutElem" />
<xsl:with-param name="headerOrFooter" select="$headerOrFooter" />
<xsl:with-param name="druckbreite" select="$druckbreite"/>
<xsl:with-param name="std_spaltenbreite" select="$std_spaltenbreite"/>
<xsl:with-param name="ergebniselementOrdnr" select="$ergebniselementOrdnr"/>
<xsl:with-param name="colId" select="@id" />
<xsl:with-param name="colCount" select="$colCount"/>
<xsl:with-param name="previousX" select="$columnX"/>
</xsl:call-template>
@ -1217,7 +1258,7 @@ and not(starts-with(f_name,'next')) ]"> @@ -1217,7 +1258,7 @@ and not(starts-with(f_name,'next')) ]">
<xsl:with-param name="height" select="$std_zeilenhoehe_tablerow" />
<xsl:with-param name="flavorTableRowStyle" select="$flavorTableRowStyle" />
<xsl:with-param name="tableRowLevel" select="$tableRowLevel" />
<xsl:with-param name="expressionType" select="'SUM_LABEL'" />
<xsl:with-param name="expressionType" select="$groupLabel" />
<xsl:with-param name="groupbyField" select="''" />
<xsl:with-param name="headerOrFooter" select="$headerOrFooter" />
@ -1363,6 +1404,8 @@ and not(starts-with(f_name,'next')) ]"> @@ -1363,6 +1404,8 @@ and not(starts-with(f_name,'next')) ]">
</xsl:template>
<xsl:template name="generateTitleBand">
<xsl:param name="druckbreite" select="812" />
<xsl:param name="seitenbreite" select="842" />
<xsl:param name="seitenrand" select="12" />
<xsl:param name="ReportTitle" select="'$F{Berichtsname}'" />
<title>
<band height="75">
@ -1442,7 +1485,7 @@ and not(starts-with(f_name,'next')) ]"> @@ -1442,7 +1485,7 @@ and not(starts-with(f_name,'next')) ]">
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:text><!--other styles possible--></xsl:text>
<xsl:value-of select="$flavorTableRowStyle"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
@ -1704,7 +1747,7 @@ d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist. @@ -1704,7 +1747,7 @@ d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist.
<xsl:choose>
<xsl:when test="$headerOrFooter='header'">
<xsl:choose>
<xsl:when test="count($groupLayoutElem/groupLayout/group/header/field[@name=$fieldName])=0">
<xsl:when test="count($groupLayoutElem/groupLayout/group[@name=$groupbyField]/header/field[@name=$fieldName])=0">
<xsl:text>false</xsl:text>
</xsl:when>
<xsl:otherwise>
@ -1714,7 +1757,7 @@ d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist. @@ -1714,7 +1757,7 @@ d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist.
</xsl:when>
<xsl:when test="$headerOrFooter='footer'">
<xsl:choose>
<xsl:when test="count($groupLayoutElem/groupLayout/group/footer/field[@name=$fieldName])=0">
<xsl:when test="count($groupLayoutElem/groupLayout/group[@name=$groupbyField]/footer/field[@name=$fieldName])=0">
<xsl:text>false</xsl:text>
</xsl:when>
<xsl:otherwise>
@ -1736,18 +1779,29 @@ d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist. @@ -1736,18 +1779,29 @@ d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist.
<xsl:param name="druckbreite"/>
<xsl:param name="std_spaltenbreite" />
<xsl:param name="ergebniselementOrdnr" select="'0'"/>
<xsl:param name="colId" />
<xsl:param name="colCount" />
<xsl:param name="previousX"/>
<xsl:variable name="replacesFieldName">
<xsl:choose>
<xsl:when test="$headerOrFooter='header'">
<xsl:value-of select="$groupLayoutElem/groupLayout/group/header/field[@name=$fieldName]/@replaces"/>
<xsl:value-of select="$groupLayoutElem/groupLayout/group[@name=$groupbyField]/header/field[@name=$fieldName]/@replaces"/>
</xsl:when>
<xsl:when test="$headerOrFooter='footer'">
<xsl:value-of select="$groupLayoutElem/groupLayout/group/footer/field[@name=$fieldName]/@replaces"/>
<xsl:value-of select="$groupLayoutElem/groupLayout/group[@name=$groupbyField]/footer/field[@name=$fieldName]/@replaces"/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="colIdRuntime">
<xsl:choose>
<xsl:when test="$replacesFieldName=''">
<xsl:value-of select="$colId"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="/ergebnisse/ergebnis[@ordnr=$ergebniselementOrdnr]/ergebniselement/sqlerg/complete_headers/header[wert=$replacesFieldName]/@id"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
@ -1755,7 +1809,7 @@ d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist. @@ -1755,7 +1809,7 @@ d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist.
<xsl:with-param name="druckbreite" select="$druckbreite"/>
<xsl:with-param name="std_spaltenbreite" select="$std_spaltenbreite"/>
<xsl:with-param name="ergebniselementOrdnr" select="$ergebniselementOrdnr"/>
<xsl:with-param name="colId" select="/ergebnisse/ergebnis[@ordnr=$ergebniselementOrdnr]/ergebniselement/sqlerg/complete_headers/header[wert=$replacesFieldName]/@id" />
<xsl:with-param name="colId" select="$colIdRuntime" />
<xsl:with-param name="colCount" select="$colCount"/>
<xsl:with-param name="previousX" select="$previousX"/>
</xsl:call-template>
@ -1790,4 +1844,24 @@ d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist. @@ -1790,4 +1844,24 @@ d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist.
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="getDeclaredFieldLabelInGroupBand">
<xsl:param name="fieldName" />
<xsl:param name="groupbyField" />
<xsl:param name="groupLayoutElem" />
<xsl:param name="headerOrFooter" />
<xsl:choose>
<xsl:when test="$headerOrFooter='header'">
<xsl:value-of select="$groupLayoutElem/groupLayout/group[@name=$groupbyField]/header/field[@name=$fieldName]/@label"/>
</xsl:when>
<xsl:when test="$headerOrFooter='footer'">
<xsl:value-of select="$groupLayoutElem/groupLayout/group[@name=$groupbyField]/footer/field[@name=$fieldName]/@label"/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="additionalStyles" >
<!-- can be overriden with rpta_templates_final.xsl -->
</xsl:template>
</xsl:stylesheet>

13
superx/xml/rpta_templates_final.xsl

@ -6,4 +6,17 @@ xmlns="http://jasperreports.sourceforge.net/jasperreports" @@ -6,4 +6,17 @@ xmlns="http://jasperreports.sourceforge.net/jasperreports"
<!--In diesem Stylesheet können Sie individuelle templates unterbringen,
die in ihrer Präzedenz das normale Stylesheet
rpta_templates.xsl überragt. -->
<xsl:template name="additionalStyles" >
<style name="FB_color">
<conditionalStyle>
<conditionExpression><![CDATA[$F{FB}.trim().equals("211")]]></conditionExpression>
<style mode="Opaque" backcolor="#D9F2D0"/>
</conditionalStyle>
<conditionalStyle>
<conditionExpression><![CDATA[$F{FB}.trim().equals("212")]]></conditionExpression>
<style mode="Opaque" backcolor="#FFFF99"/>
</conditionalStyle>
</style>
</xsl:template>
</xsl:stylesheet>

Loading…
Cancel
Save