Definire classi view e form diverse in base alle necessità

Definire classi view e form diverse in base alle necessità

Un tipo di pagina molto usata in Genropy è la thpage, ovvero una pagina che è quasi interamente costituita da un tableHandler con l’aggiunta di qualche strumento avanzato in più. Nella sua configurazione di default si tratta di uno stackTableHandler.

Lo stackTableHandler è un component Genropy che si basa sull’idea di due fogli sovrapposti (stack). Il primo foglio permette di visualizzare i dati di una table di database in una griglia, mentre il secondo contiene la form relativa ad un singolo record.

Le classi view e form che definiamo in un modulo th_resource relativo ad una table sono il modo in cui possiamo determinare il comportamento della thpage, ovvero di quello stackTableHandler che occupa un’intera pagina:

  • la classe View determina l’aspetto e il funzionamento della vista griglia
  • la classe Form influenza il comportamento della parte che mostra i dati del singolo record e determina le modalità di inserimento e modifica dello stesso

Dunque in base alle diverse necessità dell’utenza possiamo rendere molto diverso l’aspetto e il funzionamento di queste pagine, semplicemente modificando le classi View e Form o parte di esse, o addirittura definendone di nuove per specifici scenari d’uso.

Ipotizziamo per esempio un software gestionale utilizzato da impiegati amministrativi, addetti alla logistica, e dirigenti. Potrebbe essere utile definire tre diverse pagine relative alla tabella degli ordini ricevuti, facendo in modo che ciascuna sia la più adatta possibile al diverso scenario d’uso: inserimento, consultazione per fini logistici, analisi per funzioni di controllo e marketing.

In questo articolo e breve tutorial vedremo come sia possibile creare altre versioni di una stessa pagina definendo altre classi View e Form .

In un progetto dove le th_resources sono state già create automaticamente dal Package Editor o lanciando lo script di generazione automatica (gnrmkthresource), troviamo, in ciascuno questi moduli, una classe View e ed una classe Form che contengono di default tutte le colonne della table a cui la risorsa si riferisce, tranne quelle di sistema (id, __ins_ts, etc).

Un primissimo step di personalizzazione per modificare l’aspetto della griglia è modificare direttamente il metodo th_struct, modificando quali colonne rendere visibili, la larghezza delle stesse, le intestazioni, la formattazione ed altri aspetti estetici.

Ma abbiamo detto che desideriamo aggiungere funzionalità e non modificare quelle esistenti e perciò possiamo definire un metodo th_struct aggiuntivo, specificando quali colonne visualizzare: la vista verrà messa a disposizione dell’utente che potrà selezionarla dall’apposito menu.

Va precisato che questo stesso risultato può essere ottenuto anche direttamente dall’utilizzatore stesso, come abbiamo visto nella nostra prima Genropill: “Come personalizzare le viste in una tabella in un attimo”, con la differenza che definire nella risorsa della pagina la struttura alternativa la renderà disponibile su qualsiasi installazione, mentre quando si crea da software viene salvata solo su database.

Il nostro intento è però quello di creare una vera e propria versione alternativa della pagina e non limitarci alla sole colonne della griglia. Prendendo a titolo di esempio un caso emplice e veloce, proseguiamo riferendoci all’applicazione creata in modo automatico nella Genropill 4: “Dal database alla web app in meno di 2 minuti”. Nello specifico, operando sulla tabella Tracks, ovvero delle canzoni in vendita presso un ipotetico store online, creeremo classi view e form alternative rispetto a quelle predefinite e mostreremo alcune semplici modifiche che renderanno il comportamento della nuova pagina diverso rispetto a quella standard.

  1. Viene modificato l’ordinamentodei dati presentati in griglia
  2. Viene attivata l’esecuzione della query al caricamento della pagina
  3. Il record viene mostrato in una finestra di dialogo invece che in una nuova pagina (passaggio da stackTableHandler a dialogTableHandler).
  4. Aggiunta una bottoniera di sections per filtrare i dati in selezione
  5. Sostituita la query generica con queryBySample più specifiche e più immediate
  6. Modificata la form, rendendola di sola visualizzazione, ed offrendo la possibilità di acquistare la canzone tramite un bottone “Buy” (che in realtà farà un semplice alert a video).

Clicca su CC per attivare i sottotitoli

Le modifiche effettuate sono ovviamente semplici e hanno solo scopo esemplificativo, ma dovrebbero aver reso bene l’idea di cosa sia possibile ottenere modificando pochissime righe di codice in Genropy.

Vuoi approfondire in autonomia? Scarica il progetto e testalo in locale sulla tua installazione Genropy o consulta la documentazione sui tablehandler:


Ti stai avvicinando al mondo Genropy e desideri saperne di più? Seguici sui social per tenerti in contatto con le ultime novità che Genropy ha da offrire:

Genropy Seguici su Facebook
Pagina Facebook

 

Genropy Seguici Gruppo Facebook
Gruppo Facebook

 

Entra a far parte del Gruppo LearnGernopy su Telegram
Gruppo Telegram