Hallo!
Ich habe da ein Problem und hoffe, dass mir jemand einen Tipp geben kann.
Ich muss einen täglichen Bericht erstellen, der meinem werten Chef zeigt, wieviele Aufträge an einem Stichtag bzw. "heute" angelegt wurden und wieviele am selben Stichtag bzw. "heute" ausgeliefert wurden. Der Bericht soll als Agent um 23 Uhr ausgeführt werden, aber auch auf manuelle Anforderung.
Das Ganze soll dann noch nach Kundennummer zusammengefasst werden und per E-mail verschickt werden. Mein Problem ist aber nicht die Ausgabe, sondern die Selektion der Dokumente.
Ich habe eine View (mit SELECT(From="Auftrag") ), die die Spalten
- Kundennumer
- Eingangsdatum - @Text(@Date(@EingangDat))
- Lieferdatum - @Text(@Date(@LieferDat))
enthält.
Die Spalten 2 und 3 sind unsortiert, aber als User-Sortiert definiert, d.h. in den Eigenschaften der Spalte im Reiter "Sortierung" ist ein Haken bei "auf Spaltenüberschrift klicken: Aufsteigend".
Wie bekomme ich nun die Dokumente oder Entries ausgelesen, die ich verarbeiten will? Ich will eigentlich nicht mit 2 unterschiedlichen Ansichten arbeiten, die schon Auto-Sortiert sind.
Ich hatte mir gedacht, ich nehme die Ansicht und sortiere Sie nach den Anforderungen um, um dann daraus die erforderlichen Dokumente herauszuholen (also zuerst nach Eingangsdatum sortieren, die gefundenen Docs dann nach Kunden gruppieren, dann nach Lieferdatum sortieren und wieder nach Kunden gruppieren, dann die E-mail zusammenbauen und verschicken).
Leider funktioniert der IsResortAscending-Befehl nicht, zumindet nicht so, wie ich es mir denke; der Debugger motzt zwar nicht, aber die Eigenschaft im Variablen-Fenster zeigt immer IsSorted = False. Der anschließende GetAllEntriesByKey(keys(1)) findet jedenfalls keinen einzigen Satz. Ich habe alle Datümer als "String" verarbeitet, weil ich dachte, so einen eindeutigeren Schlüssel hinzubekommen, also ohne die Uhrzeit.
Hier der Code:
Dim Session As New NotesSession
Dim db As NotesDatabase
Dim doc As Notesdocument
Dim view As NotesView
Dim vc As NotesViewColumn
Dim ec As NotesViewEntryCollection
Dim entry As NotesViewEntry
Dim keys(1 To 1) As String
Dim Datum As Variant
Set db = Session.CurrentDatabase
If Not session.IsOnServer Then
Dim ws As New NotesUIWorkspace
Datum = ws.Prompt(PROMPT_OKCANCELEDIT, "Auswertungsdatum", "Bitte geben Sie den Auswertungstag ein.")
If Not Isempty (Datum) Then
keys(1) = Datum
Else
keys(1) = Date$
End If
Else
keys(1) = Date$
End If
Set view = db.GetView("ViewAuftrag")
Set vc = view.Columns(1)
vc.IsResortAscending = True
Set ec = view.GetAllEntriesByKey(keys(1), True)
Set entry = ec.GetFirstEntry()
Set doc = entry.Document
und so weiter
Wäre super, einen Hinweis auf das Umsortieren von Ansichten zu bekommen. Oder ist es "nur" wieder ein Problem mit den Datumsfeldern?
Danke schon mal im voraus.
Frank