Autor Thema: Abfrage ob name schon vorhanden  (Gelesen 2435 mal)

Offline brathaenchen

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Ich liebe dieses Forum!
Abfrage ob name schon vorhanden
« am: 21.04.05 - 08:51:36 »
Hi!

ich möchte in Script abprüfen, das wenn ich ein neues Dokument erstelle
abgeprüft wird, ob ein anderes Dokument diesen Namens existiert und wenn ja zum Abbruch beim Speichern führt.
Wie mache ich sowas?
« Letzte Änderung: 21.04.05 - 08:53:36 von brathaenchen »

klaussal

  • Gast
Re: Abfrage ob name schon vorhanden
« Antwort #1 am: 21.04.05 - 08:58:43 »
Zitat
ob ein anderes Dokument diesen Namens existiert

Wie soll man das verstehen ? Ansonsten mit "getdocumentbykey" (siehe Designer-Hilfe).

Offline entertainer1105

  • Frischling
  • *
  • Beiträge: 33
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Abfrage ob name schon vorhanden
« Antwort #2 am: 21.04.05 - 09:09:15 »
Vielleicht hilft Dir das:
   Dim session As New  NotesSession
   Dim db As Notesdatabase
   Dim view As Notesview
   Dim doc As Notesdocument
   Dim uidoc As NotesUIDocument
   Dim workspace As New NotesUIWorkspace
   Dim ProjektNrStr As String
   
   Set uidoc=workspace.Currentdocument
   If uidoc.IsNewDoc Then
      ProjektNrStr=uidoc.FieldGetText("ProjektNr")
      Set db= session.currentdatabase
      Set view=db.GetView("nach Projektnummern")
      Set  doc=View.GetDocumentbyKey(ProjektNrStr,True)
      If Not (doc Is Nothing) Then
         Msgbox "ProjektNr schon vergeben",MB_OK,"Fehler"
         Call uidoc.FieldSetText("ProjektNr","")
         Call uidoc.GotoField("ProjektNr")
      End If
   End If

Das ist ein Script Eintrag, der in einem Key-Feld (in diesem Fall die Projektnummer) unter "Exiting" steht und prüft, ob es diese Projektnummer schon gibt. Falls ja, wird wieder in das Feld "Projektnummer" gesprungen.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Abfrage ob name schon vorhanden
« Antwort #3 am: 21.04.05 - 09:24:14 »
Hi,

gegen den Code ist nichts zu sagen, aber ich würde das nicht im Exiting - Event machen. Dieser Event wird unter Umständen nicht ausgeführt. Besser ist so was im QuerySave-Event der Maske aufgehoben.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline ..Andreas..

  • Junior Mitglied
  • **
  • Beiträge: 60
  • Geschlecht: Männlich
  • Brevity is the soul of wit.
Re: Abfrage ob name schon vorhanden
« Antwort #4 am: 21.04.05 - 09:29:08 »
@entertainer1105 ... der Exiting event wird allerdings nur beim Verlassen des Feldes ausgeführt, also sollte man das Ganze auch (oder ausschließlich?) beim Speichern prüfen. Denn per Lotusdefinition verlässt man beim Speichern das Feld nicht.

Andreas

Offline brathaenchen

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Ich liebe dieses Forum!
Re: Abfrage ob name schon vorhanden
« Antwort #5 am: 21.04.05 - 09:39:18 »
Hey!

danke für die tollen Antworten. Hat alles Prima geklappt. hab es im Querysafe untergebracht, da dies etwas sicherer ist.
hab nur noch ein kleines Problem. Ich möchte nicht das das Dokument bei falschem Feldnamen gespeichert und geschlossen werden kann.
Wie kann das verhindert werden?

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: Abfrage ob name schon vorhanden
« Antwort #6 am: 21.04.05 - 09:49:58 »
Mit Continue = False

-d
†090620141300

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Abfrage ob name schon vorhanden
« Antwort #7 am: 21.04.05 - 23:45:52 »
Weiß nicht ob man da unbedingt LotusScript braucht  ???

Idee:

_DeinFeld := FeldDasDuPrüfenWillst;
_Lookup := @DbColumn("":"NoCache"; ""; "(lookupName)");
_AlreadyExists := @IsMember( _DeinFeld ; _Lookup);

@If(_AlreadyExists;
   @Failure("Möööp, Name existiert bereits");
   @Success
)


Die Ansicht "(lookupName)" enthält da Deine Namen...
Dabei vielleicht noch @Trim und andere String-Absicherungen verwenden, um z.B. Leerzeichen rauszuwerfen.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Abfrage ob name schon vorhanden
« Antwort #8 am: 21.04.05 - 23:49:03 »
Ach ja, was machst Du, wenn mit mehreren Repliken gearbeitet wird? Dann kannst Du das so vergessen. Da müssen dann andere - sehr durchdachte - Werkzeuge ran, sonst lässt es sich nicht vermeiden, dass doppelte Namen erzeugt werden.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Abfrage ob name schon vorhanden
« Antwort #9 am: 22.04.05 - 00:00:21 »
Alle bisherigen Vorschläge setzen voraus, das die Prüfung nur dann durchgeführt wird, wenn das Dokument gerade erstellt wird. Jede spätere Änderung des Dokuments würde dann entweder ungeprüft verlaufen oder zu einer "Document already exists !"-Meldung führen.

Ergo: Entweder darf das zu prüfende Feld nur bei der Erstellung editierbar sein oder die Prüfung muss aufwändiger werden (GetAllDocumentsByKey, wenn in der Collection dann ein Doc ist, das nicht die UNID des aktuellen Docs hat, dann schlägt die Prüfung fehl).

Sowas liesse sich mit Verrenkungen auch mit @functions machen, aber das sollte hier mal nicht das erste Mittel der Wahl sein  ;D

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz