Dynamic Forms ver 9: Elastyczne formularze konfigurowalne tekstowo ze wsparciem AI

Michał Feliksik
3 min read
Dynamic Forms ver 9: Elastyczne formularze konfigurowalne tekstowo ze wsparciem AI

dynamic-forms (Opis formatu GUI - Structura DynamicForms DSL)

Prosty opis formularzy - zoptymalizowany do pracy z AI - podeślij link do tej strony do chatGPT i poproś o wygenerowanie widoku

Szablon startowy

:PozyczkaOnline form
Szablon nagłówka 3 h3
nazwa sekcji section
 Nagłówek 5 h5
 Nip textbox
 NumerTelefonu textbox
 AdresEmail textbox
Druga sekcja section
 Szablon nagłówka 5 h5


Header header - przykładowy layout aplikacji
 LogoFirmy img datasource="https://structura.agidot.eu/api/upload-image/get/image-13.png"
 g1
 Rejestracja link 
 DaneFinansowe link
 Realizacja link
Sidebar sidebar
 column
  LogoFirmy img datasource="https://structura.agidot.eu/api/upload-image/get/image-13.png"
  NazwaFirmy label
  g2
 panelmenu
  Analiza panelmenuitem
  Klienci panelmenuitem
 column
  g3 
  www.agidot.eu label
  Copyright Ⓒ 2025 label

Generator widoku online

Narzędzie online generujące gui na podstawie opisu

  1. Otwórz formularz image
  2. Wprowadzć opis widoku do pola tekstowego image
  3. Kliknij generuj - poniżej pojawi się log z parsowania formatki
  4. Kliknij ‘Przejdź do /df/{id}’ - pojawi się formatka image

🔷 Struktura ogólna

Format opisuje interfejs użytkownika w postaci tekstowej. Wcięcia oznaczają strukturę zagnieżdżeń. Każdy element odpowiada komponentowi UI.


✅ Formularz (form)

  • Definicja: :NazwaFormularza form
  • Odpowiada klasie FormDefinition
  • Zawiera listę kontrolek

Przykład:

:DanePodstawowe form
Imie textbox - Imię użytkownika
AkceptujeRegulamin checkbox
ListaFirm dropdown datasource="['firma1','firma2']"

✅ Kontrolki treści (ContentControl)

DSLKlasa C#Opis
textboxTextBoxPole tekstowe
checkboxCheckBoxPole wyboru
dropdownComboBoxLista rozwijana (z datasource)
imgImageObrazek (z datasource URL)
labelTextBlockEtykieta
linkLinkLink (z datasource)
h1h6HeadingNagłówek (poziom HeaderLevel)

✅ Kontrolki kontenerowe (ContainerControl)

DSLKlasa C#Opis
sectionSectionSekcja formularza
tabsTabsZakładki
tabTabPojedyncza zakładka
columnColumnKolumna
rowRowWiersz
gridGridSiatka
stackStackUkład pionowy
formfieldFormFieldGrupa pól z etykietą
panelmenuPanelMenuMenu w panelu
panelmenuitemPanelMenuItemElement menu panelowego

Przykład:

Zgody section
 PodstawoweZgody formfield
  regulamin checkbox - Akceptacja regulaminu

✅ Tabele i dane (ItemsContainerControl)

DSLKlasa C#Opis
datagridTableTabela z wierszami i kolumnami
columnDataColumnControlKolumna tabeli

Przykład:

Produkty datagrid
 Lp column
 Nazwa column
 Cena column

DSLKlasa C#Opis
headerHeaderGórna część layoutu
sidebarSidebarLewa/prawa część layoutu
footerFooterDolna część layoutu

Przykład:

Header header
 LogoFirmy img datasource="https://..."
 Rejestracja link 

Sidebar sidebar
 column
  LogoFirmy img
  NazwaFirmy label
 panelmenu
  Analiza panelmenuitem

🔧 Atrybuty i rozszerzenia

  • - Opis — tekst wyświetlany przy kontrolce
  • class="..." — klasa CSS
  • width=... — szerokość
  • datasource="..." — źródło danych (dla dropdown, img, link)

🏗️ Mapowanie DSL → C#

DSLKlasa C#
formFormDefinition
textboxTextBox
checkboxCheckBox
dropdownComboBox
imgImage
labelTextBlock
linkLink
sectionSection
tabs / tabTabs, Tab
datagridTable
columnDataColumnControl
panelmenuitemPanelMenuItem

🧪 Przykład bez layoutu:

:PozyczkaOnline form
Pożyczka online h3

DaneFirmy section
 Dane firmy h5
 Nip textbox
 NumerTelefonu textbox
 AdresEmail textbox

Zgody section
 PodstawoweZgody formfield
  regulamin checkbox - Zgoda na regulamin
  przetwarzanie checkbox - Zgoda na przetwarzanie danych

🧪 Kompletny przykład:

:PozyczkaOnline form
Pożyczka online h3

DaneFirmy section
 Dane firmy h5
 Nip textbox
 NumerTelefonu textbox
 AdresEmail textbox

Zgody section
 Zgody h5

PodstawoweZgody formfield
 Podstawowe zgody label
 regulamin checkbox - Akceptacja regulaminu i polityki prywatności.
 przetwazanie checkbox - Zgoda na przetwarzanie danych osobowych zgodnie z obowiązującymi przepisami (np. RODO).

ZgodyMarketingowe formfield
 Zgody marketingowe label
 ZgodaTelefon checkbox - Wyrażam zgodę na kontakt telefoniczny w celu przedstawienia mi oferty produktów pożyczkowych firmy XYZ.
 ZgodaSMS checkbox - Wyrażam zgodę na otrzymywanie wiadomości SMS z informacjami o promocjach, ofertach specjalnych oraz nowościach produktów.
 ZgodaEmail checkbox -Wyrażam zgodę na otrzymywanie wiadomości e-mail zawierających informacje o produktach, aktualnościach oraz ofertach marketingowych.

Header header
 LogoFirmy img datasource="https://structura.agidot.eu/api/upload-image/get/image-13.png"
 g1
 Rejestracja link 
 DaneFinansowe link
 Realizacja link

Sidebar sidebar
 column
  LogoFirmy img datasource="https://structura.agidot.eu/api/upload-image/get/image-13.png"
  NazwaFirmy label
  g2
 panelmenu
  Analiza panelmenuitem
  Klienci panelmenuitem
 column
  g3 
  www.agidot.eu label
  Copyright Ⓒ 2025 label