Version 5.6.0

SetVariable

Weist einer Variablen einen Wert zu. Der Wert kann aus mehreren Elementen bestehen (siehe zweites Beispiel).

Kindelemente

Attribute, ClearPage, Column, Columns, Copy-of, Element, ForAll, Loop, Ol, Output, Paragraph, PlaceObject, SortSequence, Switch, Table, TableNewPage, Tablehead, Tablerule, Td, Tr, Ul, Value

Elternelemente

AtPageCreation, AtPageShipout, Case, Contents, ForAll, Function, Include, Layout, Loop, Otherwise, Record, SavePages, Section, Table, Until, While

Attribute

execute (optional, seit Version 4.11.8)
Führe den Inhalt sofort aus oder später bei der Benutzung.
  • now: Führe den Inhalt sofort aus (Voreinstellung).
  • later: Führe den Inhalt bei der Benutzung von Copy-of aus. Experimentell.
select (XPath-Ausdruck, optional)
Inhalt, der der Variablen zugewiesen wird.
trace (optional)
Zeige Informationen über die Zuweisung in der Logdatei.
  • yes: Zeige Informationen.
  • no: Zeige keine Informationen (Voreinstellung).
type (optional, seit Version 4.3.10)
Setzt den Datentyp der Variable. Derzeit nur für MetaPost-Variablen unterstützt.
  • sd:any: Der voreingestellte Datentyp für die speedata Layoutsprache.
  • mp:boolean: Ein boolescher Wert für MetaPost.
  • mp:cmykcolor: Eine MetaPost CMYK Farbe.
  • mp:numeric: Ein nummerischer Wert für MetaPost.
  • mp:string: Eine Zeichenkette für MetaPost.
  • mp:rgbcolor: Eine MetaPost RGB Farbe.
variable (Text)
Name der Variablen, der etwas zugewiesen werden soll.

Bemerkungen

Variablen haben eine globale Sichtbarkeit.

Beispiel

<Record element="produkt">
  <SetVariable variable="Textbreite" select="5"/>
  <PlaceObject>
    <Textblock width="{ $Textbreite }">
      <Paragraph>
        <Value select="$Artikelnummer"/>
      </Paragraph>
    </Textblock>
  </PlaceObject>
</Record>

Folgendes Beispiel zeigt, wie mehrere Absätze in einer Variablen gespeichert werden, um sie anschließend in einem Textblock auszugeben.

<Record element="produkte">
  <SetVariable variable="Artikeltext"/>
  <ProcessNode select="artikel"/>
  <PlaceObject>
    <Textblock>
      <Value select=" $Artikeltext "/>
    </Textblock>
  </PlaceObject>
</Record>

<Record element="artikel">
  <SetVariable variable="Artikeltext">
    <!-- Der vorherige Inhalt wird hinzugefügt -->
    <Value select="$Artikeltext"/>
    <Paragraph>
      <Value select=" @beschreibung " />
    </Paragraph>
  </SetVariable>
</Record>