Autor Thema: Optionale Methoden Parameter, die nicht optional sind  (Gelesen 2840 mal)

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Hi,

find ich echt doof.
Da benutzt man in der Lotus-Script Api neue Funktion und selten funktioniert da mal eine wies in der Doku beschrieben steht.
Nehmen wir die database.Sign Funktion.
Sehr praktisch. Damit kann man einzelne oder mehrere Notes mit der aktuellen NoteID signieren.

Code
Dim s As New NotesSession
	Set db = s.CurrentDatabase
	Set nc = db.CreateNoteCollection(False)
	nc.SelectDatabaseScript = True
	Call nc.BuildCollection
	strNodeIdDbScript = nc.GetFirstNoteId
	If Not nc.GetNextNoteId(strNodeIdDbScript) ="" Then
		Msgbox "More than 1 NodeId found. exiting code"
		Exit Sub
	End If
	
	Call db.Sign(DBSIGN_DOC_ALL, False, strNodeIdDbScript, True)
	'Call db.Sign(strNodeIdDbScript, True)
Das hier holt sich etwa das Database-Skript über NodeCollection und signiert das dann. Funktioniert auch.
Nur steht eben in der Dokumentation, dass alle Parameter optional sind.
Der erste Parameter ist eine Integer Konstante, der zweite ein Boolean, der dritte ein String und der vierte wieder ein Boolean. 
Theoretisch müsste das also machbar sein. Bei 3 String-Parametern wär das zum Bleistift mit der Optionalität ein Problem.
Und was ist, wenn man die ersten beiden Parameter  weglässt?
Man bekommt eine not a valid design constant Fehlermeldung.  ::)
Wenn man sich dann dazu zwingt die "optionalen" Parameter mit anzugeben, funktioniert es plötzlich.

Es sind diese Kleinigkeiten.

Axel    
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Optionale Methoden Parameter, die nicht optional sind
« Antwort #1 am: 20.05.08 - 23:07:16 »
Mit
Call db.Sign (, , strNodeIdDbScript, True)
sollte das aber funktionieren. Einen (leeren) Platzhalter muss man schon angeben, sonst könnte bei "optionalen Parametern" ja sonstwas herauskommen, wenn die Funktion selbst bestimmt, was da gemeint und was weggelassen wurde.

Bernhard

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Optionale Methoden Parameter, die nicht optional sind
« Antwort #2 am: 21.05.08 - 11:15:53 »
Echt  ??? Das wusste ich nicht. Kompilieren tut das mit Call db.Sign (, , strNodeIdDbScript, True)
Versteh aber nicht ganz warum.
Bei Set notesDocument = notesView.GetDocumentByKey( keyArray [, exactMatch% ] )
kann ich doch auch
notesView.getDocumentByKey(keyArray) schreiben und nicht
notesView.getDocumentByKey(keyArray,)

Alle genannten Variablen sind von unterschiedlichen Datentypen. Also müßte der Compiler - von meinem zugegeben eher kursorisch-theoretischen Verständnis von Compilern - in der Lage sein, die Variablen per Datentyp auf die richtigen Argumente der Methode zu mappen.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz