Autor Thema: travel DB - input validation bei computed feldern  (Gelesen 2195 mal)

Offline luna

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.362
  • Geschlecht: Weiblich
  • mein name ist hase...
    • sixtnix homepage
hallo,

ich hab zwei buttons (approve und reject) die je ein feld beschreiben. im moment kann der user auf beide buttons klicken, was er aber nicht soll.

normalerweise wuerde ich eine input validation machen mit so einer formel:
@If(feldA !="" & feldB !="";@Failure("only click on one button!");@True)
damit er nicht speichern kann, wenn in beiden feldern was drin steht.

aber da die beiden felder computed sind, hab ich keine input validierung.

wie kann ich das loesen, damit er nicht auf approve UND reject klicken kann?

danke und gruss,
daniela
im moment in mutterschutz

Offline Till_21

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • I love Germany
Re:travel DB - input validation bei computed feldern
« Antwort #1 am: 05.12.02 - 15:38:12 »
du könntest, wie dein ansatz, die gleiche validierung
per ls im querysave machen und ggf. das speichern unterbinden.
oder aber du setzt ein flag ins dokument bei betätigen der jeweiligen buttons. danach ein [refreshhideformulas].
dann für die knöpfe noch die hide-when anpassen.
hiermit hast du erreicht, dass wenn ein knopf gedrückt wurde, der andere danach gar nicht mehr zu sehen ist.
dann kannst du dir auch widerrum die validierung sparen.
gruss, till

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:travel DB - input validation bei computed feldern
« Antwort #2 am: 05.12.02 - 15:40:50 »
Hi,

wie wäre es denn, wenn der User einen Button klickt um in ein Feld was einzutragen und damit wird der andere ausgeblendet.

Andere Alternative. Du prüfst, bevor du der Wert in ein Feld geschrieben wird ob im anderen bereits was drin steht.


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

Offline luna

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.362
  • Geschlecht: Weiblich
  • mein name ist hase...
    • sixtnix homepage
Re:travel DB - input validation bei computed feldern
« Antwort #3 am: 05.12.02 - 15:50:30 »
hallo till, hallo axel,

erstmal vielen dank fuer die schnellen antworten.

ich denke mir gefaellt das am besten:

wenn der user auf den button APPROVE klickt, soll zuerst geprueft werden, ob im FELDB was drinsteht. wenn schon was drinsteht, dann soll er eine fehlermeldung bekommen, wenn nicht, dann soll ein wert in FELDA eingetragen werden.
und umgekehert genauso.

ich kriegs aber nicht hin.

die formel im moment auf dem APPROVE button:
FIELD signature_manager_approval := @Name([Abbreviate];@UserName) + @NewLine + "on " + @Text(@Now)

ich dachte, ich mach das einfach so:
@If (signature_manager_reject != "";@Failure ("sie koennen hier nicht alles anklicken, sie muessen sich schon fuer eins entscheiden");
FIELD signature_manager_approval := @Name([Abbreviate];@UserName) + @NewLine + "on " + @Text(@Now))

aber das geht nicht, da ist FIELD rot und er sagt dort ist ein missing semikolon. ist sicherlich nur eine kleinigkeit, aber ich weiss nicht, wie ich das richtig schreiben muss.

danke und gruss,
daniela
im moment in mutterschutz

Offline Till_21

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • I love Germany
Re:travel DB - input validation bei computed feldern
« Antwort #4 am: 05.12.02 - 15:57:23 »
hi luna,

du kannst glaub ich keine field-struktur verschachteln, da muesstest du
schon mit @setfield arbeiten

till

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:travel DB - input validation bei computed feldern
« Antwort #5 am: 05.12.02 - 16:01:44 »
Hi Daniela,

auf den ersten Blick siehts eigentlich richtig aus.

Versuch's mal so

FIELD signature_manager_approval := signature_manager_approval;
@If (signature_manager_reject != "";@Failure ("sie koennen hier nicht alles anklicken, sie muessen sich schon fuer eins entscheiden"); @SetField("signature_manager_approval"; @Name([Abbreviate];@UserName) + @NewLine + "on " + @Text(@Now))


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

Offline luna

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.362
  • Geschlecht: Weiblich
  • mein name ist hase...
    • sixtnix homepage
Re:travel DB - input validation bei computed feldern
« Antwort #6 am: 05.12.02 - 16:15:00 »
hallo ihr beiden,

vielen dank, das ist im prinzip genau die loesung, die ich brauche und die ohne script am einfachsten ist.

aber leider funzt sie nur halbert.

wenn ich auf den button APPROVE klicke, und danach auf den button REJECT (und umgekehrt uebrigens genauso), dann schreibt er zwar in dem feld des zweiten buttons nix rein (das ist die eine haelfte die geht), aber meine schoene fehlermeldung kommt nicht.

formel button APPROVE:
FIELD signature_manager_approval := signature_manager_approval;
@If (signature_manager_reject != "";@Failure ("sie koennen hier nicht alles anklicken, sie muessen sich schon fuer eins entscheiden"); @SetField("signature_manager_approval"; @Name([Abbreviate];@UserName) + @NewLine + "on " + @Text(@Now)))

formel button REJECT:
FIELD signature_manager_reject := signature_manager_reject;
@If (signature_manager_approval != "";@Failure ("sie koennen hier nicht alles anklicken, sie muessen sich schon fuer eins entscheiden"); @SetField("signature_manager_reject"; @Name([Abbreviate];@UserName) + @NewLine + "on " + @Text(@Now)))

wir haben jetzt zu zweit nach einem tipfehler gesucht, ich finde aber keinen.

gruss,
daniela
im moment in mutterschutz

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:travel DB - input validation bei computed feldern
« Antwort #7 am: 05.12.02 - 16:21:12 »
Hi Daniela,

ich glaube der "Hund" liegt bei @Failure begraben. Das hab ich in der Hilfe gefunden:

Zitat
@Failure wird hauptsächlich in Eingabevalidierungsformeln für editierbare Felder verwendet, obwohl @Failure auch in Agenten und Maskenformeln verwendet werden kann. Wenn @Failure in anderen Formeln als Eingabevalidierungsformeln verwendet wird, so wird Zeichenfolge zurückgegeben; Notes/Domino gibt keine Eingabeaufforderung oder Meldungen aus.

Einzigste Lösung -> @Prompt

Deine Formeln müssten dann so aussehen:

formel button APPROVE:
FIELD signature_manager_approval := signature_manager_approval;
@If (signature_manager_reject != "";@Prompt ([OK]; "Travel-DB"; "sie koennen hier nicht alles anklicken, sie muessen sich schon fuer eins entscheiden"); @SetField("signature_manager_approval"; @Name([Abbreviate];@UserName) + @NewLine + "on " + @Text(@Now)))

formel button REJECT:
FIELD signature_manager_reject := signature_manager_reject;
@If (signature_manager_approval != "";@Prompt ([OK]; "Travel-DB"; "sie koennen hier nicht alles anklicken, sie muessen sich schon fuer eins entscheiden"); @SetField("signature_manager_reject"; @Name([Abbreviate];@UserName) + @NewLine + "on " + @Text(@Now)))


Axel


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

Offline luna

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.362
  • Geschlecht: Weiblich
  • mein name ist hase...
    • sixtnix homepage
Re:travel DB - input validation bei computed feldern
« Antwort #8 am: 05.12.02 - 16:24:17 »
 :-* :-* :-* :-* :-* ;D
im moment in mutterschutz

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz