Domino 9 und frühere Versionen > ND6: Entwicklung

zwei Dokumente mit gleicher DocID???

<< < (4/4)

Katja_S:
Ja, kann ich aber erst morgen posten, da ich nicht mehr auf der Arbeit bin. Trotzdem schon mal danke und schönen abend noch.

bis morgen dann..;-)
Katja

Katja_S:
Die Funktion getProfileFieldValue() wird wie folgt aufgerufen:


--- Code: ---Dim totalClaim As Variant

'Summe Jahresurlaub aus Profil holen
stringJahr = "2003"
stringPerson = "Mustermann, Max"
totalClaim = getProfileFieldValue(stringPerson, stringJahr, "VacTotalClaim1")

--- Ende Code ---


--- Code: ---Function getProfileFieldValue(person As String, jahr As String, feld As String) As Variant
Dim ansicht As NotesView
Dim ansichtPersonCol As NotesViewEntryCollection
Dim ansichtPerson As NotesViewEntry
Dim personProfil As NotesDocument
Dim db As NotesDatabase
Dim session As New NotesSession
Dim found As Boolean
Dim jahrItem As Variant
Dim stateItem As Variant

found = False
Set db = session.CurrentDatabase

Set ansicht = db.GetView("(AdminAllPersonsClaimByMA)")

Set ansichtPersonCol = ansicht.GetAllEntriesByKey(person, True)

If ansichtPersonCol.Count =0 Then
getProfileFieldValue = "es existiert kein Personenprofil"
Else
Set ansichtPerson = ansichtPersonCol.GetFirstEntry()
Do While Not (ansichtPerson Is Nothing)
If ansichtPerson.IsDocument() Then
Set personProfil = ansichtPerson.Document
jahrItem = personProfil.GetItemValue("VacYear")
If jahr = Cstr(jahrItem(0)) Then
stateItem = personProfil.GetItemValue(feld)
getProfileFieldValue = stateItem
found = True
Exit Do
End If
End If

Set ansichtPerson = ansichtPersonCol.GetNextEntry(ansichtPerson)
Loop
End If

If Not found Then
Messagebox("Kein Profil gefunden")
End If
End Function

--- Ende Code ---

Die Ansicht "(AdminAllPersonsClaimByMA)" ist wie folgt aufgebaut:

Mustermann, Max
  2004
      Januar
      Februar
      ...
      Dezember
  2003
      Januar
      Februar
      ...
      Dezember

Die Monate in der Ansicht gehören alle zu dem jeweiligen Jahresprofil, ist also ein Dokument.

Die Parameter werden alle richtig übergeben, aber zum Jahr 2003 wird einfach kein Profil gefunden, obwohl es existiert und auch in der Ansicht im NotesClient zu finden ist. Findet ihr einen Fehler?

Danke schon mal.
Gruß Katja

Semeaphoros:
Aha, da haben wirs, die ViewEntryCollection, die Du hier verwendest, um die Ansicht zu durchlaufen, funktioniert nicht korrekt mit kategorisierten Ansichten. Also entweder eine Ansicht verwenden, die nicht kategorisiert ist, oder mit GetAllDocumentsByKey eine DocumentCollection holen.

Katja_S:
Das habe ich auch gerade festgestellt, als ich den Unterschied zwischen den Methoden getAllEntriesByKey und getAllDocumentsByKey verstehen wollte. Unsere Ansicht ist leider kategorisiert. Ich probier das gleich mal aus..:-)...Danke für die Unterstützung!

Katja_S:
Problem gelöst. Erstens lag es an der falschen Methode und hinzu kam, dass die Ansicht irgendwie ein Problem hatte. Mit einer neuen Ansicht hat dann alles wunderbar geklappt.  :D

Vielen Dank nochmal für eure Hilfe!
Katja

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln