Domino 9 und frühere Versionen > Entwicklung

Script gegen doppelte Einträge

(1/2) > >>

Diro:
Hallo Leute,

ich habe ein kleines Problem mit einem Script welches in Querysave einer Maske integriert ist. Das Script funktioniert nur wenn sich dieses auf ein Feld mit Typ Text bezieht aber nicht wenn es sich um den Feldtyp Zahl handelt.
Das Script sieht wie folgt aus:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim session As New NotesSession
   Dim workspace As New NotesUIWorkspace
   
   Set uidoc = workspace.CurrentDocument
   Set doc = uidoc.Document
   Set db = session.CurrentDatabase
   Set view = db.GetView( "Lieferanten" )  'Name der Ansicht mit allen Dokumenten
   If doc.IsNewNote Then  'Prüfung auf doppelte Dokumente nur wenn Dokument neu
      Set tmpdoc = view.GetDocumentByKey( doc.Lieferantennr(0) )
      If tmpdoc Is Nothing Then
      'Lieferantennummer noch nicht vorhanden
      Else
      'Lieferantennummer bereits in der Datenbank vorhanden
         continue=False
         Msgbox "Ein Lieferant mit dieser Lieferantennummer ist schon vorhanden!!!"
         Exit Sub
      End If
   End If
   
End Sub

Vielleicht könnt Ihr mir ja einen Tipp geben  ::) ::)

Gruß Diro

Driri:
Dann mach doch aus dem Wert einfach einen String.

Set tmpdoc = view.GetDocumentByKey( CStr(doc.Lieferantennr(0)) )

Diro:
Hallo Ingo,

das mit dem String-Eintrag habe ich probiert, aber irgend ein Fehler muß noch vorhanden sein, denn ein speichern des doppelten Datensatzes ist immer noch möglich. Habe auch nochmal den Feldnamen und den der Ansicht überprüft, aber keinen Fehler gefunden.

Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim session As New NotesSession
   Dim workspace As New NotesUIWorkspace
   
   Set uidoc = workspace.CurrentDocument
   Set doc = uidoc.Document
   Set db = session.CurrentDatabase
   Set view = db.GetView( "Lieferanten" )  'Name der Ansicht mit allen Dokumenten
   If doc.IsNewNote Then  'Prüfung auf doppelte Dokumente nur wenn Dokument neu
      Set tmpdoc = view.GetDocumentByKey( Cstr(doc.Lieferantennr(0)) )
      If tmpdoc Is Nothing Then
      'Lieferantennummer noch nicht vorhanden
      Else
      'Lieferantennummer bereits in der Datenbank vorhanden
         continue=False
         Msgbox "Ein Lieferant mit dieser Lieferantennummer ist schon vorhanden!!!"
         Exit Sub
      End If
   End If
   
End Sub

Gruß Diro

TMC:

--- Zitat von: Diro am 09.09.04 - 13:55:22 ---n speichern des doppelten Datensatzes ist immer noch möglich.
--- Ende Zitat ---

Meinst Du damit, es kommt zwar jetzt die Meldung "Ein Lieferant mit dieser Lieferantennummer ist schon vorhanden!!!" aber das Dokument wird trotzdem gespeichert? Kann eigentlich nicht sein, da ja Continue = False drinsteht.

Wie speicherst Du Dein Dokument? Über einen Script-Button? Wird dort vielleicht das Backend-Dokument (NotesDocument) gespeichert?

koehlerbv:
Nix Buhtong, Matthias. Guck mal:


--- Zitat von: Diro am 09.09.04 - 13:15:45 ---Das Script sieht wie folgt aus:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
-----
End Sub

--- Ende Zitat ---


Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln