Logika konieczna
Uwaga
Microsoft Power Fx to nowa nazwa języka formuł dla aplikacji kanw. Te artykuły są pracą w toku, gdyż stale wyodrębniamy język z aplikacji kanw, integrujemy go z innymi produktami Microsoft Power Platform i udostępniamy jako rozwiązanie open source. Zacznij od przeglądu Microsoft Power Fx, aby znaleźć wprowadzenie do języka.
Większość formuł w Microsoft Power Fx oblicza wartość. Podobnie jak w przypadku arkusza kalkulacyjnego programu Excel, przeliczenie odbywa się automatycznie po zmianie wartości. Na przykład możesz chcieć pokazać wartość kontrolki Etykieta na czerwono, jeśli wartość jest mniejsza od zera, lub na czarno w przeciwnym przypadku. Możesz więc ustawić właściwość Color tej kontrolki na następującą formułę:
If( Value(TextBox1.Text) >= 0, Color.Black, Color.Red )
W tym kontekście co się stanie, gdy użytkownik wybierze kontrolkę Przycisk? Żadna wartość nie została zmieniona, więc nie ma nic nowego do obliczenia. Program Excel nie ma odpowiednika dla kontrolki Przycisk.
Wybierając kontrolkę Przycisk, użytkownik inicjuje sekwencję akcji lub zachowań, która spowoduje zmianę stanu aplikacji:
- Zmieni wyświetlany ekran: funkcje Back.
- Będzie kontrolować sygnał (tylko Power Apps): funkcje Enable i Disable.
- Odświeży, zaktualizuje lub usunie elementy w źródle danych: funkcje Refresh, Update, UpdateIf, Patch, Remove, RemoveIf.
- Zaktualizuje zmienną kontekstu (tylko Power Apps): funkcja UpdateContext.
- Utworzy, zaktualizuje i usunie elementy w kolekcji: funkcje Collect, Clear, ClearCollect.
Ponieważ te funkcje zmieniają stan aplikacji, nie można ich automatycznie przeliczyć. Możesz ich używać w formułach dla właściwości OnSelect, OnVisible, OnHidden innych właściwości On..., które są nazywane formułami zachowania.
Więcej niż jedna akcja
Użyj średników, aby utworzyć listę akcji do wykonania. Na przykład możesz chcieć zaktualizować zmienną kontekstu, a następnie wrócić do poprzedniego ekranu:
UpdateContext( { x: 1 } ); Back()
Akcje są wykonywane w kolejności, w jakiej występują w formule. Następna funkcja nie zostanie uruchomiona, dopóki bieżąca funkcja nie zostanie zakończona. Jeśli wystąpi błąd, kolejnych funkcji nie można uruchomić.