Domino 9 und frühere Versionen > Entwicklung

Feldeintrag unique; keine doppelten Artikelnummern

(1/6) > >>

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