Libre Office Basic - funzionamento IsMissing

C, C++, Java, ...

Libre Office Basic - funzionamento IsMissing

Messaggioda Gino62 » 11/03/2018, 0:07

Buonasera, non riesco ad usare IsMissing.
La funzione IsMissing controlla se un parametro è stato passato o meno.
Nelll'allegato non si riesce a sapere se il parametro è stato passato.
Dove sbaglio? Grazie
Allegati
IsMIssing.zip
(34.47 KiB) Scaricato 56 volte
Ultima modifica di Gino62 il 11/03/2018, 10:29, modificato 1 volta in totale.
Gino62
Jr. Member
Jr. Member
 
Messaggi: 62
Iscritto il: 24/06/2013, 22:17

Re: IsMissing

Messaggioda s3v » 11/03/2018, 8:58

Ciao, tre cose:
  1. Il titolo non è assolutamente esplicativo; in pratica non si capisce a cosa si riferisce il tuo quesito.
  2. Leggendo la tua richiesta non di riesce a risalire a cosa esattamente speri di ottenere.
  3. L'allegato non riesco ad aprirlo con un editor di testo per cui presumo si tratti di un documento binario OpenOffice con qualche sorta di codice macro al suo interno (credo... visti i tuoi precedenti quesiti). In tal caso ti invito a sostituirlo con un allegato testuale. Niente di personale ma allegati di questo tipo andrebbero evitati per ovvie implicazioni di sicurezza.
Avatar utente
s3v
Global Moderator
Global Moderator
 
Messaggi: 5573
Iscritto il: 31/12/2008, 11:54

Re: IsMissing

Messaggioda Gino62 » 11/03/2018, 10:37

s3v ha scritto:Ciao, tre cose:
  1. Il titolo non è assolutamente esplicativo; in pratica non si capisce a cosa si riferisce il tuo quesito.
  2. Leggendo la tua richiesta non di riesce a risalire a cosa esattamente speri di ottenere.
  3. L'allegato non riesco ad aprirlo con un editor di testo per cui presumo si tratti di un documento binario OpenOffice con qualche sorta di codice macro al suo interno (credo... visti i tuoi precedenti quesiti). In tal caso ti invito a sostituirlo con un allegato testuale. Niente di personale ma allegati di questo tipo andrebbero evitati per ovvie implicazioni di sicurezza.


1. non credo funzioni IsMissing, anche se non c'è il parametro opzionale è sempre true.
2. cosa sbaglio, la funzione deve essere false
3. ho modificato l'allegato.
Codice: Seleziona tutto
Sub Sub_CaricaCornici
   Sub_InsertTextFrame ("stringa", ,)
   Sub_InsertTextFrame ( ,"url")
End Sub
Sub Sub_InsertTextFrame(Optional strNomeFrame As String, Optional strURL As String )
        If IsMissing(strNomeFrame)  Then
      msgBox " NO" & strNomeFrame
      Else
        msgBox strNomeFrame & "SI"   
        End If
      If IsMissing(strURL) Then
           msgbox strURL & "NO"
        Else        
           msgbox "c'è url" & strURL
        End If
End Sub

ho messo due richiami alla sub. uno con l'opzione parametro 1 e uno con il secondo parametro
l'uscita è sempre si. in ogni caso è true e l'outpot è si (c'è sempre il parametro anche quando non è presente alla chiamata)
buona domenica
Gino62
Jr. Member
Jr. Member
 
Messaggi: 62
Iscritto il: 24/06/2013, 22:17

Re: IsMissing

Messaggioda s3v » 11/03/2018, 11:43

Gino62 ha scritto:
Codice: Seleziona tutto
   Sub_InsertTextFrame ("stringa", ,)


C'è una virgola di troppo; se la tolgo, a me funziona.

P.S.
Per inserire codice formattato, usa il tag [code] altrimenti diventa tutto illeggibile (ho modificato il tuo messaggio in tal senso).
Ho anche cambiato il titolo per renderlo più esplicativo La prossima volta, gentilmente, sceglilo in modo tale che chi si trova a leggere sia messo in condizione di capire il senso della discussione.
Avatar utente
s3v
Global Moderator
Global Moderator
 
Messaggi: 5573
Iscritto il: 31/12/2008, 11:54

Re: IsMissing

Messaggioda Gino62 » 11/03/2018, 21:08

s3v ha scritto:[
C'è una virgola di troppo; se la tolgo, a me funziona.

In effetti è così: la prima chiamata ora funziona.
Ma la seconda a me non funziona, mi dà esistente il primo parametro anche sulla seconda chiamata.
Gino62
Jr. Member
Jr. Member
 
Messaggi: 62
Iscritto il: 24/06/2013, 22:17

Re: LibreOffice Basic - funzionamento IsMissing

Messaggioda s3v » 12/03/2018, 18:13

Non ti seguo.
Per la seconda chiamata (Sub_InsertTextFrame ( ,"url")):
  • La condizione del primo "if" è vera
  • La condizione del secondo "if" è falsa.
È tutto ok per me.

Puoi dire che testo ti compare sui msgbox per confrontare e vedere dove è l'inghippo?
Avatar utente
s3v
Global Moderator
Global Moderator
 
Messaggi: 5573
Iscritto il: 31/12/2008, 11:54

Re: LibreOffice Basic - funzionamento IsMissing

Messaggioda Gino62 » 12/03/2018, 20:51

s3v ha scritto:Non ti seguo.
Per la seconda chiamata (Sub_InsertTextFrame ( ,"url")):
  • La condizione del primo "if" è vera
  • La condizione del secondo "if" è falsa.
È tutto ok per me.

Puoi dire che testo ti compare sui msgbox per confrontare e vedere dove è l'inghippo?

a me sia la prima chiamata che la seconda chiamata la prima condizione mi risulta la stessa (nome variabile + "si"), mentre alla seconda chiamata la prima condizione dovrebbe essere no.
Prima chiamata: stringaSI - error 448NO
Seconda chiamata (dovrebbe essere Error 448NO) invece è Error 448SI - c'è urlurl
buona serata
Gino62
Jr. Member
Jr. Member
 
Messaggi: 62
Iscritto il: 24/06/2013, 22:17

Re: LibreOffice Basic - funzionamento IsMissing

Messaggioda s3v » 15/03/2018, 12:32

Hai ragione, ho provato anche con OpenOffice 4.1.5 e il problema è lo stesso.
Sembra che il primo parametro di una funzione non possa essere "Optional" (vedi qui) ma non ho trovato alcuna informazione in merito.
Potrebbe anche essere un bug o un errore di sintassi, non saprei.

Se ti serve una funzione con parametri tutti "Optional" puoi ovviare inserendo un primo parametro che non usi.
Avatar utente
s3v
Global Moderator
Global Moderator
 
Messaggi: 5573
Iscritto il: 31/12/2008, 11:54

Re: LibreOffice Basic - funzionamento IsMissing

Messaggioda Gino62 » 15/03/2018, 21:02

s3v ha scritto:Hai ragione, ho provato anche con OpenOffice 4.1.5 e il problema è lo stesso.
Sembra che il primo parametro di una funzione non possa essere "Optional" (vedi qui) ma non ho trovato alcuna informazione in merito.
Potrebbe anche essere un bug o un errore di sintassi, non saprei.

Se ti serve una funzione con parametri tutti "Optional" puoi ovviare inserendo un primo parametro che non usi.

Ciao, secondo me "sente" solo l'ultimo parametro (vedi file "provaIsMIssing).
Ho ovviato controllando se la stringa potesse essere "Error 404". Vedi ProvaIsMissing404. Ho provato perchè anche se non c'era la stringa veniva scritto "error404". Il problema si avrebbe se un parametro opzionale non fosse una stringa ...
buona serata
Allegati
provaIsMIssing404.zip
sembra funzionare, il problema si presenterebbe se non fosse stringa
(34.75 KiB) Scaricato 52 volte
provaIsMIssing.zip
passa come opzione solo l'ultimo
(34.83 KiB) Scaricato 47 volte
Gino62
Jr. Member
Jr. Member
 
Messaggi: 62
Iscritto il: 24/06/2013, 22:17


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite