Tabele: struktura, dane przy otwarciu i zapis
Do tej pory jeden wniosek był jednym rekordem. Teraz dodajemy zastępców na czas nieobecności, a może ich być kilku. Potrzebny jest element wielokrotny: komponent vertical table.
Kontrakt
Dział zatytułowany „Kontrakt”- Nowe pole
Substitutesjako tablica obiektów:SubstituteId— Guid,PersonId— Guid, dopuszcza null (nowy wiersz nie ma jeszcze zastępcy),Scope— zakres zastępstwa.
- Zamiast pól wpisanych ręcznie można wskazać typ z tabeli. Ręcznie łatwiej jednak zobaczyć, z jakich pól korzystamy.
Formularz
Dział zatytułowany „Formularz”- Nowa sekcja Substitutes, a w niej vertical table z 3 kolumnami (column count):
- kolumna 0: pole tekstowe
substituteId, ukryte — visibleExpression =return false;, - kolumna 1: lista wyboru
person. Wyrażenie z opcjami kopiujesz z pola pracownika, więc lista działa tak samo, - kolumna 2: pole tekstowe
scope.
- kolumna 0: pole tekstowe
- Aktualizacja kontraktu na formularzu i zatwierdzenie zmian.
Mapowania i ścieżki w tabeli
Dział zatytułowany „Mapowania i ścieżki w tabeli”- Tablica mapuje się na tabelę, a pola obiektu — na kolumny.
- W ścieżce do pola w tabeli pojawia się dwukropek z numerem wiersza, np.
substitutes/table/:2/1/person: wiersz o indeksie 2 (trzeci, liczymy od zera), kolumna 1, poleperson.
Proces — init
Dział zatytułowany „Proces — init”LoadDatadosubstituteRowsz tabeli zastępstw, z filtremAbsenceId == absenceId. To ten sam rodzaj filtra co przy wczytywaniu wniosku.- W
PrepareDatadochodzi poleSubstitutes: wczytane wiersze przerabiasz na obiekty w kształcie typedefu i zbierasz w listę.
Proces — put
Dział zatytułowany „Proces — put”DeleteRows— usuwa wszystkie zastępstwa tego wniosku.SaveData— zapisuje na nowo wszystkie wiersze z formularza (input.Substitutes), każdemu zAbsenceIdzapisywanego wniosku.- „Usuń wszystko i zapisz od nowa” gwarantuje, że baza jest zawsze zgodna z tym, co przyszło z formularza.
- Gdy proces rośnie, nadawaj aktywnościom czytelne nazwy (np.
SaveAbsence,DeleteOldSubstitutes,SaveSubstitutes), żeby było widać, co się w nich dzieje.
Zapamiętaj
Dział zatytułowany „Zapamiętaj”Tabela wyświetla się i zapisuje, ale użytkownik nie ma jeszcze jak dodać nowego wiersza. Tym zajmujemy się w następnej lekcji.