Imperatieve logica
Notitie
Microsoft Power Fx is de nieuwe naam voor de formuletaal van canvas-apps. Aan deze artikelen wordt gewerkt terwijl we de taal extraheren uit canvas-apps en deze integreren met andere Microsoft Power Platform-producten en het beschikbaar maken als open source. Begin met het Microsoft Power Fx-overzicht voor een inleiding in de taal.
Met de meeste formules in Microsoft Power Fx wordt een waarde berekend. Net als bij een Excel-werkblad vindt de herberekening automatisch plaats wanneer er waarden worden gewijzigd. Stel dat u bijvoorbeeld de waarde in een besturingselement Label rood wilt weergeven als de waarde lager is dan nul en zwart in andere gevallen. U kunt de eigenschap Color van dat besturingselement instellen op deze formule:
If( Value(TextBox1.Text) >= 0, Color.Black, Color.Red )
Wat betekent het in deze context wanneer de gebruiker een besturingselement Knop selecteert? Er is geen waarde gewijzigd, dus is er niets nieuws om te berekenen. Excel heeft geen equivalent van een besturingselement Knop.
Door een besturingselement Knop te selecteren, initieert de gebruiker een reeks acties of gedrag waarmee de status van de app wordt gewijzigd:
- Een ander scherm weergeven: de functies Back.
- Een signaal beheren (alleen Power Apps): de functies Enable en Disable.
- Items vernieuwen, bijwerken of verwijderen in een gegevensbron: de functies Refresh, Update, UpdateIf, Patch, Remove, RemoveIf.
- Een contextvariabele bijwerken (alleen Power Apps-canvas): de functie UpdateContext.
- Items maken, bijwerken of verwijderen in een verzameling: de functies Collect, Clear, ClearCollect.
Omdat deze functies de status van de app wijzigen, kunnen ze niet automatisch opnieuw worden berekend. U kunt deze functies gebruiken in de formules voor de eigenschappen OnSelect, OnVisible, OnHidden en andere On...-eigenschappen die gedragsformules worden genoemd.
Meer dan één actie
Gebruik puntkomma's om een lijst met acties te maken die moeten worden uitgevoerd. Stel dat u bijvoorbeeld een contextvariabele wilt bijwerken en daarna wilt terugkeren naar het vorige scherm:
UpdateContext( { x: 1 } ); Back()
Acties worden uitgevoerd in de volgorde waarin ze worden weergegeven in de formule. De volgende functie start pas nadat de huidige functie is voltooid. Als er een fout optreedt, worden volgende functies mogelijk niet gestart.