Ciao Rosa,

Rosa Bellini ha scritto:
Ciao,


il mio problema:
ho bisogno di inserire dei grafici, contenuti in un documento .ods,
all'interno di un documento .odt, questi devono però potersi aggiornare.


Ho provato inserendo il grafico come OLE: ho collegato l'intero
documento .ods e poi ho “ristretto” la finestra della OLE fino a
visualizzare solamente il grafico desiderato.


Una volta salvato e riaperto il documento .odt OOo mi chiede di
aggiornare i collegamenti. Una volta cliccato sul Si nella OLE non si
visualizza più il grafico prescelto, ma un grafico qualsiasi posto
all'inizio della tabella.

Avete dei suggerimenti per rendere permanente la scelta della porzione
di tabella di Calc che si vuole visualizzare?

Dunque, sono riuscito a riprodurre il problema e purtroppo non ho trovato una soluzione diretta. In sostanza, il range di celle visualizzato e il fattore di zoom non vengono memorizzati e, all'aggiornamento dei dati vengono usate delle impostazioni di default. Dovrebbe esistere una issue già aperta per questo problema, ma non sono riuscito a trovarla.

In ogni caso posso proporti una soluzione alternativa:
Parto dal fatto che la tecnica di collegare un intero documento calc per mostrare un grafico non mi piace molto anche se comprendo le ragioni.

In ogni caso, non sarebbe molto più elegante inserire solamente un grafico anzichè un intero documento? Chiaramente c'è il problema di collegare i dati in modo dinamico ma si può risolvere con una semplice macro.

In sostanza la tecnica è questa.
1) prepara il grafico in un documento Calc
2) fai un copia incolla del grafico nel documento Writer di destinazione

A questo punto hai una copia "statica" del grafico. Per renderla dinamica occorre una macro inserita nel documento Writer stesso e collegata all'evento di apertura del documento (menu strumenti->personalizza ... eccetera eccetera)

La macro (da adattare e perfezionare) è alla fine del post
Raccomando massima cautela.


Ciao
Paolo M

-----------------------------------------------

REM  *****  BASIC  *****

Sub OnDocumentOpen

nResult = MsgBox("Aggiornare i dati?", 1)
If nResult = 1 Then 'user pressed OK
  Dim mArgs(0) As New com.sun.star.beans.PropertyValue
  mArgs(0).Name  = "Hidden"
  mArgs(0).Value = True
  sURL = "file:///home/paolo/grafico.ods"
  oCalc = StarDesktop.loadComponentFromUrl(sURL, "_default", 0, mArgs())
  oSrcChart = oCalc.Sheets(0).DrawPage(0)
  mData = oSrcChart.Model.Data

  oDestChart = ThisComponent.EmbeddedObjects(0).EmbeddedObject
  oDestChart.attachData(mData)
  oCalc.close(True)
End If

End Sub


















---------------------------------------------------------------------
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org

Rispondere a