Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Don Pasquale am 12.02.04 - 09:32:12
-
Hallo Leute,
ich hatte keine Lust mehr ständig in meinem Code dutzende
von zeilen zu haben, nur um einen parameter aus dem
Profildokument zu ziehen.
In meinem Code steht jetzt nur noch :
GesuchterParameter = getParam("GesuchterParameter")
Die Funktio sieht so aus und lässt sich beliebig erweitern,
oder was meint Ihr ?
Function getParam( PARAM As String) As String
' Funktion um Parameter aus dem ProfilDokument auszulesen
Dim PROFILDOC As String
PROFILDOC = "Options" ' Name der Form
' PARAMETER
' NAME : Name von was weiss ich
' PFAD : Pfad zu irgendeiner Datei
Dim pdoc As NotesDocument
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Set pdoc = db.GetProfileDocument( PROFILDOC )
PARAM= Ucase$(PARAM)
Select Case PARAM
Case "NAME" : getParam = pdoc.WilderFeldname(0)
Case "PFAD" : getParam = pdoc.GanzWilderFeldname(0)
Case Else : getParam = "False"
End Select
End Function
Das ist so banal, vielleicht habe ich deswegen nirgendwo
im Forum bisher gesehen.
Ciao
Don Pasquale
-
... wenn du nur mit diesem einen Profildokument arbeitest, dann wäre das OK...
ata
-
Was wäre denn möglich ?
Ein Profildoc für die DB und eines für jeden User.
oder ?
Ciao
Don Pasquale
-
... ich hätte mich an die möglichen Parameter des @GetProfileField gehalten, dann hast du es volldynamisch...
Toni
-
"Beliebig zu erweitern" - das würde ich hier auf jeden Fall empfehlen, dann so funktioniert das ja nur mit Bezug auf ein bestimmtes ProfileDoc.
Vorab: Wenn das ProfilDoc nicht vorhanden ist - was ja passieren kann - geht Deine Routine baden.
ALso:
If pdoc Is Nothing then
'-> definierten Fehlercode setzen
Exit Function
End If
Vorschläge zur Erweiterung:
Parameter der Function aufbohren:
- Name des ProfileDocs
- Name des Users (ist dies ein Leerstring, wird das ProfileDoc dann nur mit dem Maskennamen geholt)
- Name des auszulesenden Items
Rückgabewert der Function: Variant (und immer ein Array)
Definierte "Garantie-Antwort" (für RTF):
Dim aResult (0 to 0) as Variant
DeinFunctionName = NULL (das ist der Fehlerwert der Function)
GetItem und Prüfung auf item Is Nothing (wenn ja - exit)
Wenn item = RTF:
aResult (0) = doc.GetItemValue ...
DeinFunctioName = aResult (so kriegen wir auch hier ein Array zurück!)
Wenn nicht RTF:
DeinFunctioName = doc.GetItemValue ...
Das mal nur so als ein paar Überlegungen ;-)
HTH,
Bernhard
-
... da die Übergabe der gewünschten Felder als Array erfolgt, sollte die Rückgabe aber als 2-dimensionales Array - es könnten Mehrfachwerte in den Profilfeldern vorliegen - erfolgen...
... dann könnte man noch einen Parameter "get" und "set" verwenden, damit man mit einer Funktion ausliest und setzt...
ata
-
Ich würde - wie GetProfileField - nur ein Item pro Funktionsaufruf auslesen. Und wegen möglicher Listwerte bzw. eben weil GetItemValue sowieso ein Array zurück liefert, habe ich ein garantiertes Array als Rückgabewert vorgeschlagen.
Bernhard
-
... mein Gedanke war auf einen Rutsch alles zu holen, was ich benötige, übersichtlicher ist sicher dein Weg...
ata
-
Hi,
schau mal hier -> http://www.free.dominoserver.de/computer/noteslibrary.nsf/d2d59a3d7fc73a2bc1256a6900638352/74e4b61d04ca824dc1256db20041582a!OpenDocument (http://www.free.dominoserver.de/computer/noteslibrary.nsf/d2d59a3d7fc73a2bc1256a6900638352/74e4b61d04ca824dc1256db20041582a!OpenDocument)
Vielleicht hilft dir das weiter.
Axel