Domino 9 und frühere Versionen > ND9: Entwicklung
Geöffnetes Dokument aus Domino Datenbank auslesen
ascabg:
Hallo,
Dazu musst du dir bewusst machen, das die Methode "NotesDocument.GetFirstItem" die keine Werte zurueckliefert.
Diese liefert dir nur ein weiteres Objekt der Klasse "NotesItem" zurueck.
Wenn du Werte aus den Items auslesen willst, dann brauchst du "NotesDocument.GetItemValue"
Und hier muss du dir bewusst machen, dass du auf jeden Fall einen Array zurueckbekommst.
Andreas
Mitch:
Huhu,
ich verstehe nicht ganz was du machst.
--- Zitat von: Tiger955 am 07.07.15 - 09:32:43 ---[...]
strDocID = uidoc.FIELDGETTEXT("DocID")
[...]
Set auftragcol = auftragview.GetAllDocumentsByKey("OppID", True)
--- Ende Zitat ---
Du ziehst dir eine ID, suchst in der Ansicht aber nach einem festen String "OppID". Das sieht seltsam aus. Sicher, dass du das möchtest? Ich hätte in der ersten Ansichtsspalte die ID erwartet und dann entsprechend nach der ID gesucht und alle zugehörigen Dokumente zu finden.
--- Zitat von: Tiger955 am 07.07.15 - 09:32:43 ---Der Code läuft ohne Fehler durch (was noch nicht heißt, dass ich es richtig gemacht habe!), aber bringt nichts.
--- Ende Zitat ---
Was sagt denn der Debugger deiner Wahl? Findet er Dokumente? Ich tippe ja auf "Nein", wegen oben genanntem Problem.
Gruß,
Mitch
Tiger955:
Hallo Andreas!
Danke für Deine Rückmeldung, es wäre mir immens geholfen mit einem praktischen Beispiel, z.B. wie die Codezeile aussieht.
Ich habe folgendes versucht, leider ohne Erfolg (keine Fehlermeldung, aber obj="")
Set auftragcol = auftragview.GetAllDocumentsByKey(strDocID, True) --> strDocID ist die ID der Opportunity und steht im Feld OppID der Opp-Positionen
Set auftragdoc = auftragcol.GetFirstDocument
Do While Not auftragdoc Is Nothing
obj = auftragdoc.GetItemValue("OppID") --> in obj sollte der Schlüssel, der gleich ist mit strDocID zu finden sein. obj bleibt aber ""
Debug.Print obj(0)
If obj = strDocID Then --> daher geht es hier nicht weiter
'Hier verarbeitest Du die Auftragsdokumente
Set objOppPosItemNo = auftragdoc.GetFirstItem("OppPosItemNo")
strOppPosItemNo = objOppPosItemNo.Text
MsgBox strOppPosItemNo
End If
Set auftragdoc = auftragdoc.GetNextDocument(auftragdoc)
Loop
Danke für Deine Hilfe.
Michael
ascabg:
Hallo,
Wie hast du denn obj definiert? (als was ==> String, Variant, ...)
Und hier
--- Zitat ---If obj = strDocID
--- Ende Zitat ---
willst du einen Array mit einem String vergleichen. Das wird or den Baum laufen.
Andreas
Mitch:
--- Zitat von: Tiger955 am 07.07.15 - 11:54:34 ---Set auftragcol = auftragview.GetAllDocumentsByKey(strDocID, True)
--- Ende Zitat ---
Genauso stelle ich mir das vor. Das geht davon aus, dass a) in strDocID auch was drin steht und b) die erste Ansichtsspalte diesen Wert auch enthält.
Stelle das im Zweifelfall über deinen Debugger sicher, notfalls via Msgbox:
--- Code: ---Msgbox "Schlüssel: " & strDocID
Msgbox "Dokumente gefunden: " & auftragcol.Count
--- Ende Code ---
--- Zitat von: Tiger955 am 07.07.15 - 11:54:34 ---Set auftragdoc = auftragcol.GetFirstDocument
Do While Not auftragdoc Is Nothing
obj = auftragdoc.GetItemValue("OppID")
Debug.Print obj(0)
If obj = strDocID Then
[...]
End If
Set auftragdoc = auftragdoc.GetNextDocument(auftragdoc)
Loop
--- Ende Zitat ---
In obj ist jetzt ein Array drin. Den kannst du nicht (erfolgreich) mit einem String (strDocID ) vergleichen.
Versuche:
--- Code: ---If auftragdoc.OppID(0) = strDocID Then
[...]
End If
--- Ende Code ---
Aber: Wofür machst du diese Prüfung? Du hast doch nur Dokumente gezogen, wo das der Falls ist. Oder nicht?
Gruß,
Mitch
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln