alfiop78 / web-bi

0 stars 0 forks source link

Preparazione dati #162

Closed alfiop78 closed 8 months ago

alfiop78 commented 9 months ago

Ottimizzare la gestione del prepareData() con il corretto datatype.

Per formattare un valore es.: rifint||date dovrei fare rifint || date_format(data, formato) come in decisyon (definizione id e ds).

alfiop78 commented 9 months ago

Recuperare la query con i dati e le colonne aggiungendo 2 set di dati alle risposte JSON, i dati e le colonne

alfiop78 commented 9 months ago

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

alfiop78 commented 9 months ago

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.

alfiop78 commented 9 months ago

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

alfiop78 commented 8 months ago

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

alfiop78 commented 8 months ago

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.