Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Tino am 22.07.04 - 09:43:08

Titel: Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: Tino am 22.07.04 - 09:43:08
Hallo,

Ich habe folgendes Problem.

In einer Maske habe ich zwei Zahlenfelder die ich mit einander vergleichen muss. Wenn diese nicht gleich sind dann soll es nicht möglich sein die Maske zu speichern.

Könnt ihr mir ne kleinen Tip geben wie ich das am besten anstelle?? (QuerySave??)

DANKE!!
Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: Glombi am 22.07.04 - 09:52:58
In der Eingabevalidierungsformel (Formelsprache) oder im QuerySave (Script).

Bsp:
@If(
 FeldA != FeldB;
   @Failure("Bitte gleiche Werte eingeben!");
 @Success
)

Andreas
Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: Tino am 22.07.04 - 11:16:55
DANKE Andreas!

Misst, ich hatte vergessen zu sagen das die beiden Felder die verglichen werden müssen berechnet Felder sind. Damit fällt "Eingabevalidierung" wohl schon mal raus, oder?

Ich hab nun folgendes versucht....

Ich hab mir in der Maske ein Feld (vergleich) erstellt das mir die beiden Wert vergleicht und dann bei Gleichheit eine "1" ausgibt und bei Ungleich eine "0"

Dann habe ich folgenden Code in meine QuerySave - Anweisung geschrieben...

Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim vergleich As String
   If vergleich = "0" Then
      Continue=False
      Messagebox "Bitte Werte vergleichen"
   End If
End Sub


Doch leider funktioniert es nicht... Kenn mich nun wirklich überhaupt nicht mit Script aus, was hab ich denn da wohl noch falsch gemacht??

Ich hoffe das mir noch jemand weiterhelfen kann...

DANKE !
Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: Axel am 22.07.04 - 11:31:26
Hi,

dein Script muß so aussehen, wobei der Feldname vergleich ist:

Sub Querysave(Source As Notesuidocument, Continue As Variant)

   If Source.Document.vergleich(0) = "0" Then
      Continue=False
      Messagebox "Bitte Werte vergleichen"
   End If

End Sub


Axel

Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: Tino am 22.07.04 - 11:35:13
Jupp, jetzt klappt es.  Super!

Vielen Dank!!! :)
Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: AC am 22.07.04 - 11:46:31
Hi Timo.

Generell: Vorsicht beim Zahlen vergleichen, da musst du etwas aufpassen.

In Deinem Fall. Beispiel.
Im feld A steht bei dir 2,3 drin im Feld B
wir der Wert berechnet aus 184,8 - 182,5.

Nach Adam Riese müsste in Feld B auch 2,3 drin stehen , tut es aber nicht. (sondern 2,3000...01)

Vergleichst Du nun die zwei felder miteinander, .. Überraschung: Nicht gleich.

Bye Holcomb
Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: Tino am 22.07.04 - 12:06:00
Danke für den Hinweis. Da wäre ich sicher nicht so leicht drauf gekommen. Werde jetzt gleich noch mal überprüfen ob der Fall auch bei mir eintreten kann...

Vielen DANK!
Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: WMotzet am 22.07.04 - 12:09:44
@Holcomb diese Überraschung habe ich auch schon erlebt, kannst Du erklären, wo das herkommt?  ???
Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: AC am 22.07.04 - 12:10:38
Danke für den Hinweis. Da wäre ich sicher nicht so leicht drauf gekommen. Werde jetzt gleich noch mal überprüfen ob der Fall auch bei mir eintreten kann...

Vielen DANK!

Ist ein generelles Problem (z.B. auch in Excel) und taucht bei vielen Zahlen im Nachkommabereich auf.

Problematisch wirds vor allem dann, wenn Du eben zwei Werte vergleichen musst. Da hilft dann nur ein workaround.

Holcomb
Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: AC am 22.07.04 - 12:13:16
@Holcomb diese Überraschung habe ich auch schon erlebt, kannst Du erklären, wo das herkommt?  ???

Hi Motzet,

gab vor kurzer Zeit hier im Forum einen Thread hier zu dem Thema.
Les da mal nach.

(Suche mal via "Suche" mit Sichwort INTEL oder Rechengenauigkeit)

Gruß Holcomb
Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: Tino am 22.07.04 - 13:32:47
Hallo noch mal....

ich hab da noch mal ne andere Frage...

Ich hab da in einer Maske ein Datumsfeld (@Today).

Nun möchte ich das es nicht möglich ist Eingaben zu tätigen die 3 Tage und länger zurück liegen.... Dazu habe ich in dem Feld "Datum" bei der Eingabevalidierung folgende Formel eingegeben.

Nur leider klappt das noch nicht. Wo liegt denn da nu wieder der Fehler?

@If(Datum = @Adjust(@Now;0;0;-3;0;0;0);@Failure("Ihre Eingaben erfolgen zu spät!");
@Success)



Danke!!
Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: Axel am 22.07.04 - 14:20:05
Hi,

deine Validierungsformel muss so aussehen:

@If(Datum <= @Adjust(@Today;0;0;-3;0;0;0);@Failure("Ihre Eingaben erfolgen zu spät!");@Success)



Axel
Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: Tino am 22.07.04 - 14:28:49
aha, meine Formel war wohl "Knapp daneben und doch vorbei"!!!

SUPER!!! Klappt wie Sau!! DANKE!!
Titel: Re:Nicht speichern, wenn 2 Werte nicht gleich sind.
Beitrag von: Axel am 22.07.04 - 14:43:59
Hi,

prima. Setzt du den Thread bitte noch auf "Erledigt".

Danke.


Axel