Formularze
Nie każda informacja pochodzi z czujnika lub zautomatyzowanego systemu. Czasami potrzebny jest ludzki dotyk — i właśnie tu wkracza widget Formularze. Pomyśl o nim jak o cyfrowej tablicy w IronFlock. Użyj go gdy chcesz przechwytywać dane ręcznie, takie jak:
- Rejestrowanie braków na linii produkcyjnej
- Wprowadzanie odczytów z tradycyjnego czujnika pH
- Rejestrowanie notatek inspekcyjnych podczas obchodu fabryki
Jak działają formularze
Gdy ktoś przesyła formularz, dane są przechowywane w wyznaczonej tabeli w bazie danych aplikacji. Każde pole w formularzu mapuje się na kolumnę w tej tabeli, a wszystkie pola są zapisywane razem jako nowy wiersz po przesłaniu formularza.
Co konfigurujesz w widgecie formularza:
- Tytuł formularza
- Jedno lub więcej pól, każde z etykietą, typem wprowadzania i kolumną tabeli, do której powinno zapisywać
- Opcjonalne reguły walidacji i domyślne wartości per pole
Dostępne typy pól: lista rozwijana (wybierz z listy), tekst, liczba, pole wyboru i selektor daty/czasu.
Rozmieszczanie pól
Domyślnie każde pole zajmuje cały wiersz, jedno pod drugim. Długi formularz łatwiej wypełnić, gdy powiązane pola stoją obok siebie i są zgrupowane pod nagłówkami:
- Width: każde pole może zajmować cały wiersz albo trzy czwarte, dwie trzecie, połowę, jedną trzecią lub jedną czwartą wiersza. Pola wypełniają każdy wiersz od lewej do prawej, a pole, które już się nie mieści, zaczyna kolejny wiersz. Ustaw Default Field Width w Field Layout, aby nadać wszystkim polom tę samą szerokość, a następnie zmień pojedyncze pola tam, gdzie to potrzebne.
- Start a New Row: pole zaczyna nowy wiersz, nawet jeśli zmieściłoby się jeszcze obok poprzedniego.
- Sekcje: pole typu section dodaje nagłówek z opcjonalną podpowiedzią pod nim. Grupuje następujące po nim pola, aż do kolejnej sekcji. Jego Field Width in Group ustawia szerokość wszystkich tych pól naraz, a Conditional Display pokazuje lub ukrywa całą grupę, na przykład ustawienia dotyczące tylko jednego rodzaju maszyny.
- Density: nowe formularze zaczynają w trybie Compact, z mniejszymi polami, wygodnymi na komputerze obsługiwanym myszą. Wybierz Comfortable, aby uzyskać większe pola, odpowiednie dla ekranów dotykowych.
Formularz dopasowuje się do dostępnego miejsca. Na małym kafelku lub na telefonie pola stopniowo się poszerzają, aż ułożą się w jednej kolumnie, dzięki czemu każde pole pozostaje czytelne. Minimum Field Width określa, jak wąskie może stać się pole, zanim to nastąpi.
Gdzie trafiają dane?
Każde przesłanie formularza dodaje nowy wiersz do tabeli. Daje to pełną historię wszystkich wpisów — nic nie jest nadpisywane ani tracone.
Upewnij się, że konfigurujesz wszystkie wymagane pola, aby każdy nowy wiersz był kompletny i spójny.
Śledzenie najnowszego stanu
Jeśli używasz formularzy do śledzenia aktualnego stanu maszyn lub zasobów — np. najnowszego wyniku inspekcji per maszyna — IronFlock może pokazać ci tylko najnowszy wpis dla każdego elementu. Deweloper aplikacji włącza to, wskazując tabeli, które kolumny identyfikują podmiot, na przykład nazwę maszyny.
Gdy jest to ustawione, włącz przełącznik latest w ustawieniach filtrów widgetu, a widget pokaże tylko aktualny wiersz dla każdej maszyny lub zasobu. IronFlock ustala, który to wiersz, przy każdym odczycie tabeli przez widget, a każde nowe przesłanie zastępuje wiersz danego elementu na panelu, gdy tylko nadejdzie, więc spóźnione lub poprawione przesłanie nigdy nie pozostawia na panelu nieaktualnej wartości. Pełna historia przesłań pozostaje dostępna do przeglądu.
W takiej tabeli formularz potrzebuje pola dla kolumn identyfikujących encję, a poza tym tylko dla kolumn, które edytuje. Każde przesłanie zachowuje bieżącą wartość każdej kolumny, której formularz nie zapisuje. Pola formularza są zapisywane zawsze: opróżnione pole liczbowe czyści swoją kolumnę, opróżnione pole tekstowe zapisuje pusty tekst, a pole ukryte przez warunek wyświetlania czyści swoją kolumnę. Pole z wartością domyślną zapisuje tę wartość zamiast zostawiać kolumnę pustą.
Edycja rekordu z tabeli
Aby użytkownicy mogli otworzyć istniejący rekord i go zmienić, połącz tabelę z formularzem na tej samej stronie:
- Dodaj do tabeli kolumnę typu Edit button, powiązaną z kolumną identyfikującą rekord, na przykład nazwą maszyny, i ustaw jej URL Parameter Key, na przykład
edit. Każdy wiersz pokazuje wtedy ikonę ołówka. Kliknięcie zapisuje klucz wiersza w adresie URL strony (?edit=press-1), tak samo jak widget filtru ustawia swój parametr. - Dodaj formularz na tej samej stronie, włącz jego Form Open Button i ustaw Open on URL parameter na tę samą nazwę. Na panelu formularz nie pokazuje własnego przycisku: otwiera się jako okno dialogowe, gdy tylko adres URL zawiera parametr, i zamyka się ponownie, gdy użytkownik zapisze, usunie lub anuluje, co usuwa parametr z adresu URL.
- Powiąż Pre-filled Value każdego pola z kolumną rekordu, z filtrem na kolumnie identyfikującej, którego wartość pochodzi z parametru filtru
edit, i z włączonym przełącznikiem Latest. Pole zapisujące kolumnę identyfikującą to Hidden Field z tym samym powiązaniem, dzięki czemu zapis trafia do tego samego rekordu. Tak jak w poprzedniej sekcji, każda kolumna, której formularz nie zapisuje, zachowuje swoją wartość.
Okno dialogowe pokazuje pasek postępu, dopóki nie nadejdą wartości rekordu. Przy włączonym przełączniku latest tabela pokazuje zapisaną zmianę w chwili jej zapisania. Przycisk Delete w oknie dialogowym działa tak, jak opisano poniżej; jego trasa nawigacji może pozostać pusta, bo okno zamyka się samo. Zapisany jako zakładka adres URL z parametrem od razu otwiera okno dialogowe, a przycisk wstecz przeglądarki je zamyka.
Osobny formularz z własnym przyciskiem otwierania nadal tworzy nowe rekordy. Poza panelem, w podglądzie edytora widgetów, formularz zachowuje swój przycisk, aby można go było wypróbować.
Usuwanie danych
IronFlock używa podejścia tylko-dołącz do usuwania. Zamiast usuwać wiersz, formularz przesyła nowy wpis, który oznacza rekord jako usunięty: włącz Show Delete Button i ustaw Delete-Flag Column na kolumnę deleted tabeli, kolumnę boolean, którą deweloper aplikacji dodaje do tabeli. Formularz zapisuje wtedy tę kolumnę przy każdym przesłaniu, true przy usuwaniu i false przy zapisie, więc zapisanie usuniętego rekordu przywraca go. Widgety wyświetlające listę rekordów łączą przełącznik latest z filtrem na tej kolumnie (deleted jest puste lub false). Usunięty rekord znika z panelu w chwili, gdy wpis nadejdzie, i pozostaje w bazie danych do celów historycznych i audytowych. Żaden widok ani transformacja nie są do tego potrzebne; zobacz Miękkie usuwanie rekordów.
Podsumowanie
Z widgetem Formularze zyskujesz:
- Łatwe ręczne wprowadzanie danych bezpośrednio z panelu
- Automatyczne śledzenie historii dla każdego przesłania
- Przejrzyste wzorce dla pokazywania aktualnego stanu i ukrywania usuniętych rekordów
- Edycję istniejących rekordów z tabeli, w oknie dialogowym na tej samej stronie
Wszystko bez opuszczania panelu IronFlock.