Hi,
Wenn du nur einen Text auf die spalten verteilen musst, geht das.
Etwas kompliziert, aber möglich: du teilst die Gesamtlänge des Textes durch die Anzahl der Spalten und füllst nur jeweils den entsprechenden Textteil in die Spalte.
Im Archiv gibt es von mir ein Template für eine Lösung mit zwei Spalten (zwar für HTML, aber das ist in Prinzip dasselbe), wo auch das Wortende brücksichtigt wird (damit ein Wort nicht mitten drinn zerschnitten wird)
Ich glaube, da liegt immer noch ein Missverständnis vor. Es ist so, dass eine ausgegebene Adresse auf eine Zeile passen kann, sie kann aber auch bis zu drei Zeilen benötigen, je nach Länge. Wäre jede Adresse nur eine Zeile lang, wären die Spalten ja unten jeweils bis zum Rand ausgefüllt. Ich möchte nun aber verhindern, dass eine mehrzeilige Adresse am Ende einer Spalte auseinandergerissen wird, wenn der Platz nicht reicht. Die Adresse soll also zusammengehalten werden und wird damit automatisch auf die nächste Spalte umbrochen. Den entsprechenden Code habe ich hier zwecks Übersicht entfernt. Dadurch bleiben aber ein oder zwei Zeilen am Ende der Spalte leer. Der Text in der Spalte soll nun vertikal so ausgedehnt werden, dass diese Leerzeilen ausgefüllt werden. Eben Blocksatz, wie ich das auch z.B. in QuarkXPress machen kann. Dein HTML-Template dürfte mir da leider nicht weiterhelfen, da es ein reines XSL:FO Problem ist.
Es tut mir leid, ich verstehe das Problem noch immer nicht.
Was funktioniert an deinem Template nicht?
Das Template funktioniert schon. Ich suchte nur nach einer Möglichkeit abzufragen, ob mit dem Ausgeben des aktuellen Datensatzes gerade eine neue Spalte begonnen wurde. Ich möchte diese IF-Schleife um eben diese Abfrage ergänzen, da die erste Adresse eine neuen Spalte _immer_ mit ausgeschriebenen Nachnamen erfolgen soll.
<xsl:when test=". = preceding::nachname" and (...AbfrageNeueSpalte...)>
Was aber trotzdem und immer noch davon ausgeht, dass innerhalb von einem <name>-Element mehrere <nachname>-Elemente vorkommen können.
Es kommt auf jeden Fall nur eines vor.
Gruß
Turok