Zmienne Power Fx

Uwaga

Microsoft Power Fx to nowa nazwa języka formuł dla aplikacji kanw. Te artykuły działają w toku, ponieważ Microsoft wyodrębnia język z aplikacji kanwy, integruje go z innymi produktami Microsoft Power Platform i udostępnia je jako open source. Wprowadzenie do języka można rozpocząć od omówienie funkcji Microsoft Power Fx.

Dowiedz się, jak zmienne Power Fx różnią się od zmiennych w narzędziach, takich jak Visual Basic lub JavaScript, i kiedy formuły są lepszym wyborem. W tym artykule wyjaśniono, jak wybrać zmienne globalne, zmienne kontekstowe lub kolekcje w celu zarządzania wartościami i stanem aplikacji.

W innych narzędziach można jawnie wykonać obliczenia i zapisać wynik w zmiennej. Niemniej usługa Power Fx i program Excel automatycznie ponownie obliczają formuły w przypadku zmiany danych wejściowych, więc zazwyczaj nie zachodzi potrzeba tworzenia i aktualizowania zmiennych. Dzięki zastosowaniu takiego podejścia w miarę możliwości można łatwiej utworzyć, zrozumieć i konserwować aplikację.

W niektórych przypadkach należy użyć zmiennych w programie Power Fx. Usługa Power Fx rozszerza model Excel przez dodanie formuł zachowania. Formuły te mogą być uruchamiane przykładowo wtedy, gdy użytkownik wybierze przycisk. W formule zachowania często warto ustawić zmienną do użycia w innych formułach.

Ogólnie rzecz biorąc, należy unikać używania zmiennych. Czasami jednak tylko zmienna może zapewnić żądane rezultaty. Zmienne są tworzone niejawnie i wpisywane w funkcjach, które ustawiają ich wartości.

Tłumaczenie programu Excel na usługę Power Fx

Excel

Przypomnijmy, jak działa program Excel. Komórka może zawierać wartość, np. liczbę lub ciąg, bądź formułę opartą na wartościach innych komórek. Gdy użytkownik wprowadzi inną wartość w komórce, program Excel automatycznie ponownie obliczy wszelkie formuły, które zależą od nowej wartości. Aby włączyć to zachowanie, nie jest wymagane żadne programowanie.

W poniższym przykładzie komórka A3 ma ustawioną formułę A1+A2. Jeśli wartość A1 lub A2 zmieni się, wartość komórki A3 zostanie automatycznie obliczona ponownie w celu odzwierciedlenia zmiany. To zachowanie nie wymaga pisania kodu poza formułą.

Zrzut ekranu przedstawiający formułę Excel ponownie obliczającą sumę po zmianie wartości wejściowej.

Program Excel nie ma zmiennych. Wartość komórki, która zawiera formułę, zmienia się w oparciu o wprowadzone dane, ale nie ma sposobu na zapamiętanie wyników formuły i zapisanie ich w komórce lub innym miejscu. Jeśli zmienisz wartość komórki, cały arkusz kalkulacyjny może ulec zmianie, a wszystkie wcześniej obliczone wartości zostaną utracone. Użytkownik programu Excel może kopiować i wklejać komórki, niemniej jednak takie działanie podlega ręcznej kontroli ze strony użytkownika i nie jest możliwe do zrealizowania za pomocą formuł.

Power Fx

Logika w Power Fx zachowuje się bardzo podobnie do tej z programu Excel. Zamiast aktualizowania komórek można dodać kontrolki w dowolnym miejscu na ekranie i nazwać je w celu późniejszego użycia w formułach.

Na przykład można replikować zachowanie programu Excel w aplikacji Power Apps poprzez dodanie kontrolki Etykieta o nazwie Label1 oraz dwóch kontrolek Wprowadzanie tekstu o nazwach TextInput1 i TextInput2. Jeśli następnie ustawisz właściwość Textetykiety Label1 na TextInput1.Text + TextInput2.Text, zawsze wyświetla sumę liczb w polach TextInput1 i TextInput2 automatycznie.

Zrzut ekranu przedstawiający dwa wprowadzanie tekstu i etykietę obliczając sumę za pomocą formuły Power Fx.

Zwróć uwagę, że została wybrana kontrolka Label1 i na pasku formuły u góry ekranu jest wyświetlana jej formuła dla właściwości Text. Tutaj znajdziesz formułę TextInput1.Text + TextInput2.Text. Ta formuła tworzy zależność między tymi kontrolkami, tak jak w przypadku zależności tworzonych między komórkami w skoroszycie programu Excel. Zmieńmy wartość pola TextInput1:

Zrzut ekranu przedstawiający formułę Power Fx automatycznie obliczającą sumę po zmianie danych wejściowych.

Formuła etykiety Label1 jest automatycznie ponownie obliczana, pokazując nową wartość.

W usłudze Power Fx można używać formuł do określania wartości podstawowej kontrolki, a także jej właściwości, np. formatowania. W następnym przykładzie formuła właściwości Color etykiety automatycznie wyświetla wartości ujemne na czerwono. Funkcja If powinna wyglądać podobnie do funkcji programu Excel:

If( Value(Label1.Text) < 0, Color.Red, Color.Black )

Zrzut ekranu przedstawiający formułę Power Fx zmieniającą kolor etykiety, gdy obliczona wartość jest ujemna.

Formuły mają szerokie zastosowanie w wielu różnych scenariuszach:

  • Używając funkcji GPS w urządzeniu, kontrolka mapy może wyświetlić bieżącą lokalizację oraz formułę z właściwościami Location.Latitude i Location.Longitude. Gdy się przemieszczasz, mapa automatycznie śledzi Twoją lokalizację.
  • Inni użytkownicy mogą aktualizować źródła danych. Na przykład inni członkowie zespołu mogą aktualizować elementy na liście SharePoint. Podczas odświeżania źródła danych wszystkie zależne formuły są automatycznie ponownie obliczane w celu odzwierciedlenia zaktualizowanych danych. W dalszej części przykładu można ustawić właściwość Items galerii na formułę Filter( SharePointList ), która automatycznie wyświetla nowo filtrowany zestaw rekordów.

Zalety formuł Power Fx

Tworzenie aplikacji przy użyciu formuł oferuje wiele zalet:

  • Jeśli znasz program Excel, znasz też usługę Power Fx. Model i język formuł są takie same.
  • Jeśli używasz innych narzędzi programistycznych, zastanów się, ile kodu należy wykonać w tych przykładach. W języku Visual Basic wymagane byłoby napisanie procedury obsługi zdarzeń dla zdarzenia zmiany w każdej kontrolce wprowadzania tekstu. Kod do wykonania obliczeń w każdym z tych programów obsługi zdarzeń jest nadmiarowy i może wyjść z synchronizacji lub trzeba będzie napisać wspólną podroutywę. W programie Power Fx wykonasz całą pracę z jedną jednowierszową formułą.
  • Aby dowiedzieć się, skąd pochodzi tekst etykiety Label1, wiesz dokładnie, gdzie szukać: formuła we właściwości Text . Nie istnieje inny sposób wpływania na tekst tej kontrolki. W tradycyjnych narzędziach do programowania dowolna procedura obsługi zdarzeń lub procedura podrzędna mogły zmienić wartość etykiety z dowolnego miejsca w programie. Takie podejście może utrudnić śledzenie, kiedy i gdzie zmienna została zmieniona.
  • Jeśli użytkownik zmieni ustawienie kontrolki suwaka, a następnie zmieni zdanie, może cofnąć suwak do oryginalnej wartości. To tak, jakby nic się nie zmieniło: aplikacja wyświetla te same wartości kontrolek, co wcześniej. Nie trzeba testować żadnych ewentualności ani zastanawiać się „a co, jeśli...?”, tak jak nie trzeba tego robić w przypadku programu Excel.

Ogólnie rzecz biorąc, jeśli możesz osiągnąć efekt przy użyciu formuły, lepiej jest. Pozwól, żeby to aparat formuły w usłudze Power Fx zajął się pracą.

Kiedy używać zmiennych

Zmieńmy nasz prosty moduł dodający, aby działał jak stara maszyna do dodawania z sumą bieżącą. Jeśli wybierzesz przycisk Dodaj , dodasz liczbę do sumy bieżącej. Jeśli wybierzesz przycisk Wyczyść , zresetujesz sumę bieżącą na zero.

Wyświetlanie Opis
Zrzut ekranu przedstawiający dodawanie aplikacji maszynowej z sumą zerową i 77 wprowadzonymi w tekście wejściowym. Po uruchomieniu aplikacji suma bieżąca wynosi 0.

Czerwona kropka reprezentuje palec użytkownika w polu wprowadzania tekstu, w którym użytkownik wpisuje numer 77.
Zrzut ekranu przedstawiający dodawanie maszyny z wartością 77 w tekście wejściowym, gdy użytkownik wybierze pozycję Dodaj. Użytkownik wybiera przycisk Dodaj.
Zrzut ekranu przedstawiający maszynę dodającą łącznie 77 przed dodaniem kolejnej 77. Liczba 77 jest dodawana do sumy bieżącej.

Użytkownik ponownie wybiera przycisk Dodaj.
Zrzut ekranu przedstawiający maszynę dodającą całkowitą liczbę 154, zanim użytkownik wybierze pozycję Wyczyść. Liczba 77 jest ponownie dodawana do sumy bieżącej, a wynik wynosi 154.

Użytkownik wybiera przycisk Wyczyść.
Zrzut ekranu przedstawiający dodawanie maszyny po zresetowaniu sumy bieżącej do zera. Suma bieżąca jest resetowana do wartości 0.

Nasza maszyna do dodawania używa czegoś, co nie istnieje w programie Excel: przycisku. W tej aplikacji nie można używać wyłącznie formuł do obliczania sumy bieżącej, ponieważ jej wartość zależy od szeregu akcji podejmowanych przez użytkownika. Zamiast tego należy ręcznie rejestrować i aktualizować sumę bieżącą. Większość narzędzi do programowania przechowuje te informacje w zmiennej.

Czasami zachodzi potrzeba, aby zmienna aplikacji zachowywała się w konkretny sposób. Niemniej istnieją pewne zastrzeżenia do takiego podejścia:

  • Trzeba ręcznie aktualizować sumę bieżącą. Automatyczne ponowne obliczenie nie zrobi tego za Ciebie.
  • Nie można obliczyć sumy bieżącej na podstawie wartości innych kontrolek. Zależy to od tego, jak wiele razy użytkownik wybrał przycisk dodawania oraz od wartości, jaka znajdowała się w kontrolce wprowadzania tekstu za każdym razem. Czy użytkownik dwukrotnie wprowadził liczbę 77 i wybrał przycisk dodawania, czy podał liczby 24 i 130 dla każdego dodawania? Nie można dostrzec różnicy po osiągnięciu sumy 154.
  • Zmiany w sumie mogą pochodzić z różnych ścieżek. W tym przykładzie oba przyciski, dodawania i czyszczenia, mogą aktualizować sumę. Jeśli aplikacja nie działa w oczekiwany sposób, który z przycisków powoduje problem?

Używanie zmiennej globalnej

Aby utworzyć maszynę dodającą, musisz mieć zmienną do przechowywania sumy bieżącej. Najprostsze zmienne do pracy w usłudze Power Fx to zmienne globalne.

Sposób działania zmiennych globalnych:

  • Użyj funkcji Set , aby ustawić wartość zmiennej globalnej. Set( MyVar, 1 ) ustawia zmienną globalną MyVar na wartość 1.
  • Użyj zmiennej globalnej, odwołując się do nazwy używanej z funkcją Set . W takim przypadku funkcja MyVar zwraca wartość 1.
  • Zmienne globalne mogą przechowywać dowolne wartości, w tym ciągi, liczby, rekordy i tabele.

Przebudujmy naszą maszynę dodającą, używając zmiennej globalnej:

  1. Dodaj kontrolkę wprowadzania tekstu o nazwie TextInput1 oraz dwa przyciski o nazwach Przycisk1 i Przycisk2.

  2. Ustaw właściwość Text przycisku Button1 na wartość „Add” oraz właściwość Text przycisku Button2 na wartość „Clear”.

  3. Aby zaktualizować sumę bieżącą za każdym razem, gdy użytkownik wybierze przycisk dodawania, ustaw jego właściwość OnSelect na następującą formułę:

    Set( RunningTotal, RunningTotal + TextInput1.Text )

    Sam fakt istnienia tej formuły powoduje, że element RunningTotal staje się zmienną globalną, która przechowuje liczbę, z powodu operatora +. Do elementu RunningTotal można odwoływać się w dowolnym miejscu w aplikacji. Za każdym razem, gdy użytkownik otwiera tę aplikację, zmienna RunningTotal ma pustą wartość początkową.

    Gdy użytkownik po raz pierwszy wybierze przycisk dodawania i uruchomi funkcję Set, zmienna RunningTotal zostanie ustawiona na wartość RunningTotal + TextInput1.

    Zrzut ekranu przedstawiający właściwość Dodaj przycisk OnSelect przy użyciu polecenia Ustaw, aby zaktualizować zmienną globalną Power Fx.

  4. Aby ustawić sumę bieżącą na wartość 0 za każdym razem, gdy użytkownik wybierze przycisk czyszczenia, ustaw jego właściwość OnSelect na następującą formułę:

    Set( RunningTotal, 0 )

    Zrzut ekranu przedstawiający właściwość Wyczyść przycisk OnSelect przy użyciu polecenia Ustaw, aby zresetować zmienną globalną Power Fx.

  5. Dodaj kontrolkę Etykieta i ustaw jej właściwość Text na wartość RunningTotal.

    Ta formuła automatycznie ponownie oblicza i pokazuje użytkownikowi wartość RunningTotal , gdy zmienia się na podstawie przycisków wybranych przez użytkownika.

    Zrzut ekranu przedstawiający właściwość Text etykiety z wartością zmiennej globalnej RunningTotal.

  6. Wyświetl podgląd aplikacji i masz maszynę dodającą zgodnie z wcześniejszym opisem. Wprowadź liczbę w polu tekstowym i naciśnij przycisk dodawania kilka razy. Gdy wszystko będzie gotowe, wróć do środowiska tworzenia przy użyciu klawisza Esc .

    Zrzut ekranu przedstawiający dodawanie podglądu maszyny z wartością wejściową i obliczoną sumą bieżącą.

  7. Aby pokazać wartość zmiennej globalnej, wybierz menu Plik i wybierz opcję Zmienne w okienku po lewej stronie.

    Zrzut ekranu przedstawiający opcję zmiennych globalnych wybraną z menu Plik w edytorze aplikacji.

  8. Aby pokazać wszystkie miejsca, w których nasza zmienna jest definiowana i używana, wybierz ją.

    Zrzut ekranu przedstawiający lokalizacje, w których zdefiniowano zmienną globalną i użyto jej w aplikacji.

Typy zmiennych

Power Fx ma dwa typy zmiennych:

Typ zmiennej Scope Opis Ustanawiane funkcje
Zmienne globalne Aplikacja Najprostsze w użyciu. Zawiera liczbę, ciąg tekstowy, wartość logiczną, rekord, tabelę i inne. Możesz odwoływać się do niego z dowolnego miejsca w aplikacji. Set
Kolekcje Aplikacja Zawiera tabelę, do której można odwoływać się z dowolnego miejsca w aplikacji. Możesz zmodyfikować zawartość tabeli, a nie ustawić jej jako całości. Możesz zapisać go na urządzeniu lokalnym do późniejszego użycia. Collect
ClearCollect

W przypadku używania Power Apps zostanie wyświetlony trzeci typ zmiennej:

Typ zmiennej Scope Opis Ustanawiane funkcje
Zmienne kontekstu Ekran Doskonale sprawdzają się przy przekazywaniu wartości na ekran, podobnie do parametrów przekazujących wartości do procedury w innych językach. Można odwoływać się do niego tylko z jednego ekranu. UpdateContext
Navigate

Tworzenie i usuwanie zmiennych

Wszystkie zmienne są tworzone niejawnie w funkcji Set, UpdateContext, Navigate, Collect lub ClearCollect . Aby zadeklarować zmienną i jej typ, wystarczy uwzględnić ją w dowolnej z tych funkcji w dowolnym miejscu w aplikacji. Żadna z tych funkcji nie tworzy zmiennych; są one jedynie wypełniane zmiennymi z wartościami. Zmienne nie są nigdy deklarowane w sposób jawny, jeśli są używane w innym narzędziu programistycznym, a wszystkie dane wpisywane są niejawne na podstawie użycia.

Możesz na przykład utworzyć kontrolkę przycisku z formułą OnSelect równą Set(X, 1). Ta formuła określa X jako zmienną typu liczbowego. Symbolu X możesz używać w formułach jako liczby, a zmienna ma wartość pustą po otwarciu aplikacji, ale przed wybraniem przycisku. Po wybraniu przycisku nadajesz symbolowi X wartość 1.

Jeśli dodasz kolejny przycisk i ustawisz jego właściwość OnSelect na Set( X, "Hello" ), wystąpi błąd, ponieważ typ (ciąg tekstowy) nie jest zgodny z typem w poprzednim zestawie (liczba). We wszystkich jawnych definicjach zmiennej muszą mieć zgodny typ. Ponownie wszystko to się stało, ponieważ wspomniano o X w formułach, a nie dlatego, że którakolwiek z tych formuł rzeczywiście została uruchomiona.

Aby usunąć zmienną, usuwasz wszystkie funkcje Set, UpdateContext, Navigate, Collect lub ClearCollect, które niejawnie ustanawiają zmienną. Bez tych funkcji zmienna nie istnieje. Należy również usunąć wszelkie odwołania do zmiennej, ponieważ powodują one błąd.

Okres istnienia i wartość początkowa zmiennej

Aplikacja przechowuje wszystkie zmienne w pamięci podczas jej uruchamiania. Po zamknięciu aplikacji wartości przechowywane w zmiennych są tracone.

Zawartość zmiennej można zapisać w źródle danych, korzystając z funkcji Patch lub Collect. Wartości kolekcji można również przechowywać na urządzeniu lokalnym za pomocą funkcji SaveData.

Kiedy użytkownik otwiera aplikację, wszystkie zmienne mają początkową wartość pustą.

Odczytywanie zmiennych

Użyj nazwy zmiennej, aby odczytać jej wartość. Na przykład można zdefiniować zmienną przy użyciu tej formuły:

Set( Radius, 12 )

Następnie możesz po prostu użyć usługi Radius w dowolnym miejscu, w którym można użyć liczby, i zastąpi ją wartością 12:

Pi() * Power( Radius, 2 )

Jeśli zmienna kontekstu ma taką samą nazwę jak zmienna globalna lub kolekcja, zmienna kontekstu ma pierwszeństwo. Nadal można jednak odwoływać się do zmiennej globalnej lub kolekcję, jeśli użyjesz operatora uściślania[@Radius].

Użyj zmiennej kontekstu (tylko Power Apps)

Poniżej przedstawiono sposób tworzenia maszyny dodającej przy użyciu zmiennej kontekstowej zamiast zmiennej globalnej.

Sposób działania zmiennych kontekstu:

  • Zmienne kontekstu są ustanawiane i ustawianie niejawnie za pomocą funkcji UpdateContext lub funkcji Navigate. Gdy aplikacja jest uruchamiana, wartość początkowa wszystkich zmiennych to wartość pusta.
  • Zmienne kontekstu są aktualizowane przy użyciu rekordów. W innych narzędziach do programowania zazwyczaj używa się znaku „=” w celu przypisania, np. „x = 1”. W przypadku zmiennych kontekstu należy w zamian użyć składni { x: 1 }. Jeśli jest stosowana zmienna kontekstu, należy użyć jej nazwy bezpośrednio bez składni rekordu.
  • Można również ustawić zmienną kontekstu, gdy ekran jest pokazywany przy użyciu funkcji Navigate. Jeśli uznamy ekran za rodzaj procedury lub procedury podrzędnej, to podejście będzie podobne do przekazywania parametru w innych narzędziach do programowania.
  • Z wyjątkiem funkcji Navigate zmienne kontekstowe są ograniczone do kontekstu jednego ekranu, w którym uzyskują nazwę. Nie można używać ani ustawiać ich poza tym kontekstem.
  • Zmienne kontekstu mogą przechowywać dowolne wartości, w tym ciągi, liczby, rekordy i tabele.

Przebudujmy naszą maszynę dodającą, używając zmiennej kontekstu:

  1. Dodaj kontrolkę wprowadzania tekstu o nazwie TextInput1 oraz dwa przyciski o nazwach Przycisk1 i Przycisk2.

  2. Ustaw właściwość Text przycisku Button1 na wartość „Add” oraz właściwość Text przycisku Button2 na wartość „Clear”.

  3. Aby zaktualizować sumę bieżącą za każdym razem, gdy użytkownik wybierze przycisk dodawania, ustaw jego właściwość OnSelect na następującą formułę:

    UpdateContext( { RunningTotal: RunningTotal + TextInput1.Text } )

    Sam fakt istnienia tej formuły powoduje, że element RunningTotal staje się zmienną kontekstu, która przechowuje liczbę, z powodu operatora +. Do elementu RunningTotal można odwoływać się w dowolnym miejscu na tym ekranie. Za każdym razem, gdy użytkownik otwiera tę aplikację, zmienna RunningTotal ma pustą wartość początkową.

    Gdy użytkownik po raz pierwszy wybierze przycisk dodawania i uruchomi funkcję UpdateContext, zmienna RunningTotal zostanie ustawiona na wartość RunningTotal + TextInput1.

    Zrzut ekranu przedstawiający właściwość Dodaj przycisk OnSelect aktualizując zmienną kontekstową RunningTotal.

  4. Aby ustawić sumę bieżącą na wartość 0 za każdym razem, gdy użytkownik wybierze przycisk czyszczenia, ustaw jego właściwość OnSelect na następującą formułę:

    UpdateContext( { RunningTotal: 0 } )

    Ponownie, UpdateContext jest używana z formułą UpdateContext( { RunningTotal: 0 } ).

    Zrzut ekranu przedstawiający właściwość Clear OnSelect resetująca zmienną kontekstową RunningTotal.

  5. Dodaj kontrolkę Etykieta i ustaw jej właściwość Text na wartość RunningTotal.

    Ta formuła automatycznie ponownie oblicza i pokazuje użytkownikowi wartość RunningTotal , gdy zmienia się na podstawie przycisków wybranych przez użytkownika.

    Zrzut ekranu przedstawiający właściwość Text etykiety z wartością zmiennej kontekstowej RunningTotal.

  6. Wyświetl podgląd aplikacji i masz maszynę dodającą zgodnie z wcześniejszym opisem. Wprowadź liczbę w polu tekstowym i naciśnij przycisk dodawania kilka razy. Gdy wszystko będzie gotowe, wróć do środowiska tworzenia przy użyciu klawisza Esc .

    Zrzut ekranu przedstawiający podgląd aplikacji z wartością wprowadzania tekstu i sumą bieżącą zmiennej kontekstowej.

  7. Możesz ustawić wartość zmiennej kontekstowej podczas nawigowania do ekranu. Ta technika jest przydatna do przekazywania "kontekstu" lub "parametrów" z jednego ekranu do innego. Aby zaprezentować tę technikę, wstaw ekran, wstaw przycisk i ustaw jego właściwość OnSelect na tę formułę:

    Navigate( Screen1, None, { RunningTotal: -1000 } )

    Zrzut ekranu przedstawiający właściwość OnSelect przycisku z użyciem polecenia Navigate w celu przekazania zmiennej kontekstowej do ekranu Screen1.

    Przytrzymaj wciśnięcie klawisza Alt , wybierając ten przycisk, aby wyświetlić ekran1 i ustawić zmienną kontekstową RunningTotal na -1000.

    Zrzut ekranu przedstawiający ekran Screen1 po nawigacji ustawia zmienną kontekstową RunningTotal na ujemną wartość 1000.

  8. Aby pokazać wartość zmiennej kontekstu, wybierz menu Plik i wybierz opcję Zmienne w okienku po lewej stronie.

    Zrzut ekranu przedstawiający opcję Zmienne kontekstowe wybrane z menu Plik w edytorze aplikacji.

  9. Wybierz zmienną kontekstową, aby zobaczyć, gdzie jest ona zdefiniowana i używana.

    Zrzut ekranu przedstawiający lokalizacje, w których zmienna kontekstowa jest definiowana i używana w aplikacji.

Używane kolekcji

Na koniec przyjrzymy się procesowi tworzenia maszyny dodającej z użyciem kolekcji. Ponieważ kolekcja zawiera tabelę, którą można łatwo zmodyfikować, ta maszyna dodająca przechowuje "taśmę papierową" każdej wartości podczas ich wprowadzania.

Sposób działania kolekcji:

  • Użyj funkcji ClearCollect , aby utworzyć i ustawić kolekcje. Zamiast tego można użyć funkcji Collect , ale skutecznie wymaga innej zmiennej zamiast zastępowania starej.
  • Kolekcja jest rodzajem źródła danych, a więc jest tabelą. Aby uzyskać dostęp do konkretnej wartości w kolekcji, użyj funkcji First i wyodrębnij jedno pole z wynikowego rekordu. Jeśli używasz pojedynczej wartości z funkcją ClearCollect, ta wartość jest polem Value , tak jak w tym przykładzie:
    First(VariableName).Value

Utwórzmy ponownie maszynę dodającą, używając kolekcji:

  1. Dodaj kontrolkę wprowadzania tekstu o nazwie TextInput1 oraz dwa przyciski o nazwach Button1 i Button2.

  2. Ustaw właściwość Text przycisku Button1 na wartość „Add” oraz właściwość Text przycisku Button2 na wartość „Clear”.

  3. Aby zaktualizować sumę bieżącą za każdym razem, gdy użytkownik wybierze przycisk dodawania, ustaw jego właściwość OnSelect na następującą formułę:

    Collect( PaperTape, TextInput1.Text )

    Sam fakt istnienia tej formuły ustanawia PaperTape jako kolekcję przechowującą jednokolumnową tabelę ciągów tekstowych. Do elementu PaperTape można odwoływać się w dowolnym miejscu tej aplikacji. Za każdym razem, gdy użytkownik otwiera tę aplikację, PaperTape jest pustą tabelą.

    Działająca formuła dodaje nową wartość na końcu kolekcji. Ponieważ dodajesz pojedynczą wartość, funkcja Collect automatycznie umieszcza ją w tabeli z jedną kolumną, a nazwa kolumny to Wartość, której użyjesz później.

    Zrzut ekranu przedstawiający właściwość Dodaj przycisk OnSelect, zbierając wartość wejściową na paperTape.

  4. Aby wyczyścić rejestr wartości po wybraniu przycisku czyszczenia przez użytkownika, ustaw jego właściwość OnSelect na poniższą formułę:

    Clear( PaperTape )

    Zrzut ekranu przedstawiający właściwość Wyczyść przycisk OnSelect usuwającą wszystkie wartości z funkcji PaperTape.

  5. Aby wyświetlić sumę bieżącą, dodaj etykietę i ustaw jej właściwość Text na tę formułę:

    Sum( PaperTape, Value )

    Zrzut ekranu przedstawiający właściwość Text etykiety przy użyciu funkcji Sum w celu obliczenia sumy bieżącej PaperTape.

  6. Aby uruchomić maszynę dodającą, naciśnij klawisz F5 w celu otworzenia podglądu, wprowadź liczby w kontrolce wprowadzania tekstu i wybierz przyciski.

    Zrzut ekranu przedstawiający maszynę dodającą na podstawie kolekcji z wartością wejściową i sumą bieżącą.

  7. Aby powrócić do domyślnego obszaru roboczego, naciśnij klawisz Esc .

  8. Aby wyświetlić rejestr wartości, wstaw kontrolkę Tabela danych i ustaw jej właściwość Items na następującą formułę:

    PaperTape

    W okienku po prawej stronie wybierz pozycję Edytuj pola, a następnie wybierz pozycję Dodaj pole, wybierz kolumnę Wartość i kliknij przycisk Dodaj, aby ją wyświetlić.

    Zrzut ekranu przedstawiający tabelę danych z wartościami dodanymi do kolekcji PaperTape.

  9. Aby wyświetlić wartości w kolekcji, wybierz opcję Kolekcje w menu Plik.

    Zrzut ekranu przedstawiający widok Kolekcje z wyświetlonymi zapisanymi wartościami w kolekcji PaperTape.

  10. Aby móc zapisywać i pobierać kolekcję, dodaj dwie kolejne kontrolki przycisków i ustaw ich właściwości Text na Load i Save. Dla właściwości OnSelect przycisku Load ustaw następującą formułę:

    Clear( PaperTape ); LoadData( PaperTape, "StoredPaperTape", true )

    Najpierw musisz wyczyścić kolekcję, ponieważ funkcja LoadData będzie dołączać przechowywane wartości na końcu kolekcji.

    Zrzut ekranu przedstawiający przycisk Załaduj właściwość OnSelect wyczyszczenie i załadowanie kolekcji PaperTape.

  11. Dla właściwości OnSelect przycisku Save ustaw następującą formułę:

    SaveData( PaperTape, "StoredPaperTape" )

    Zrzut ekranu przedstawiający właściwość Zapisz przycisk OnSelect zapisując lokalnie kolekcję PaperTape.

  12. Ponownie wyświetl podgląd, naciskając klawisz F5 , wprowadź liczby w kontrolce wprowadzania tekstu i wybierz przyciski. Wybierz przycisk zapisywania. Zamknij i ponownie załaduj aplikację, a następnie wybierz przycisk ładowania, aby ponownie załadować kolekcję.