Sich wiederholende Tabellen

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Designobjekte/Funktionen > Tabellen >

Sich wiederholende Tabellen

Sich wiederholende Tabellen funktionieren folgendermaßen:

 

Ein sich wiederholendes Element der Seitenquelle wird mit der sich wiederholenden Tabelle verknüpft (siehe Beispiele unten).
Die Tabelle kann mit beliebig vielen Zeilen und Spalten erstellt werden.
Die von Ihnen erstellte Tabelle wiederholt sich für jede Instanz des sich wiederholenden Elements. Wenn das Tabellendesign also zwei Zeilen enthält, so wird für jede Instanz des sich wiederholenden Elements eine Tabelle mit zwei Zeilen erstellt.
Der Inhalt der Tabelle kann dynamisch sein. XPath-Ausdrücke innerhalb der Tabelle haben als Kontext-Node das damit verknüpfte, sich wiederholende Element. Die entsprechende Instanz für jede Instanz des Elements bildet den Kontext-Node für die jeweilige Tabelle (siehe Beispiele unten).
Auch ein Anhängen/Löschen-Steuerelement kann zur Tabelle hinzugefügt werden. Dadurch kann der Endbenutzer neue Zeilen zur Tabelle hinzufügen und einzelne Zeilen löschen. Wenn der Benutzer z.B. eine Zeile hinzufügt, wird eine neue Instanz des damit verknüpften Tabellenelements zur Struktur der Seitenquelle hinzugefügt. Diese Änderungen können in der Datenquelle gespeichert werden, wodurch die Endbenutzer die Datenquelle modifizieren können.

 

Eine sich wiederholende Tabelle wird zu dem Zeitpunkt, zu dem Sie das Steuerelement "Tabelle" in das Design ziehen, definiert.

 

Beispiel

Angenommen, ein Element Person in der Seitenquelle enthält die Child-Elements First, Last und Phone. Das Element Person (seine Instanzen) kann mehrmals vorkommen. Wir möchten die folgende Tabelle erstellen:

 

 

<First>

<Last>

<Phone>

<Person>

 

 

 

<Person>

 

 

 

<Person>

 

 

 

 

Da sich das Element Person wiederholt, können wir eine sich wiederholende Tabelle erstellen, die mit dem Element Person verknüpft ist. Im Dialogfeld "Neue Tabelle" (siehe unten) geben wir an, dass die Tabelle eine Zeile und vier Spalten hat. Der Kontext-Node innerhalb dieser Tabelle ist Person. In jeder Spalte erstellen wir Seitenquellenlinks zu den entsprechenden Child-Nodes (siehe Abbildung unten). Die erste Spalte enthält einen XPath-Ausdruck zur Nummerierung des aktuellen Person-Elements, z.B.: count(preceding-sibling::*)+1. Das Design würde in etwa folgendermaßen aussehen:

MTDTablesDynamicRowsDes01

Die generierte Tabelle würde in etwa folgendermaßen aussehen:

MTDTablesDynamicRowsSim01

Anmerkung:Ein Datenstream kann anhand eines XPath/XQuery-Ausdrucks generiert und als Datenquelle verwendet werden. Diese Art von Datenquelle wird jedoch nur für die aktuelle Verwendung erstellt und kann nicht als Seitenquelle für die Verwendung an einer anderen Stelle im Dokument aufgerufen werden.

 

Unterschied zwischen einer sich wiederholenden Tabelle und einer Tabelle mit dynamischen Zeilen

Eine sich wiederholende Tabelle unterscheidet sich auf die folgenden Arten von einer Tabelle mit dynamischen Zeilen:

 

In einer sich wiederholenden Tabelle wird die gesamte Tabelle mit der sich wiederholenden Datenstruktur verknüpft. Für jede Instanz wird eine neue Tabelle generiert.
In einer Tabelle mit dynamischen Zeilen wird eine Tabellenzeilengruppe mit der sich wiederholenden Struktur verknüpft.

 

Dieser Unterschied wirkt sich im Design folgendermaßen aus:

Eine Tabelle mit dynamischen Zeilen kann eine Kopf- und/oder Fußzeile haben, die auf die gesamte Tabelle angewendet wird. Es handelt sich um eine Kopf-/Fußzeile für die Tabelle. Wenn eine Kopf-/Fußzeile für eine sich wiederholende Tabelle erforderlich ist, kann sie manuell außerhalb der sich wiederholenden Tabelle hinzugefügt werden. Wenn sie innerhalb der sich wiederholenden Tabelle hinzugefügt wird, so werden diese Kopf-/Fußzeilen für jede Tabelle und jede Elementinstanz wiederholt.
Da Tabellen auf einem Gerätedisplay normalerweise mit einem Abstand oberhalb und unterhalb davon dargestellt werden, enthalten sich wiederholende Tabellen einen vertikalen Abstand zwischen jedem Paar sich wiederholender Tabellen.

 

Um eine statische Tabelle, nachdem sie erstellt wurde, in eine sich wiederholende Tabelle zu ändern, ändern Sie ihre Eigenschaft "wiederholt" in true und verknüpfen Sie anschließend die Tabelle mit einem sich wiederholenden Element aus einer Seitenquelle.

 

Erstellen einer sich wiederholenden Tabelle

So erstellen Sie eine sich wiederholende Tabelle:

 

1.Aktivieren Sie im Dialogfeld "Neue Tabelle", das angezeigt wird, sobald das Steuerelement "Tabelle" in das Design gezogen wurde (Abbildung unten), die Option Tabelle wiederholt sich, um die Tabelle zu einer sich wiederholenden Tabelle zu machen. Beachten Sie, dass es hier die Tabelle ist, die für jede Instanz einer sich wiederholenden Datenzeile wiederholt wird.

Click to expand/collapse

2.Definieren Sie die Anzahl der statischen Spalten und Zeilen für die sich wiederholende Tabelle. Sie können Spalten und Zeilen zu einem späteren Zeitpunkt über das Kontextmenü der Tabelle zur sich wiederholenden Tabelle hinzufügen.
3.Definieren Sie, ob automatische Anhängen/Löschen-Steuerelemente hinzugefügt werden sollen. Falls dies der Fall ist, erhält jede sich wiederholende Tabelle in der Lösung, d.h. jede Zeile, eine Löschen-Schaltfläche. Die gesamte sich wiederholende Tabellenstruktur erhält eine Anhängen-Schaltfläche, um eine sich wiederholende Tabelle (Zeile) zur Struktur hinzuzufügen (siehe Abbildung einer simulierten Lösung unten).

MTDDBCSimulator01Cropped

4.Wenn Sie im Dialogfeld "Neue Tabelle" auf OK klicken, wird die Tabelle zum Design hinzugefügt. Die sich wiederholende Tabelle muss nun mit dem sich wiederholenden Element aus der Seitenquelle verknüpft werden (siehe Abbildung unten).

MTDTablesDynamic01

5.Die Verknüpfung eines sich wiederholenden Elements mit der sich wiederholenden Tabelle erfolgt durch Ziehen des Elements aus dem Fenster "Seitenquellen" in die Tabelle.
6.Sie können nun Inhalt zu den Zellen der Tabelle hinzufügen. Der Kontext-Node für XPath-Ausdrücke in Tabellenzellen ist der Element-Node, der mit der sich wiederholenden Tabelle verknüpft ist (siehe vorheriger Schritt). Um den Kontext-Node zu verwenden, sollten XPath-Ausdrücke in Tabellenzellen relativ zum Kontext-Node sein. Bei Zelleninhalt kann es sich um eine (statische oder dynamische) verschachtelte Tabelle oder ein Steuerelement "Seite" (mit oder ohne Link zu einem Seitenquellen-Node) oder sogar um Seitenquellen-Nodes handeln. Wenn ein Seitenquellen-Node in eine Zelle gezogen wird, werden die Daten in dieser Zelle editierbar. In der Abbildung unten wurden vier Steuerelemente (von links nach rechts) hinzugefügt: eine Beschriftung, ein Bearbeitungsfeld, eine Beschriftung und ein Bearbeitungsfeld.

MTDDBCTableRepeating02
 
Mit dieser sich wiederholenden Tabelle wird in der MobileTogether-Lösung die folgende, sich wiederholende Struktur erstellt.

 
MTDDBCSimulator01Cropped

Befehle zur Umstrukturierung von Tabellen stehen im Kontextmenü der Tabelle zur Verfügung. Tabellenformatierungseigenschaften finden Sie im Fenster "Stile & Eigenschaften". Siehe auch Dynamische Zeilen und Dynamische Spalten.

 


© 2019 Altova GmbH