Sub ApriPrivacy
Dim Doc As Object
Dim Url As String
Dim Dummy()
Url = "file:///D:\Documenti\AVIS\Registro Privacy.ods"
Doc = StarDesktop.loadComponentFromURL(Url, "_blank", 0, Dummy())
end sub
che funziona; tuttavia, se passo il file a qualcun altro funziona solo se il percorso è lo stesso.
Come posso ovviare a questo problema?
Ultima modifica di charlie il sabato 3 aprile 2021, 14:35, modificato 4 volte in totale.
Motivazione:Aggiunta ✔ verde
mmmmmmmmm Pensavo: magari riesco a farmi restituire in qualche modo il percorso del file odb dal quale parte il comando e utilizzarlo come argomento per aprire il file ods, ipotizzando che siano sempre nella stessa cartella. Sto vaneggiando?
Sub ApriPrivacy2
Dim Doc As Object
Dim Url As String
Dim Dummy()
GlobalScope.BasicLibraries.loadLibrary("Tools")
path=DirectoryNameoutofPath(ThisComponent.getURL(),"/")
Url = path+"/Registro Privacy.ods"
Doc = StarDesktop.loadComponentFromURL(Url, "_blank", 0, Dummy())
end sub
Però ho ancora un problema. Se eseguo la macro da Strumenti funziona, se la associo ad un pulsante non va: si inceppa nella funzione (Valore o tipo di dati non ammesso. Indice al di fuori dell'area definita).
PERCHE'?????
function GetPath() as string
On Error Goto ErrorHandler
GlobalScope.BasicLibraries.loadLibrary("Tools")
GetPath = Tools.Strings.DirectoryNameoutofPath(ThisComponent.url, "/")
ErrorHandler:
end function
Sub WritePath
oSheet = ThisComponent.getSheets().getByIndex(0)
oCell = oSheet.getCellRangeByName("A1")
oCell.setString(GetPath())
End Sub
...che però scrive il percorso su una cella, credo quella del foglio padre, per cui non va ancora bene...
Bella dritta. Non conoscevo queste proprietà (Operazione e URL). Ho notato che in questo modo il file ods aperto non è una copia, ma il file vero e proprio; inoltre, le macro di aggiornamento avviate all'apertura funzionano (questo mi risolve un grave problema su cui mi ero incastrato) .Dovrei solo implementarlo con l'idea iniziale (cartelle diverse in caso di file condiviso tra più macchine), ma diventa complicato.
Dovrei fare una macro che all'avvio del database controlli il percorso dal file in cui è posizionato, quindi vada a modificare le proprietà dei pulsanti scrivendo l'URL in base al percorso.
Provo a studiarci su, ma sembra ostico.
Grazie comunque, Charlie.
Enjoy!
Utilizzando il metodo sopra descritto non c'è bisogno di fare nulla. Basta mettere la spunta a Strumenti->Opzioni->Carica/Salva->Generale->Salva URL relativamente al file system e (con qualche limite e accorgimento) LO fa tutto da solo.
Fantastico!