Domino 9 und frühere Versionen > Entwicklung
Script gegen doppelte Einträge
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