[Risolto] Dialog e variabili pubbliche

Creare una macro - Scrivere uno script - Usare le API
Rispondi
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

[Risolto] Dialog e variabili pubbliche

Messaggio da maxrome84 »

Salve a tutti!
Ho un problema con un dialog in un foglio di calc. Le macro sono molte e suddivise in vari moduli.Nel primo modulo c'è l'istruzione che crea il dialog

DialogLibraries.LoadLibrary( "Standard" )
oDialogo = CreateUnoDialog( DialogLibraries.Standard.HomeDlg)

e ho impostato oDialogo come variabile oggetto globale.
Ora se scrivo un'istruzione in un'altro modulo es: odialogo.getcontrol("prova") e provo ad eseguire il codice con F8 mi restituisce l'errore "variabile dell'oggetto non impostata".
Questo non accade se la stessa istruzione la eseguo nella sub in cui creo il dialog.

Ora tutto ciò non sarebbe un problema in quanto le macro vengono eseguite correttamente senza generare errori che ne arrestano l'esecuzione.
Il problema sorge quando utilizzo la funzione on error goto.
esempio

sub prorva
on error goto errore
test = odialogo.getcontrol("prova")
errore:
Msg "attenzione errore"
end sub

Ecco in questo caso apparirà sempre il messaggio "attenzione errore" anche se non sono occorsi errori gravi che arrestano la macro.Questo perchè legge l'errore variabile oggetto non impostata nell'istruzione odialogo.getcontrol("prova").

Quindi perchè anche definendo odialogo public poi quando lo utilizzo restituisce l'errore "variabile oggetto non impostata"?
Grazie per l'attenzione.
Ultima modifica di maxrome84 il venerdì 3 giugno 2016, 22:27, modificato 2 volte in totale.
Open Office 4 beta
windows 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Dialog e variabili pubbliche

Messaggio da patel »

allega il file, sarà più facile capire e testare
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: Dialog e variabili pubbliche

Messaggio da maxrome84 »

Mi dispiace, possibilità di allegare il file.Comunque il test è semplice.Basta creare il un modulo e dichiarare global la variabe ogetto. Poi in un' altro modulo utilizzare la variabile.A questo punto con F8 si può generare l'errore quando si utilizza odialog
Open Office 4 beta
windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Dialog e variabili pubbliche

Messaggio da Gaetanopr »

Ma se è così semplice potresti creare un esempio ed allegarlo come ti è stato chiesto....giusto ???
Dichiarando una variabile oggetto pubblica questa è visibile in tutto il progetto ma non puoi utilizzarla PRIMA di aver lanciato la routine che crea l'oggetto stesso, e mi sembra proprio quello che fai tu.
Quindi dichiari pubblica la variabile, lanci la routine che crea l'oggetto e solo dopo puoi utilizzare tale variabile in qualsiasi modulo, in poche parole averla dichiarata pubblica non equivale ad aver creato l'oggetto.
Ecco perchè serviva un esempio creato da te
:super:
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: Dialog e variabili pubbliche

Messaggio da maxrome84 »

Scusate, ma ieri ero materialmente impossibilitato ad allegare un esempio, non è che non lo volessi fare. Oggi dovrei farcela.
Comunque in merito alla tua risposta, avevo pensato la stessa cosa, ma allora perchè anche quando lancio la macro, e effettivamente creo l'ogetto oDialog poi la funzione on error goto mi restituisce l'errore "variabile non inizializzata" proprio quando utilizzo oDialog??
Open Office 4 beta
windows 7
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: Dialog e variabili pubbliche

Messaggio da maxrome84 »

Ecco finalmente sono riuscito ad allegare un esempio.Nel dialog premendo il pulsante esegue una semplice operazione e non dovrebbe rilevare l'errore!
Da notare che comunque senza la funzione on error goto la macro funziona correttamente senza generare errori.
HELP!
Allegati
test.ods
(11.17 KiB) Scaricato 171 volte
Open Office 4 beta
windows 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Dialog e variabili pubbliche

Messaggio da patel »

Codice: Seleziona tutto

Sub prova
on error goto Errore
oDialogo.getControl("Campo1").text = "test"
exit sub

Errore:
MsgBox "messaggio errore"
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Dialog e variabili pubbliche

Messaggio da Gaetanopr »

maxrome84 ha scritto: Da notare che comunque senza la funzione on error goto la macro funziona correttamente senza generare errori.
HELP!
Infatti non ti serve l'istruzione on error goto
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: Dialog e variabili pubbliche

Messaggio da maxrome84 »

Be certo in questo esempio è inutile ma in macro piu complesse come ad esempio l'esportazione in pdf in un determinato percorso, se quest'ultimo dovesse risultare inesistenve vorrei gestire l'errore con on error goto ed evitare l'interruzzione della macro.Ma non posso farlo perchè comunque rileva questo errore della variabile non impostata.
Open Office 4 beta
windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Dialog e variabili pubbliche

Messaggio da Gaetanopr »

Allora devi fare come nell'esempio di patel
Per impedire l'esecuzione del codice di gestione degli errori quando non si verifica un errore bisogna inserire un'istruzione Exit Sub prima del codice inerente alla gestione dell'errore stesso.
Se non esci dalla routine la macro continuerà a leggere le istruzioni anche non in presenza di errori, ecco perché visualizzi il messaggio anche quando tutto procede bene.

Comunque questo non ha nulla a che fare con il dichiarare le variabili pubbliche o meno
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: Dialog e variabili pubbliche [RISOLTO]

Messaggio da maxrome84 »

Neanche mi ero accorto che mancava!!!!! Grazie infinite per l'aiuto!! Metto risolto al titolo!
Open Office 4 beta
windows 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Dialog e variabili pubbliche

Messaggio da patel »

il Risolto deve essere messo nel titolo del primo post
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: Dialog e variabili pubbliche [RISOLTO]

Messaggio da maxrome84 »

Scusate, ho provveduto.
Open Office 4 beta
windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Dialog e variabili pubbliche [RISOLTO]

Messaggio da charlie »

… ma non in maniera corretta: viewtopic.php?f=2&t=5661.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: [Risolto]Dialog e variabili pubbliche

Messaggio da maxrome84 »

Alla fine ce l'ho fatta! Spero....
Open Office 4 beta
windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: [Risolto]Dialog e variabili pubbliche

Messaggio da charlie »

Grazie :D .
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: [Risolto] Dialog e variabili pubbliche

Messaggio da maxrome84 »

Ci mancherebbe altro!!!
Open Office 4 beta
windows 7
Rispondi