Smart forms - tekstveldtabellen


De geavanceerde formulierinstellingen op tabblad Smart forms zijn alleen beschikbaar in WGP add-on 'Configuratie en beheer van WebGIS App'. Deze smart form-functionaliteit is ook alleen van toepassing voor de WebGIS App.

JSON-code

Voor een formulier van de WebGIS App kun je in een tekstveld een soort subformulier configureren dat bestaat uit een tabel waaraan je rijen kunt toevoegen. Deze zogenaamde tekstveldtabel wordt uiteindelijk in de database als een alfanumerieke waarde (tekenreeks) opgeslagen die bestaat uit een JSON-object dat geconverteerd is naar tekst. Je kunt in de JSON-code op tabblad Smart forms van pagina Formulier beheren (in WGP Beheer) zelf definiëren welke kolommen er in deze tekstveldtabel moeten zitten.

In het schema-gedeelte van de JSON-code declareer je het tekstveld als type 'array' (lijst van items) en voor de tabel creëer je (als item in de array) een JSON-object. De eigenschappen ('properties') van dit object corresponderen met de kolommen van de tabel. Elke eigenschap heeft een naam en een datatype. In het options-gedeelte van de JSON-code geef je met type 'table' aan dat het betreffende tekstveld een tabel vertegenwoordigt. Hiermee implementeer je een gebruikersinterface waarmee je in het formulier aan de tabel rijen kunt toevoegen of rijen weer kunt verwijderen.

De JSON-code om voor het tekstveld 'code' een tekstveldtabel te genereren ziet er bijvoorbeeld als volgt uit:

 Voorbeeldcode type 'table'
{
  "schema": {
    "type": "object",
    "title": "Naam en nummer",
    "properties": {
      "code": {
        "type": "array",
        "title": "...",
        "items": {
          "type": "object",
          "properties": {
            "naam": {
              "type": "string",
              "title": "Naam"
            },
            "nummer": {
              "type": "integer",
              "title": "Nummer"
            },
            "klant": {
              "type": "boolean",
              "title": "Klant?",
              "value": "false"
            }
          }
        }
      }
    }
  },
  "options": {
    "fields": {
      "code": {
        "type": "table"
      }
    }
  },
  "view": {
    "locale": "nl_BE"
  }
}

Gebruik in de app

De volgende afbeelding laat zien hoe het formulier met een lege tekstveldtabel er in de WebGIS App uitziet:

Tabel Naam en nummer - leeg

Het formulier werkt alleen als het tekstveld een tabel (JSON-object) bevat en geen andere waarde.

De afgebeelde tabel bezit de kolommen Naam (tekst), Nummer (integer) en Klant? (boolean) die in de JSON-code zijn gedefinieerd (zie voorbeeldcode). De knop Voeg toe en de functies onder Acties zijn onderdeel van de gebruikersinterface die met het veldtype 'table' is gegenereerd. Met de knop Voeg toe voeg je de eerste rij aan een lege tabel toe. Je kunt vervolgens de velden van die rij invullen. De functies onder Acties zijn alleen beschikbaar als de tabel al rijen bevat. Je gebruikt ze voor de volgende tabel-transacties:

  • (+) toevoegen van een rij onder de huidige rij
  • (-) verwijderen van de huidige rij
  • (^) de huidige rij naar boven verplaatsen
  • (v) de huidige rij naar onder verplaatsen

Op de volgende manier kun je gegevens in een nog lege tabel invoeren:

  1. Tik op de knop Voeg toe. Een nieuwe lege rij verschijnt waarvan je de velden kunt invullen.  

    Tabel Naam en Nummer - eerste rij

  2. Vul de velden van de rij in. 

    Het booleanveld Klant? wordt weergegeven door een selectievakje. In de JSON-code (zie voorbeeldcode) is aangegeven dat dit veld de default-waarde 'false' heeft. Daarom is het selectievakje standaard niet aangevinkt. 

  3. Druk onder Acties op (+)  om een nieuwe rij toe te voegen. Vul in de nieuwe rij weer de velden in. Wanneer de tabel meerdere rijen heeft, kun je met (^) of de (v)  de rij naar boven of naar onder verplaatsen. Met (-) kun je een rij verwijderen.Op deze manier kun je de tabel vullen.

    De volgende afbeelding laat de tabel zien waaraan rijen voor Jan, Piet en Klaas zijn toegevoegd.

    Tabel Naam en Nummer - gevuld

  4. Sla het formulier (en de tabel) op door op de knop Opslaan te tikken. Wanneer je een verkeerde waarde hebt ingevuld, verschijnt daarover een foutmelding, bijvoorbeeld wanneer je geen numerieke waarde voor Nummer invult. 

    Foute invoer

  5. Bekijk in de feature-info van het betreffende object hoe de tabel als alfanumerieke waarde in het tekstveld 'code' is opgeslagen.

    Feature info met tabel als tekst

Gerelateerde pagina's