Archiv

TechInfo

Variable Parameter in Lotus Script

By Dirk Bergles

Bei der Entwicklung einer recht simplen Funktion innerhalb der Marker wollte ich eine vielseitig einsetzbare Funktion zum Löschen schaffen.
Um hier eigentlich jegliche Art von Listen von Dokumenten zu übergeben wird der Typename des Variant Parameters ausgewertet.
Vielleicht kann dies der ein oder andere gebrauchen. Auf diesem Weg erspart man sich mehrere Funktionen.
Leider sind flexible Listen von Parametern nicht möglich durch Weglassen beim Aufruf. Hier müßte im Aufruf mit Nothing oder Leerstring gearbeitet werden.
(Das wäre allerdings auch sonst zu schön gewesen.)

Hier ist beispielhaft der Code:
Function removeDocumentMarker(marker As Variant) As Integer

On Error Goto Repeater

Dim tName As String

tName = Typename(marker)
If tName = "NOTESDOCUMENTCOLLECTION" Then
' a collection of documents
Elseif tName = "NOTESDOCUMENT" Then
' a single document
Elseif tName = "NOTESDOCUMENT( )" Then
' an array of documents
Elseif tName = "NOTESDOCUMENT LIST" Then
' a list of documents. The document are, of course, the values in the list
Elseif tName = "STRING" Then
' a single unid or a ; seperated list of unids
Elseif tName = "STRING LIST" Then
' a list with unids. The unid is the index !!!
Elseif tName = "STRING( )" Then
' an array of unids
Else
Error 0714, "Wrong type of parameter 'marker'"
End If

.....

Nothing entpsricht übrigens dem TypeName OBJECT und müßte anschließend auf is Nothing geprüft werden.

Zu finden ist die Funktion irgendwann in der Library REL_Functions

Einen Kommentar erstellen