Tabell
Tabell-objektet är en överskådlig uppställning av data, uppdelad i rader och kolumner, ofta
försedd med rubrik. Tabell återfinns under Other mappen i subgrafs-paletten.

Fig Tabell utan rubrik
Data för en kolumn är vanligvis samlad i ett vektor-attribut i databasen. Det finns ett
antal klasser med vektorer av olika typ, t ex AArray100 och AArray500 som innehåller vektorer
med 100 resp 500 element av typen Float32. Motvarande DArray, IArray och SArray objekt finns
för data av typen boolean, integer och strängar. I exemplet nedan har vi samlat data i 3 st
AArray100 en en SArray100.

Fig Array-objekt som innehåller tabell-data
Om vi tittar på den enkla tabellen i Fig Tabell utan rubrik ovan, visas två kolumner. Antalet
kolumner anges i Table.Columns. Column1.Attribute och Column2.Attribut är kopplade till var
sitt vektor attribut i databasen som innehåller de värden som ska visas upp i respektive
kolumn, H3-A1.Value och H3-A2.Value. Syntaxen är H1-A1.Value##Float32#100 vilket innebär att
attributet är en array av typen Float32 med 100 element. Man måste även specificera
formateringen av värdena i kolumnerna genom att fylla i Column1.Format och Column2.Format.
'%6.1f' innebär ett flyttal med 6 tecken och en decimal.
En del andra detaljer är ändrade på tabellen,
- fonten är satt till Lucida Sans, genom att välja ut tabellen och ange Lucida Sans i
verktygspanelen.
- Textstorleken är ökad till 12 med Textsize i verktygspanelen.
- Höjden på raderna har anpassats till den större texten genom att Table.RowHeight är 0.8.

Fig Attribut för tabell-objekt
Figuren nedan visar en tabell med rubrik. Här är Table.HeaderRow satt till 1. Textstorleken
för rubriken, Table.HeaderTextSize är satt till 12 och Table.HeaderTextBold är satt till 0
för att unvika fet text.

Fig Tabell med header row
I tabellen nedan har en vertikal skroll-list adderats genom att sätta Table.VerticalScrollbar
till 1. Notera att rubrik-raden inte skrollas utan visas hela tiden.
Tabell-objektet visar 3 kolumner, den första är kopplad till en sträng-vektor av typen
SArray100.Value, och har Column1.Format satt till %s. Första kolumnen är även markerad som en
header kolumn, genom att Table.HeaderColumn är satt till 1. Det innebär att gränslinjen mellan
första och andra kolumnen är lite tjockare.

Fig Tabell med vertikal skroll-list och header column
I figuren nedan visas hur en header column fungerar med en horisontell scroll-list. Den
horisontella skroll-listen fås genom att sätta Table.HorizontalScrollbar till 1. Notera att
skroll-listen inte omfattar den första kolumnen, utan den första kolumnen är alltid synlig.

Fig Tabell med horisontell skroll-list och header column
Tabell som visar objekt av samma typ
Nu ska vi titta på ett exempel där data inte ligger organiserat i vektorer, utan i ett antal
objekt av samma klass. I anläggningshierarkin under H3-Data ligger ett antal objekt av klassen
Thing som innehåller attributen Length, Height och Width. Vi vill visa innehållet i alla
Thing-objekt i en tabell, med ett objekt på varje rad. För att kunna göra det måste vi skapa
en vektor av typen Objid som innehåller identiteten på varje objekt som ska visas. Alltså
skapar vi ett objekt av typen OidArray och lägger in identiteten för all Thing objekt i denna.

Fig Objekt vars innehåll visas i tabellen till vänster, array av objid till höger
Vi skapar en tabell med fyra kolumner. Den första kolumnen ska visa namnet på objektet, den
andra attributet Length i respektive objekt, den tredje Width och den fjärde Height.
Tabellen konfigureras genom att vektorn med objektsidentieterna läggs in i Colomn1.Attribute.
I Column2.Attribute anges $header.Length##Float32. $header pekar på objektet som visas i
header kolumnen, dvs den första kolumnen. På samma sätt fyller vi i Column3.Attribute med
$header.Width##Float32 och Column4.Attribute med $header.Height##Float32.

Fig Attributen för kolumnerna i tabellen
Resultatet ses i figuren nedan. I första kolumnen visas namnet på objektet och på samma rad
innehållet i objektet.

Fig Tabell som visar objektnamn och innehållet i objekten
Tabell med utvals funktion
Ibland vill man kunna välja ut en cell i en tabell, och utföra någonting i plcprogrammet med
utvalt data eller objekt. Det här gör man genom att koppla en vektor av boolean till
attributet SelectAttribute för en kolumn. I exemplet nedan har H3-Select1.Value kopplats
till Column1.SelectAttribute.

Fig En utvals-vektor har angetts för den första kolumnen
Den första kolumnen kommer nu att vara känslig för klick och den utvalda cellen kommer att
markeras med en avvikande färg som kan anges i Table.SelectColor.

Fig Fjärde raden i första kolumnen har valts ut
Det element i vektorn som motvarar det utvalda objektet kommer att sättas till 1. I figuren
ovan är fjärde raden utvald, vilket medför att fjärde elementet i utvals-vektor sätts, dvs
H3-Select1.Value[3].

Fig Elementet som motvarar den utvalda raden markeras i utvals-vektorn