Domino 9 und frühere Versionen > Entwicklung
Feldeintrag unique; keine doppelten Artikelnummern
jens1979:
Hallo mal wieder,
heute hab ich glaub ich 'ne ziehmliche Anfängerfrage. Ich habe eine kleine Produkt-DB geschrieben.
Mein Problem ist das ich eine Maske habe in die eich als erstes eine Artikelnummer eingebe und dazu einige Informationen.
Nun habe ich eine Ansicht in der ich die Produkte nach Artikelnummern sortiert aufgelistet habe. Wenn allerdings ein Artikel mit der Artikelnummer 1000 bereits vorhanden ist und ein neuer über die Maske eingepfliegt werden soll und dieser versehentlich wieder mit der 1000 abgespeichert wird, sind nun 2 Artikel in der Ansicht.
Das möchte ich unterbinden indem Notes den Datensatz des 2. Artikels gar nich speichert sondern zurückgibt das dieser bereits vorhanden ist.
Bzw. wäre die ideale Lösung das Notes anbietet entweder die Artikelnummer zu ändern oder den Artikel mit der eingegebenen zu öffnen und diesen zu bearbeiten.
Vorerst würde die erste Möglichkeit aber ausreichen.
Danke Jens
ata:
... auf die schnelle ....
Mit LS per view.GetDocumentByKey( "Artikelnummer" , True ) versuchen das Dokument mit dieser Artikelnummer zu finden. Wenn vorhanden, dann öffen, ansonsten abspeichern...
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set view = db.getView("(ByArticel)") ' # 1. Spalte sortiert nach Artikelnummer
Set doc = view.GetDocumentByKey( "<deine Artikelnummer>" , True )
If doc Is Nothing Then
' # ... setzen der Feldwerte und abschließendes Speichern.
Else
Call ws.EditDocument( true , doc ) ' # öffnen zum Bearbeiten
End if
ata
koehlerbv:
Das funktioniert aber nur mit neuen Dokumenten - wird ein bereits vorhandenes editiert, dann heisst es: "In Ewigkeit - Amen !", sprach die Endlosschleife ;-)
Bernhard
ata:
... mit Fehlermeldung sieht das dann eben so aus...
If doc Is Nothing Then
' # ... setzen der Feldwerte und abschließendes Speichern.
Else
MsgBox "Es gibt bereits einen Artikel mit dieser Numer"
Exit Sub ' # oder Exit Function - je nachdem
End if
ata
koehlerbv:
Die Fehlermeldung behebt aber nicht das Problem. Wird ein bestehendes Dokument bearbeitet, gibt es immer einen Treffer mit GetDocumentByKey. Man kann nun einfach die UNIDs vergleichen, um festzustellen, ob es sich um das gerade aktuelle Dokument handelt oder um einen "Doppelgänger".
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln