Autor Thema: Eingabevalidierung nur bei Feldänderung durchführbar?  (Gelesen 3195 mal)

Offline SaSaWu

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Ich prüfe mittels folgender Eingabevalidierungsformel, ob das Feld IPN einen Wert aus der Ansicht "PNListe" enthält:

_Liste := @DbColumn("" : "NoCache" ; "" : "" ; "PNListe" ; 1);

@If(IPN="";@Success;

@If(@IsMember(@Text(IPN); _Liste) & @IsDocBeingSaved;
            @Failure("Die Parzellen-Nr. wird bereits verwendet, bitte geben Sie eine andere Nr. ein!");
            @Success))

Ich möchte die Prüfung unterbinden, wenn das Feld IPN in der vorherigen (letzten) Bearbeitung nicht geändert wurde. Wie kann ich das erreichen?

Glombi

  • Gast
Re: Eingabevalidierung nur bei Feldänderung durchführbar?
« Antwort #1 am: 03.04.08 - 12:56:28 »
Wenn es alles in Formelsprache bleiben soll: Erstelle nach dem Feld "IPN" ein neues Feld "IPNAlt".
Das Feld sollte verborgen sein und Berechnet beim Anzeigen mit der Formel:
@If(IPNAlt != "";IPNAlt;IPN)

Deine Validierung beginnt dann so
@If(
IPN = "";@Success;
IPNAlt = IPN;@Success;
...

)

Andreas

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: Eingabevalidierung nur bei Feldänderung durchführbar?
« Antwort #2 am: 03.04.08 - 12:57:26 »
Ich würde das Ganze mit Script im QuerySave-Event machen.

Beim Laden der Maske schreibst du den Feldinhalt in eine Variable und beim Speichern vergleichst du den aktuellen Feldinhalt mit dem Inhalt der Variablen. Sind sie unterschiedlich, wurde das Feld geändert und dann kannst du die Prüfung durchführen.


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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Eingabevalidierung nur bei Feldänderung durchführbar?
« Antwort #3 am: 03.04.08 - 13:07:26 »
Stefan, mich erinnert das wieder an eines Deiner letzten Postings:
Ich glaube, ich muss endlich mal ins Thema "Script" einsteigen!

Es wird Zeit ...  ;) Andreas' Variante funktioniert natürlich, aber Du stösst nun dauernd an Grenzen, manches gerät mit purer Formelsprache zum unnötigen Krampf, und vor allem: Extrem viele Möglichkeiten entgehen Dir.

Wegen Literatur: Die Herdt-Sachen sind sehr gut. Wenn Dir die Sprache egal ist (was immer ideal ist, gerade im Notes-Umfeld): Die schon erwähnte Programming Bible. Wenn Du antiquarisch noch darankommst: Anthony Patton's "Practical LotusScript" - das Teil ist hervorragend. U.U. könnte ich Dir das auch leihweise zur Verfügung stellen.

Bernhard

Offline SaSaWu

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Eingabevalidierung nur bei Feldänderung durchführbar?
« Antwort #4 am: 03.04.08 - 13:12:44 »
Danke für Eure Antworten und an Bernhard: Ich weiß, ich weiß! Bin geläutert...

Ich habe mir auch schon ein Herdt-Buch bestellt. Danke auch für das Angebot der Leihe, werde mich aber erstmal der deutschen Literatur zuwenden.

Offline SaSaWu

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: Eingabevalidierung nur bei Feldänderung durchführbar?
« Antwort #5 am: 03.04.08 - 18:06:59 »
Ich würde das Ganze mit Script im QuerySave-Event machen.

Beim Laden der Maske schreibst du den Feldinhalt in eine Variable und beim Speichern vergleichst du den aktuellen Feldinhalt mit dem Inhalt der Variablen. Sind sie unterschiedlich, wurde das Feld geändert und dann kannst du die Prüfung durchführen.


Axel


Danke, so klappt's!

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: Eingabevalidierung nur bei Feldänderung durchführbar?
« Antwort #6 am: 06.04.08 - 14:34:24 »
In Version 5 gibt es die unschönen Reaktionen von CFD-Feldern (=Computed for Dsiplay), daß sie gerne ihre Wertzuweisung vergessen, wenn man Maskenaktualisierungen (RECALCS, z.B. beim Aktualisieren nach Schlüsselwortänderungen) NACH dem Aufruf einer Dialogbox macht.

Im Klartext heißt das: mit Formelsprache wird das im Großen und Ganzen funktionieren, im Kleinen und Genauen aber manchmal auch nicht.

Und wenn das eine häufiger benötigte Datenbank ist, dann ist der mit Fehlersuche und -behebung verbundene Aufwand, der dich in den nächsten zwei Jahren erwartet, größer als das Einlesen in die Fundamentals von LotusScript.

Irgendwann ist immer das erste Mal. Trau dich. Die Aufgabe ist geeignet für einen Einstieg.

Gruß

Norbert
Situs vilate in isse tabernit.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz