Closed alfiop78 closed 8 months ago
Recuperare la query con i dati e le colonne aggiungendo 2 set di dati alle risposte JSON, i dati e le colonne
Probabilmente non serve recuperare i dati, come nel commento precedente, basta creare il JSON quando non è presente oppure popolarlo quando invece è già presente.
In questo caso però ho bisogno del datatype delle colonne _id e _ds per poter creare correttamente JSON.data.columns
Creazione json.data.columns
Modificare la prop fields dello Sheet. Invece di un object con token: nome_colonna potrei impostarla come l'attuale logica di JSON.data.columns.
In fase di creazione di un report, il JSON delle specifiche non esiste e verrà creato in base alla prop fields.
In fase di elaborazione o apertura di un report, con le specifiche già presenti, dovrò ciclare fields e controllare, nel JSON delle specifiche, se la colonna in ciclo esiste già, nel caso in cui esiste non vado a sovrascivere eventuali modifiche fatte dall'utente (es.: modifica di label, oppure la prop group). In caso di nuove colonne aggiunte al report invece aggiungerò la nuova colonna al JSON delle specifiche, JSON data.columns.
Invece di modificare la prop fields dello Sheet posso creare una variabile nel codice che contiene la struttura della colonna (come json.data.columns). Su questa effettuo il ciclo che si occuperà di creare json.data.columns. Quando il JSON delle specifiche già esiste non devo sovrascrivere i valori in json.data.columns (sono valori impostati dall'utente) e, allo stesso tempo, se aggiungo una nuova colonna al report, questa verrà inserita in json.data.columns ovviamente con i valori delle proprietà di default
Le specifiche, in fase di costruzione del report e della dashboard devono essere lette dallo storage. In fase di apertura della dashboard (utente finale) devono essere lette dal DB
Per impostare la configurazione delle colonne utilizzo i metodi messi a disposizione da Google Chart, ad esempio ho utilizzato setColumnLabel() e, subito dopo il metodo draw() per aggiornare la DataView senza richiamare il previewReady().
Potrei fare lo stesso anche con la formattazione delle colonne, mentre, per quanto riguarda hideColumn() e setColumns() credo sia necessario invocare il previewReady() perché vanno ricalcolate le metriche in base al raggruppamento del report (da rivedere).
Dopo aver modificato una colonna devo salvare queste impostazioni in json.data.group.* e specs_token potrei rinominarlo in gchart_specs_token.
Ottimizzare la gestione del prepareData() con il corretto datatype.
Per formattare un valore es.:
rifint||date
dovrei farerifint || date_format(data, formato)
come in decisyon (definizione id e ds).