Domino 9 und frühere Versionen > ND6: Entwicklung
Picklist - Kategorien
brixxton:
uppsss, sorry. ;D
--- Zitat ---Function ReplaceSubstring(strSourceText As String, strSearchText As String, strReplaceText As String) As String
Dim strNewText As String
Dim pos As Integer
Dim inc As Integer
pos = 0
strNewText = strSourceText
If strReplaceText <> "" Then
inc = Len(strReplaceText)
Else
inc = 1
End If
pos = Instr(1, strNewText, strSearchText)
While pos <> 0
strNewText = Mid$(strNewText, 1, pos - 1) & strReplaceText & Mid$(strNewText, (Len(strSearchText) + pos))
pos = Instr(pos + inc, strNewText, strSearchText)
Wend
ReplaceSubstring = strNewText
End Function
--- Ende Zitat ---
hier noch DBLookup
--- Zitat ---Function DBLookup(strServerName As String, strDatabase As String, strViewName As String, strKey As String, intColumnNumber As Integer) As Variant
Dim NoCache As String
Dim NotesMacro As String
Dim UniqueNotesMacro As String
Dim Database As String
Dim serverName As NotesName
Set serverName = New NotesName(strServerName)
NoCache = Chr(34) + Chr(34) + ":" + Chr(34) + "NoCache" + Chr(34)
Database = Chr(34) + ReplaceSubstring(strDatabase,"\","\\") + Chr(34)
NotesMacro = "@DbLookup(" + NoCache + ";"+ Chr(34) + serverName.Abbreviated + Chr(34) + ":" + Database + ";" +_
Chr(34) + strViewName + Chr(34) + ";" + Chr(34) + strKey + Chr(34) + ";" + Trim(Str(intColumnNumber)) + ")"
DBLookup = Evaluate(NotesMacro)
End Function
--- Ende Zitat ---
wuwu:
Hallo brixxton,
funktioniert einwandfrei!!! SUPER CODE, vielen Dank!
Aber ich habe selbst auch ein wenig probiert und bin auf folgenden Code gekommen:
Dim se As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim vCategory As NotesView
Dim response As Variant
Set db = se.CurrentDatabase
Set uidoc = ws.CurrentDocument
Set doc = uidoc.document
Set vCategory = db.GetView("(Test)")
Dim i As Integer
Dim arr() As String
Dim MainCategory As String
Dim SubCategory As String
Dim var As String
i = 0
Set doc = vCategory.GetFirstDocument
While Not (doc Is Nothing)
Redim Preserve arr(i)
MainCategory = doc.ColumnValues(0)
SubCategory = doc.ColumnValues(1)
arr(i) = MainCategory
'+ " \ " + SubCategory
var = var + arr(i) + Chr(10)
Set doc = vCategory.GetNextDocument( doc )
i=i+1
Wend
Msgbox var
response = ws.Prompt (PROMPT_OKCANCELLIST, "Haupt Kategorie", "Bitte eine Haupt Kategorie auswählen.", _
"", var)
Exit Sub
Ein Problem besteht: In der Messagebox schreibt er alles sauber darunter
und wenn dann die Auswahl kommt über prompt dann schreibt er mir nur den ersten Eintrag hin, warum???
Mfg Horst
Roalf:
statt PROMPT_OKCANCELLIST
solltest du dann PROMPT_OKCANCELLISTMULT verwenden, hier hilft ein Blick in die Notehilfe (F1)
ausserdem hast du var als String deklariert und erweiterst den ständig
" var = var + arr(i) + Chr(10)"
das ist aber nonsens, du musst die Liste natürlich in ein Array (variant) schreiben und diese dem Prompt übergeben (wie es im ursprungscode von brixxton auch passiert ist).
Gruß
Roalf
P.S. Was ich mich in solchen fällen aber immer frage: warum müssen solche Sachen immer auf-teufel-komm-raus in Script gelöst werden? Meist kommt er dann auch wirklich raus.
Dieses ganze Aufgabe wäre in @Formel äquivalent in nur DREI zeilen Programmcode zu lösen gewesen (!).
umi:
Ausserdem müsste var im Prompt ein Array sein.
ungefähr so könnte es funktionieren.
--- Code: ---...
response = ws.Prompt (PROMPT_OKCANCELLIST, "Haupt Kategorie", "Bitte eine Haupt Kategorie auswählen.", _
"", var)
->
...
response = ws.Prompt (PROMPT_OKCANCELLIST, "Haupt Kategorie", "Bitte eine Haupt Kategorie auswählen.", _
"", arr)
--- Ende Code ---
Roalf:
sorry umi..wir haben wohl zusammen...
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln