Tekst als formule evalueren
Bij het ontwerpen van formulieren maakt de ontwerper meestal formules in de Dynamic Value-eigenschap van velden om berekeningen, tekenmanipulatie of logica uit te voeren om gewenste resultaten te bereiken. Maar wat als een ander formule nodig is op basis van gebruikersinvoer bij het invullen van een formulier? Je zou dit kunnen bereiken met lange geneste IF()-voorwaarden of zichtbaarheid van velden per formule in- of uitschakelen, maar er is een veel eenvoudiger dynamische benadering.
Met de mogelijkheid om tekst als formule te evalueren, kun je een gegevensbron hebben met meerdere formules (als tekst) waaruit een app-gebruiker kan kiezen om te bepalen welke formule moet worden gebruikt. Vervolgens evalueert een EVAL()-functie in de Dynamic Value van een ander veld de geselecteerde tekst als een formule met formuliergegevens.
EVAL()-functie uitgelegd
EVAL(formula , {{field1}} , {{field2}} , {{field3}} , ... , {{fieldN}})
De functie heeft twee delen: een formule en formulierveldfieldnamen.
Het formuelegedeelte vereist een formule, of het nu wiskunde, tekst, logica, enz. is, en moet numerieke aanduidingen bevatten die aangeven welke veldwaarde moet worden gebruikt. Veldwaarden komen na de formule als een kommagescheiden lijst met formulierveldfieldnamen.
EVAL("{{0}} + {{1}}" , {{field1}} , {{field2}})
Waarbij {{1}} wordt vervangen door de waarde van {{field1}} en {{0}} wordt vervangen door de waarde van {{field2}}.
Let op dat de formule tussen dubbele aanhalingstekens staat.
Als de formuletekst zich in de 2e kolom van een gegevensbron bevond en het koppelingsveld een fieldnaam van formulaDS had.
EVAL({{formulaDS[1]}} , {{field1}} , {{field2}})
Deze gegevensbron kan aan het formulier worden gekoppeld met een Keuzes- of Gegevensbronveld. Om te bepalen welke formule moet worden gebruikt, moet een gebruiker een optie selecteren uit het Keuzesveld, of het Gegevensbronveld zou filtering hebben.
Voorbeelden
Met een enkele EVAL()-functie in een formulier en een gegevensbron met drie formules, kan een gebruiker bepalen of twee numerieke waarden moeten worden opgeteld, afgetrokken of vermenigvuldigd. De afbeelding hieronder toont een in-app-weergave met de respectieve veleigenschapsconfiguraties.

Resultaat – Dynamic Value
EVAL({{formulaDS[1]}} , {{value1}} , {{value2}})
Gegevensbron
| Waarde – Kolom 0 | Label – Kolom 1 |
|---|---|
| 1 | {{0}} + {{1}} |
| 2 | {{0}} – {{1}} |
| 3 | {{0}} * {{1}} |
Aanvullende formuliervoorbeelden
| Tekst (Formule) | Dynamic Value met Gegevensbron |
|---|---|
| IF({{0}} = ‘Yes’, ‘True’, ‘False’) | EVAL({{DS[1]}} , {{field1}}) |
| CONCAT({{0}}, ‘ and ‘, {{1}}) | EVAL({{DS[1]}} , {{field1}} , {{field2}}) |
| FORMAT-DATE({{0}}, ‘yyyy-MMM-dd’) | EVAL({{DS[1]}} , {{field1}}) |
| SUBSTITUTE({{0}}, ‘name’, ’title’) | EVAL({{DS[1]}} , {{field1}}) |
| IF({{0}} + {{1}} >= {{2}}, ‘Pass’, ‘Fail’) | EVAL({{DS[1]}} , {{field1}} , {{field2}} , {{field3}}) |
Antwoord niet gevonden?
Staat jouw vraag er niet bij? Neem dan direct contact met ons op.
Contact opnemen