Funkcja Remove i RemoveIf

Dotyczy: Aplikacje kanwy Aplikacje oparte na modelu Power Platform CLI

Funkcje te służą do usuwania rekordów ze źródła danych.

Uwaga

Polecenia power-fx PAC CLI nie obsługują funkcji RemoveIf.

Popis

Funkcja Remove

Funkcja Remove służy do usuwania określonego rekordu lub rekordów ze źródła danych.

W przypadku kolekcji cały rekord musi być zgodny. Możesz użyć argumentu RemoveFlags.All, aby usunąć wszystkie kopie rekordu. W przeciwnym razie zostanie usunięta tylko jedna kopia rekordu.

Funkcja RemoveIf

Funkcja RemoveIf służy do usuwania rekordu lub rekordów na podstawie warunku lub zestawu warunków. Każdy warunek może być dowolną formułą dającą wynik true lub false i może przywoływać kolumny w źródle danych według nazwy. Każdy warunek jest obliczany osobno dla każdego rekordu. Rekord zostanie usunięty, jeśli wszystkie warunki zostaną obliczone na wartość true.

Zarówno funkcja Remove, jak i RemoveIf zwracają zmodyfikowane źródło danych w postaci tabeli. Obu tych funkcji można używać tylko w formułach dotyczących zachowań.

Możesz również użyć funkcji Clear, aby usunąć wszystkie rekordy w kolekcji.

Delegowanie

Tych funkcji nie można delegować, gdy są używane ze źródłem danych. Zostanie pobrana tylko pierwsza część źródła danych, a następnie zostanie zastosowana funkcja. To może nie odpowiadać pełnym informacjom. Podczas tworzenia może zostać wyświetlone ostrzeżenie, aby przypominać o tym ograniczeniu.

Obsługa delegowania (eksperymentalna)

Obsługa delegowania funkcji RemoveIf jest teraz w eksperymentalnej wersji zapoznawczej (domyślne WYŁĄCZONA) dla źródeł danych, które je obsługują. Jeśli źródło danych nie obsługuje tej funkcji, Power Apps wyśle do serwera zapytanie i pobierze wszystkie dane dopasowania do wyrażenia filtrowego do maksymalnej wartości 500, 2000 lub rozmiaru strony danych. Następnie należy wykonać operację usuwania dla każdego z tych rekordów przy użyciu poszczególnych wywołań do serwera.

Składnia

Remove( DataSource, Record1 [, Record2, ... ] [, RemoveFlags.All ] )

  • DataSource – wymagane. Źródło danych zawierające co najmniej jeden rekord, który ma zostać usunięty.
  • Rekord(y) – wymagane. Rekord lub rekordy do usunięcia.
  • RemoveFlags.All — opcjonalnie. W kolekcji ten sam rekord może występować więcej niż raz. Możesz podać argument RemoveFlags.All, aby usunąć wszystkie kopie rekordu.

Remove( DataSource, Table [, RemoveFlags.All ] )

  • DataSource – wymagane. Źródło danych zawierające rekordy, które mają zostać usunięte.
  • Tabela – wymagane. Tabela rekordów do usunięcia.
  • RemoveFlags.All — opcjonalnie. W kolekcji ten sam rekord może występować więcej niż raz. Możesz podać argument RemoveFlags.All, aby usunąć wszystkie kopie rekordu.

RemoveIf( ŹródłoDanych, Warunek [, ... ] )

  • DataSource – wymagane. Źródło danych zawierające co najmniej jeden rekord, który ma zostać usunięty.
  • Condition(s) – wymagane. Formuła, której obliczenie daje wartość true dla rekordu lub rekordów do usunięcia. Możesz użyć nazw kolumn z argumentu ŹródłoDanych w formule. Jeśli określisz wiele warunków, wszystkie muszą zostać obliczone na wartość true, aby możliwe było usunięcie rekordu lub rekordów.

Przykłady – pojedyncze formuły

W tych przykładach przedstawiono usuwanie rekordu lub rekordów w źródle danych o nazwie IceCream, którego początkowe dane przedstawia następująca tabela:

Przykład Icecream.

Tworzenie kolekcji z przykładowymi rekordami

Aby utworzyć kolekcję z tymi danymi:

  1. Wstaw kontrolkę Button.

  2. Dla kontrolki Button właściwości OnSelect ustaw następującą formułę poniżej:

    ClearCollect( IceCream,
                  { ID: 1, Flavor: "Chocolate",  Quantity: 100 },
                  { ID: 2, Flavor: "Vanilla",    Quantity: 200 },
                  { ID: 3, Flavor: "Strawberry", Quantity: 300 }
    )
    
  3. Trzymając wciśnięty klawisz Alt, kliknij przycisk:

Usuwanie przykładowych rekordów z kolekcji przy użyciu formuły

Formuła opis Result
Remove( IceCream,
LookUp( IceCream, Flavor="Czekoladowe" ))
Usuwa rekord Chocolate ze źródła danych. Wynik z Wanilią i Truskawką.

Źródło danych IceCream zostało zmodyfikowane.
Remove( IceCream,
LookUp( IceCream, Flavor="Czekoladowe" ), LookUp( IceCream, Flavor="Truskawkowe" ) )
Usuwa dwa rekordy ze źródła danych. Wynik tylko z wanilią.

Źródło danych IceCream zostało zmodyfikowane.
RemoveIf( IceCream, Quantity > 150 ) Modyfikuje rekordy, które mają wartość Quantity większą niż 150. Wynik tylko z czekoladą.

Źródło danych IceCream zostało zmodyfikowane.
RemoveIf( IceCream, Quantity > 150, Left( Flavor, 1 ) = "S" ) Usuwa rekordy, które mają wartość Quantity większą niż 150 i wartość Flavor rozpoczynającą się od S. Rezultat z Czekoladą i Wanilią.


Źródło danych IceCream zostało zmodyfikowane.
RemoveIf( IceCream, true ) Usuwa wszystkie rekordy ze źródła danych. Wynik bez lodów.

Źródło danych IceCream zostało zmodyfikowane.

W tym przykładzie zostanie użyta kontrolka Gallery, aby wyświetlić rekordy w tabeli. Następnie, funkcji Remove można użyć, aby usunąć wybrany element.

Przygotowanie do danych przykładowych

W tym przykładzie jest używana tabela Kontakty w Microsoft Dataverse, która jest dostępna w przykładowych aplikacjach i danych. Podczas tworzenia środowiska można wdrażać przykładowe aplikacje i dane. Zamiast tego można również użyć innego źródło danych.

W tym przykładzie użytkownik usunie element, korzystając z przycisku znajdującego się poza galerią.

  1. Utwórz nową pustą aplikację kanwy, korzystając z układu telefonicznego.

    Pusta aplikacja kanwy, korzystająca z układu telefonicznego.

  2. W lewym okienku nawigacji wybierz Wstaw.

  3. Wybierz Galerię pionową.
    Kontrolka Gallery jest dodawana do ekranu.

    Korzystanie z okienka narzędzi Wstaw w celu dodania formantu galerii pionowej.

  4. Zostanie wyświetlony monit o wybranie źródła danych, w którym można wybrać źródło danych z dostępnych źródeł danych.
    Na przykład wybierz tabelę Kontakty, aby użyć danych przykładowych:

    Wybieranie tabeli Kontakty do wyświetlenia w galerii.

    W galerii są pokazy elementów z poniższej tabeli:

    Galeria dodana z tabelą Kontakty.

  5. Wstaw kontrolkę Button z lewego okienka:

    Korzystanie z okienka narzędzi Wstaw w celu dodania formantu przycisku.

  6. Przenieś dodany przycisk pod elementami galerii:

    Przycisk Przenieś.

  7. Odpowiednio aktualizuj tekst przycisku, aby Usunąć rekord. Użytkownik może także zastosować wybrany przez siebie tekst:

    Zmień nazwę przycisku.

  8. Dla właściwości OnSelect tego przycisku ustaw teraz następującą formułę:

    Remove( Contacts, Gallery1.Selected )
    

    Ustawianie właściwość OnSelect kontrolki Przycisk na.

    Kontrolka galerii udostępnia aktualnie wybrany rekord przy użyciu właściwości Selected. Funkcja Remove odwołuje się do zaznaczonego rekordu, aby go usunąć.

  9. Wyświetl podgląd aplikacji, korzystając z przycisku Odtwarzaj w górnej części po prawej lub naciśnij klawisz F5 na klawiaturze:

    Wersja zapoznawcza aplikacji.

  10. Zaznacz rekord, który chcesz usunąć, taki jak Rekord Nancy w poniższym przykładzie:

    Wybierz rekord.

  11. WybierzUsuń rekord:

    Galerię kontaktów, ale bez rekordu Nancy, który został usunięty.

    Wybranie przycisku powoduje usunięcie zaznaczonego rekordu (w tym przykładzie rekordu Nancy).

  12. Zamknij podgląd aplikacji.

    Napiwek

    Można również użyć alternatywnego zachowania klawisza Alt zamiast używać podglądu aplikacji za pomocą przyciskuOdtwórz lub F5.

W tym przykładzie użytkownik usunie element, korzystając z ikony znajdującej się poza galerią.

Tworzenie kolekcji z przykładowymi danymi

Jeśli są już przygotowane dane przykładowe, pomiń ten krok i przejdź do kosza w galerii.

  1. Dodaj kontrolkę Button do swojego ekranu.

  2. Ustaw właściwość OnSelect na następującą formułę:

    ClearCollect( SampleContacts,
          { 'Full Name': "Yvonne McKay (sample)",      'Primary Email': "someone_a@example.com" },
          { 'Full Name': "Susanna Stubberod (sample)", 'Primary Email': "someone_b@example.com" },
          { 'Full Name': "Nancy Anderson (sample)",    'Primary Email': "someone_c@example.com" },
          { 'Full Name': "Maria Campbell (sample)",    'Primary Email': "someone_d@example.com" },
          { 'Full Name': "Robert Lyon (sample)",       'Primary Email': "someone_e@example.com" },
          { 'Full Name': "Paul Cannon (sample)",       'Primary Email': "someone_f@example.com" },
          { 'Full Name': "Rene Valdes (sample)",       'Primary Email': "someone_g@example.com" }
    )
    
  3. Trzymając wciśnięty klawisz Alt, kliknij przycisk.

Można utworzyć przykładową kolekcję, która może być używana w następującym przykładzie.

  1. Utwórz nową pustą aplikację kanwy, korzystając z układu telefonicznego.

    Pusta aplikacja kanwy, korzystająca z układu telefonicznego.

  2. W lewym okienku nawigacji wybierz Wstaw.

  3. Wybierz Galerię pionową.
    Kontrolka Gallery jest dodawana do ekranu.

    Korzystanie z okienka narzędzi Wstaw w celu dodania formantu galerii pionowej.

  4. Zostanie wyświetlony monit o wybranie źródła danych, w którym można wybrać źródło danych z dostępnych źródeł danych.
    Na przykład wybierz tabelę Kontakty, aby użyć danych przykładowych:

    Wybieranie tabeli Kontakty do wyświetlenia w galerii.

    W przypadku utworzenia kolekcji wybierz ją, a następnie kliknij opcję:

    Przykładowa kolekcja kontaktów.

  5. W galerii zaznacz formant, w którym znajduje się pozycja w górnej części.

    Aby przed przejściem do następnego kroku sprawdzić, czy następny krok wstawia element do szablonu galerii, ale nie poza galerią, należy się upewnić, że ten krok należy wykonać.

    Zaznaczanie najwyższego rekordu w galerii.

  6. Wybierz polecenie Dodaj ikonę z lewego okienka.

    Korzystanie z okienka narzędzi Wstaw w celu dodania kontrolki ikony.

    Uwaga

    Funkcja Dodaj ikonę wstawia ikonę + po lewej stronie galerii, która jest replikowana dla każdego elementu w galerii.

  7. W górnej części okna przesuń ikonę po prawej stronie ekranu.

    Ikona Przenieś.

  8. Wybierz właściwość Icon dla danej ikony i ustaw ją na następujący wzór, aby zaktualizować obraz ikony jako ikonę kosza:

    Icon.Trash
    

    Uwaga

    Prefiks Icon. jest widoczny tylko wtedy, gdy użytkownik aktywnie edytuje formułę.

    Zmiana ikony na ikonę kosz.

  9. Ustaw właściwość OnSelect na następującą formułę:

    Remove( [@Contacts], ThisItem )
    

    Uwaga

    W tym przykładzie należy użyć globalnego operatora rozsyłania[@...] z przykładami danych, które korzystają z tabeli Kontakty, aby uniknąć konfliktów z relacją jeden do wielu. W przypadku używania źródeł danych, takich jak listy lub tabela programu SQL Server, użycie globalnego wielowymiarowego operatora uściślenia nie jest wymagane.

    Formuła OnSelect przypisana ikonie „Kosz”.

  10. Wyświetl podgląd aplikacji, korzystając z przycisku Odtwarzaj w górnej części po prawej lub naciśnij klawisz F5 na klawiaturze.

  11. Zaznacz ikonę kosza obok rekordu, na przykład Maria:

    Galerię z usuniętym jednym z kontaktów.

    Rekord został usunięty:

    Usunięty rekord.

  12. Zamknij podgląd aplikacji.