sgoess
I'm new here

Pflichtfeld mit Regel abhängig von Sichtbarkeit prüfen

Jump to solution

Hallo,

ich habe ein Textfeld "st_name" in einem Formular, welches ich abhängig von einer ON_EVENT-Regel ein- und ausblende. Wenn das Textfeld angezeigt wird, soll es auch ein Pflichtfeld sein. Dazu habe ich allowEmpty="yes" gesetzt und möchte die dynamische Prüfung über eine Regel steuern, was mir jedoch nicht gelingen mag.

Nachfolgende nicht funktionierende Ansätze hatte ich bislang:

1. Mit IF:

<ON_SAVE>

     <IF>

         <PROPERTY source="st_name" name="VISIBLE"/>

     </IF>

     <WITH>

         <NOT>

             <PROPERTY source="st_name" name="EMPTY"/>

        </NOT>

     </WITH>

     <DO>

         <VALIDATION>

             <PROPERTY source="st_name" name="VALID"/>

             <MESSAGE lang="*" text="A name must be provided!"/>

         </VALIDATION>

     </DO>

</ON_SAVE>

2: Ohne IF:

<ON_SAVE>

      <WITH>

           <AND>

                <PROPERTY source="st_name" name="VISIBLE"/>

                <NOT>

                    <PROPERTY source="st_name" name="EMPTY"/>

                </NOT>

           </AND>

      </WITH>

      <DO>

           <VALIDATION>

                <PROPERTY source="st_name" name="VALID"/>

                <MESSAGE lang="*" text="A name must be provided!"/>

           </VALIDATION>

      </DO>

</ON_SAVE>

Beste Grüße

Sebastian Goeß

1 Solution

Accepted Solutions
sgoess
I'm new here

Und hier die Lösung: Smiley Happy

<ON_SAVE>

     <WITH>

          <NOT>

               <AND>

                    <PROPERTY source="st_name" name="VISIBLE"/>

                    <PROPERTY source="st_name" name="EMPTY"/>

               </AND>

          </NOT>

     </WITH>

     <DO>

          <VALIDATION>

               <PROPERTY source="st_name" name="VALID"/>

               <MESSAGE lang="*" text="A name must be provided!"/>

          </VALIDATION>

     </DO>

</ON_SAVE>

View solution in original post

6 Replies
sgoess
I'm new here

Und hier die Lösung: Smiley Happy

<ON_SAVE>

     <WITH>

          <NOT>

               <AND>

                    <PROPERTY source="st_name" name="VISIBLE"/>

                    <PROPERTY source="st_name" name="EMPTY"/>

               </AND>

          </NOT>

     </WITH>

     <DO>

          <VALIDATION>

               <PROPERTY source="st_name" name="VALID"/>

               <MESSAGE lang="*" text="A name must be provided!"/>

          </VALIDATION>

     </DO>

</ON_SAVE>

Ich habe einen ähnlichen Fall, mit folgender Lösung!

   

<ON_SAVE>

    <WITH>

        <NOT>

            <AND>

                <PROPERTY source="st_enddate" name="EMPTY"/>

                <PROPERTY source="st_event" name="VALUE"/>

                <TRUE/>

            </AND>

        </NOT>

    </WITH>

    <DO>

        <VALIDATION>

            <PROPERTY source="st_enddate" name="VALID"/>

            <MESSAGE lang="*" text="A enddate must be provided!"/>

        </VALIDATION>

    </DO>

</ON_SAVE>

Ich hatte am Anfang auch beide Varianten wie du ausprobiert und es hatte nicht richtig funktioniert. Dann hier geschaut und mit deiner Lösung klappt es.

Warum bezieht sich das <NOT> nur auf die <PROPERTY> mit EMPTY und nicht auf beide Properties?

0 Kudos

Hi,

das NOT bezieht sich auf das AND. Umgeschrieben lautet deine Werteermittlung oben:

not( st_enddate.isEmpty and st_event.value and true)

Ich nehme mal an, st_event ist eine Toggle-Komponente?

Beste Grüße

Stefan

0 Kudos

Hi,

ja st_event ist eine Toggle-Komponente.

Wenn st_event TRUE ist, dann benötige ich st_enddate als Pflichtfeld.

Bei FALSE ist die Angabe optional.

Grüße

Henning

0 Kudos

Hallo,

im Prinzip willst du hier also eine Implikation umsetzen:

st_event --> not( st_enddate.isEmpty )

Per Definition also:

not( st_event ) or not( st_enddate.isEmpty )

Nach De Morgan:

not( st_event and st_enddate.isEmpty )

Was deiner Regel entspricht (das TRUE ist hier nicht notwendig).

Beste Grüße

Stefan

Alles klar,

ja das TRUE war nicht notwendig!

Vielen Dank

Grüße

Henning

0 Kudos