Ga naar inhoud

Velden

Elke club houdt andere dingen bij. Een vlucht heeft bij de ene club een startwijze en een lierbedienaar, bij de andere ook motorminuten; een vliegtuig heeft een prijs per vluchtminuut; een persoon een contact in geval van nood. Die velden voeg je zelf toe: de custom velden.

  1. Ga naar Instellingen › [module], bv. Vliegtuigen, en open Custom velden.
  2. Klik op toevoegen (of op een bestaand veld om het te wijzigen).
  3. Vul de Naam in, kies het Type en de opties (zie hieronder).
  4. Bewaar met Opslaan in de header.
Het scherm om een veld te bewerken met naam, omschrijving, categorie, persoonsgegevens, type en de scripts
Het scherm om een veld te bewerken met naam, omschrijving, categorie, persoonsgegevens, type en de scripts
Instelling Betekenis
Ingeschakeld Een uitgeschakeld veld is nergens meer zichtbaar (lijsten, formulieren, filters, toegangsregels…), maar de opgeslagen gegevens blijven bewaard.
Naam De naam van het veld. Scripts gebruiken die naam, bv. flight['Passagier/instructeur'].
Omschrijving Uitleg bij het veld.
Category Groepeert velden op het formulier, bv. Administratie of Documenten.
Persoonsgegevens (AVG) Wat voor persoonsgegeven het is: Naam, E-mailadres, Telefoonnummer, Adres, Geboortedatum, Rijksregisternummer, Gevoelige vrije tekst — of Geen persoonsgegevens. Tabbr gebruikt dit om gegevens te anonimiseren.
Type Zie Veldtypes.
Toegangscontrole Wie het veld mag bekijken en bewerken. Leeg = zoals de entiteit zelf. Zie Toegang.
Gebruiken bij zoeken Het zoekvak van een lijst zoekt ook in dit veld.
Relevantie conditie Wanneer het veld van toepassing is — zie hieronder.
Default waarde berekening Een standaardwaarde — zie hieronder.
Berekening Een berekende waarde — zie hieronder.
Type Voor Opties
text Korte tekst: een code, een immatriculatie. Meerdere ingaves mogelijk
paragraph Langere tekst: een opmerking.
integer Een geheel getal: aantal starts.
decimal Een kommagetal: een prijs per minuut.
boolean Ja/nee: Clubvliegtuig, Actief.
date Een datum: Geldig tot, Lid sinds.
email, phone Een e-mailadres of telefoonnummer, gecontroleerd en genormaliseerd.
national-id Een rijksregisternummer, opgemaakt.
single-select Een keuze uit een lijst: Startwijze, Soort. De keuzemogelijkheden, elk met een waarde en een naam (sleep om te ordenen).
entity Een verwijzing naar een ander record: een persoon, een vliegtuig, een record van een module. De entiteit, meerdere, Vrije tekstingave mogelijk (bv. +1 of de naam van een gast), en een filter op welke records je kan kiezen.
file Bijlagen: een scan van een ARC, een medical. meerdere
address Een adres (bij personen).

Modules voegen er eigen types aan toe, bv. Motorminuten en Contact in geval van nood (Vluchten). De volledige lijst staat in de referentie.

Voorbeeld: een keuzelijst 'Soort' op een vliegtuig
{ "choices": [
{ "value": "SP", "name": "Zweefvliegtoestel" },
{ "value": "TMG", "name": "TMG" },
{ "value": "PP", "name": "Motor" }
] }

In scripts en filters gebruik je de waarde (SP), de gebruiker ziet de naam (Zweefvliegtoestel).

Drie kleine scripts maken een veld slim. Een veldscript is een stukje JavaScript waarvan de laatste expressie het resultaat is. Het record heet naar zijn entiteit: flight, airplane, person, membership…

Wanneer het veld van toepassing is. Is de uitkomst false, dan verdwijnt het veld van het formulier — en wordt een eventuele waarde gewist bij het bewaren.

Prijs per vluchtminuut — alleen bij zweefvliegtuigen
airplane.soort == 'SP'

De Default waarde berekening vult een veld voor bij het aanmaken (en wanneer het weer relevant wordt). Wat de gebruiker zelf invult, wordt nooit overschreven.

Startwijze — lier voor een zweefvliegtuig, TMG voor een TMG
let startwijze = null
if (flight?.toestel?.soort == 'SP') { startwijze = 'L' }
else if (flight?.toestel?.soort == 'TMG') { startwijze = 'TMG' }
startwijze

Een Berekening rekent de waarde uit bij elk bewaren: de gebruiker vult ze niet zelf in.

let start = flight['Motorminuten start'], landing = flight['Motorminuten landing']
let motorminuten = (start != null && landing != null) ? landing - start : undefined
if (motorminuten < 0) {
throw `'motorminuten landing' moet groter zijn dan 'motorminuten start'`
}
motorminuten

Een throw in een berekening stopt het bewaren en toont de tekst aan de gebruiker: zo maak je een veld verplicht of controleer je een invoer.

Wijzig je een berekening, dan rekent Tabbr de bestaande records niet vanzelf opnieuw uit. Doe dat met de actie Herbereken velden op een selectie in een lijst (dat kan niet ongedaan gemaakt worden).

Een veld dat een module meebrengt, toont “Dit veld hoort bij de module …”. Je kan het hernoemen en bepalen wie het ziet, maar niet verwijderen, uitschakelen of van type veranderen.

Tabbr bewaart elk eigen veld in een vrije slot van de entiteit (SLOT1, SLOT2, …). Je kiest die slot niet zelf, maar je komt hem tegen in de layout van kolommen ({{#SLOT4}}…{{/SLOT4}}) en in de technische weergave van filters (root:SLOT13). Scripts gebruiken altijd de naam van het veld.