alfiop78 / web-bi

0 stars 0 forks source link

GetTableColumnIndex() su colonne generate #180

Closed alfiop78 closed 8 months ago

alfiop78 commented 8 months ago

Il getTableColumnIndex() restituisce -1 sulle colonne calcolate (metriche composte). Per aggiornare la visualizzazione del report, dopo aver impostato ad esempio, la formattazione, devo utilizzare per forza il previewReady(), anziché il metodo draw().

Potrei utilizzare il metodo draw() quando getTableColumnIndex() restituisce l'indice corretto e previewReady() quando restituisce -1.

Potrei fare un passaggio in più, nella preview del report, convertire la DataView in DataTable e successivamente riconvertirla in DataView per poter nascondere/visualizzare le colonne. In questo modo posso utilizzare il metodo draw() per aggiornare le modifiche alla colonna anziché il previewReady

alfiop78 commented 8 months ago

Ripensare alla logica di tutta la funzione draw perché potrei mettere tutto in un unica funzione invece di utilizzare l'evento ready. Per quanto riguarda, invece, la Dashboard, lì ho bisogno dell'evento ready così com'è

alfiop78 commented 8 months ago

Per poter utilizzare il metodo draw() per aggiornare il report, ad esempio, dopo la formattazione di una colonna, potrei provare a convertire la DataView in una DataTable, con toDataTable(), ed infine creo una DataView basata sulla DataTable convertita. In questo modo, il getTableColumnIndex() dovrebbe restituire l'indice corretto anche sulle colonne calcolate, perché l'ultima DataView visualizzata non contiene colonne calcolate (vengono calcolate nella prima DataView)

alfiop78 commented 8 months ago

Il commento precedente funziona però non può essere utilizzato, quando si nascondono le colonne del report bisogna necessariamente richiamare la preview per poter ricalcolare le colonne generate in base al nuovo raggruppamento.

Ripristinare il funzionamento precedente ma tenere la logica della formattazione all'interno della metrica come fatto nel branch issue_getTableColumnIndex...

Nella dialog della modifica di una colonna invece potrò fare il draw() per aggiornare il report quando getTableColumnIndex() restituisce un valore della colonna (le colonne normali) e richiamare invece previewReady() quando getTableColumnIndex() restituisce -1.

Quando si nascondono le colonne bisogna sempre richiamare previewReady() perché le metriche composte vanno ricalcolate in base al nuovo raggruppamento