Dynamic Forms w Excel – elastyczne tworzenie formularzy bez kodowania

Table of Contents
Wprowadzenie
Dynamic Forms to rozwiązanie umożliwiające tworzenie rozbudowanych formularzy na podstawie konfiguracji zapisanej w pliku Excel. Dzięki temu możemy w prosty sposób modyfikować układ i właściwości pól, nie zmieniając kodu aplikacji.
Takie podejście daje ogromną elastyczność – wystarczy edytować arkusz w Excelu, a narzędzie Dynamic Forms automatycznie wygeneruje nowy wygląd i logikę formularza. Bez rekompilacji kodu, bez skomplikowanych wdrożeń!
Dlaczego warto stosować Dynamic Forms w Excel?
- Błyskawiczne modyfikacje – edytujesz arkusz Excel i od razu masz nową wersję formularza.
- Oszczędność czasu – minimalizujesz zmiany w kodzie, co przyspiesza cały cykl rozwoju.
- Czytelna konfiguracja – wszystkie właściwości formularza są zebrane w jednym pliku, dzięki czemu łatwo je zrozumieć i edytować.
- Skalowalność – możesz tworzyć dowolną liczbę sekcji, zakładek i pól, dostosowując formularz do rosnących potrzeb.
- Mobilna wersja - możesz tworzyć widoki na telefon
Struktura pliku Excel
W pliku Excel każda kontrolka (pole formularza, przycisk, sekcja, zakładka itp.) jest opisana w osobnym wierszu. Poszczególne kolumny natomiast definiują właściwości tych kontrolek, m.in. nazwę, typ, walidację czy szerokość.
W dokumentacji znajdziesz typowe nazwy kolumn, takie jak:
- Nazwa – określa nazwę i często typ kontrolki (np.
Nip
,sekcja
,tabs
). - Typ – wskazuje rodzaj kontrolki (np.
przycisk
,cb
– checkbox,img
– obrazek). - U (Ukryty) – 1 oznacza, że kontrolka jest niewidoczna, 0 – widoczna.
- * (Wymagane) – 0: niewymagane, 1: wymagane, 2: wymagane warunkowo.
- RO (Read Only) – 1: pole tylko do odczytu.
- Opis – dodatkowe informacje dla twórcy, niewidoczne dla użytkownika.
- Źródło danych – może być listą wartości lub odwołaniem do zewnętrznego źródła.
- Ikona – nazwa ikony z biblioteki Material Symbols.
- Znak wodny (placeholder) – podpowiedź w polu tekstowym.
- Wyrównanie –
l
(lewo),p
(prawo),c
(środek). - Walid – reguła walidacji (
data
,email
,nip
, itp.). - Walid. Wiadomość – komunikat wyświetlany przy niepoprawnych danych.
- Tooltip – krótka podpowiedź pojawiająca się po najechaniu kursorem.
- Wartość – wartość domyślna kontrolki.
- Binding – nazwa pola w modelu (ViewModel) służąca do dwukierunkowego wiązania danych.
- Akcja – definiuje akcję (np. metody wywoływane przez przyciski).
- Uwagi – notatki tylko dla twórcy formularza.
- Min / Max – minimalna i maksymalna wartość.
- Format – np. format daty.
- Szerokość / Wysokość – określa rozmiar kontrolki.
- Css Class / Style – umożliwia dodanie klas i styli CSS.
- El. Class / El. style. – klasy i style dla elementu HTML.
- Size – predefiniowane rozmiary (np. XS, SM, MD).
- Wiersz 1,2,3,4,5 – wskazuje w którym wierszu (wizualnym) formularza ma pojawić się kontrolka.
Dzięki tym kolumnom Dynamic Forms „wie”, jak zbudować formularz: gdzie umieścić poszczególne pola, w jaki sposób je zwalidować czy jakie akcje wykonać po wciśnięciu przycisku.
Przykład użycia Dynamic forms
Analogia do struktury JSON
O ile w Excelu mamy poszczególne pola w wierszach, o tyle można to przedstawić również w formie JSON (czy XML), np.:
|
|
Każdy wiersz w Excelu to w JSON kolejny obiekt, a każda kolumna – właściwość obiektu.
Wygenerowany widok
Typy kontrolek
Dynamic Forms rozpoznaje różne rodzaje kontrolek na podstawie kolumn Nazwa i Typ. Oto przykłady:
- sekcja – grupuje kilka kontrolek, tworząc wyodrębniony fragment formularza.
- wiersz (row) – ustawia kontrolki w jednym wierszu obok siebie.
- formfield – klasyczne pole formularza (np. label + input).
- tabs / tab – tworzy zakładki w formularzu.
- przycisk (button) – wywołuje zdefiniowaną akcję (zapisywanie, przejście dalej itp.).
- tabela (table) – wyświetla dane tabelarycznie.
- info – pole informacyjne (tylko do odczytu).
- cb (checkbox) – pole wyboru (tak/nie).
- img (image) – wyświetla obrazek.
- link – link zewnętrzny lub wewnętrzny.
- label – zwykła etykieta lub tekst.
- panelmenu / panelmenuitem – element menu i podmenu.
- grid – siatka pól.
- g1, g2, g3 – grupy kontrolek.
- header, sidebar, legend, kolumna – do budowania układu formularza.
Przykład użycia w aplikacjach
Jednym z przykładów praktycznego wykorzystania Dynamic Forms z konfigurowanym arkuszem Excel jest repozytorium agidot-eu/loan-application-use-case-pub, gdzie formularz wniosku o pożyczkę jest budowany dynamicznie na podstawie danych z arkusza. Znajdziesz tam:
- Pola: dane wnioskodawcy (Nip, Kwota, Okres spłaty).
- Sekcje: informacje o zatrudnieniu, źródłach dochodu.
- Zakładki: podział na kilka etapów wypełniania wniosku.
- Przyciski: np. „Zapisz”, „Dalej”, „Wstecz”.
Wszystko to kontrolowane jest poprzez zwykłe edytowanie wierszy i kolumn w Excelu.
|
|
Krok po kroku: Jak zbudować Dynamic Forms w Excel?
- Przygotuj arkusz Excel z kolumnami (Nazwa, Typ, itp.).
- Wypełnij wiersze danymi o kontrolkach (np. Nip, Kwota pożyczki, sekcja „Dane klienta” itp.).
- Zaimportuj plik do narzędzia Dynamic Forms (lub Twojej aplikacji, która go obsługuje).
- Wygeneruj formularz – aplikacja odczyta dane z Excela i zbuduje interfejs.
- Dostosuj logikę – ustaw warunki wyświetlania pól (np. pole wymagalne warunkowo), walidacje, akcje przycisków.
- Testuj i wdrażaj – wystarczy ponownie zapisać arkusz, aby wprowadzić zmiany w gotowym formularzu.
Podsumowanie
Dynamic Forms w Excel to doskonałe rozwiązanie dla projektów, w których formularze są często zmieniane i rozbudowywane. Niesie ze sobą następujące korzyści:
- Elastyczność i prostota – wystarczy edycja arkusza Excel.
- Szybkie wdrożenie – brak konieczności modyfikacji kodu i ponownego uruchamiania aplikacji.
- Łatwa współpraca – osoby nietechniczne mogą samodzielnie zarządzać formularzami.
- Skalowalność – arkusz może zawierać dziesiątki lub setki pól i sekcji, a system wygeneruje je automatycznie.
Jeśli chcesz poznać więcej szczegółów na temat Dynamic Forms, koniecznie zajrzyj na stronę Agidot.eu i do repozytorium Loan Application Use Case. Dzięki takiemu podejściu możesz szybko dostosowywać formularze do bieżących potrzeb biznesowych, nie tracąc czasu na skomplikowane modyfikacje kodu.