Het besturingselement van een veld kiezen
Doel
Kiezen welk invoerbesturingselement een veld op een formulier gebruikt — een tekstvak met meerdere regels, een selectievakje, een schakelaar, een datumkiezer, een zoekveld of een vervolgkeuzelijst — en de eigenschappen van dat besturingselement instellen, zoals de weergavenotatie van een datum of de Ja/Nee-labels van een schakelaar.
Vereisten
- Je bent aangemeld als maker met toestemming om de oplossing van het formulier te bewerken.
- Het veld bestaat al op de tabel (zie Een veld aan een tabel toevoegen) en staat op het formulier (zie Een formulier maken).
Stappen
- Open de tabel in Tabellen en ga naar het tabblad Formulieren.
- Selecteer het formulier om de Formulierontwerper te openen.
- Selecteer het geplaatste veld op het formuliercanvas. Het deelvenster Eigenschappen toont de instellingen van dat veld.
- Open de vervolgkeuzelijst Besturingselement en kies een besturingselement:
- Standaard voor veldtype — het platform kiest de gebruikelijke invoer voor het gegevenstype van het veld. Dit is het uitgangspunt voor elk veld.
- Tekst — een tekstvak met één regel.
- Tekstgebied — een tekstvak met meerdere regels.
- Vinkje — een selectievakje.
- Schakelaar — een aan/uit-schakelaar.
- Datum, Datum en tijd, Tijd — een datum- en/of tijdkiezer.
- Zoekveld — een kiezer voor een record in een andere tabel.
- Vervolgkeuzelijst — een keuze uit een vaste lijst opties.
- Stel de eigenschappen van het besturingselement in. Die verschijnen onder de vervolgkeuzelijst
Besturingselement en hangen af van het gekozen besturingselement:
- Tekstgebied — Rijen, hoe hoog het vak is.
- Datum, Datum en tijd, Tijd (en hun Perzische tegenhangers) — Datumnotatie,
hoe de waarde wordt weergegeven. Gebruik
yyyyofyyvoor het jaar,MMMMvoor de naam van de maand,MMvoor het nummer ervan,ddvoor de dag,HHvoor het uur,mmvoor minuten enssvoor seconden; alle andere tekens worden getoond zoals getypt.dd/MM/yyyytoont 4 maart 2026 bijvoorbeeld als04/03/2026. Een Tijd-besturingselement accepteert ook een notatie —HH:mmofHH:mm:ss— en de tijdelijke aanduiding in het vak toont de vorm die bij het besturingselement past. Laat het leeg om de notatie op app-niveau te gebruiken (Instellingen → Kalender → Datumnotaties). - Vinkje, Schakelaar — Label voor Ja en Label voor Nee, de woorden die naast het besturingselement worden getoond voor elke toestand.
- Zoekveld — Zoektabel, de tabel naar wiens records het veld verwijst, gekozen uit een lijst met de tabellen van de omgeving; Zoekweergave, die bepaalt welke kolommen in de kiezer worden getoond (laat die op Standaard (automatisch bepaald) staan, tenzij dit ene veld andere kolommen moet tonen dan de gebruikelijke kiezer van de tabel); Te tonen rijen, hoeveel records de kiezer tegelijk aanbiedt (laat het leeg voor de standaardwaarde van 10; verhoog het — 50, 100, tot 500 — voor een tabel waarin een gebruiker door een lange lijst moet scrollen in plaats van te blijven typen); en, zodra de velden van de doeltabel zijn geladen, Naamveld, Veld voor tweede regel en Afbeeldingsveld — welk veld de naam van elke kandidaat is, de kleinere regel eronder en de afbeelding. Elk ervan blijft op Standaard (van de tabel) staan, tenzij dit ene zoekveld anders moet lezen dan de gebruikelijke keuze van de tabel. De afbeeldingskiezer biedt alleen bestands- en afbeeldingsvelden aan.
- Vervolgkeuzelijst — Opties, een door komma's gescheiden lijst van de keuzes die
worden aangeboden (bijvoorbeeld
Draft, Sent, Paid).
- Selecteer Opslaan.
Bestands- en afbeeldingsvelden kiezen zelf
Een bestands- of afbeeldingsveld toont altijd het bestandsbesturingselement van het platform, wat de vervolgkeuzelijst Besturingselement ook zegt. Er valt niets te kiezen: de kolom bevat een verwijzing naar een opgeslagen bestand in plaats van tekst die een gebruiker zou kunnen typen, dus een tekstvak erboven zou alleen uitnodigen tot een waarde die het platform weigert.
Wat de gebruiker ziet, wordt beschreven in Een bestand of afbeelding aan een record toevoegen. Twee dingen zijn goed om te weten als je het formulier ontwerpt: een bestand wordt opgeslagen wanneer het formulier wordt opgeslagen, zoals elke andere wijziging erop — ook bij een record dat al bestaat — en een afbeeldingsveld accepteert alleen afbeeldingen en begrenst ze kleiner dan een bestandsveld, omdat een afbeelding op een formulier bedoeld is om te tonen en niet om te archiveren.
Een afbeeldingsveld heeft één eigenschap die de moeite waard is om in te stellen: Afbeeldingsgrootte — Klein (de standaard, een miniatuur ter grootte van een avatar), Middel of Groot. Kies Groot voor een foto die je prominent wilt tonen — een portret van een persoon, een productfoto — en laat het op Klein staan voor een afbeelding ter grootte van een pictogram, zoals een vlag of een logo. De grootte verandert alleen hoe de afbeelding wordt weergegeven; de opgeslagen afbeelding verandert niet.
Hoe het Zoekveld-besturingselement werkt
Een zoekveld slaat de id op van een record in de gerelateerde tabel — een id die niemand redelijkerwijs kan onthouden. Het besturingselement toont er dus nooit een. Een gebruiker selecteert het veld, typt een deel van de naam van het record en kiest uit de overeenkomsten; het veld toont dan de naam van dat record. Wie het veld selecteert zonder te typen, krijgt de eerste records aangeboden, zodat er altijd iets te kiezen is.
De getoonde naam is standaard het primaire veld van de gerelateerde tabel — of, als dit besturingselement een Naamveld instelt, het veld dat je daar hebt gekozen. Is dat veld leeg op een record, dan wordt in plaats daarvan de id getoond — niet om te typen, maar zodat twee verder lege rijen van elkaar te onderscheiden zijn.
De naam, de tweede regel en de afbeelding per besturingselement overschrijven. Een zoekveld toont normaal wat de tabel heeft bepaald — het primaire veld als naam, het aangewezen veld als tweede regel, de recordafbeelding als afbeelding — zodat elk zoekveld van die tabel hetzelfde leest. Stel Naamveld, Veld voor tweede regel of Afbeeldingsveld in op dit besturingselement als één zoekveld moet afwijken: bijvoorbeeld een zoekveld "Goedkeurder" dat op e-mailadres leest, terwijl overal elders op naam wordt gelezen. Dit verandert alleen dit besturingselement; de eigen keuzes van de tabel, en elk ander zoekveld, blijven ongemoeid. Een overschrijving die een veld noemt dat niet meer bestaat, valt stilletjes terug op de keuze van de tabel in plaats van de regel leeg te maken.
De doorzochte tabel is de eigenschap Zoektabel van het besturingselement als die is ingesteld, en anders de tabel waar de relatie van het veld al naar verwijst. Een zoekveld zonder een van beide zegt dat op het formulier, in plaats van terug te vallen op een vak dat uitnodigt om een id te typen.
Het vergrootglas aan het eind van het vak is er altijd, of er nu een record is geselecteerd of niet — het markeert het veld als zoekveld in plaats van tekstvak, en het opent Geavanceerd zoeken.
Geavanceerd zoeken
Typen in het vak opent de snelle kiezer eronder — een paar records tegelijk, elk op twee regels. Het vergrootglas opent in plaats daarvan Geavanceerd zoeken: dezelfde records als volledige tabel, met elke kolom die de zoekweergave heeft gekozen in een eigen kolom, en Vorige/Volgende door de hele tabel in plaats van alleen de eerste overeenkomsten. Gebruik het vak als je ongeveer weet hoe het record heet, en het vergrootglas als je moet rondkijken.
Zoeken in het dialoogvenster begint weer bij de eerste pagina, en een rij selecteren kiest dat record en sluit het dialoogvenster.
Elk record in de kiezer wordt op twee regels getoond: de naam, en — als de gerelateerde tabel een zoekweergave heeft — de andere kolommen van die weergave eronder, zodat twee records met dezelfde naam van elkaar te onderscheiden zijn. In welke kolommen het typen zoekt, wordt apart ingesteld, met een weergave voor snel zoeken; is geen van beide gemaakt, dan toont en doorzoekt de kiezer alleen het primaire veld. Zie Een zoekweergave maken en Kiezen in welke kolommen een zoekopdracht zoekt.
Wat er achter de schermen gebeurt
Het gekozen besturingselement en de eigenschappen ervan worden als onderdeel van het formulier opgeslagen, zodat ze meereizen met het formulier wanneer de oplossing wordt geëxporteerd en in een andere omgeving wordt geïmporteerd. Wanneer een gebruiker het formulier opent, ziet en gebruikt die het besturingselement dat hier is gekozen.
Een eigenschap die niet van toepassing is op het huidige besturingselement, wordt verborgen in plaats van verwijderd. Als een datumveld wordt omgezet naar Tekst en later weer naar Datum, staat de eerder ingestelde datumnotatie er nog.
Een Aangepast besturingselement dat aan hetzelfde veld is gekoppeld, gaat voor op het besturingselement dat hier is gekozen (zie Een aangepast besturingselement aan een veld koppelen).
Hoe een datumveld leest
De eigenschap Datumnotatie bepaalt hoe de waarde wordt geschreven overal waar hij wordt getoond — in het eigen vak van de kiezer, en in een veld dat de gebruiker niet kan bewerken. Dat geldt ook voor de eigen tijdstempels Gemaakt op en Gewijzigd op van het platform: zet er een op een formulier, geef het een datumbesturingselement en een notatie, en het leest net als elke andere datum op het formulier.
Stel het in plaats daarvan één keer in voor de hele app. Instellingen → Kalender →
Datumnotaties bevat twee sets van drie patronen — datum, datum-en-tijd en tijd — één set voor de
Gregoriaanse kalender en één voor de Perzische kalender. Elk besturingselement dat geen
eigen notatie noemt, gebruikt de bijbehorende. Elke plaatsing met de hand opmaken betekent dat
eentje die je vergeet anders leest dan de rest, en dat is precies wat dit voorkomt. Een notatie die
op een plaatsing is ingesteld, wint nog steeds, dus zo maak je nog steeds van één veld een
uitzondering. Laat je een vak leeg, dan lezen datums in de eigen standaard van die kalender
(yyyy/MM/dd HH:mm in het Gregoriaans, een lange datum zoals ۱۲ اردیبهشت ۱۴۰۵ in het
Perzisch).
Welke set van toepassing is, volgt de kalender waarin de datum daadwerkelijk wordt getoond, niet de standaard van de app. Op een formulier dat beide mengt — een veld vastgezet op Perzisch naast een Gregoriaans veld — leest elk dus met zijn eigen set. De twee zijn bewust onafhankelijk: de Perzische vakken vallen niet terug op de Gregoriaanse, dus wijzigen hoe Gregoriaanse datums lezen, verandert nooit stilletjes hoe Perzische datums lezen. Die onafhankelijkheid is de reden dat er twee sets zijn in plaats van één.
Dezelfde instellingen gelden ook in weergaven, niet alleen op formulieren: een datumkolom waarvoor de ontwerper geen eigen notatie heeft ingesteld, leest met het patroon van de tenant, precies zoals hetzelfde veld op een formulier.
De kalender waarin een datum wordt geschreven, is een aparte keuze, en een besturingselement
noemen legt die vast. Laat je het besturingselement op Standaard staan, dan volgt het veld de
kalenderinstelling van de app (Instellingen → Kalender), zodat één schakelaar elke datum in de
app verandert. Noem je er een, dan wint die keuze, in beide richtingen: Perzische datum en
Perzische datum en tijd zetten het veld vast op de Perzische kalender, wat de instelling ook
zegt, en gewoon Datum of Datum en tijd zetten het vast op Gregoriaans, zelfs in een app die
op Perzisch staat — voor het veld dat altijd op één bepaalde manier gelezen moet worden. Hoe dan
ook is de opgeslagen waarde hetzelfde moment; alleen hoe het wordt geschreven, verandert. In de
Perzische kalender leest de notatie d MMMM yyyy als ۱۲ اردیبهشت ۱۴۰۵.
Perzische tijd hoort daar ook bij, en het is goed om te zeggen wat die verandert, want een tijd
heeft geen kalender zoals een datum: 09:30 is 09:30 in beide. Wat verandert, zijn de cijfers —
een Perzische tijd leest als ۰۹:۳۰ — en welke notatie hij gebruikt: de Perzische tijdnotatie
uit Instellingen in plaats van de Gregoriaanse. Kies hem voor een tijd die naast Perzische datums
staat; kies gewoon Tijd voor een tijd die in Latijnse cijfers moet lezen, wat de taal van de
app ook is.
Problemen oplossen
- Een alleen-lezen- of systeemveld negeert de notatie. — dat doet het niet: het gebruikt de
notatie van het besturingselement waarmee het veld is geplaatst. Een veld dat is geplaatst zonder
een besturingselement te kiezen, gebruikt het standaardbesturingselement van zijn gegevenstype,
dan de notatie op app-niveau voor dat soort, en dan de standaard van die kalender
(
yyyy/MM/dd HH:mmin het Gregoriaans, een lange datum in het Perzisch). Stel Datumnotatie in op de plaatsing om dat te wijzigen. - De app staat op Perzisch en een veld dat ik op Datum en tijd heb gezet, toont nog steeds Jalali. — dat gebeurt niet meer. Een genoemd besturingselement zet zijn eigen kalender vast; alleen Standaard volgt Instellingen → Kalender. Volgt een veld nog steeds de instelling, dan staat het besturingselement op Standaard — noem het besturingselement dat je wilt.
- Het besturingselement van een afbeeldingsveld kan niet worden gewijzigd. — klopt, en het deelvenster zegt dat nu ook in plaats van een vervolgkeuzelijst aan te bieden. Het platform slaat het bestand zelf op, dus er is geen ander besturingselement waarmee het kan worden weergegeven.
- Een tijd verschuift nadat ik opsla en vernieuw. — opgelost. Een tijd werd vroeger zonder datum verzonden, waardoor de server er een moest aannemen, en werd met een verschuiving teruggelezen. Hij reist nu als het hele moment, precies zoals een datum-en-tijd.
- De notatie van een Tijd-besturingselement doet niets. — nu wel. Een tijd wordt geschreven met
HH,mmenss; een patroon dat alleen uit datumtokens bestaat, heeft niets van een tijd om weer te geven. - Een datum wordt getoond zoals getypt in plaats van opgemaakt. — de opgeslagen waarde is geen datum die het platform kan lezen. Ze wordt precies getoond zoals opgeslagen in plaats van leeg gemaakt, zodat je kunt zien wat er werkelijk staat.
- De lijst Zoektabel is leeg. — de omgeving heeft nog geen andere tabellen om naar te verwijzen. Maak eerst de tabel die je wilt opzoeken.
- Een zoekveld op het formulier zegt "This field has no related table set". — het veld heeft geen relatiedoel en het besturingselement heeft geen eigenschap Zoektabel. Stel er een in, of maak de relatie die het veld moet volgen.
- Een zoekveld vindt geen records, hoe ik ook zoek. — de zoekopdracht vergelijkt alleen met het primaire veld van de gerelateerde tabel. Zoeken naar een waarde in een ander veld van dat record levert geen overeenkomst op.
- Een zoekveld zegt "Could not search the related table". — de zoekaanvraag is mislukt, of de aangemelde gebruiker heeft geen leestoegang tot de gerelateerde tabel. Controleer of de rol van de gebruiker leesrechten op die tabel geeft.
- De Vervolgkeuzelijst toont geen keuzes. — er zijn geen opties ingesteld. Voer ze in bij de eigenschap Opties, gescheiden door komma's.
- Een veld toont na het opslaan nog de oude invoer. — het formulier is opgeslagen, maar de app toont een formulier uit de cache. Open het record opnieuw.