Grazie. Ho sostituito questo ciclo al posto di quello che girava su tutti gli articoli, però in questo modo non mi stampa nulla, solo il totale alla fine:
codice:
<LTAB><xsl:value-of select="pos:translate('********* Articles and groups **********')"/></LTAB>
<xsl:value-of select="pos:translate('Cod.')"/>
<RTAB col="16"><xsl:value-of select="pos:translate('Description')"/></RTAB>
<RTAB col="25"><xsl:value-of select="pos:translate('Weight')"/></RTAB>
<RTAB col="30"><xsl:value-of select="pos:translate('Qty')"/></RTAB>
<RTAB col="40"><xsl:value-of select="pos:translate('Amount')"/></RTAB>
<xsl:for-each select="trans-item[not(hash-code = preceding-sibling::*/hash-code)]">
<xsl:value-of select="substring(concat(code,' ',description),1,20)"/>
<xsl:if test="measure_unit='weight'">
<RTAB col="25"><xsl:value-of select="pos:numFormat(qty_weight,'###,##0.000')"/></RTAB>
</xsl:if>
<RTAB col="30"><xsl:value-of select="pos:numFormat(qty,'###,##0.##')"/></RTAB>
<RTAB col="40"><xsl:value-of select="pos:numFormat(amount)"/></RTAB>
<xsl:value-of select="substring(concat(code,' ',description),1,20)"/>
<RTAB col="30"><xsl:value-of select="pos:numFormat(sum(.//qty),'###,##0.##')"/></RTAB>
<RTAB col="40"><xsl:value-of select="pos:numFormat(sum(.//amount))"/></RTAB>
</xsl:for-each>
Quindi ho tentato invece di sostituirlo al ciclo sugli articoli ma mantenendolo dentro al ciclo sui grupppi, ma mi stampa solo il resoconto per ogni "group" (panini, secondi, caffeteria...)
codice:
<LTAB><xsl:value-of select="pos:translate('********* Articles and groups **********')"/></LTAB>
<xsl:value-of select="pos:translate('Cod.')"/>
<RTAB col="16"><xsl:value-of select="pos:translate('Description')"/></RTAB>
<RTAB col="25"><xsl:value-of select="pos:translate('Weight')"/></RTAB>
<RTAB col="30"><xsl:value-of select="pos:translate('Qty')"/></RTAB>
<RTAB col="40"><xsl:value-of select="pos:translate('Amount')"/></RTAB>
<xsl:for-each select="articles/group">
<xsl:for-each select="trans-item[not(hash-code = preceding-sibling::*/hash-code)]">
<xsl:value-of select="substring(concat(code,' ',description),1,20)"/>
<xsl:if test="measure_unit='weight'">
<RTAB col="25"><xsl:value-of select="pos:numFormat(qty_weight,'###,##0.000')"/>
</RTAB>
</xsl:if>
<RTAB col="30"><xsl:value-of select="pos:numFormat(qty,'###,##0.##')"/></RTAB>
<RTAB col="40"><xsl:value-of select="pos:numFormat(amount)"/></RTAB>
</xsl:for-each>
<xsl:value-of select="substring(concat(code,' ',description),1,20)"/>
<RTAB col="30"><xsl:value-of select="pos:numFormat(sum(.//qty),'###,##0.##')"/></RTAB>
<RTAB col="40"><xsl:value-of select="pos:numFormat(sum(.//amount))"/></RTAB>
</xsl:for-each>
Quindi ho lasciato immutati i cicli iniziali inserendo il preceding nel ciclo degli articoli ma non varia rispetto al risultato iniziale, quindi ristampa articoli uguali su più righe.
codice:
<LTAB><xsl:value-of select="pos:translate('********* Articles and groups **********')"/></LTAB>
<xsl:value-of select="pos:translate('Cod.')"/>
<RTAB col="16"><xsl:value-of select="pos:translate('Description')"/></RTAB>
<RTAB col="25"><xsl:value-of select="pos:translate('Weight')"/></RTAB>
<RTAB col="30"><xsl:value-of select="pos:translate('Qty')"/></RTAB>
<RTAB col="40"><xsl:value-of select="pos:translate('Amount')"/></RTAB>
<xsl:for-each select="articles/group">
<xsl:for-each select="articles[not(hash-code = preceding-sibling::*/hash-code)]">
<xsl:value-of select="substring(concat(code,' ',description),1,20)"/>
<xsl:if test="measure_unit='weight'">
<RTAB col="25"><xsl:value-of select="pos:numFormat(qty_weight,'###,##0.000')"/>
</RTAB>
</xsl:if>
<RTAB col="30"><xsl:value-of select="pos:numFormat(qty,'###,##0.##')"/></RTAB>
<RTAB col="40"><xsl:value-of select="pos:numFormat(amount)"/></RTAB>
</xsl:for-each>
<xsl:value-of select="substring(concat(code,' ',description),1,20)"/>
<RTAB col="30"><xsl:value-of select="pos:numFormat(sum(.//qty),'###,##0.##')"/></RTAB>
<RTAB col="40"><xsl:value-of select="pos:numFormat(sum(.//amount))"/></RTAB>
</xsl:for-each>
Ho provato anche con il following...
mi dispiace ma non riesco a capire come inserirlo nella struttura di stampa.