Funkcionalita

Framework poskytuje nasledovnú funkcionalitu:

Lazy tabuľka (browse)

  • filtrovanie
  • sortovanie
  • stránkovanie
  • umožňuje zobraziť aj tzv. asociovaný atribút z entity asociovanej cez ManyToOne asociáciu (zapisuje sa cez tzv. path, napr.: assoc1.assoc2.attribX)
  • pri asociovaných atribútoch (path > 1) je možné zobraziť vo filtri combobox
  • podpora tlačítok na otvorenie formulára (na vytvorenie a modifikáciu záznamu) a na zmazanie záznamu
  • špeciálny komponent XBrowse umožňuje vytvárať lazy tabuľky modifikovateľné priamo z aplikácie (tzv. runtime edit), výzor tabuľky sa ukladá do databázy (výzor tabuľky nie je súčasťou zdrojového kódu aplikácie)

Poznámka: Lazy tabuľka sa používa na zobrazenie dát z tabuľky obsahujúcej potencionálne veľké množstvo záznamov. Filtrovanie a sortovanie sa vykonáva nad databázovou tabuľkou, framework (konkrétne mapovač TypeORM) generuje príslušné SQL dotazy (WHERE podmienku pre filtrovanie, ORDER BY klauzulu pre sortovanie).

Príklad zdrojového kódu lazy tabuľky: CarBrowse.tsx

Formulár na editáciu záznamu

  • obsahuje komponenty na editáciu všetkých základných typov
  • obsahuje komponent XDropdown na zadanie asociovaného objektu pomocou combobox-u
  • obsahuje komponent XSearchButton na zadanie asociovaného objektu pomocou vyhľadávacieho dialógu
  • obsahuje komponent XAutoComplete na zadanie asociovaného objektu pomocou autocomplete prvku
  • podpora master-detail – komponent XFormDataTable2 umožňuje editáciu detail záznamov

Komponenty formulára vykonávajú základnú validáciu (do dátumového atribútu je možné zapísať len platný dátum a pod.). Framework automaticky zapisuje zmeny vo formulári do databázy (netreba programovať zápis). SQL príkazy na zápis sa generujú pomocou mapovača TypeORM.

Príklad zdrojového kódu formuláru: CarForm.tsx

Podporované typy atribútov

  • reťazec (string)
  • celé čísla (napr. id záznamu – typ number)
  • čísla s desatinnou časťou (potrebné napr. na finančné sumy – typ decimal)
  • dátum (date)
  • dátum s časovou zložkou (datetime)
  • áno/nie (boolean)
  • ManyToOne asociácia
  • OneToMany asociácia

Atribúty a ich typy sú zapísané v entite. Entita slúži na mapovanie objektu na databázovú tabuľku. Popis entít a atribútov nazývame metadáta. Metadáta sú silno využívané v celom frameworku, na servri aj na klientovi. Vďaka nim automaticky prebieha formátovanie hodnôt, validácia hodnôt, nastavenie šírky stĺpca a pod. Programátor je ušetrený od tejto práce, zdrojový kód je menší a ľahší na údržbu.

Príklad zdrojového kódu entity: car.entity.ts