Compare commits

..

No commits in common. 'master' and 'rpta_0.2_Release' have entirely different histories.

  1. 51
      src-modules/module/rpta/conf/rpta.xml
  2. 7
      src-modules/module/rpta/masken/45000_felderinfo.unl
  3. 1
      src-modules/module/rpta/masken/45000_masken_felder_bez.unl
  4. 32
      src-modules/module/rpta/masken/45000_maskeninfo.unl
  5. 879
      superx/xml/rpta_assistent.xsl
  6. 56
      superx/xml/rpta_templates.xsl

51
src-modules/module/rpta/conf/rpta.xml

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!--<!DOCTYPE module SYSTEM "../../../conf/superx-module.dtd"> --> <!--<!DOCTYPE module SYSTEM "../../../conf/superx-module.dtd"> -->
<module name="rpta" version="0.3b" sachgebiet_id="330" <module name="rpta" version="0.2" sachgebiet_id="330"
sachgebiet="Berichtsassistent" systeminfo_id="330" sachgebiet="Berichtsassistent" systeminfo_id="330"
system="Berichtsassistent" thema="Berichtsassistent" thema_parent="Abfragen"> system="Berichtsassistent" thema="Berichtsassistent" thema_parent="Abfragen">
<database name="superx" system="superx"> <database name="superx" system="superx">
@ -317,54 +317,7 @@ parent="Berichtsassistent">Abfragen zur Administration von Berichtsassistent </t
</action> </action>
</etl-step> </etl-step>
</etl> </etl>
<!-- Elemente nur für die neue KV von HIS:-->
<install_upgrade_job>
<install-upgrade-step name="pre_upgrade" type="container" id="rpta_preupgrade_containernode">
<action error="stop"/>
</install-upgrade-step>
<install-upgrade-step name="upgrade_tables" type="" id="rpta_upgrade_tables_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/upgrade/rpta_upgrade_tables_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="upgrade_fields" type="" id="rpta_upgrade_fields_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/upgrade/rpta_upgrade_fields_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="upgrade_views" type="" id="rpta_upgrade_views_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/upgrade/rpta_upgrade_views_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="install_functions" type="container" id="rpta_install_functions_containernode">
<action error="stop"/>
</install-upgrade-step>
<install-upgrade-step name="upgrade_indices" type="" id="rpta_upgrade_indices_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/upgrade/rpta_upgrade_indexes_pg.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="fill_tables" type="" id="rpta_fill_tables_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/conf/sx_tables_fuellen.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="Update Module Metadata" type="container" id="rpta_update_module_metadata_container">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/conf/module_metadata.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="update_topic_tree" type="" id="rpta_update_topictree_actionstep">
<action error="stop">
<nativeaction sql="" scriptfile="$RPTA_PFAD/upgrade/rpta_upgrade_themenbaum.sql" database=""/>
</action>
</install-upgrade-step>
<install-upgrade-step name="install_masks" type="container" id="rpta_install_masks_containernode">
<action error="stop"/>
</install-upgrade-step>
</install_upgrade_job>
<install> <install>
<install-step name="Füllen der Modul-Tabellen"> <install-step name="Füllen der Modul-Tabellen">
<action> <action>

7
src-modules/module/rpta/masken/45000_felderinfo.unl

@ -8,7 +8,9 @@ order by sortnr, caption\
caption\ caption\
FROM rpta_column_layout \ FROM rpta_column_layout \
where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='sos_stud_astat'\ where resultset_id in (select R.tid from rpta_resultset R where R.uniquename='sos_stud_astat'\
and R.systeminfo_id=7) and uniquename='sos_stud_astat_rsz';^ 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;^ 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;^ ^ ^ 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;^ ^ ^ 45003^Abschluss^40^0^0^100^200^3^char^1500^0^1^<<SQL>> select apnr, druck from cifx where key=35 order by 2;^ ^ ^
@ -21,6 +23,3 @@ and R.systeminfo_id=7) and uniquename='sos_stud_astat_rsz';^
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';^ 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';^ 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;^ ^ ^ 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;^ ^ ^
45023^Spalten^3001^0^0^150^190^10^char^30^0^1^<<SQL>>\
select C.uniquename, C.caption ,L.layout_id from rpta_column C, rpta_column2layout L where C.tid=L.column_id and layout_id in\
(select tid from rpta_column_layout where tid=<<Spaltenlayout>>) order by 2;^^^

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

@ -11,4 +11,3 @@
45000^45012^ 45000^45012^
45000^45018^ 45000^45018^
45000^45022^ 45000^45022^
45000^45023^

32
src-modules/module/rpta/masken/45000_maskeninfo.unl

@ -57,7 +57,6 @@ where L.tid=CL.layout_id\
and C.tid=CL.column_id\ and C.tid=CL.column_id\
and T.tid=C.column_type\ and T.tid=C.column_type\
and L.tid=<<Spaltenlayout>>\ and L.tid=<<Spaltenlayout>>\
/* and C.uniquename in (<<Spalten>>) */\
order by CL.sortnr\ order by CL.sortnr\
;\ ;\
]]></sqlvar>\ ]]></sqlvar>\
@ -66,7 +65,6 @@ order by CL.sortnr\
<#assign filter="<<Köpfe oder Fälle ?>>\ <#assign filter="<<Köpfe oder Fälle ?>>\
/* and sem_rueck_beur_ein >= <<Seit Semester>> */\ /* and sem_rueck_beur_ein >= <<Seit Semester>> */\
/* and sem_rueck_beur_ein <= <<Bis Semester>> */\ /* and sem_rueck_beur_ein <= <<Bis Semester>> */\
/* and sem_rueck_beur_ein = <<Semester>> */\
/* and stichtag = <<Stichtag>> */\ /* and stichtag = <<Stichtag>> */\
/* and <<Hochschulzugangsberechtigung>> */\ /* and <<Hochschulzugangsberechtigung>> */\
/* and <<Hörerstatus>>*/\ /* and <<Hörerstatus>>*/\
@ -136,8 +134,6 @@ sum(${column.targetfieldname}) as ${column.targetfieldname},\
null::char(1) as dummycol\ null::char(1) as dummycol\
into temp tmp_stud2\ into temp tmp_stud2\
from tmp_stud\ from tmp_stud\
where 1=1\
/* ${<<Zusatzfilter>>} */\
group by\ group by\
<#list 1..groupby as i>${i}\ <#list 1..groupby as i>${i}\
<#if i != groupby>\ <#if i != groupby>\
@ -146,17 +142,12 @@ group by\
</#list>\ </#list>\
;\ ;\
\ \
<#assign number_of_visible_colums=0 />\ <#assign orderby=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 \ select \
<#foreach column in columns>\ <#foreach column in columns>\
<#if column.is_visible!=0>\ <#if column.is_visible==1>\
<#assign colnr=colnr+1 />\ <#assign orderby=orderby +1 />\
<#assign format_sql="" />\ <#assign format_sql="" />\
<#if column.format_sql?string != "">\ <#if column.format_sql?string != "">\
<#assign format_sql=column.format_sql />\ <#assign format_sql=column.format_sql />\
@ -165,15 +156,14 @@ select \
<#if column.coltype=="computedColumn">\ <#if column.coltype=="computedColumn">\
(${column.colfunction})${format_sql} as ${column.targetfieldname}\ (${column.colfunction})${format_sql} as ${column.targetfieldname}\
<#else>\ <#else>\
${column.targetfieldname}${format_sql} as ${column.targetfieldname}\ ${column.targetfieldname}${format_sql}\
</#if>\ </#if>\
\ <#if column_has_next>,</#if>\
<#if colnr &lt; number_of_visible_colums>,</#if>\
</#if> --wenn sichtbar\ </#if> --wenn sichtbar\
</#foreach>\ </#foreach>\
from tmp_stud2\ from tmp_stud2\
order by <#list 1..number_of_visible_colums as i>${i}\ order by <#list 1..orderby as i>${i}\
<#if i != number_of_visible_colums>\ <#if i != orderby>\
,\ ,\
</#if>\ </#if>\
</#list>\ </#list>\
@ -191,11 +181,9 @@ drop table if exists tmp_stud;\
drop_and_delete movable_columns \ drop_and_delete movable_columns \
white_space_color=COLOR_WHITE fixed_columns=1\ white_space_color=COLOR_WHITE fixed_columns=1\
min_heading_height=55\ min_heading_height=55\
<#foreach column in columns>\ <#foreach column in columns><#if column.is_visible==1>\
<#if column.is_visible!=0>\
Column CID=0 heading_text="${column.caption}" center_heading explanation="${column.description}"\ Column CID=0 heading_text="${column.caption}" center_heading explanation="${column.description}"\
row_selectable heading_platform readonly\ row_selectable heading_platform readonly\
width=${column.visible_width} text_size=60\ width=${column.visible_width} text_size=60\
</#if>\ </#if></#foreach>\
</#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>>;^ @@@^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>>;^

879
superx/xml/rpta_assistent.xsl

File diff suppressed because it is too large Load Diff

56
superx/xml/rpta_templates.xsl

@ -426,8 +426,6 @@ isIgnorePagination="{$isIgnorePagination}" >
<xsl:param name="ergebniselementOrdnr" /> <xsl:param name="ergebniselementOrdnr" />
<xsl:param name="colId" /> <xsl:param name="colId" />
<xsl:param name="colCount" /> <xsl:param name="colCount" />
<xsl:param name="isLastVisibleColumInRow" />
<xsl:variable name="x"><xsl:text>0</xsl:text> <xsl:variable name="x"><xsl:text>0</xsl:text>
<xsl:for-each select="/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[ @width &gt; 0 and not(starts-with(f_name,'hidden')) and not(starts-with(f_name,'next')) and @id &lt; $colId ]"> <xsl:for-each select="/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[ @width &gt; 0 and not(starts-with(f_name,'hidden')) and not(starts-with(f_name,'next')) and @id &lt; $colId ]">
<xsl:variable name="previousColumnWidth"> <xsl:variable name="previousColumnWidth">
@ -438,7 +436,6 @@ isIgnorePagination="{$isIgnorePagination}" >
<xsl:with-param name="colId" select="@id" /> <xsl:with-param name="colId" select="@id" />
<xsl:with-param name="colCount" select="$colCount"/> <xsl:with-param name="colCount" select="$colCount"/>
<xsl:with-param name="previousX" select="0"/> <xsl:with-param name="previousX" select="0"/>
<xsl:with-param name="isLastVisibleColumInRow" select="''"/>
</xsl:call-template> </xsl:call-template>
</xsl:variable> </xsl:variable>
@ -458,17 +455,14 @@ isIgnorePagination="{$isIgnorePagination}" >
<xsl:param name="colId" /> <xsl:param name="colId" />
<xsl:param name="colCount" /> <xsl:param name="colCount" />
<xsl:param name="previousX" /> <xsl:param name="previousX" />
<xsl:param name="isLastVisibleColumInRow" />
<xsl:variable name="defbreite"><xsl:value-of select="sum(/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[ @width &gt; 0 and not(starts-with(f_name,'hidden')) and not(starts-with(f_name,'next')) ]/@width )" /></xsl:variable> <xsl:variable name="defbreite"><xsl:value-of select="sum(/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[ @width &gt; 0 and not(starts-with(f_name,'hidden')) and not(starts-with(f_name,'next')) ]/@width )" /></xsl:variable>
<xsl:variable name="ndefbreite"><xsl:value-of select="count(/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[ @width = '' and not(starts-with(f_name,'hidden')) and not(starts-with(f_name,'next'))])" /></xsl:variable> <xsl:variable name="ndefbreite"><xsl:value-of select="count(/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[ @width = '' and not(starts-with(f_name,'hidden')) and not(starts-with(f_name,'next'))])" /></xsl:variable>
<xsl:variable name="gesamtbreite"><xsl:value-of select="$defbreite+($ndefbreite* $std_spaltenbreite)" /></xsl:variable> <xsl:variable name="gesamtbreite"><xsl:value-of select="$defbreite+($ndefbreite* $std_spaltenbreite)" /></xsl:variable>
<xsl:variable name="width"><xsl:value-of select="/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[@id=$colId]/@width"/></xsl:variable> <xsl:variable name="width"><xsl:value-of select="/ergebnisse/ergebnis/ergebniselement[@ordnr=$ergebniselementOrdnr]/sqlerg/headers/header[@id=$colId]/@width"/></xsl:variable>
<xsl:comment><xsl:value-of select="concat('defbreite=',$defbreite)" /></xsl:comment> <xsl:comment><xsl:value-of select="concat('defbreite=',$defbreite)" /></xsl:comment>
<xsl:choose> <xsl:choose>
<xsl:when test="$isLastVisibleColumInRow='+' or ($colCount - 1) =$colId"> <xsl:when test="($colCount - 1) =$colId ">
<!-- letzte Spalte wird immer vom rechten Seitenrand minus vorherige Spalten gerechnet, <!-- letzte Spalte -->
weil es Rundungsfehler bei der Spaltenbreite geben kann.-->
<xsl:value-of select="$druckbreite - $previousX"/> <xsl:value-of select="$druckbreite - $previousX"/>
</xsl:when> </xsl:when>
<xsl:when test="$width != ''"> <xsl:when test="$width != ''">
@ -649,7 +643,7 @@ weil es Rundungsfehler bei der Spaltenbreite geben kann.-->
<xsl:variable name="colCount"> <xsl:variable name="colCount">
<xsl:choose> <xsl:choose>
<xsl:when test="($rowCounter - 1)=$rowCount"> <xsl:when test="($rowCounter - 1)=$rowCount">
<xsl:value-of select="$currentRowColCount"/> <xsl:value-of select="$totalColCount"/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:value-of select="$totalColCount"/> <xsl:value-of select="$totalColCount"/>
@ -660,17 +654,7 @@ weil es Rundungsfehler bei der Spaltenbreite geben kann.-->
<xsl:for-each select="th" > <xsl:for-each select="th" >
<xsl:variable name="colId"><xsl:value-of select="position()-1" /></xsl:variable> <xsl:variable name="colId"><xsl:value-of select="position()-1" /></xsl:variable>
<xsl:if test="@isHidden='false'"> <xsl:if test="@isHidden='false'">
<xsl:variable name="isLastVisibleColumInRow"> <xsl:comment><xsl:text>colId=</xsl:text><xsl:value-of select="$colId"/></xsl:comment>
<xsl:call-template name="getLastVisibleColumInRow">
<xsl:with-param name="currentColId" select="$colId" />
<xsl:with-param name="remainingRows" select="$rowCount - ($rowCounter + 1)" />
</xsl:call-template>
</xsl:variable>
<xsl:comment><xsl:text>colId=</xsl:text><xsl:value-of select="$colId"/>
<xsl:text>
isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRow"/>
</xsl:comment>
<xsl:variable name="columnX"> <xsl:variable name="columnX">
<xsl:call-template name="getColumnX"> <xsl:call-template name="getColumnX">
<xsl:with-param name="druckbreite" select="$druckbreite"/> <xsl:with-param name="druckbreite" select="$druckbreite"/>
@ -678,7 +662,6 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo
<xsl:with-param name="ergebniselementOrdnr" select="$ordnr"/> <xsl:with-param name="ergebniselementOrdnr" select="$ordnr"/>
<xsl:with-param name="colId" select="$colId" /> <xsl:with-param name="colId" select="$colId" />
<xsl:with-param name="colCount" select="$colCount"/> <xsl:with-param name="colCount" select="$colCount"/>
<xsl:with-param name="isLastVisibleColumInRow" select="$isLastVisibleColumInRow"/>
</xsl:call-template> </xsl:call-template>
</xsl:variable> </xsl:variable>
<xsl:comment><xsl:text>columnX=</xsl:text><xsl:value-of select="$columnX"/></xsl:comment> <xsl:comment><xsl:text>columnX=</xsl:text><xsl:value-of select="$columnX"/></xsl:comment>
@ -692,7 +675,6 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo
<xsl:with-param name="colId" select="$colId" /> <xsl:with-param name="colId" select="$colId" />
<xsl:with-param name="colCount" select="$colCount"/> <xsl:with-param name="colCount" select="$colCount"/>
<xsl:with-param name="previousX" select="$columnX"/> <xsl:with-param name="previousX" select="$columnX"/>
<xsl:with-param name="isLastVisibleColumInRow" select="$isLastVisibleColumInRow"/>
</xsl:call-template> </xsl:call-template>
</xsl:variable> </xsl:variable>
@ -718,22 +700,10 @@ isLastVisibleColumInRow=</xsl:text><xsl:value-of select="$isLastVisibleColumInRo
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:variable> </xsl:variable>
<xsl:variable name="computedWidth">
<!--wenn eine Spalte die letzte sichtbare ist, wird der berechnete Wert
genommen. Wenn nicht, wird mit colspan multipliziert.-->
<xsl:choose>
<xsl:when test="$isLastVisibleColumInRow='+'">
<xsl:value-of select="$columnWidth"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$columnWidth * $colspan"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<textField isStretchWithOverflow="true"> <textField isStretchWithOverflow="true">
<reportElement style="TableColumnHeader" mode="Opaque" stretchType="ContainerHeight" <reportElement style="TableColumnHeader" mode="Opaque" stretchType="ContainerHeight"
x="{$columnX}" y="{$y_offset+( $rowCounter * $zeilenhoehe )}" width="{$computedWidth}" height="{$zeilenhoehe*$rowspan}" /> x="{$columnX}" y="{$y_offset+( $rowCounter * $zeilenhoehe )}" width="{$columnWidth * $colspan}" height="{$zeilenhoehe*$rowspan}" />
<textFieldExpression><xsl:text>"</xsl:text> <textFieldExpression><xsl:text>"</xsl:text>
<xsl:call-template name="newline_to_backslash_n"> <xsl:call-template name="newline_to_backslash_n">
<xsl:with-param name="string" select="."/> <xsl:with-param name="string" select="."/>
@ -1130,20 +1100,4 @@ genommen. Wenn nicht, wird mit colspan multipliziert.-->
<xsl:text disable-output-escaping="yes"><![CDATA[ +"Datenstand: "+ $F{standdatum} + "; " + "Erstellt: "+ DATEFORMAT( TODAY(), "dd.MM.YYYY")]]></xsl:text></textFieldExpression> <xsl:text disable-output-escaping="yes"><![CDATA[ +"Datenstand: "+ $F{standdatum} + "; " + "Erstellt: "+ DATEFORMAT( TODAY(), "dd.MM.YYYY")]]></xsl:text></textFieldExpression>
</textField> </textField>
</xsl:template> </xsl:template>
<xsl:template name="getLastVisibleColumInRow">
<xsl:param name="currentColId" />
<xsl:param name="remainingRows" />
<!--ermittelt ob eine Spalte die letzte sichtbare ist
bei verknüpften Spalten ist die letzte Header-Zeile immer relevant, egal ob sichtbar oder nicht.
Zurückgegeben werden die Anzahl der sichtbaren Zellen als "+",
d.h. genau ein "+" bedeutet, dass es die letzte Spalte ist.
-->
<xsl:for-each select="../th">
<xsl:variable name="nr" select="position()" />
<xsl:if test="$nr &gt; $currentColId and (@isHidden='false' or $remainingRows=0)">
<xsl:text>+</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

Loading…
Cancel
Save