Home Entwicklung formatunabhängig Entwicklung formatunabhängig Mehrsprachigkeit
 UDO-Open Source
 Entwicklung und Bugs
 Entwicklung formatunabhängig

2.1.1 Neue Tabellenstruktur

Sehr wichtig  |  sehr schwierig

Damit die Tabellen in den Zielformaten besser aussehen bzw. handhabbar sind, ist eine Erweiterung der vorhandenen oder eine neue Tabellenstruktur notwendig.

Einen neue Tabellenstruktur hat den Vorteil, daß alte Texte ohne Änderung mit neuen UDO-Versionen übersetzt werden können. Außerdem braucht man keinen Handstand bei den Zielformaten zu machen, die sowas nicht unterstützen. Nachteil ist, daß man u.U. zwei verschiedene Tabellen pflegen muß für eine Sache, die eigentlich auch UDO erledigen könnte.

Folgende Features sollten unterstützt werden, soweit das Zielformat es zulässt (Kursiv gesetzte Sachen sind IMHO nicht so wichtig):

Ich habe hier mal eine Struktur entworfen, gebt mal Euren Kommentar dazu ab. Die Rahmen (aussen und innen) sollten ausschließlich durch die HTML-Elemente definiert werden. Für besondere "Rahmenbedingungen" könnten Angaben innerhalb von Style-Bereichen durchgeführt werden. Diese Stylebereiche können dann auch in anderen Zielformaten umgesetzt werden. Das übliche Setzen durch !hline bzw. die senkrechten Striche (|) kann erhalten bleiben.

Erstmal die ursprüngliche Tabellenstruktur:

!table_caption foo
!begin_table [l|l|l|l] !hline
A1 !! A2 !! A3 !! A4
B1 !! B2 !! B3 !! B4
C1 !! C2 !! C3 !! C4
!end_table

Und jetzt eine Erweiterung der alten Tabellenstruktur:

!table_caption foo
!table_summary Dies ist eine Zusammenfassung für nicht-visuelle Medien
!begin_table [l50|l|l25%|l] [BGC=text,BGI=text,B=x,F=text,CS=x,CP=x,R=text,H=x,W=x]
 [BGC=text,BGI=text,HA=x,VA=x,ABBR=text] !? A1 !! A2 !! A4
 (!label [B1] [Verweis]) !! B2 !! Die ist ein etwas längerer Text, den  ich hier in dieser Zeile fortführen möchte !! B4
(!rows [BGC=text,BGI=text,HA=text,VA=text]) C1 !! [COLS=x] C2 !! C4
!end_table
!? Hier fängt der eigentliche Zelleninhalt an.
 
!\ Hier ist die Tabellenzeile noch nicht zu Ende
Dieses Zeichen sollte man auch für mehrzeilige Überschriften etc. benutzen
 
B Breite des Außenrahmens
 
F Bezeichnung für Frames (Außenrahmen)
 
CS Wert für Cellspacing
 
CP Wert für Cellpadding
 
R Bezeichnung für Rules (Innenrahmen)
 
W Breite
 
H Höhe
 
HA Horizontale Ausrichtung
 
VA Vertikale Ausrichtung
 
BGC Hintergrundfarbe
 
BGI Hintergrundbild (Kein HTML-Standard!)
 
COLS Spalten verbinden
 
ROWS Zeilen verbinden
 
ABBR Hinweis für nicht-visuelle Medien
 
HEAD Kopfzeile einer Tabelle, die auf jeder Seite wiederholt wird
 
S Stylebereich innerhalb einer Zelle
 

Die Breite und Höhe von einzelnen Zellen sollte nicht unbedingt wählbar sein, schließlich sollten alle Spalten gleich breit bzw. alle Zeilen gleich hoch sein.

Auf Angaben für ganze Zeilen sollte verzichtet werden, denn die einzige Möglichkeit ist die Angabe der Hinter­grund­farbe, die auch für jede Zelle einzeln angegeben werden kann.

Als zusätzliches Attribut für Tabellen (HTML) sollte das Summary- und das Abreviation-Attribut eingeführt werden für nicht-visuelle Medien.

Hier folgt jetzt ein Beispiel...
!table_caption Autoren von UDO
!table_summary Dies ist eine Übersicht über die Autoren von UDO und die  jeweiligen Fachgebiete, die sie betreuen
!begin_table [l100|l|l25%|l] [B=3,F=void,CS=3,CP=3,R=rows,W=100%]
[HEAD] !? Programmierer !! Formate !! Systeme !! Sonstiges
[BGC=floralwhite] !? Ulf Dunkel !! ASC, HTML, PS, RTF, STG, WinHelp, XML  !! TOS, Windows, Mac, MagiCMac !!
(!label [Martin Elsässer] [Martin]) !! HTML, LaTeX, STG !! TOS !!
[ABBR=Alles über mich?] !? Norbert Hanz !! HTML, PS, RTF, STG, WinHelp, XML  !! TOS !! [VA=bottom,ROWS=2] !? WEB-Seite, Dokumentation
Volker Janzen !! HTML !! [BGC=navajowhite] !? Windows, Linux, MagicPC
Ulrich Kretschmer !! [HA=center,COLS=3] !? Dokumentation
Christian Krüger !! [HA=right] !? Postscript !! !!
(!rows [BGC=lime]) Uwe Mindrup !! HTML, XML, PHP !! !! Linux-Shell
Tobias Jung !! !! !! [BGI=./images/back.gif] !? WEB-Seite
!end_table


...und das Ergebniss für HTML ohne CSS
<table border="3" cellpadding="3" cellspacing="3" width="100%"
 frame="void" rules="rows" summary="Dies ist eine Übersicht über die
 Autoren von UDO und die jeweiligen Fachgebiete, die sie betreuen">
 <caption>Autoren von UDO</caption>
 <colgroup>
  <col width="100" />
  <col />
  <col width="25%" />
  <col />
 </colgroup>
 <tr align="left">
  <td width="100">Programmierer</td>
  <td>Formate</td>
  <td width="25%">Systeme</td>
  <td>Sonstiges</td>
 </tr>
 <tr align="left">
  <td bgcolor="floralwhite">Ulf Dunkel</td>
  <td>ASC, HTML, PS, RTF, STG, WinHelp, XML</td>
  <td>TOS, Windows, Mac, MagiCMac</td>
  <td> </td>
 </tr>
 <tr align="left">
  <td><a name="Martin">Martin Els&auml;sser</a></td>
  <td>HTML, LaTeX, STG</td>
  <td>TOS</td>
  <td> </td>
 </tr>
 <tr align="left">
  <td abbr="Alles &uuml;ber mich?">Norbert Hanz</td>
  <td>HTML, PS, RTF, STG, WinHelp, XML</td>
  <td>TOS</td>
  <td valign="bottom" rowspan="2">WEB-Seite, Dokumentation</td>
 </tr>
 <tr align="left">
  <td>Volker Janzen</td>
  <td>HTML</td>
  <td bgcolor="navajowhite">Windows, Linux, MagicPC</td>
 </tr>
 <tr align="left">
  <td>Ulrich Kretschmer</td>
  <td align="center" colspan="3">Dokumentation</td>
 </tr>
 <tr>
  <td>Christian Kr&uuml;ger</td>
  <td align="right">Postscript</td>
  <td> </td>
  <td> </td>
 </tr>
 <tr align="left" bgcolor="lime">
  <td>Uwe Mindrup</td>
  <td>HTML, XML, PHP</td>
  <td> </td>
  <td>Linux-Shell</td>
 </tr>
 <tr align="left">
  <td>Tobias Jung</td>
  <td> </td>
  <td> </td>
  <td background="./images/back.gif">WEB-Seite</td>
 </tr>
</table>



...und das Ergebniss für RTF
{\keep

\trowd\trhdr
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx6300
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx11400
\intbl
\ql Programmierer\cell
\ql Formate\cell
\ql Systeme\cell
\ql Sonstiges\cell
\row

\trowd
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clcbpat12\cellx1500
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx6300
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx11400
\intbl
\ql Ulf Dunkel\cell
\ql ASC, HTML, PS, RTF, STG, WinHelp, XML\cell
\ql TOS, Windows, Mac, MagiCMac\cell
\ql \cell
\row

\trowd
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx6300
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx11400
\intbl
\ql Martin Elsässer\cell
\ql HTML, LaTeX, STG\cell
\ql TOS\cell
\ql \cell
\row

\trowd
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx6300
\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clvertalb\clvmgf\cellx11400
\intbl
\ql {{\*\atrfstart 1}Norbert Hanz}{\v {\*\atrfend 1}
{\*\atnid NHz}{\*\atnauthor UDO Release 7 Patchlevel 0}\chatn
{\*\annotation{\*\atnref 1}\pard\plain \s16\fs20
{\field{\*\fldinst {PAGE \\# "'Seite: '#'\line '"}}{\fldrslt }}
{\chatn }{Alles über mich?}}}\cell
\ql HTML, PS, RTF, STG, WinHelp, XML\cell
\ql TOS\cell
\ql WEB-Seite, Dokumentation\cell
\row

\trowd
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clcbpat12\cellx6300
\clbrdrr\brdrs\clvmrg\cellx11400
\intbl
\ql Volker Janzen\cell
\ql HTML\cell
\ql Windows, Linux, MagicPC\cell
\cell
\row

\trowd
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clmgf\cellx3450
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clmrg\cellx6300
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clmrg\cellx11400
\intbl
\ql Ulrich Kretschmer\cell
\qc Dokumentation\cell
\cell
\cell
\row

\trowd
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx6300
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx11400
\intbl
\ql Christian Krüger\cell
\qr Postscript\cell
\ql \cell
\ql \cell
\row

\trowd
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clcbpat10\cellx1500
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clcbpat10\cellx3450
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clcbpat10\cellx6300
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clcbpat10\cellx11400
\intbl
\ql Uwe Mindrup\cell
\ql HTML, XML, PHP\cell
\ql \cell
\ql Linux-Shell\cell
\row

\trowd
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx6300
\clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx11400
\intbl
\ql Tobias Jung\cell
\ql \cell
\ql \cell
\ql WEB-Seite\cell
\row

}


Es empfiehlt sich, keine Rahmenformatierungen für ganze Zeilen durchzuführen, sondern immer einzelne Zellen zu formatieren. Das ist zwar etwas mehr Quelltext, aber es muß nicht zwischen Zell- und Zeilenformatierung unterschieden werden.




Ungeordnet (Tabellen)




Copyright © norbert@familie-hanz.de
Letzte Aktualisierung am 2. November 2006

Home Entwicklung formatunabhängig Entwicklung formatunabhängig Mehrsprachigkeit