Ciao Chris.

Il problema delle performance che citi è interessante, soprattutto assieme alla successiva tua osservazione.
Ritengo che ci sarebbe il materiale per aprire una issue sul bugzilla di LO, ma occorre predisporre i file di esempio e descrivere il caso con tutti i passaggi per renderlo replicabile. Avresti tempo/voglia di farlo e eventualmente anche di sottoporlo?

Ultima cosa: che versione LO stai usando e su quale piattaforma?

--
Per il caricamento delle formule: la scrittura delle stesse nel .csv mi pare la cosa più semplice se si ha accesso alla produzione del .csv.

Grazie,
diego


---------------------------------------
Diego Maniacco, Bolzano (Italy)
diego.maniacco@gmail.com
---------------------------------------

2017-12-06 12:48 GMT+01:00 Chris Mair <chris@1006.org>:
La domanda da 6 bitcoin e`: come faccio a fare eseguire questa formula da B1 a B<N>
dove <N> e` la riga fino a dove arrivano il valori nella colonna A?

Ciao,

grazie a tutti quelli che hanno risposto!

L'idea di Daniele e` interessante, purtroppo inserendo un campo come "=A1+B1" da
database range risulta in una stringa "=A1+B1" inserita, non in una formula...

Il test di Diego funziona, se importato da CSV invece, "=A1+B1" viene interpretato
come formula.

Probabilmente l'idea di Giacomo e` buona. In LOBASIC per esempio effettivamente
ci sono delle funzione setString e setFormula e tutto... E` solo che vorrei evitare
macro il piu` possibile...

Per il momento ho deciso di evitare di creare quella logica in LOBASIC e ho optata
per la strada "sprecona", cioe` quella di semplicemente copiare le formule un numero
elevato di volte...

Sto incontrando uno strano problema di performance ora. LO e` veloce a importare
i dati e fare conti, ma e` molto sensibile a cambiamenti della dimensione di un
database range. P.e. esempio importare 50k righe e calcolare 50k righe di formule
non e` un problema, lo fa in pochi secondi. Ma guai se cambia la dimesione del
database range.

Se parti da un database range von 50k righe, e aggiorni la query sempre con 50k, lo rifa
in due secondi, ma se aggiorni la query con 5k righe (molto meno!) resta li` 5 minuti
a fare finta di essere crashato prima di riprendersi.

Noto che se il database range diventa piu` piccolo, nelle parte calcolata dove
precedentemente c'erano dei valori sostituisce le colonne con #REF! A quanto
pare aggiornare un database range non vuole semplicemente dire di sovvrascrivere
valori in celle, ma in qualche modo distruggere le celle e inserirne nuove. Questo
processo deve triggerare qualche code path worst case dentro Calc...

Intanto sopravivo, ma se qualcuno ha altri buoni consigli sono benvenuti :)

Bye,
Chris.










_______________________________________________
http://lists.lugbz.org/cgi-bin/mailman/listinfo/lugbz-list