The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Quiq::Html::Table::Simple - HTML-Tabelle

BASE CLASS

Quiq::Hash

DESCRIPTION

Die Klasse dient der Generierung von HTML-Tabellen mit einer freien Struktur, wie Formulartabellen. Die Definition erfolgt zeilenweise wie in HTML, wobei die tr- und td-Information durch Listen angegeben werden.

Der Wert des Objekt-Attributs rows, das den Inhalt der Tabelle definiert, hat den Aufbau:

  [[@keyValTr,[@keyValTd,$content],...],...]
  ^^          ^                    ^    ^
  ||          |                    |    weitere Zeilen
  ||          |                    weitere Kolumnen
  ||          erste Kolumne
  |erste Zeile mit Attributen @keyValTr
  Array der Zeilen

Die Listen @keyValTr und @KeyValTd definieren die Attribute der tr- bzw. td-Tags. Besteht @keyValTr aus einer ungeraden Anzahl an Elementen, wird das erste Element $val als Klassenname interpretiert und zu class=>$val expandiert.

ATTRIBUTES

border => $n (Default: undef)

border-Attribut der Tabelle.

cellpadding => $n (Default: undef)

cellpadding-Attribut der Tabelle.

cellspacing => $n (Default: 0)

cellspacing-Attribut der Tabelle.

class => $class (Default: undef)

class-Attribut der Tabelle.

data => \@keyVal (Default: [])

data-* Attribute der Tabelle.

id => $id (Default: undef)

Id der Tabelle.

rows => \@rows (Default: [])

Liste der Zeilen (und Kolumnen).

style => $cssCode (Default: undef)

style-Attribut der Tabelle.

width => $width (Default: undef)

width-Attribut der Tabelle.

EXAMPLE

Klasse:

  $html = Quiq::Html::Table::Simple->html($h,
      class => 'my-table',
      border => 1,
      rows => [
          ['my-title',['A'],[colspan=>2,'B']],
          [[rowspan=>2,'a1'],['de'],['Text1_de']],
          [['en'],['Text1_en']],
          [[rowspan=>2,'a2'],['de'],['Text2_de']],
          [['en'],['Text2_en']],
      ],
  );
  • tr-Angabe 'my-title' ist äquivalent zu class=>'my-title'

  • mit -tag=>'th' wird aus einer beliebigen Zelle eine Head-Zelle gemacht.

Aussehen:

  +--+-----------+
  |A |B          |
  +--+--+--------+
  |  |de|Text1_de|
  |a1+--+--------+
  |  |en|Text1_en|
  +--+--+--------+
  |  |de|Text2_de|
  |a2+--+--------+
  |  |en|Text2_wn|
  +--+--+--------+

HTML:

  <table class="my-table" border="1" cellspacing="0">
  <tr class="my-title">
    <td>A</td>
    <td colspan="2">B</td>
  </tr>
  <tr>
    <td rowspan="2">a1</td>
    <td>de</td>
    <td>Text1_de</td>
  </tr>
  <tr>
    <td>en</td>
    <td>Text1_en</td>
  </tr>
  <tr>
    <td rowspan="2">a2</td>
    <td>de</td>
    <td>Text2_de</td>
  </tr>
  <tr>
    <td>en</td>
    <td>Text2_en</td>
  </tr>
  </table>

METHODS

Konstruktor

new() - Instantiiere Objekt

Synopsis

  $e = $class->new(@keyVal);

Description

Instantiiere ein Tabellen-Objekt und liefere eine Referenz auf dieses Objekt zurück.

Objektmethoden

html() - Generiere HTML

Synopsis

  $html = $e->html($h);
  $html = $class->html($h,@keyVal);

Description

Generiere den HTML-Code des Tabellen-Objekts und liefere diesen zurück. Als Klassenmethode gerufen, wird das Objekt intern erzeugt und mit den Attributen @keyVal instantiiert.

VERSION

1.188

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2020 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.