Domino 9 und frühere Versionen > ND6: Entwicklung

Picklist - Kategorien

<< < (3/4) > >>

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