von Patrick Gundlach |

Feature der Woche: Wiederholender Tabellenkopf (2)

Nachdem ich letzte Woche Tabellenkopf (und -Fuß) über <Tablehead> (und das Gegenstück <Tablefoot>) gezeigt habe, wird diese Woche ein dynamischer Tabellenkopf erzeugt. Die Variante aus letzter Woche und diese Variante können kombiniert werden.

<Tr sethead="yes" backgroundcolor="lightgray">
  <Td>
    <Paragraph>
      <Value>Neuer Kopf 2</Value>
    </Paragraph>
  </Td>
</Tr>

Die »Magie« steckt in sethead="yes" in der Tabellenzeile. Dadurch wird diese Zeile nun auf der nächsten Seite ganz oben wiederholt, direkt unterhalb eines eventuell vorhandenen statischen Tabellenkopfs. Das eignet sich sehr gut für Zwischenüberschriften oder Abschnitte in Tabellen.

Ein etwas konstruiertes Beispiel ist folgendes:

<Layout xmlns="urn:speedata.de:2009/publisher/en">

  <Pageformat width="100mm" height="60mm"/>
  <Options mainlanguage="German"/>

  <Record element="data">
    <PlaceObject>
      <Table padding="1mm" stretch="max">
        <Tablehead page="all">
          <Tablerule color="black"/>
          <Tr backgroundcolor="gray">
            <Td>
              <Paragraph>
                <Value>Kopf statisch</Value>
              </Paragraph>
            </Td>
          </Tr>
          <Tablerule color="black"/>
        </Tablehead>
        <Loop select="7" variable="i">
          <Tr>
            <Td>
              <Paragraph>
                <Value>Zeileninhalt Zeile </Value>
                <Value select="$i"/>
              </Paragraph>
            </Td>
          </Tr>
        </Loop>
        <Tr sethead="yes" backgroundcolor="lightgray">
          <Td>
            <Paragraph>
              <Value>Neuer Kopf 1</Value>
            </Paragraph>
          </Td>
        </Tr>
        <Loop select="7" variable="i">
          <Tr>
            <Td>
              <Paragraph>
                <Value>Zeileninhalt Zeile </Value>
                <Value select="$i"/>
              </Paragraph>
            </Td>
          </Tr>
        </Loop>
        <Tr sethead="yes" backgroundcolor="lightgray">
          <Td>
            <Paragraph>
              <Value>Neuer Kopf 2</Value>
            </Paragraph>
          </Td>
        </Tr>
        <Loop select="7" variable="i">
          <Tr>
            <Td>
              <Paragraph>
                <Value>Zeileninhalt Zeile </Value>
                <Value select="$i"/>
              </Paragraph>
            </Td>
          </Tr>
        </Loop>
      </Table>
    </PlaceObject>
  </Record>
</Layout>

Diese Datei (layout.xml) wie gehabt übersetzen mit sp --dummy, um eine Datendatei mit dem Inhalt <data /> vorzutäuschen.

Das Ergebnis aus der layout.xml von oben.

In der Serie »Feature der Woche« beschreibe ich jeden Montag mehr oder weniger nützliche Eigenschaften des Publishers. Kommentare gerne an mich per E-Mail oder einfach im Kommentarfeld.