Autor Thema: Feldwert mit View abgleichen  (Gelesen 1484 mal)

Offline js84

  • Junior Mitglied
  • **
  • Beiträge: 90
  • Geschlecht: Weiblich
Feldwert mit View abgleichen
« am: 22.06.05 - 10:33:25 »
Hi,

ich habe ein Problem, bei dem ihr mir hoffentlich helfen könnt.

folgendes Szenario:
Ich habe ein Form in der ein Feld existiert, in das ein name eingetragen werden kann (normales Textfeld) und eine View, in der sich alle Namen, die bereits existieren eingetragen sind. In dem Feldevent (des Namensfledes) Exiting möchte ich jetzt überprüfen ob der eingetragene Name bereits in der View (also auch in der DB vorhanden ist). Das funktioniert dann wenn ich ein neues Dokument anlege ohne Problem, will ich aber in einem betsehenden Dokument den Namen ändern kommt die Meldung, dass dieser name bereits vorhanden ist , obwohl das Dokument  mit dem geänderten namen noch nicht mal gespeichert ist. Im Debugger hab ich bereits geguckt und da taucht der neue name auch auf.

Hier der Code, der in Exiting steht:

Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   
   Dim view As NotesView
   Dim customerview As String
   Dim sNewName, sOtherName As Variant
   customerview = "AllCustomers"      'Name of View, containing all customer documents
   Set uidoc = workspace.CurrentDocument
   sNewName = uidoc.FieldGetText("Customer")
   
   'Check if empty and return. This should not occur anyway becaue of input validation ...
   If sNewName = "" Then
      msg = "Customer name is mandatory!"
      Messagebox msg, 0, "Copy"
      Call uidoc.GotoField( "Customer" )
      Exit Sub
   End If
   'If nothing is changed, we can exit right away
   If sNewName = sFieldOnEntry1 Then
      Exit Sub
   End If
   'Check if this name is already in use by scanning all other documents
   sNewName= Ucase(sNewName)   'ignore case
   Set db = s.CurrentDatabase
   Set view = db.GetView(customerview)
   If Not view Is Nothing Then
      Set doc = view.GetFirstDocument
      'Scan all customer docs
      While Not doc Is Nothing
         sOtherName = doc.GetItemValue("Customer")
         If sNewName = Ucase(sOtherName(0)) Then
            msg = "Duplicate customer name! Please select unique name and retry."
            Messagebox msg, 0, "Copy"
            Call uidoc.GotoField( "Customer" )
            Exit Sub
         End If
         Set doc = view.GetNextDocument(doc)
      Wend
   End If



Hat jemand eine Ahnung woran das liegen kann??????
 ???

MfG
Jana

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feldwert mit View abgleichen
« Antwort #1 am: 22.06.05 - 10:39:01 »
Was Du beobachtest, ist ein vollkommen normales Verhalten - in der View findet sich ja der Name schon.

Du must den Algorithmus ändern. Zum einen: Suche nicht stoisch, in dem Du jedes einzelne Dokument der View durchgehst. Bilde eine Collection mit GetAllDocumentyByKey

Ist coll.Count = 0, ist alles in Ordnung.
Wenn es bereits ein Dokument gibt, überprüfe des UniversalID mit der UniversalID des zu prüfenden Dokument. Sid die gleich, ist alles in Ordnung. Unterscheiden sie sich, dann ...
coll.Count > 1 ist eh klar.

HTH,
Bernhard

Offline js84

  • Junior Mitglied
  • **
  • Beiträge: 90
  • Geschlecht: Weiblich
Re: Feldwert mit View abgleichen
« Antwort #2 am: 22.06.05 - 10:42:31 »
Hi,

wird in die View ein neuer Wert eingefügt auch wenn die Änderung noch nicht gespeichert wurde?

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Feldwert mit View abgleichen
« Antwort #3 am: 22.06.05 - 10:44:49 »
Suche nicht stoisch


Hm, Suchen hat ja schon sehr viel mit Philosophie zu tun, bisher war ich jedoch der Meinung, dass man stoische Lösungen nicht mit Notes implementieren kann, ich glaubte bisher, dass dafür Biomasse notwendig ist .....


 :P
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feldwert mit View abgleichen
« Antwort #4 am: 22.06.05 - 10:45:29 »
Nein, das Dokument muss natürlich gespeichert sein, bevor es in die View aufgenommen wird.

Bernhard

Offline js84

  • Junior Mitglied
  • **
  • Beiträge: 90
  • Geschlecht: Weiblich
Re: Feldwert mit View abgleichen
« Antwort #5 am: 22.06.05 - 10:52:26 »
@Bernhard, vielen Dank für die schnelle und super Antwort!!

Was wäre ich nur ohne euch  ;)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz