[Risolto] Chiusura documento calc da modello

Creare una macro - Scrivere uno script - Usare le API
Rispondi
geovign
Messaggi: 215
Iscritto il: domenica 13 gennaio 2019, 11:19
Località: Modena

[Risolto] Chiusura documento calc da modello

Messaggio da geovign »

In un file modello di calc (.ots) ho associato all'evento "Nuovo documento" l'esecuzione di macro; quindi quando apro il modello questa viene eseguita.
Ad inizio codice viene aperto una finestra di messaggio (MsgBox) con due pulsanti (OK ed Annulla). Alla pressione del tasto "Annulla" vorrei che venisse chiuso il documento "Senza Nome 1".
Di seguito la prima parte del codice

Codice: Seleziona tutto

Sub CreaOds
	dim Doc as object
	Dim SceltaIniziale As integer
	Doc = ThisComponent
 	SceltaIniziale = MsgBox ("Prima di iniziare l'installazione del programma, si procederà alla compilazione" & _
 			" dei dati anagrafici, degli eventuali corpi aziendali presenti in Azienda." & CHR$(10) & _
			"Al termine delle operazioni il file verrà chiuso ed al prossimo " & _
			"riavvio si potrà procedere con la compilazione del quaderno di campagna" & CHR$(10) & _
			CHR$(10) & "ATTENZIONE: l'esecuzione del programma non deve avvenire da un computer " & _
			"diverso da quello di prima installazione oppure tramite un collegamento simbolico (link) " & _
			"al file, posto sul desktop o in altre posizioni.",1,"Quaderno di Campagna - Operazioni preliminari")
	If SceltaIniziale = 2 Then Doc.close(True)   'scelta pulsante "Annulla"
...
Quanto scritto funziona, ma mi restituisce questo errore dopo la chiusura:
Errore di runtime BASIC.
Si è verificata un'eccezione
Type: com.sun.star.lang.DisposedException
Message: .
E' possibile chiudere il documento "Senza Nome 1" senza salvarlo e senza restituzione di errori?
Saluti
Geo
Ultima modifica di geovign il giovedì 24 settembre 2020, 10:10, modificato 1 volta in totale.
LibO 7 su LinuxMint 21
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Chiusura documento calc da modello

Messaggio da patel »

Così ad occhio scriverei Doc.close(False), ma se non funziona allega un file di esempio
-------------------
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: Chiusura documento calc da modello

Messaggio da Gaetanopr »

Ho fatto un test e la macro funziona e non va in errore.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
geovign
Messaggi: 215
Iscritto il: domenica 13 gennaio 2019, 11:19
Località: Modena

Re: Chiusura documento calc da modello

Messaggio da geovign »

Allego comunque un file modello.
Con LO mi crea l'errore anche con la modifica suggerita da patel.
Geo
EDIT: anche con OO in macchina virtuale, dopo la chiusura mi mostra il messaggio di errore
Allegati
Quaderno_Campagna_Mod.ots
(14.36 KiB) Scaricato 130 volte
LibO 7 su LinuxMint 21
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Chiusura documento calc da modello

Messaggio da Gaetanopr »

Ti si blocca in quanto lasci un blocco di istruzioni aperto, una volta chiuso il documento senza nome 1 devi subito uscire dalla routine.
Cambia in questo modo

Codice: Seleziona tutto

	If SceltaIniziale = 2 Then 
	    Doc.close(True)
	    Exit Sub
	End if   
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
geovign
Messaggi: 215
Iscritto il: domenica 13 gennaio 2019, 11:19
Località: Modena

Re: Chiusura documento calc da modello

Messaggio da geovign »

Funziona.
Questa è la modifica apportata

Codice: Seleziona tutto

...
If SceltaIniziale = 2 Then Doc.close(True) : Exit sub
...
Grazie.
Saluti
LibO 7 su LinuxMint 21
Rispondi