Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Raul am 14.05.03 - 10:03:04

Titel: doppelte Einträge dürfen nicht
Beitrag von: Raul am 14.05.03 - 10:03:04
Hallo All...

wie stelle ich es an damit Doc´s nicht doppellt eingegeben werden können?? zb. Geräte Namen.

Das Feld Gerätename darf nur einmal mit dem wert 4711 möglich sein sonst meldung.

Geht dies mit DBColumn? und @prompt?

Danke im voraus

MfG Dubbai

Titel: Re:doppelte Einträge dürfen nicht
Beitrag von: Notestime am 14.05.03 - 10:43:03
das mußt du mit 'nem skript abfangen. beim speichern des dokumentes über ne (All)-Ansicht drüberrauschen und miteinander vergleichen
Titel: Re:doppelte Einträge dürfen nicht
Beitrag von: Rob Green am 14.05.03 - 10:54:22
mit Formel geht das auch.

Ein Feld, berechnet:
var_suche:=@dblookup("":"NoCache";"";"View";Feld_Gerätename;2);
var_check:=@if(iserror(var_suche);"Nix";"Doppelt");
Field Abbruch:=var_check;

In das Feld Abbruch, bearbeitbar, hidden, kommt ne Validierungsformel rein=
@if(Field_Abbruch="Doppelt";@failure("Achtung, Halt, Fehler, Feuer, Verlassen Sie umgehend das Gebäude!!!!");@success)

Titel: Re:doppelte Einträge dürfen nicht
Beitrag von: Raul am 14.05.03 - 10:54:42
Hi...

hui mit Script kenne ich mich nicht aus...wo kann man sich sowas mal anschauen..hast du da mal ne Tip?

MfG Raul
Titel: Re:doppelte Einträge dürfen nicht
Beitrag von: Thomas Schulte am 14.05.03 - 12:06:30
Und jetzt kommt das Garschtige an der Sache. Du kannst dich nicht 100% drauf verlassen, das es funktioniert.
Titel: Re:doppelte Einträge dürfen nicht
Beitrag von: Axel am 14.05.03 - 13:03:02
Hi,

ganz grob könnte das in Script so aussehen:

Gesucht wird in der Ansicht All nach dem Inhalt des Feldes Geraetename. Die Ansicht All muß in der ersten Spalte die Werte des Feldes Geraetename anzeigen und muß sortiert sein.

Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim db As NotesDatabase
Dim view As NotesView
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim tmpdoc As NotesDocument

Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
Set db = session.CurrentDatabase
Set view = db.GetView( "All" )  'Name der Ansicht mit allen Dokumenten
Set tmpdoc = view.GetDocumentByKey( doc.Geraetename(0) )
If tmpdoc Is Nothing Then
  'Gerät noch nicht vorhanden
Else
  'Gerät bereits in der Datenbank vorhanden
End If

Axel
Titel: Danke Euch...funktioniert
Beitrag von: Raul am 14.05.03 - 15:00:50
Thx Raul
Titel: kurze Frage
Beitrag von: Raul am 15.05.03 - 10:41:45
Hi...

wenn ich ein bestehendes Document edietiere und verändere kann ich es nicht speicher...dies sollte möglich sein.

Habe ich irgendwas falsch gemacht???

Gruss Raul ???
Titel: Re:doppelte Einträge dürfen nicht
Beitrag von: Axel am 15.05.03 - 10:55:57
Hi,

du mußt noch eine Abfrage einbauen, ob es sich um ein neues oder bestehendes Dokument handelt.

Versuch's mal so:

Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim db As NotesDatabase
Dim view As NotesView
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim tmpdoc As NotesDocument

Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
Set db = session.CurrentDatabase
Set view = db.GetView( "All" )  'Name der Ansicht mit allen Dokumenten
If doc.IsNewNote Then   'Prüfung auf doppelte Dokumente nur wenn Dokument neu
  Set tmpdoc = view.GetDocumentByKey( doc.Geraetename(0) )
  If tmpdoc Is Nothing Then
      'Gerät noch nicht vorhanden
  Else
      'Gerät bereits in der Datenbank vorhanden
  End If
End If

Axel