[GastForen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Forenindex Erweiterte Suche Suchergebnisse
Ihre Suche lieferte 6 Ergebnisse
Automatisierte Tabellen mit XML erstellen
Hallo,

also ich bin mittlerweile recht weit gekommen, habe verstanden wie ich die Breite der jeweiligen spalten auf die Gesamtbreite berechne.

Auch das er sich das jeweilige template zieht.

Das einzige das jetzt noch nicht klappt ist sozusagen die Schleife. Sobald ich Beispielsweise eine zusätzliche Produktgruppe anlege mit 3-Spalten kommt immer ein Fehler das das table element nicht gültig ist oder in der falsche Reihenfolge angezeigt wird.

Zur aktuellen XML:

Die Reihenfolge des template Wertes ist jetzt grad -> 3,3,3 -> 4,4,4,4 -> 5,5,5,5,5 -> 3,3,3 = Fehler
Bei dieser Reihenfolge geht es problemlos -> 3,3,3 -> 4,4,4,4 -> 5,5,5,5,5 = Funktioniert

Sobald ich eine weitere Tabelle erstellen möchte bzw. Anhänge kommt der Fehler -> https://ibb.co/vZ2QFYg

Wie kann ich den eine schleife programmieren die immer alle weiteren PRODUCT_GROUP Elemente prüft?

Danke nochmal für die bisherige Hilfe.


Anbei die aktuelle XSL:

Code
<?xml version="1.0" encoding="UTF-8"?>  
<xsl:stylesheet version="2.0"
xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"
xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" indent="yes"></xsl:output>

<xsl:attribute-set name="mytablestyle">
<xsl:attribute name="aid5:tablestyle">Tabelle_RB</xsl:attribute>
<xsl:attribute name="aid:table">table</xsl:attribute>
<xsl:attribute name="aid:trows"><xsl:value-of select="count(ITEM_PRICE)+1"/></xsl:attribute>
<xsl:attribute name="aid:tcols"><xsl:value-of select="count(ITEM_PRICE[1]/*)+1"/></xsl:attribute>
</xsl:attribute-set>

<xsl:template match="/">
<FIRMA>
<xsl:apply-templates select="Root/FIRMA/SERIES_NAME"/>
<GRUPPE>
<xsl:apply-templates select="Root/FIRMA/PRODUCT_GROUPS"/>
</GRUPPE>
</FIRMA>
</xsl:template>


<xsl:template match="SERIES_NAME">
<SERIE>
<PRODUKTNAME aid:pstyle="Produktname" >
<xsl:value-of select="PRODUKTNAME"/>
<xsl:text>&#xA;</xsl:text>
</PRODUKTNAME>
</SERIE>
</xsl:template>

<xsl:template match="PRODUCT_GROUPS">

<xsl:choose>

<xsl:when test="PRODUCT_GROUP">
<xsl:variable name="width-pricefield" select="(20)"/>

<!-- TEMPLATE MIT 3 -->
<xsl:if test="PRODUCT_GROUP[@template='3']">
<PRODUKTGRUPPE-MIT-3>
<PRICES>

<xsl:variable name="num-of-price-columns" select="3"/>
<xsl:variable name="trows-attribute-value" select="count(//PRODUCT_GROUP[@template='3'][1]/ITEM_PRICE) + 1"/>
<xsl:element aid:pstyle="ZusatzProduktPreis" name="Tabelle">


<table
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"
xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/"
aid5:tablestyle="Tabelle_RB"
aid:table="table"
aid:trows="{$trows-attribute-value}"
aid:tcols="4">

<cell aid:table="cell" aid:theader="" aid:crows="1" aid:ccols="1"></cell>

<xsl:for-each select="//PRODUCT_GROUP[@template='3']">
<cell aid:table="cell" aid:theader="" aid:crows="1" aid:ccols="1"><xsl:value-of select="PRODUCT_GROUP_TITLE"/></cell>
</xsl:for-each>

<xsl:for-each select="//PRODUCT_GROUP[@template='3']/ITEM_PRICE">

<xsl:sort select="count(preceding-sibling::ITEM_PRICE)" data-type="number"/>
<xsl:if test="(position() - 1 + $num-of-price-columns) mod $num-of-price-columns = 0">
<cell aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="{$width-pricefield}">
<xsl:value-of select="PRICE_FIELD"/>
</cell>
</xsl:if>

<cell aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="">
<xsl:apply-templates select="PRICE"/>
</cell>

</xsl:for-each>
</table>
</xsl:element>

<xsl:text>&#xA;</xsl:text>

</PRICES>
</PRODUKTGRUPPE-MIT-3>
</xsl:if>

<!-- TEMPLATE MIT 4 -->
<xsl:if test="PRODUCT_GROUP[@template='4']">
<PRODUKTGRUPPE-MIT-4>
<PRICES>

<xsl:variable name="num-of-price-columns" select="4"/>
<xsl:variable name="trows-attribute-value" select="count(//PRODUCT_GROUP[@template='4'][1]/ITEM_PRICE) + 1"/>
<xsl:element aid:pstyle="ZusatzProduktPreis" name="Tabelle">

<table
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"
xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/"
aid5:tablestyle="Tabelle_RB"
aid:table="table"
aid:trows="{$trows-attribute-value}"
aid:tcols="5">

<cell aid:table="cell" aid:theader="" aid:crows="1" aid:ccols="1"></cell>

<xsl:for-each select="//PRODUCT_GROUP[@template='4']">
<cell aid:table="cell" aid:theader="" aid:crows="1" aid:ccols="1"><xsl:value-of select="PRODUCT_GROUP_TITLE"/></cell>
</xsl:for-each>

<xsl:for-each select="//PRODUCT_GROUP[@template='4']/ITEM_PRICE">

<xsl:sort select="count(preceding-sibling::ITEM_PRICE)" data-type="number"/>
<xsl:if test="(position() - 1 + $num-of-price-columns) mod $num-of-price-columns = 0">
<cell aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="{$width-pricefield}">
<xsl:value-of select="PRICE_FIELD"/>
</cell>
</xsl:if>

<cell aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="">
<xsl:apply-templates select="PRICE"/>
</cell>

</xsl:for-each>
</table>
</xsl:element>

<xsl:text>&#xA;</xsl:text>

</PRICES>
</PRODUKTGRUPPE-MIT-4>
</xsl:if>

<!-- TEMPLATE MIT 5 -->
<xsl:if test="PRODUCT_GROUP[@template='5']">
<PRODUKTGRUPPE-MIT-5>
<PRICES>
<xsl:variable name="num-of-price-columns" select="5"/>
<xsl:variable name="trows-attribute-value" select="count(//PRODUCT_GROUP[@template='5'][1]/ITEM_PRICE) + 1"/>


<xsl:variable name="width" select="((523.276 + $width-pricefield) div 11)"/>
<xsl:variable name="width-price" select="($width * 2)"/>

<xsl:element aid:pstyle="ZusatzProduktPreis" name="Tabelle">


<table
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/"
xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/"
xmlns:rd="http://www.rolanddreger.net"
aid5:tablestyle="Tabelle_RB"
aid:table="table"
aid:trows="{$trows-attribute-value}"
aid:tcols="6">

<cell aid:table="cell" aid:theader="" aid:crows="1" aid:ccols="1"></cell>

<xsl:for-each select="//PRODUCT_GROUP[@template='5']">
<cell aid:table="cell" aid:theader="" aid:crows="1" aid:ccols="1"><xsl:value-of select="PRODUCT_GROUP_TITLE"/></cell>
</xsl:for-each>

<xsl:for-each select="//PRODUCT_GROUP[@template='5']/ITEM_PRICE">

<xsl:sort select="count(preceding-sibling::ITEM_PRICE)" data-type="number"/>
<xsl:if test="(position() - 1 + $num-of-price-columns) mod $num-of-price-columns = 0">
<cell aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="{$width-pricefield}">
<xsl:value-of select="PRICE_FIELD"/>
</cell>
</xsl:if>

<cell aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="{$width-price}">
<xsl:apply-templates select="PRICE"/>
</cell>

</xsl:for-each>
</table>
</xsl:element>

<xsl:text>&#xA;</xsl:text>

</PRICES>
</PRODUKTGRUPPE-MIT-5>
</xsl:if>

</xsl:when>

<xsl:otherwise>
<xsl:text>Keine Produktgruppe ziehen!</xsl:text>
</xsl:otherwise>

</xsl:choose>

</xsl:template>


<xsl:template match="PRICE">
<xsl:value-of select="."/>
</xsl:template>

</xsl:stylesheet>




Die aktuelle XML:

Code
<?xml version="1.0" encoding="UTF-8"?> 
<Root>
<FIRMA>
<SERIES_NAME>
<PRODUKTNAME>Musterprodukt</PRODUKTNAME>
</SERIES_NAME>


<PRODUCT_GROUPS>

<PRODUCT_GROUP template="3">
<PRODUCT_GROUP_TITLE>Produktgruppe1</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>1</PRICE_FIELD>
<PRICE>10 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>2</PRICE_FIELD>
<PRICE>20 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>3</PRICE_FIELD>
<PRICE>30 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>4</PRICE_FIELD>
<PRICE>40 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>5</PRICE_FIELD>
<PRICE>50 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>6</PRICE_FIELD>
<PRICE>60 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>7</PRICE_FIELD>
<PRICE>70 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>8</PRICE_FIELD>
<PRICE>80 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>9</PRICE_FIELD>
<PRICE>90 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>10</PRICE_FIELD>
<PRICE>100 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>

<PRODUCT_GROUP template="3">
<PRODUCT_GROUP_TITLE>Produktgruppe2</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>1</PRICE_FIELD>
<PRICE>110 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>2</PRICE_FIELD>
<PRICE>120 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>3</PRICE_FIELD>
<PRICE>130 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>4</PRICE_FIELD>
<PRICE>140 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>5</PRICE_FIELD>
<PRICE>150 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>6</PRICE_FIELD>
<PRICE>160 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>7</PRICE_FIELD>
<PRICE>170 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>8</PRICE_FIELD>
<PRICE>180 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>9</PRICE_FIELD>
<PRICE>190 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>10</PRICE_FIELD>
<PRICE>200 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>

<PRODUCT_GROUP template="3">
<PRODUCT_GROUP_TITLE>Produktgruppe3</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>1</PRICE_FIELD>
<PRICE>210 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>2</PRICE_FIELD>
<PRICE>220 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>3</PRICE_FIELD>
<PRICE>230 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>4</PRICE_FIELD>
<PRICE>240 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>5</PRICE_FIELD>
<PRICE>250 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>6</PRICE_FIELD>
<PRICE>260 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>7</PRICE_FIELD>
<PRICE>270 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>8</PRICE_FIELD>
<PRICE>280 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>9</PRICE_FIELD>
<PRICE>290 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>10</PRICE_FIELD>
<PRICE>300 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>




<PRODUCT_GROUP template="4">
<PRODUCT_GROUP_TITLE>Produktgruppe1</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>20</PRICE_FIELD>
<PRICE>250 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>21</PRICE_FIELD>
<PRICE>300 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>22</PRICE_FIELD>
<PRICE>350 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>23</PRICE_FIELD>
<PRICE>350 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>

<PRODUCT_GROUP template="4">
<PRODUCT_GROUP_TITLE>Produktgruppe2</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>34</PRICE_FIELD>
<PRICE>400 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>35</PRICE_FIELD>
<PRICE>450 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>36</PRICE_FIELD>
<PRICE>500 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>37</PRICE_FIELD>
<PRICE>500 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>

<PRODUCT_GROUP template="4">
<PRODUCT_GROUP_TITLE>Produktgruppe3</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>42</PRICE_FIELD>
<PRICE>550 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>43</PRICE_FIELD>
<PRICE>600 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>44</PRICE_FIELD>
<PRICE>650 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>45</PRICE_FIELD>
<PRICE>650 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>

<PRODUCT_GROUP template="4">
<PRODUCT_GROUP_TITLE>Produktgruppe4</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>51</PRICE_FIELD>
<PRICE>700 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>52</PRICE_FIELD>
<PRICE>750 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>53</PRICE_FIELD>
<PRICE>800 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>54</PRICE_FIELD>
<PRICE>800 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>




<PRODUCT_GROUP template="5">
<PRODUCT_GROUP_TITLE>Produktgruppe1</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>20</PRICE_FIELD>
<PRICE>250 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>21</PRICE_FIELD>
<PRICE>300 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>22</PRICE_FIELD>
<PRICE>350 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>23</PRICE_FIELD>
<PRICE>350 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>24</PRICE_FIELD>
<PRICE>400 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>

<PRODUCT_GROUP template="5">
<PRODUCT_GROUP_TITLE>Produktgruppe2</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>34</PRICE_FIELD>
<PRICE>450 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>35</PRICE_FIELD>
<PRICE>500 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>36</PRICE_FIELD>
<PRICE>550 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>37</PRICE_FIELD>
<PRICE>600 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>38</PRICE_FIELD>
<PRICE>650 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>

<PRODUCT_GROUP template="5">
<PRODUCT_GROUP_TITLE>Produktgruppe3</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>42</PRICE_FIELD>
<PRICE>700 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>43</PRICE_FIELD>
<PRICE>800 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>44</PRICE_FIELD>
<PRICE>900 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>45</PRICE_FIELD>
<PRICE>1000 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>46</PRICE_FIELD>
<PRICE>1100 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>

<PRODUCT_GROUP template="5">
<PRODUCT_GROUP_TITLE>Produktgruppe4</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>51</PRICE_FIELD>
<PRICE>700 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>52</PRICE_FIELD>
<PRICE>750 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>53</PRICE_FIELD>
<PRICE>800 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>54</PRICE_FIELD>
<PRICE>1050 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>55</PRICE_FIELD>
<PRICE>1200 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>

<PRODUCT_GROUP template="5">
<PRODUCT_GROUP_TITLE>Produktgruppe5</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>51</PRICE_FIELD>
<PRICE>700 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>52</PRICE_FIELD>
<PRICE>750 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>53</PRICE_FIELD>
<PRICE>800 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>54</PRICE_FIELD>
<PRICE>1050 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>55</PRICE_FIELD>
<PRICE>1200 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>



<PRODUCT_GROUP template="3">
<PRODUCT_GROUP_TITLE>Produktgruppe1</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>10</PRICE_FIELD>
<PRICE>10 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>20</PRICE_FIELD>
<PRICE>20 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>30</PRICE_FIELD>
<PRICE>30 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>40</PRICE_FIELD>
<PRICE>40 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>50</PRICE_FIELD>
<PRICE>50 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>60</PRICE_FIELD>
<PRICE>60 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>70</PRICE_FIELD>
<PRICE>70 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>80</PRICE_FIELD>
<PRICE>80 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>90</PRICE_FIELD>
<PRICE>90 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>100</PRICE_FIELD>
<PRICE>100 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>

<PRODUCT_GROUP template="3">
<PRODUCT_GROUP_TITLE>Produktgruppe2</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>10</PRICE_FIELD>
<PRICE>110 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>20</PRICE_FIELD>
<PRICE>120 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>30</PRICE_FIELD>
<PRICE>130 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>40</PRICE_FIELD>
<PRICE>140 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>50</PRICE_FIELD>
<PRICE>150 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>60</PRICE_FIELD>
<PRICE>160 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>70</PRICE_FIELD>
<PRICE>170 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>80</PRICE_FIELD>
<PRICE>180 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>90</PRICE_FIELD>
<PRICE>190 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>10</PRICE_FIELD>
<PRICE>200 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>

<PRODUCT_GROUP template="3">
<PRODUCT_GROUP_TITLE>Produktgruppe3</PRODUCT_GROUP_TITLE>
<ITEM_PRICE>
<PRICE_FIELD>10</PRICE_FIELD>
<PRICE>210 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>20</PRICE_FIELD>
<PRICE>220 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>30</PRICE_FIELD>
<PRICE>230 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>40</PRICE_FIELD>
<PRICE>240 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>50</PRICE_FIELD>
<PRICE>250 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>60</PRICE_FIELD>
<PRICE>260 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>70</PRICE_FIELD>
<PRICE>270 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>80</PRICE_FIELD>
<PRICE>280 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>90</PRICE_FIELD>
<PRICE>290 €</PRICE>
</ITEM_PRICE>
<ITEM_PRICE>
<PRICE_FIELD>100</PRICE_FIELD>
<PRICE>300 €</PRICE>
</ITEM_PRICE>
</PRODUCT_GROUP>


</PRODUCT_GROUPS>

</FIRMA>
</Root>

(107/0)
GREP-Stil Zahlengliederung - 5er-Zahlen und mehr
Hallo H4NN3S,

1.
Beziehen sich Deine Fragen auf einen
tasächlichen Text, oder willst Du wissen,
wie Du in Zukunft die Zahlen in gelieferten
Manuskripten bearbeiten kannst?

2.
Warum verwendest Du dieses GREP?
Antwort auf: (\d)\s?(m|mm|cm|km|qm|ha|qkm|l|ml|s|min|h|Hz|dB|kg|g|mg|t|Euro|Dollar|€|Prozent|PS|bar|°C)

Ich würde das erst mal ganz vergessen. Du siehst ja, so funktioniert es nicht.
Antwort auf: Schade, dass man damit nicht genauer arbeiten kann.

Man kann mit GREPs sehr genau arbeiten.
Nur muss man wissen, was man genau
bearbeiten will.

Du wolltest doch das GREP
Code
(?<=[1-9])\d(?=\d{3}\b)|\d(?=(\d{3}){2,}\b) 

für Dein Problem mit den vielstelligen Zahlen benutzen.

3.
Was die Rufnummer
0 144 564 564 564
betrifft. Wer schreibt denn solche
Rufnummer? Wer soll das denn später
schnell lesen können?

4.
Es wäre für weitere Antworten schon
hilfreich, wenn man weiß, wie lange Du
schon mit InDesign arbeitest.

5.
Ich arbeite auch mit ID CS6 und komme mit
den Möglichkeiten des GREPs bestens zurecht :-)

Gruß
Quarz
---------------------------------------
| Win10/64 Prof. | CS6 ver 8.1 |

(212/3)
GREP-Stil Zahlengliederung - 5er-Zahlen und mehr
Hallo Hannes,

das Problem mit programmierten Automatismen wie GREP eben auch einer ist, ist, dass Programme halt per se total pedantische Korinthenkacker sind, die nehmen alles wörtlich und zwar bis hin zu eigentlich unsichtbarem wie Wordabständen und Spationierungen.


Unterm Strich hilft da leider nur eins, sich auf die Denke des Programms einzulassen (Wir sind Gott sei Dank flexibel genug, wärs andersherum, wäre Programmierung nie seinen ersten Versuchen entwachsen.)

Konkret zu deinen Problemen:

GREP in ID CS6 tut das gleiche, wie in aktuellen Versionen. AFAIR kam mit der CS6 das \k Attribut hinzu, dass optionale Lookbehinds mit Variablen Längen einführte und für bestimmte Zwecke eine erhebliche Erleichterung darstellt, aber eben auch dir schon zur Verfügung stehen sollte.

Grundsätzlich ein guter Spickzettel fürs GREPpen in ID ist das Kapitel zu GREP aus Gregor Fellenz Buch zur ID Automatisierung:
https://www.indesignjs.de/.../04/GREP_Refrenz.pdf

Nun zu deinen Maßeinheiten:

du suchst eben nur nach dem Offensichtlichen, also der reinen Maßeinheit. Wenn das nicht fruchtet, wie in deinem Fall muss man sich einfach anschauen, was die gesuchten Bedingungen weiter eingrenzt, um eben nur zu finden, was auch gefunden werden soll.

In deinem Fall ja eben nicht nur eine beliebige Maßeinheit, sondern eine Maßeinheit mit einer Ziffer davor und eben einem Leerzeichen (oder evtl. noch einem Satzzeichen oder einer schliessenden Klammer) dahinter.

Also wäre der GREP folgendermaßen zu erweitern:
Code
(\d)\s?(m|mm|cm|km|qm|ha|qkm|l|ml|s|min|h|Hz|dB|kg|g|mg|t|Euro|Dollar|€|Prozent|PS|bar|°C)\b 


Das Wortende am Ende des GREPs sorgt nun dafür, dass nur die Maßeinheiten als separates Wort und nicht als Anfang eines anderen Wortes getroffen werden.

Dann muss noch der optionale Wortzwischenraum raus, denn du willst kaum Spationieren UND ein Leerzeichen haben.
Für die Fälle muß man dann getrennt vorgehen.

Nächstes Problem deines GREPs ist, dass ja zuviel gefunden wird. Für die Spationierung brauchts ja nur die letzte Ziffer der Zahl vor der Maßeinheit.

Hier kommt also wieder, wie in dem bisher mißglückten GREP für die 3er Gruppen in längeren Zahlen, ein Lookahead bzw. Lookbehind zum Einsatz.
In deinem Fall ein positives Lookahead (?=Bedingung), sprich nur wenn etwas bestimmtes hinter dem eigentlichen Treffer steht, soll das vorher gefundene als Treffer gewertet werden:

Code
(\d)(?=(m|mm|cm|km|qm|ha|qkm|l|ml|s|min|h|Hz|dB|kg|g|mg|t|Euro|Dollar|€|Prozent|PS|bar|°C)\b) 



MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/
(178/0)
GREP-Stil Zahlengliederung - 5er-Zahlen und mehr
Hallo Quarz,

um es kurz zu fassen ist GREP für mich absolutes Neuland. Ich habe in anderen Foren schon nach möglichen Lösungen gesucht, bin jedoch noch nicht so recht hinter die Funktionsweise von GREP gekommen. Daher mein Appell an Euch.

Ich arbeite seit ca 15 Jahren mit InDesign und suche nun nach Möglichkeiten wie ich gelieferte Fließtexte für eine Zeitung mithilfe von GREP für verschiedene Zwecke automatisieren kann.

Gruß H4NN3S
(152/1)
GREP-Stil Zahlengliederung - 5er-Zahlen und mehr
Hallo H4NN3S,

ich hab mal eine Liste Scripte zusammengestellt
und wie Du Dich ein bisschen über GREP kundig
machen kannst.

1. Hans Haesler
Script - TextReinigen
siehe Anlage

2.
http://regenechsen.de/...einfache-suchmuster/
Hab ich für mich mal eine pdf-Datei draus gemacht.
siehe Anlage

3.
Gerald Singelmann - GREP-Liste
Für mich unverzichtbar ;-)
siehe Anlage

4.
Was macht im GREP was?
Liste mit GREP-Wildcard - pdf-Datei
https://www.dropbox.com/t/0LkcGNl1CCQUAg8J

5.
Gregor Fellenz
Macht aus Querys (S & E) ein Script.
https://github.com/...ddScriptFolderToMenu

6.
Peter Kahrel - jede Menge Scripte
https://creativepro.com/...indesignscripts.html

7. Hans Haesler
Scripte
https://www.hilfdirselbst.org/...mp;limit=&page=0

Gruß
Quarz
---------------------------------------
| Win10/64 Prof. | CS6 ver 8.1 |
(119/0)
Kommentare von Indesign ins PDF
Hallo Leute
Ich bin auf der Suche nach einer Lösung wie ich Kommentare (Notizen) meines Indesign-Dokuments in ein PDF-Dokument bekomme.
Andres herum vom PDF ins Indesign ist ja machbar und funktioniert ganz gut.
Wir arbeiten aktuell noch mit der 2020 die 2021 ist auch vorhanden. WIN10
Ist denn in der aktuellen Version (16.irwas) eine solche Funktion mittlerweile enthalten? (sitze gerade im Homeoffice und kann das nicht testen)

Über "interaktives PDF" scheint es auch nicht zu funktionieren

Oder bleibt mir nur der Umweg über das PlugIn "PDFStickies" von kerntiff publishing systems https://www.kerntiff.co.uk/products-4-indesign/pdfstickies

Nutzt denn in der Runde hier jemand dieses Tool?
Taugt dat wat? (leider keine Demo vorhanden)
Brauche ich das PlugIn für jede Version extra?

Für weitere Informationen wäre ich sehr Dankbar
Vielen Dank im Vorhaus
MfG
Andy
(62/0)

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
26.10.2021

Online
Dienstag, 26. Okt. 2021, 10.00 - 10.30 Uhr

Webinar

In unserem ca. 30-minütigen kostenlosen Webinar zeigt Ihnen unser Produktmanager Karsten Schwarze, wie Sie mit ColorLogic ColorAnt, CoPrA und ZePrA einen konsistenten Farbmanagement Workflow aufbauen und die Druckqualität sichern.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=305

Mit ColorLogic ColorAnt & CoPrA & ZePrA zum perfekten Druckergebnis
Veranstaltungen
29.10.2021 - 08.07.2022

Digicomp Academy, Zürich
Freitag, 29. Okt. 2021, 13.00 Uhr - Freitag, 08. Juli 2022, 19.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: 10'500.– zzgl. 7.7% MWST
Dauer: 30 Tage(ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberater AT digicomp DOT ch