Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: lucy123 am 21.01.07 - 19:05:50

Titel: Hinweis auf Datensatzanzahl
Beitrag von: lucy123 am 21.01.07 - 19:05:50
Hallo,

möchte in einem Kalender folgende Funktion durchführen:
wenn 7 Einträge gemacht wurden, soll eine MsgBox erscheinen mit dem Hinweis: "Nicht mehr als 7 Einträge bzw. nicht mehr als 5 Einträge".

Gruß Willi
Titel: Re: Hinweis auf Datensatzanzahl
Beitrag von: Glombi am 21.01.07 - 19:28:06
Das geht mit Script:

Skizze:

Im Queryopen der Maske:

'view = NotesView Objekt für Deine Ansicht
'.... diverse Dims....
Anzahl der vorhandenen Einträge ermitteln:
Set nvec = view.AllEntries
count = notesViewEntryCollection.Count

If count > 5 then
msgbox "Bitte nicht mehr als 5 Einträge",0+16,"Abbruch"
Continue = False
Exit Sub
End if

Andreas
Titel: Re: Hinweis auf Datensatzanzahl
Beitrag von: koehlerbv am 21.01.07 - 22:03:30
Das sollte besser ins QuerySave - sonst kann man bestehende Kalendereinträge auch nicht mehr ansehen oder ändern.

Bernhard
Titel: Re: Hinweis auf Datensatzanzahl
Beitrag von: lucy123 am 22.01.07 - 08:01:14
Hallo,

erst mal vielen Dank für die schnelle Antwort. Leider klappt es noch nicht so, liegt aber sicher an meiner Problembeschreibung. Es sollen in einem Kalender pro Tag nur 7 Einträge gemacht werden  und freitags nur 5 Einträge.
Gruß W
Titel: Re: Hinweis auf Datensatzanzahl
Beitrag von: Axel am 22.01.07 - 08:25:51
Du musst im QuerySave eine Suche einbauen, die beim Speichern alle Dokumente mit dem entsprechenden Datum ermittelt. Wenn du dass mit NotesDatabase.Search machst, erhälst du als Ergebnis eine NotesDocumentCollection. Mit NotesDocumentcollection.Count kannst du dann die Anzahl der Dokument ermitteln. Mit der Script-Funktion Weekday ermittelst du den Wochentag und mit diesen Infos kannst du dann die Prüfung durchführen.

Schau die mal zu den einzelnen Methoden und Funktionen die Designer-Hilfe an. Dort findest du einiges an Zusatzinfos und Beispiele.


Axel
Titel: Re: Hinweis auf Datensatzanzahl
Beitrag von: lucy123 am 22.01.07 - 10:32:05
Hallo zusammen, das Script klappt soweit, soll aber auf den einzelnen Tag zugreifen. So wie es unten beschrieben ist macht es die DB nach 5 Einträgen komplett zu. Ich möchte das aber auf die einzelnen Tage setzen, wobei Mo-Do 7 Einträge zulässig sind und Fr nur 5 Einträge. Gibt es eine Lösung für mein Problem ? Bin leider  nicht so bewandert in LS. Gruß Willi

Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim vc As NotesViewEntryCollection
   Set db = session.CurrentDatabase
   Set view = db.GetView("2Kalender")
   Set vc = view.GetAllEntriesByKey("#")
   Set NotesViewEntryCollection = view.AllEntries
   count = NotesViewEntryCollection.Count
   If count >5 Then
      Msgbox "Bitte nicht mehr als 5 Einträge",0+16,"Abbruch"
      continue = False
      Exit Sub
   End If   
Titel: Re: Hinweis auf Datensatzanzahl
Beitrag von: Axel am 22.01.07 - 10:50:50
So kann das nichts werden. Dir fehlt der Datumsbezug.

Hier mal ein ungetesteter Vorschlag:

Dim session As New NotesSession
Dim db As NotesDatabase
Dim strSearch As String
Dim collection As NotesDocumentCollection

Set db = session.CurrentDatabase

'Suche nach allen Dokumenten mit dem entsprechenden Datum
strSearch = {FeldmitDatum = "} & Source.FieldGetText("FeldmitDatum") & {"}
Set collection = db.Search(strSearch, Nothing, 0)

count = collection.Count

'Abfrage ob Wochentag = Freitag
Select Weekday(Source.FieldGetText("FeldmitDatum"))
Case 2 To 5  'Montag - Donnerstag
   If count > 7 Then
      Msgbox "Bitte nicht mehr als 5 Einträge",0+16,"Abbruch"
      continue = False
      Exit Sub
   End If   
Case 6
   If count > 5 Then
      Msgbox "Bitte nicht mehr als 7 Einträge",0+16,"Abbruch"
      continue = False
      Exit Sub
   End If
Case 1, 7
      Msgbox "Juchu. Wochenende",0+16,"Abbruch"
End Select


Axel
Titel: Re: Hinweis auf Datensatzanzahl
Beitrag von: lucy123 am 22.01.07 - 15:53:59
Hallo Axel,

klappt leider nicht. Ein Fehler war evtl. Select Case Weekday.... Er zählt nicht durch. Trotzdem Danke
Gruß Willi
Titel: Re: Hinweis auf Datensatzanzahl
Beitrag von: Axel am 22.01.07 - 16:12:00
Was klappt denn genau nicht? Findet er keine weiteren Dokumente, auch wenn's welche gibt?

Was sagt denn der Debugger?


Axel
Titel: Re: Hinweis auf Datensatzanzahl
Beitrag von: lucy123 am 22.01.07 - 17:57:20
Hallo Axel,

es kommt keine Fehlermeldung, es kommt aber auch kein Hinweis, wenn die Datensatzanzahl des jeweiligen Tages überschritten wird. Ich dachte mir, wenn ich z.b. auf den 26.01. (Freitag) mehr als 5 Datensätze eingebe, das er dann beim 6. Datensatz sagt: "Nix geht mehr" oder das er den Hinweis gibt und den Datensatz dann trotzdem übernimmt.
Die Maske, in der ich das benötige heißt "Eingabe" und das Datumfeld dieser Maske heißt "HerzDat".
Gruß Willi
Titel: Re: Hinweis auf Datensatzanzahl
Beitrag von: Axel am 22.01.07 - 19:23:35
Ich habe gerade mal ein bisschen gespielt. Der Aufbau des Suchstrings war falsch.

Versuch's mal damit:

    strSearch = {HerzDat=[} & Source.FieldGetText("HerzDat") & {]}


Axel
Titel: Re: Hinweis auf Datensatzanzahl
Beitrag von: lucy123 am 23.01.07 - 07:32:54
Hallo Axel, es funzt !! Vielen Dank für die Hilfe - auch an die anderen Helfer.
Bis demnächst
Gruß Willi