Autor Thema: Frage zu einer Hide-When-Formel  (Gelesen 2356 mal)

botschi

  • Gast
Frage zu einer Hide-When-Formel
« am: 03.02.06 - 15:01:41 »
Ich habe eine eingebettete Ansicht mit Aktionen. Die Aktionen sollen ausgeblendet sein, wenn das Feld "status" des Doks nicht dem Wert entspricht, der im Profildok hinterlegt wurde.

Meine Formel:
status != @GetProfileField("Profildokument";"phase0").

Das funktioniert für Felder in der Maske, die versteckt sein sollen auch ganz gut, aber die Aktionen kümmert das nicht. Sie sind immer versteckt, egal welchen Wert das Feld "status" hat.

Bekommen die Aktionen den Wert des Profildoks nicht oder nicht den Wert vom Feld "status"? Gibt es eine Lösung dafür?

Danke für Hilfe!

Offline smoki

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
    • Smoki's Lotus Notes
Re: Frage zu einer Hide-When-Formel
« Antwort #1 am: 03.02.06 - 15:11:09 »
Ist das Feld Status schon gefüllt, wenn die die Aktions dargestellt werden soll? D. h. im Dokument als Item abgelegt?

Oder wird das erst "später" berechnet im Dokument?

Gruss
Chris

botschi

  • Gast
Re: Frage zu einer Hide-When-Formel
« Antwort #2 am: 03.02.06 - 15:16:54 »
Ja, das Feld gibt es in der Maske. Das Feld ist berechnet und wird z.B. immer gesetzt bei Weiterleitung des Antrags.
Wird ein Antrag über einen Button neu erstellt, schreibe ich in das Feld den Wert aus dem Profildokument und die Aktionen sollen zu sehen sein. Aber selbst dann sind die Aktionen versteckt.

Offline smoki

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
    • Smoki's Lotus Notes
Re: Frage zu einer Hide-When-Formel
« Antwort #3 am: 03.02.06 - 15:35:48 »
Ich habe deine Anforderung leider nicht ganz verstanden, vermutlich fehlen mir noch ein paar Hintergründe...

Aber vielleicht hilft das folgende Vorgehen:

Definiere den Aktionbutton in einer Teilmaske und lege die Teilmaske hinter dem Status Feld in der Maske an.

Wie gesagt, das ist allerdings nur spekulation...

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Frage zu einer Hide-When-Formel
« Antwort #4 am: 03.02.06 - 15:36:58 »
a) Diese Aktionen sind "IN" der eingebetteten Ansicht?
b) Diese Aktionen sollen versteckt werden sobald ein Statusfeld gesetzt oder nicht gesetzt ist. richtig?

c) Du erwähnst hier
Zitat
wenn das Feld "status" des Doks nicht dem

Ist das, das Dok mit der eingebetteten Ansicht oder ein Dok innerhalb der eingebetteten Ansicht?


Meine Kristallkugel summt schon :-)
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline smoki

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
    • Smoki's Lotus Notes
Re: Frage zu einer Hide-When-Formel
« Antwort #5 am: 03.02.06 - 15:43:56 »
Oh die Aktion ist in einer eingebetteten Ansicht... Lesen sollte man können :)

Naja, probiers aber trotzdem mal mit der Ansicht in einer Teilmaske... Kann allerdings sein, dass dort die Felder nicht für die Hide-when-Formeln übergeben werden...

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: Frage zu einer Hide-When-Formel
« Antwort #6 am: 03.02.06 - 15:54:27 »
Wenn ich das richtig sehe, verwendest du Profildokumente und die werden bekanntermaßen im Cache gehalten.

Das kann so nicht gehen.

Ein ausweg wäre eine INI-Variable, obwohl ich mir da auch nicht sicher bin ob das geht.

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

botschi

  • Gast
Re: Frage zu einer Hide-When-Formel
« Antwort #7 am: 03.02.06 - 16:33:24 »
Tut mir leid, ich hab mir wirklich Mühe gegeben, es richtig zu beschreiben...  ;D

Ein neuer Antrag kann nur über einen Button erzeugt werden. Der Button setzt u.a. in das Feld "status" den Wert aus dem Profildokument.
antrag.status = profil.phase0(0)

Ein neuer Antrag ist erstellt und bearbeitbar. Der Antrag hat eine eingebettete Ansicht mit Ansichtsaktionen. Wenn der User irgendwann den Antrag per Masken-Button weiterleitet, werden diverse Plausis geprüft, der Antrag bekommt in das Feld "status" einen neuen Wert gesetzt und der Antrag geht zu.

Der nächste User sollte jetzt eigentlich die Aktionen in der eingebetteten Ansicht nicht mehr sehen, da der Wert in "status" nicht mehr dem aus dem Profildokument entspricht.
Der Wert im Profildokument ändert sich nicht. Das Profildokument wird einmal angelegt und das wars dann.

Hoffentlich hab ich es jetzt gut rüber gebracht, es ist nicht immer einfach...

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: Frage zu einer Hide-When-Formel
« Antwort #8 am: 03.02.06 - 16:43:39 »
Ohne mir jetzt weitergehende Gedanken gemacht zu haben, stellt sich mir folgende Frage.

Was passiert bei weitere neuen Anträgen?


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

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Frage zu einer Hide-When-Formel
« Antwort #9 am: 03.02.06 - 16:47:36 »
Dann hat meine Kristallkugel doch recht gehabt.

GEHT NICHT :-)

Scheint ein Notes Bug zu sein oder feature....

Testszenario:
Neues Form mit Feld "Test"

Neue View mit Button Test und Formel "@prompt([OK];"test";test);"
Aktion mit HideWhen test="1"

View in Form Test eingebettet.

Preview des Forms.

Werte des Feldes Test werden über den Button ausgelesen. ABER HideWhen zieht nich....
zumindest bei 6.5.4

Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

botschi

  • Gast
Re: Frage zu einer Hide-When-Formel
« Antwort #10 am: 03.02.06 - 16:54:48 »
Also jeder Antrag steht für sich und bedient sich nur aus dem Profildokument. Aus dem Profildokument werden immer nur die Stati für den Workflow gezogen.

Das Profildokument wird nur einmal angelegt und gefüllt, wenn die DB produktiv geht. Danach nie wieder (irgendwann wird man das sicher maö ändern müssen, aber dann zumindest nicht, während User damit Anträge erzeugen).

Wenn nun aber der Antrag in der vorletzten Phase (Phase 4) ist sollen  die Ansichtsaktionen nicht mehr zu sehen sein, weil die nur in der 1. Phase benutzt werden dürfen.
Deswegen: wenn Status aus Antrag <> ungleich Wert aus Profildokument, dann verstecke die Aktionen.
status != @GetProfileField("Profildokument";"phase0")

Was sollte nun mit weiteren Anträgen passieren?

Offline smoki

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
    • Smoki's Lotus Notes
Re: Frage zu einer Hide-When-Formel
« Antwort #11 am: 03.02.06 - 20:32:44 »
Neuer Vorschlag...

Setze den Status als Environment Variable im QueryOpen des Dokuments alla:

@SetEnvironment("TEST_STATUS";status)

Und schreibe in die Aktion der eingebetten Ansicht
status:=@Environment("TEST_STATUS")

Sollte Status eine Zahl sein, noch @Text und @TextToNumber verwenden.

Könnte das hier funktionieren? Ich vermute nämlich das die Aktionsbuttons einer Ansicht, niemals einen Zugriff auf die Felder eines Dokuments bekommen! (Und wenn, dann das vom in der Ansicht ausgewählten...)

Gruss
Chris

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Frage zu einer Hide-When-Formel
« Antwort #12 am: 03.02.06 - 21:42:44 »
Ich denke das mit den Hide Whens in den Aktionen funktioniert nicht so ganz richtig vom Notes her.
evtl. Könntest Du ja auch die Eingebettete Ansicht wechseln, wenn der Status erreicht ist. Die 2. Ansicht hat dann halt die Aktionen nicht mehr drin.
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

botschi

  • Gast
Re: Frage zu einer Hide-When-Formel
« Antwort #13 am: 06.02.06 - 11:42:05 »
Danke für Eure Mühen!

Da der Antrag nach dem Statuswechsel automatisch geschlossen wird (erst mit Knopf "Weiterleiten" wird der Status umgesetzt) und die eingebettete Ansicht dann nicht im uidoc gewechselt werden muss, habe ich mich für eine zweite eingebettete Ansicht entschieden.
Die eine Ansicht hat Aktionen und die andere nicht.

Wenn Status <> dem aus Profildok, dann nimm Ansicht_A, sonst Ansicht_B.

@If(status != @GetProfileField("Profildokument";"phase0");"viw_felderalle_no_aktion";"viw_felderalle_no").

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz