Tavole utente

user_table genera una tavola a partire da un array bidimensionale contenete le righe che compongono la tabella. L’output può essere indirizzato sia nella finestra di logo, sia nei file di output.

Argomenti:

  • title: il titolo della tavola
  • matrix: l’array bidimensionale con la matrice della tabella
  • options: un hasc con le opzioni:
    • :title => string: il titolo della tavola
    • :subtitle => string: il sottitolo della tavola
    • :head => 1|2: il numero di righe di intestazione (default: 0)
    • :col2stat => true|false: definisce la seconda colonna come colonna delle statistiche (default: false)
    • :corner => true|false: definisce la prima cella come corner (default: true)
    • :totals => n|true|false: il numero di righe di totali: true = 1 (default: false)
    • :footer => string|[strimg, string]: la riga o le righe di note della tabella

L’istruzione ritorna un oggetto a cui possono essere applicati i seguenti metodi:

  • .title(string): il titolo della tavola
  • .header(array): la prima riga di inntestazione
  • .header2(array): la seconda riga di inntestazione
  • .corner(string|array): il corner
  • .footer(string|array): il footer
  • .totals([array]): la/le riga/righe di totale
  • .align(array): un array con gli allineamenti(:left, :right, :center) delle colonne per la tabella della finestra di log. L’ultima indicazione viene riciclata per le restanti colonne
  • .render(:log|:out|:both): genera la tavola verso la finestra di log (:log), i file di output (:out), entrambi (:both, il default)

Nella matrice dei dati, un vettore vuoto o pieno solo di valori nil, indica una linea di separazione.

Nella prima riga di intestazione, le celle a nil indicano lo spanning delle colonne.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
m = [
   [nil, "TOTALE", "Area geografica", nil, nil, nil],
   [nil, nil, "Nord Ovest", "Nord Est", "Centro", "Sud"],
   ["Sì", 46, 15, 9, 14, 8],
   ["No", 86, 24, 10, 16, 36],
   [],
   ["(n.a.)", 4, 1, 1, 0, 2],
]
table = user_table "Test tabella", m, :head => 2
table.render
+--------+--------+------------+----------+--------+------+
|                      Test tabella                       |
+--------+--------+------------+----------+--------+------+
|        | TOTALE |            Area geografica            |
+--------+--------+------------+----------+--------+------+
|        |        | Nord Ovest | Nord Est | Centro | Sud  |
+--------+--------+------------+----------+--------+------+
| Sì     |     46 |         15 |        9 |     14 |    8 |
| No     |     86 |         24 |       10 |     16 |   36 |
+--------+--------+------------+----------+--------+------+
| (n.a.) |      4 |          1 |        1 |      0 |    2 |
+--------+--------+------------+----------+--------+------+
_images/simple-table1.png