Autor Thema: Werte abprüfen, ob schon vorhanden  (Gelesen 1722 mal)

Offline gere

  • Aktives Mitglied
  • ***
  • Beiträge: 216
  • Geschlecht: Männlich
Werte abprüfen, ob schon vorhanden
« am: 28.07.06 - 10:24:02 »
Hallo zusammen,

Stehe gerade vor einem kleinen Problem:
Ich habe eine Tabelle mit verschiedenen Werkzeugen. Jedes Werkzeug hat eine eigene Artikelnummer, die nur einmal in der Datenbank vorkommen darf. Ich möchte jetzt also bei Anlegen eines neuen Werkzeugs abprüfen, ob die eingegebene Artikelnummer schon in der Datenbank existiert, um Duplikate zu vermeiden.

In der Eingabevalidierung des Feldes "Artikelnummer" in der Maske habe ich folgende Formel hinterlegt:

ArticleNumberNew := @GetField("ArticleNumber");
ArticleNumberExists := @DbColumn("";"":"";"EquipmentByName";3);

@If(@IsMember(ArticleNumberNew;ArticleNumberExists);@Failure("Ein Werkzeug mit dieser Artikelnummer ist bereits vorhanden");@Success)


Allerdings funktioniert das nicht. Also hab ich es in der Aktion "Speichern" mit folgender Formel versucht:

ArticleNumberNew := @GetField("ArticleNumber");
ArticleNumberExists := @DbColumn("";"":"";"EquipmentByName";3);

@If(@IsMember(ArticleNumberNew;ArticleNumberExists);@Prompt([OK];"Ein Werkzeug mit dieser Artikelnummer ist bereits vorhanden");@Success)

Dann kommt zwar die Meldung, wenn man eine Artikelnummer ein zweites mal vergeben will, aber sobald man ein vorhandener Datensatz überarbeitet und erneut speichern will, läßt Notes das nicht zu. Kann ich das irgendwie mit @IsNewDocument o. ä. lösen? Wenn ja wie, kann mir da evtl jemand auf die Sprünge helfen?

Danke, Gere


 

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Werte abprüfen, ob schon vorhanden
« Antwort #1 am: 28.07.06 - 10:57:02 »
Zwei Möglichkeiten:
Nummer 1. Du gibst nach der ersten Prüfung ein Flagfeld mit und machst die Prüfung nur dann wenn das Flagfeld nicht existiert bzw. nicht den richtigen Wert hat.
Nummer 2. Du holst dir die DOCUNID des Documents das dir der dbcolumn zurückgegeben hat und vergleichst ob dieser und der des aktuellen Dokuments identisch sind.

Alle anderen Konstrukte sind nicht zuverlässig genug.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

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: Werte abprüfen, ob schon vorhanden
« Antwort #2 am: 28.07.06 - 11:04:41 »
Ich würde das Ganze so realisieren.

Du lässt die Eingabe einer Artikel-Nummer nur bei einem neuen Dokument zu (Stichworte: berechnetes Feld, Hide-When - Formeln).

Bei Speichern prüfst du dann, ob es a.) ein neues Dokument ist (@If(@IsNewDoc....)) und b.) ob es die eingegebene Artikel-Nummer bereits gibt.


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

Offline gere

  • Aktives Mitglied
  • ***
  • Beiträge: 216
  • Geschlecht: Männlich
Re: Werte abprüfen, ob schon vorhanden
« Antwort #3 am: 28.07.06 - 11:57:11 »
Ich habs jetzt einfach so gemacht:

ArticleNumberNew := @GetField("ArticleNumber");
ArticleNumberExists := @DbColumn("";"":"";"EquipmentByName";3);

@If((@IsMember(ArticleNumberNew;ArticleNumberExists) & @IsNewDoc);@Failure("Ein Prüfmittel mit dieser Materialnummer ist bereits vorhanden");@Success)

Im Grunde funktioniert es nun auch, aber seltsamerweise kommt die Fehlermeldung beim Speichern nun 2x hintereinander !?? Hab die if-Anweisung mit & schon in Klammern gefasst, weil ich dachte dass jedes Argument dann die Meldung auslöst, aber Pustekuchen!

Gruss gere

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Werte abprüfen, ob schon vorhanden
« Antwort #4 am: 28.07.06 - 12:05:47 »
Hast Du die Formel eventuell sowohl in der Eingabeumsetzung als auch der Validierung drin? Dein Code wirft auf jeden Fall nur eine Meldung.

Weiterhin: Und wie stellst Du sicher, dass nicht jemand bei einem bestehenden Dokument die Nummer auf einen anderen, bereits bestehenden ändert?

Bernhard

Offline gere

  • Aktives Mitglied
  • ***
  • Beiträge: 216
  • Geschlecht: Männlich
Re: Werte abprüfen, ob schon vorhanden
« Antwort #5 am: 28.07.06 - 12:14:55 »
Hallo Bernhard,

Die Formel steht nur in der Eingabevalidierung drin, sonst nirgendwo, deshalb bin ich auch über die doppelte Meldung verwundert *kopfkratz*.

Folgendermaßen stell ich sicher, dass niemand den Wert ändert:

Ich hab 2 Felder, einmal ArticleNumber und ArticleNumberDsp. ArticleNumber ist versteckt beim Lesen, ArticleNumberDsp im Edit-Modus. ArticleNumberDsp übernimmt den Wert aus dem Feld ArticleNumber (mit @GetField...). Das Feld ArticleNumber wird versteckt, sobald ArticleNumberDsp gefüllt ist. So kann die Nummer nachträglich nicht mehr verändert werden.

Gere

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz