Omówienie integracji formularzy programu SharePoint

Formularz listy SharePoint można dostosować za pomocą Power Apps, aby tworzyć, wyświetlać i edytować elementy listy bez opuszczania listy. Szablon responsywny zawiera tytuł, opis i formularz wewnątrz kontenerów układu. Wygenerowane formuły i kontrolka SharePointIntegration łączą formularz z akcjami listy.

Uwaga

Poprzedni szablon używał obszaru roboczego w rozmiarze mobilnym z formularzem jednokolumnowym. Nowy szablon używa typu obszaru roboczego Flexible i układu dynamicznego, który dostosowuje się do dostępnego miejsca. W tym artykule opisano szablon responsywny, który jest używany podczas tworzenia nowych formularzy. Istniejące niestandardowe formularze zachowują bieżący układ i nie są automatycznie konwertowane.

Utwórz i dostosuj formularz

Otwórz listę w SharePoint lub Microsoft Lists, aby dostosować jej formularz. Podczas tworzenia lub wyświetlania listy w SharePoint następuje automatyczne przekierowanie do aplikacji Listy Microsoft. Lista jest dostępna w obu miejscach. Aby uzyskać więcej informacji, zobacz Co to jest lista na platformie Microsoft 365?

  1. Otwórz listę w SharePoint lub Microsoft Lists.
  2. Wybierz pozycję Integruj>Power Apps>Dostosuj formularze.
  3. W programie Power Apps Studio rozwiń kontenery ekranu w widoku drzewa i wybierz zagnieżdżoną kontrolkę formularza SharePointForm1.
  4. Użyj pozycji Edytuj pola , aby wybrać i uporządkować pola. Zachowaj powiązanie formularza DataSource z listą.
  5. Wybierz kontrolki tytułu i opisu, aby dostosować ich tekst. Zachowaj responsywne rozmiary kontenerów i wygenerowane akcje SharePointIntegration.
  6. Zapisz formularz i opublikuj go w SharePoint. Przetestuj tworzenie, wyświetlanie, edytowanie, zapisywanie i usuwanie elementu z listy.

Omówienie domyślnie wygenerowanego formularza

Formularz jest zagnieżdżony wewnątrz kontenerów układu, a nie umieszczony bezpośrednio na ekranie. Rozwiń kontenery w widoku drzewa, aby znaleźć formularz i jego karty danych.

Control Purpose
FormScreen1 Ekran zawierający układ responsywny.
FormScroll1 Kontener zewnętrzny, który zapewnia przewijanie w pionie.
TitleBand1 Kontener dla tytułu i opisu.
FormCardWrap1 Kontener w stylu karty wokół formularza.
SharePointForm1 Formularz, który tworzy, pokazuje lub edytuje element listy. Jego karty danych reprezentują pola na liście.
SharePointIntegration Kontrolka, która łączy akcje listy SharePoint z formularzem.

Są to przykładowe nazwy wygenerowane. Jeśli nazwa w aplikacji jest inna lub zmieniasz nazwę kontrolki, użyj jej rzeczywistej nazwy w formułach. W poniższych przykładach użyto programu SharePointForm1 dla formularza zagnieżdżonego.

Pozostaw formularz połączony z listą

Źródło DataSource formularza jest listą, którą dostosowujesz. Formuła Element używa rekordu wybranego w SharePoint, z pierwszym elementem listy jako rozwiązania zastępczego, gdy nie wybrano żadnego elementu:

If(
    IsBlank(SharePointIntegration.Selected),
    First('YourListName'),
    SharePointIntegration.Selected
)

Zastąp 'YourListName' nazwą źródła danych listy. Mechanizm awaryjny umożliwia pracę z przykładowymi danymi w programie Studio. Akcje SharePointIntegration ustawiają tryb formularza, gdy działa on w SharePoint.

Układ kolumn

Elastyczna kanwa używa responsywnego dopasowania rozmiaru zamiast skalowania stałego układu mobilnego. Formuła NumberOfColumns formularza używa szerokości aplikacji:

If(App.Width < 640, 1, If(App.Width < 900, 2, 3))
Szerokość aplikacji Columns
Mniej niż 640. Jeden.
Od 640 do poniżej 900. Dwa.
900 lub więcej. Trzy.

Te punkty przerwania o szerokości aplikacji nie gwarantują, ile kolumn mieści się wewnątrz każdego panelu SharePoint. Sprawdź formularz na rzeczywistym hoście, a nie tylko w programie Studio.

Wygenerowane karty danych używają formuł na podstawie właściwości Parent.NumberOfColumns dla ich położenia i szerokości. Zastąpienie tych formuł stałymi wartościami może uniemożliwić ponowne rozmieszczanie pól. Sprawdź długie etykiety, pola wielowierszowe, komunikaty o wymaganych polach i przewijanie przy każdym rozmiarze układu. Ekran responsywny nie oznacza, że każde pole używa nowej nowoczesnej kontrolki wejściowej.

Zachowaj wygenerowane dynamiczne ustawienia wyświetlania i formuły kontenera podczas dostosowywania układu. Aby uzyskać więcej informacji na temat formuł określania rozmiaru, zobacz Tworzenie dynamicznych układów w aplikacjach kanwowych.

Uwaga

Chociaż możesz ręcznie skopiować formularz z jednego środowiska do innego, obecnie w usłudze Power Apps nie ma metody automatycznej kopiowania formularza z jednego środowiska do innego.

Omówienie kontrolki SharePointIntegration

Kontrolka SharePointIntegration służy do przekazywania akcji użytkownika między programem SharePoint i usługą Power Apps. Pozycja formularza wewnątrz kontenerów nie ma wpływu na tę integrację.

Zrzut ekranu obiektu integracji SharePoint widzianego w aplikacji Power Apps.

Uwaga

Dostęp do właściwości kontrolki SharePointIntegration można uzyskać tylko wtedy, gdy formularz jest uruchamiany w programie SharePoint, a nie podczas dostosowywania formularza w programie Power Apps Studio. Te właściwości mogą być niedostępne w formułach OnStart lub OnVisible.

Domyślne akcje formularza

Zachowaj wygenerowane akcje, aby formularz zagnieżdżony odpowiadał na operacje Nowy, Pokaż, Edytuj, Zapisz i Anuluj:

Właściwość Akcje w SharePoint Formularz formuły
OnNew Otwórz formularz Nowy lub Utwórz element . NewForm(SharePointForm1)
OnView Wybierz element lub otwórz formularz szczegółów. ViewForm(SharePointForm1)
OnEdit Wybierz pozycję Edytuj wszystko lub otwórz formularz Edytuj element . EditForm(SharePointForm1)
OnSave Wybierz Zapisz, aby przesłać zmiany. SubmitForm(SharePointForm1)
OnCancel Wybierz Anuluj, aby zresetować zmiany. SharePoint automatycznie ukrywa formularz. ResetForm(SharePointForm1)

Obsłuż wyniki zapisu

Zdarzenie OnSuccess formularza jest uruchamiane dopiero po pomyślnym przesłaniu. Szablon dynamiczny resetuje formularz i prosi SharePoint o ukrycie go:

ResetForm(Self); RequestHide()

Self odwołuje się do formularza, którego formuła OnSuccess jest uruchamiana. Zachowaj RequestHide() w OnSuccess, a nie zanim zapis zakończy się powodzeniem. Użyj polecenia OnFailure i wyjścia Error formularza, aby przekazać informacje o nieudanych zapisach. Nie ukrywaj formularza tak, jakby rekord został zapisany.

Wybrane właściwości elementu

Użyj tych właściwości, aby pracować z elementem listy otwieranym przez program SharePoint:

Właściwość Description
Wybrano Wybrany rekord z listy.
SelectedListItemID Identyfikator wybranego elementu listy.
Źródło danych Lista zawierająca rekord. Zmiana tej właściwości może uniemożliwić działanie właściwości Selected i SelectedListItemID .

Aby skopiować bieżący rekord do zmiennej, zobacz Typowe problemy z obiektem SharePointIntegration.

Dostosowywanie formularza domyślnego

Dostosuj układ i formuły bez przerywania połączenia między zagnieżdżonym formularzem a SharePoint.

  • Zachowaj formularz wewnątrz kontenerów układu. Zmień tytuł, opis i pola bez zastępowania responsywnych formuł zmiany rozmiaru stałymi wartościami.
  • Użyj formuły OnSave obiektu SharePointIntegration, aby przesłać tylko używany formularz. W przypadku dodawania wielu formularzy ustaw zmienną w OnNew, OnView i OnEdit, aby zidentyfikować formularz do przesłania.
  • Uwzględnij RequestHide() w formule OnSuccess każdego formularza. Uruchom ważną logikę przed RequestHide(), gdy formularz jest nadal widoczny i można uruchomić tę logikę.
  • Zresetuj formularze w SharePointIntegration.OnCancel. SharePoint kontrolki ukrywają się, gdy użytkownik wybierze przycisk Anuluj.
  • Użyj polecenia OnNew, OnView lub OnEdit do logiki, która musi zostać uruchomiona przed wyświetleniem formularza przez SharePoint. Nie należy polegać na OnStart ani OnVisible do obsługi zmian elementów listy.

Typowe problemy dotyczące obiektu SharePointIntegration

Poniższe wskazówki dotyczą uruchamiania formularza dynamicznego wewnątrz SharePoint.

Odczytaj bieżący rekord

Jeśli zmienna oparta na wartości SharePointIntegration.Selected nie wyświetla najnowszych wartości, użyj parametru SelectedListItemID , aby wyszukać rekord. Na przykład dodaj tę formułę do elementu SharePointIntegration.OnView wraz z wygenerowaną ViewForm(SharePointForm1) akcją:

ViewForm(SharePointForm1);
Set(
    selectedLookupItem,
    LookUp('YourListName', ID = SharePointIntegration.SelectedListItemID)
)

Zastąp 'YourListName' nazwą źródła danych listy.

Resetuj stan sesji

Zmienne kolekcji nie są resetowane po zamknięciu formularza. Stan utrzymuje się przez całą sesję. Jeśli musisz zresetować kolekcję, wyczyść ją w SharePointIntegration.OnView.

Unikaj nieoczekiwanych akcji w tle

Nie używaj funkcji imperatywnych, takich jak , we właściwościach Launch(), takich jak OnNew i OnView. Te zdarzenia mogą być uruchamiane w tle nawet wtedy, gdy formularz nie jest widoczny.

Zrozumienie dostępu użytkowników do dostosowanych formularzy

Nie można ręcznie udostępnić formularza programu SharePoint dostosowanego do usługi Power Apps. Zamiast tego każdy użytkownik, który ma co najmniej dostęp do odczytu lub widoku z ograniczeniami do połączonej listy programu SharePoint, dziedziczy dostęp do formularza. Użytkownicy, którzy otrzymali tylko uprawnienia do określonych elementów na liście, nie mają dostępu do dostosowanego formularza.