Paolo Mantovani ha scritto:
Ad esempio quando crei un nuovo documento questo viene chiamato
"nuovo documento 1" (2, 3, ecc..) ma non esiste ancora nessun file
che lo rappresenti.
Oops! Capito!
Le cose non sono poi così lineari anche per noi sottoproletari che
diciamo pane al pane, vino al vino, e
persistent-representation-at-file-system-level al documento :-)
:-) (rido perche piangere non è da uomo...)
Il nome di un documento come ti ho detto prima non è necessariamente
il nome di un file, anche perchè il file non sempre esiste.
Capito anche qui!
il frame che contiene il documento a sua volta ha una proprietà
Name
Non c'è molto da sudare in effetti: Print
ThisComponent.CurrentController.Frame.Name ...zot...
Parole molto chiare...
Stampate e appese qui davanti al naso...
Adesso non esagerare... ricordati che io sono "il Presidente"...
La mia posizione di presidente è a rischio... perchè meno capisci e più
sali in alto nella gerarchia... :-)
...zot..
Il suo aspetto è questo: "pippo.ods" esattamente come lo vedo nel
file manager... :-)
male!! :-) Che ti costava metterci l'URL completo nella variabile
globale?
Nulla, anzi... :-(
Quasta notte ho rovesciato le cose ed ho sostituilo il contenuto della
variabile globale con un urlil
Adesso, come variabile globale, ho una URL... (WOWW!)
Sono anche riuscito a copiare i dati da un documento all'altro, usando
una macro trovata sul Pitonyak... (un dispacth... mi sono tappato il
naso...)
Ma poi perdevo il controllo... non passavo realmente sull'altra worksheet...
Alla fine ho capito... ed ho messo la macro in una libreria condivisa.
Adesso tutto funziona e le voci di prezzario "volano" sull'elenco prezzi
con sufficiente scioltezza.
ma scusa, il nome da dove l'hai recuperato?
URLStr = ThisComponent.getURL() del file
oNome = FileNameOutOfPath(URLStr)
Trovi tutto quello che ti può servire nella libreria Tools, modulo
Strings Ci sono funzioni già pronte per estrarre il nome del file
(con o senza estensione) a partire da un url.
Appunto... vedi sopra.. coscevo quella "zona", ma non tutte quelle
funzioni mi sono chiare... :-)
(Ma se ci fosse modo di evitare di cercare la Path sarebbe una
complicazione in meno... ma dubito. Starbasic vuole la URL)
Non è che lo vuole starbasic, è la logica. Io posso avere 10
documenti pippo.ods in 10 percorsi diversi. Se li apro tutti insieme
avrò 10 documenti diversi con lo stesso nome di file.
Non fa na grinza!
In effetti, affidarsi semplicemente al nome del file per il
riconoscimento di un certo documento significa scrivere codice
traballante, o meglio "error prone".
Vorresti dire che quest'anno, invece della calza, ho messo fuori il sedere?
Ti riepilogo la tua situazione per come l'ho capita io:
hai una serie di documenti che sono stati aperti dall'utente, e
perciò la tua macro non sa nulla di essi. Tuttavia, devi compiere
certe operazioni sui documenti di un certo tipo.
Non esattamente:
Io ho una serie di documenti che sono stati aperti dall'utente, sono
tutti calc (prezzari diversi) ma tutti contengono lo stesso codice.
Quello che non sanno i documenti Calc/prezzario è quale sia il documento
di Contabilità Corrente a cui inviare le voci che trovo man mano.
(Per ragioni mie potrei avere aperte diverse tabelle calc di
contabilità, ma una sola è quella che sto compilando...)
Io o risolto con un pulsante sulla Calc di Contabilità che la rende
quella Corrente scrivendo la sua URL in quella famosa variabile globale.
Le varie calc/prezzario hanno ciascuna un pulsante che dice:
"invia questa voce di prezzario alla Contabilità corrente"
Se lo pigio lui va aa azionare una macro su una libreria condivisa che
fa all'incirca:
legge la URL nella variabile globale, ed essendosi ben informato va ad
aggiungere quella Voce di prezzario nella sheet "Elenco Prezzi" della
Calc di Contabilità "Corrente".
(Anche nel caso riuscissi ad implementare un copia/incolla automatico da
un ElencoPrezzi di una contabilità ad un'altro ElencoPrezzi di un'altra
contabilità si trattrebbe sempre di inviare dati verso la Calc di
Contabilità Corrente...)
La cosa sempbra funzionare... anche se ogni tanto (codice un po'
"prono"...?) perdo il contenuto della variabile globale...
Ora per scrivere una macro non traballante occorre concentrarsi sulla
frase "di un certo tipo" Se tu sai dare un significato preciso a
questa frase allora puoi scrivere una funzione di comparazione che ti
dica se un documento qualsiasi è o non è del tipo richiesto.
Supponiamo che il ...zot...
Ottime indicazioni... GRAZIE!
Lampi di comprensione nella buia notte!
Se la soluzione "variabile globale" continua a traballare proverò questa
strada...
Be i numerini hanno un senso se usi i valori suggeriti qui:
http://api.openoffice.org/docs/common/ref/com/sun/star/frame/FrameSearchFlag.html
Comunque difficilmente ti serviranno.
Anche se sono il Presidente a volte ho dei guizzi di curiosità!
Una conferma che anche nelle teste "migliori" a volte si scorgono
fiammelle di intelligenza!! :-)
Sono anni che lo chiamiamo confidenzialmente Ultimus, per
contrapporlo al famoso programma... ma se rilascio l'applicativo
temo non sia il nome migliore... sia per la Acca che produce
"primus" sia per l'immagine di OO con un applicativo che si chiama
"Ultimus"...
Mi fate sapere?
Mi correggo... ultimamente era diventato "UltimusFree"
La tradizione GNU richiederebbe un acronimo auto ricorsivo, vedi
tu.... ;-)
Vada per l'acronimo... , ma per l'autoricorsivo temo di non sapere bene
di cosa si tratti...
Se a qualcuno viene qualche idea è la benvenuta!
Grazie Paolo
Bart
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]