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 widżet - tabelę o nazwie Kalendarz. Nadaj kolumnom kolejno następujące nagłówki: Dzień, Dyżur, Miesiąc i Rok.

Zmień kolumnom typ:

Dzień i Miesiąc - typy liczba

Dyżur - typ 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 ustaw:

-typ liczba

-edytowalność komórki

-wpisz formułę =month(today()), która będzie zwracała numer miesiąca z dzisiejszej daty

W drugiej komórce ustaw:

 - typ liczba

-wpisz formułę =if(MIESIAC.A1=4||MIESIAC.A1=6||MIESIAC.A1=9||MIESIAC.A1=11,30,MIESIAC.A1=2&&number(Date.A2)%4=0,29,MIESIAC.A1=2&&number(Date.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 Date.a2 będzie zawierała rok wybrany przez użytkownika.

mceclip2.png

Ustaw widoczność tej sekcji na false.

2.3

Stwórz pomocniczy arkusz kalkulacyjny o nazwie Miesiace, w jego pierwszej kolumnie wypisz po kolei wszystkie nazwy miesięcy. Jego widoczność ustaw na false.

mceclip1.png

Stwórz nowy arkusz o nazwie Date z dwiema komórkami. W pierwszej komórce wpisz formułę:

=nth(Miesiace.A1:A12,MIESIAC.A1), która będzie zwracała nazwę miesiąca o numerze z pierwszej komórki arkusza Miesiac.

Drugą komórkę ustaw na edytowalną i zmień jej typ na - listę rozwijaną. W elementach listy rozwijanej wpisz =array('2021','2022','2023','2024','2025'), 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.

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 =DATe.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 typy:

-Dzien i Miesiac - number,

-Dyzur - 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.

Ustaw jej widoczność na =false.

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) - tabela Kalendarz

=if(isempty(POMOCNICZA.A1),false,true). - tabela Dyzury

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