Spesso può capitare che si debba creare un raggruppamento a più livelli in una DataMap e magari non si sa come fare, quindi vorrei condividervi un progetto che fa questa semplice cosa.
Abbiamo la tabella Orders che vorremmo visualizzare raggruppata per Employee e ShipName e visualizzare la data e la città dell’ordine e vogliamo ottenere il risultato dell’immagine seguente.
Come si implementa
Abbiamo una DataMap con il documento Order come fonte dati con ordinamento sui campi lastName,ShipName,OrderDate e raggrupamento sui campi lastName,ShipName.
La DataMap ha come template un item che contiene i dati da visualizzare dell’ordine e un headerTemplate dove visualizzare i dati di rottura. Nel template dell’header viene visualizzato in una label il livello di rottura più alto quello per lastName dell’impiegato dell’ordine.
Quindi è stato implementato l’evento onHeaderComposition della DataMap che è notificato ad ogni cambio di gruppo. In questo evento possiamo sapere quale colonna ha scatenato l’evento a che livello ed altre utili informazioni che ci permettono di cambiare valori nella label a video e gestire l’aspetto del gruppo così da avere il livello in rosso per lastName e in gallo per ShipName.
Un esempio che implementa questo comportamento lo trovate nel progetto datamap-raggruppata-due-livelli. È un progetto pubblico del quale potete fare un fork sul vostro server ide.
Database NwindDB
Per creare il database NwindDB dovete selezionarlo dal Datamodel e utilizando l’icona a forma di ingranaggio in basso sinistra cliccate su sblocca; a questo punto potete cliccare su aggiorna scema ed avrete il db vuoto.
Per caricarvi i dati per il momento potete utilizzare il DB Browse (esecutore delle query nella Console di Instant Developer Cloud).
Vedrete l’elenco delle tabelle e con il doppio click si esegue la query sulla tabella selezionata, quindi cliccate sull’icona di Excel e selezionate importa.
In allegato a questo articolo trovate il file Nwind-Export.zip che contiene i csv da importare che sono numerati nell’odine in cui eseguire l’import.
Nwind-Export.zip (40,9 KB)




