Tabellen

Één van de mogelijke bronnen van gegevens in select expressies is de verzameling tabellen, door middel van de bron table(...). Bijvoorbeeld:

[select $[nummer], $[naam] from table("DIEREN") end]

De vulling van de tabel kan geregeld worden door middel van een upload- en import van een Excel werkblad. Een Excel export van de tabelvulling is ook mogelijk.

Virtuele tabellen

Bovenstaande select is een Smartforms select expressie. Deze select biedt een subset van de functionaliteit van de veel uitgebreidere database SELECT expressie. Een verschil is dat de database SELECT selecteert uit een fysieke tabel, bijvoorbeeld de tabel Dieren:

SELECT nummer, naam FROM Dieren;

De Smartforms select selecteert uit de virtuele tabel "DIEREN", waarbij de gegevens zijn opgeslagen in vier fysieke database tabellen. In de praktijk betekent dit dat er voor een nieuwe tabel geen fysieke database tabel aangemaakt hoeft te worden, en betekent dit dat het aantal tabellen onbeperkt is, waarbij elke tabel met een unieke code zoals "DIEREN" geïdentificeerd wordt.

De virtuele tabellen worden in de Smartforms context verder tabellen genoemd.

Formaat van de gegevens

Een tabel heeft een unieke code, bijvoorbeeld "DIEREN". Hoofd- en kleine letters zijn daarbij niet onderscheidend. Een tabel heeft verder een vrij te kiezen naam.

Een tabel bestaat uit een aantal kolommen. Elke kolom heeft als informatie:

  • Een pad, bijvoorbeeld nummer of naam in het voorbeeld. Het pad kan langer zijn, bijvoorbeeld factuuradres/straatnaam of afleveradres/straatnaam. Het pad identificeert de kolom. Hoofd- en kleine letters zijn niet onderscheidend.
  • Een datatype. De Smartforms datatypes zijn mogelijk, bijvoorbeeld de string of de integer.

De kolom definieert het datatype voor alle waarden in de kolom. De kolom definieert geen NULL / NOT NULL nullability; een waarde kan altijd ontbreken en komt dan overeen met NULL / met de Smartforms nil.

Een tabel bestaat uit een aantal rijen. Elke rij heeft als informatie:

  • Een code. De code identificeert de rij. Hoofd- en kleine letters zijn niet onderscheidend.

De code heeft in veel gevallen geen toegevoegde waarde. Bijvoorbeeld bij de import van een Excel werkblad wijst het systeem rijnummers toe als codes. Voor de gebruiker hebben deze codes geen betekenis.

Een tabel bevat per cel (per kolom per rij) een waarde. De waarde kan ontbreken. De waarde is van het type zoals gedefinieerd voor de kolom. Dit is één van de Smartforms types, dus één van de volgende types:

  • Boolean
  • DateTime
  • Double
  • Integer
  • String

Per cel is er 0 of 1 waarde. Technisch zijn per cel meerdere waarden mogelijk. In veel gevallen wordt hier geen gebruik van gemaakt. Bijvoorbeeld de Excel import biedt geen mogelijkheid meer dan 1 waarde per cel te importeren.

Excel werkblad formaat

De vulling van een tabel kan uit een Excel werkblad komen, bijvoorbeeld:

nummer:integer soort:string naam:string aantalpoten:integer
1 hond Pluto 4
2 kat Felix 4
3 hond Bas 3
4 slang Sissie 0
5 slang Coby 0

Opmerkingen:

  • Het werkblad moet een eerste rij met kolomspecificaties bevatten.
  • De naam in een kolomspecificatie kan ook een pad zijn, bijvoorbeeld soort/naam.
  • Het type is optioneel. Als het type er staat dan moet het één van bovenstaande vijf Smartforms types zijn. Als het type er niet staat dan bepaalt het systeem het type op basis van de inhoud van de kolom; zie Type interpretatie.
  • Het voorbeeld gebruikt nummers in de eerste kolom, ten behoeve van het gebruik in een lijst control, maar dit is geen eis aan het werkblad.
  • Een cel kan leeg zijn. De betekenis hiervan is: geen waarde voor de cel. Voor alle types behalve string geldt een cel met daarin spatiëring als een lege cel. Voor een string blijft de spatiëring behouden en is de cel niet leeg. Voor het string type geldt een lege cel als geen waarde en niet als lege string.

Zie ook