Nel mese di gennaio Paolo Mantovani, facendomi un cazzettone, spiegava
chiaramente le differenze fra il nome del file (come noto al file system) e
ul Titolo (attribuibile dalla schedina Proprietà)
http://it.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=641
al quale rimando per lettura
All'epoca quel chiarimento mi fu di molta utilità,e pragmaticamente
cancellai dalle opzioni possibili l'uso del titolo e del frame e strutturai
tutto sulla URL file e dimenticando il resto...
Ma ieri, per sbaglio e per gioco, attribui un Titolo ad un documento (dalla
schedina proprietà) e una macro di trasferimento di sheet fra documenti
diversi smise di funzionare.
(la macro si appoggia su una subroutine registrata...)
Bene! Ciò che avevo evitato di affrontare all'epoca devo affrontarlo adesso!
:-(
Ho fatto allora un po' di prove con xray...ma la mia confusione è aumentata.
All'epoca si diceva:
Un documento può avere un percorso,
E questa era l'unica cosa veramente chiara... e per maggiore chiarezza
aggiungo che eliminado la path ottenevo un "nome" per tutti gli usi.
un nome, un titolo,
Il nome di un documento come ti ho detto prima non è necessariamente il nome
di un file, anche perchè il file non sempre esiste.
OK
Un doc appena creato e non ancora salvato non ha ancora un nome nel file
siystem e quindi non ha una URL
Il titolo invece :
menu file -> proprietà: titolo
Qui c'è un problema di omonimia....
Un doc appena creato e non ancora salvato ha già un titolo:
ThisComponent.CurrentController.Frame.title
Ma il titolo di cui tu parli, settabile via GUI con menu file -> proprietà
via basic non riesco a recuperalo
il frame che contiene il documento a sua volta ha una proprietà Name
Print ThisComponent.CurrentController.Frame.Name
Mmm...
In genere è una stringa vuota, perciò non vedrai un bel nulla, tuttavia in
qualche caso è utile impostare il nome di un frame:
ThisComponent.CurrentController.Frame.setName = "Pippo"
Ok
Specie se si sta lavorando con molti documenti aperti come nel tuo caso.
Sono tutt'orecchi...
(ricorda che StarDesktop ha un metodo findFrame e anche qualcosa tipo
setActiveFrame)
!?
inoltre è possibile risalire al documento avendo il Frame che lo contiene:
oDoc = oFrame.Controller.Model
Suppongo anche questo sia cosa utile ma mi sfugge l'uso...
Ho cercato in giro come recuperare il Titolo del doc (non quello del frame)
ma non ne sono venuto a capo...
E se veramente non c'è, com'e' possibile che quel campo possa condizionare
una macro?
Metto qui in coda un pezzo di codice che mette insieme le proprietà attorno
a nomi, titoli e percorsi... sarebbe da completare...
grazie
Bart
Sub nomi_vari
oDoc = ThisComponent
'ThisComponent.CurrentController.Frame.setName("pippo")
sDocURL = oDoc.getURL()
Print "URL completa = " & oDoc.getURL()
Print "Document File Name = " & FileNameoutofPath(sDocURL, "/")
sTitolo = ThisComponent.CurrentController.Frame.title
print "Titolo = " & stitolo
sFrame = ThisComponent.CurrentController.Frame.Name()
print "Frame = " & sFrame
' e il titolo da schedina proprietà?
End sub