È l'ennesimo dilemma relativo all'app aziendale.
La maggior parte delle app professionali utilizza scrittori di report che sono troppo complicati per l'utente generico, anche se la maggior parte di essi è wysiwyg. Alcune semplici app hanno solo modelli fissi che non sono personalizzabili.
Nel tentativo di risolvere questo problema di vecchia data, abbiamo scelto la soluzione di base per il problema, ovvero la stampa basata su modelli. È un po 'come il funzionamento dei motori di blog o dei motori di forum, i modelli possono contenere un semplice codice logico e impostazioni semplici che un utente può facilmente modificare senza dover conoscere alcun codice. Un ottimo esempio di come funziona sta guardando questo sito: www.squarespace.com
Tuttavia, a differenza di un sito Web, la maggior parte dei report sulle app CRUD ha vincoli di dati, determinati criteri di selezione come gruppi o categorie. Per esempio. Voglio un rapporto di tutte le sedie dal database.
La domanda è: i criteri di selezione dovrebbero essere inclusi nei modelli? La separazione dei criteri consentirà un migliore controllo sui dati che verranno stampati. Questo paradigma viene utilizzato attraverso l'app ma senza la selezione di criteri. Per esempio. Stampa fattura ma con modelli
Come programmatori, tendiamo a pensare che la presentazione (modelli) e la logica (in questo caso i dati) dovrebbero essere separati. Cosa farai in questa situazione?
PS: I modelli generano PDF e quindi non sono in grado di mostrare dal vivo con i modelli.
Supponendo che stiamo parlando di una parte generale dell'app di reporting in cui tutti i dati disponibili dall'app devono essere "riportabili": terrei i criteri di selezione separati dai modelli.
Consentire all'utente di selezionare prima tutto ciò che desidera vedere, quindi offrire un'azione di stampa in cui è possibile selezionare un modello da utilizzare. In questo modo i modelli possono essere filtrati anche in base ai dati selezionati (non serve presentare modelli di fattura quando l'app mostra gli elementi del diario nella griglia di selezione).
Un'alternativa sarebbe iniziare con la selezione di un modello (e quindi limitare la selezione dei dati). I tuoi utenti dovranno darti una guida in merito. Per loro potrebbe essere più naturale selezionare prima un modello.
In entrambi i casi, tenderei a mostrare i dati selezionati in base ai criteri inseriti. Ad esempio in una griglia o treeview di qualche tipo. Preferibilmente "live" in modo che l'utente possa vedere immediatamente l'effetto dei criteri che inserisce. Altrimenti, inseriscili in alcuni criteri, visualizza i dati, lasciali affinare tali criteri (aggiungi/rimuovi/modifica) tornando alla finestra di dialogo dei criteri fino a quando non sono soddisfatti di ciò che hanno selezionato.
Aggiorna in risposta al commento
Quindi assicurati di avere un modello predefinito ragionevole. Ancora meglio: seleziona un modello più adatto in base ai dati selezionati dall'utente.
Non dire che non li hai :-), ma altre funzionalità che possono aiutare gli utenti in queste situazioni: