Wstawianie do sekcji zmiennej liczby pustych wierszy

W tym samouczku dowiesz się jak można wstawić do sekcji zmienną ilość wierszy na podstawie prostej apki do planowania dyżurów, do której będą pobierane odpowiednie wiersze z liczbą dni dla danego miesiąca.

 

1. Lista

Stwórz listę o nazwie DNI, w której dodaj jedną kolumnę liczbową o nazwie DZIEN. W tej kolumnie wypisz po kolei liczby od 1 do 31. Z tej listy apka będzie pobierała liczbę dni dla odpowiedniego miesiąca. 

mceclip0.png

 

2. Kalendarz z dyżurami

2.1

Stwórz nową apkę i dodaj w niej tabelę o nazwie Kalendarz. Nadaj kolumnom kolejno następujące nagłówki: Dzień, Dyżur, Miesiąc i Rok. Zmień kolumnom Dzień i Miesiąc typy na liczbę, a typ kolumny Dyżur na przycisk wyboru. Ustaw kolumnę Dyżur na edytowalną, a kolumnom Miesiąc i Rok zmień widoczność na false.

mceclip1.png 

Powiąż tabelę z listą DNI, a kolumnę Dzień powiąż z kolumną z listy jak powyżej.

W tej tabeli będzie się pojawiała odpowiednia liczba dni dla danego miesiąca, a w kolumnie Dyżur użytkownik będzie mógł zaznaczyć, w których dniach ma dyżur.

2.2

Stwórz arkusz kalkulacyjny o nazwie Miesiac z dwoma komórkami. W pierwszej komórce wpisz formułę =month(today()), która będzie zwracała numer miesiąca z dzisiejszej daty i ustaw tą komórkę na edytowalną. W drugiej komórce wpisz formułę: =if(MIESIAC.A1=4||MIESIAC.A1=6||MIESIAC.A1=9||MIESIAC.A1=11,30,MIESIAC.A1=2&&number(Data.A2)%4=0,29,MIESIAC.A1=2&&number(Data.A2)%4!=0,28,31), która będzie zwracała ilość dni w miesiącu wpisanym w komórce powyżej. Arkusz Data zostanie stworzony w następnym kroku, a komórka Data.a2 będzie zawierała rok wybrany przez użytkownika.

mceclip2.png

Ustaw widoczność tej sekcji na false.

2.3

Stwórz niewidoczny pomocniczy arkusz kalkulacyjny o nazwie Miesiace, w jego pierwszej kolumnie wypisz po kolei wszystkie nazwy miesięcy.

mceclip1.png

Stwórz nowy arkusz o nazwie Data z dwiema komórkami. W pierwszej komórce wpisz formułę: =nth(Miesiace.A1:A12, MIESIAC(MIESIAC.A1)), która będzie zwracała nazwę miesiąca o numerze z pierwszej komórki arkusza Miesiac.

 

mceclip0.pngmceclip4.png

Drugą komórkę ustaw na edytowalną i zmień jej typ na listę rozwijaną. W elementach listy rozwijanej wpisz tablicę paru lat, tak jak powyżej. Wpisz w tą komórkę formułę: =text(year(today())), która będzie zwracała rok z dzisiejszej daty w formacie tekstowym. Dzięki temu domyślnie w komórce będzie się pojawiał aktualny rok, a użytkownik będzie mógł go zmienić wybierając rok z listy rozwijanej.

2.4

Stwórz dwa przyciski i ustaw je po obu stronach arkusza Data, a w ich nagłówkach wpisz strzałki w odpowiednich kierunkach jak poniżej.

mceclip2.png

Na przyciskach dodaj akcję "Ustaw wartość w komórce". Jako adres komórki ustaw Miesiac.a1 dla obu przycisków. Jako wartość dla przycisku ze strzałką w lewo wpisz formułę: =if(MIESIAC.A1=1,12,MIESIAC.A1-1), a ze strzałką w prawo - formułę: =if(MIESIAC.A1=12,1,MIESIAC.A1+1).

mceclip6.pngmceclip7.png

Dzięki temu użytkownik będzie mógł zmieniać miesiąc przy użyciu strzałek.

2.5

Wróć z powrotem do tabeli Kalendarz. W filtrze dopisz do formuły lookup warunek: DZIEN<=MIESIAC.A2.

mceclip8.png

Dzięki temu w tabeli będą się pojawiać numery dni, które będą mniejsze lub równe liczbie dni w danym miesiącu.  

2.6

W kolumnach Miesiąc i Rok wpisz kolejno formuły: =MIESIAC.A1 i =DATA.A2. W tych komórkach będą się pojawiać odpowiednie miesiące i lata co będzie potrzebne przy późniejszym zapisywaniu danych.

mceclip15.png

 

3. Zapisywanie dyżurów.

3.1

Otwórz designera i stwórz w nim nową tabelę o nazwie REJESTR_DYZUROW. Nazwij kolumny tabeli kolejno: Dzien, Dyzur, Miesiac i Rok. Ustaw kolumnom Dzien i Miesiac typy na number, a kolumnie Dyzur na Boolean. Zaznacz klucz dla kolumn: Dzien, Miesiac i Rok, dzięki temu w tabeli będzie mógł być tylko jeden wiersz dla jednej daty. Zapisz tabelę.

mceclip9.png

3.2

Wróć do designera apki i do tabeli Kalendarz. W odpowiednich kolumnach uzupełnij pole danych, wpisując nazwę tabeli REJESTR_DYZUROW i po kropce nazwę odpowiedniej kolumny. Na przykład w kolumnie Dzień należy wpisać: REJESTR_DYZUROW.DZIEN. Będzie to potrzebne do następnego kroku.

mceclip10.png

3.3

Stwórz widżet akcji workflow i przejdź do zakładki workflow. Stwórz akcję ze stanu startowego do samego siebie o nazwie Zapisz. Ustaw na akcji krok "Zapisz do bazy", jako sekcję wpisz Kalendarz, a jako listę/tabelę REJESTR_DYZUROW. Akcja zapisuje do podanej tabeli dane z kolumn, w których odpowiednio uzupełnione jest pole danych.

mceclip11.pngmceclip12.png

Po workflow ustaw akcję "Odśwież stronę".

mceclip13.png

3.4

Stwórz nową tabelę i nazwij ją Dyzury. Zmień nagłówki tak jak w tabeli Kalendarz i powiąż tabelę z tabelą REJESTR_DYZUROW, a odpowiednie kolumny powiąż ze sobą tak jak poniżej. Ustaw kolumnę Dyżur na edytowalną. Ustaw kolumny Miesiąc i Rok na niewidoczne.

mceclip14.png

mceclip18.png

We właściwościach tabeli w filtrze dopisz do lookupa warunek: MIESIAC=MIESIAC.A1&&ROK=DATA.A2, który sprawi, że w tabeli będą się pojawiać dane dla wybranego przez użytkownika miesiąca i roku.

Będzie to tabela, w której po zapisaniu będą się pojawiać zaznaczone dni, i w której będzie można dokonać zmian.

3.5

Stwórz arkusz o nazwie Pomocnicza z jedną komórką. Powiąż arkusz z tabelą REJESTR_DYZUROW, a tą jedną komórkę z kolumną DZIEN. W filtrze dopisz do lookupa taki sam warunek jak w tabeli Dyzury.

mceclip16.pngmceclip17.png

W zależności czy tabela REJESTR_DYZUROW nie ma wierszy dla wybranego miesiąca i roku, ta komórka będzie pusta lub nie.

3.6

W widoczności tabel Kalendarz i Dyzury wpisz kolejno formuły: =if(isempty(POMOCNICZA.A1),true,false) i =if(isempty(POMOCNICZA.A1),false,true).

mceclip20.pngmceclip21.png

Dzięki temu, na początku będzie można wybrać dni na dyżur w tabeli Kalendarz, a po zapisaniu będzie można te dyżury zmienić w tabeli Dyzury.

3.7

Przejdź do zakładki Workflow i dodaj drugą akcję zapisz do bazy na akcji, w której jako sekcję wpisz DYZURY.

mceclip22.png

 

4. Testy

Na ekranie użytkownik może z listy wybrać rok, a strzałkami zmieniać miesiąc. Liczba wierszy w tabeli powinna się zmieniać zgodnie z ilością dni w danym miesiącu, tak więc na przykład we wrześniu powinno być 30 wierszy. Wybierz parę dni, w których zaznacz dyżur i zapisz.

mceclip23.pngmceclip24.png

Powinien pojawić się komunikat "Akcja wykonana". Zmień zaznaczone pola i ponownie zapisz. W tabeli powinny się pojawić poprawione wiersze.

 

Czy ten artykuł był pomocny?
Liczba użytkowników, którzy uważają ten artykuł za przydatny: 0 z 0
Masz więcej pytań? Wyślij zgłoszenie

0 Komentarze

Komentarze do artykułu są zablokowane.
Oparte na technologii Zendesk