ncbruckner
Returning Observer

Rules - Vergleich Wert RadioButton - Catalog size

Jump to solution

Hallo,

ich habe hier die Anforderung, dass der Benutzer per RadioButton auswählen können soll, ob er 1, 2, ... 5 Elemente anzeigen will. Sind mehr Elemente gepflegt als angezeigt werden sollen, sollen die ersten x Elemente angezeigt werden und eine Warnung angezeigt werden.

Alle Versuche sind bisher daran gescheitert, dass der Value eines RadioButtons anscheinend an String ist und der Vergleich auf Größe natürlich eine Zahl erfordert. Gibt es irgendeine Möglichkeit, das zum Laufen zu kriegen? Ich kann im Notfall natürlich auf ein numerisches Feld ausweichen um die Anzahl der Elemente zu definieren, aber gewünscht wird eigentlich eben diese Radiobox.

Viele Grüße

Nina

1 Solution

Accepted Solutions
mbergmann
Crownpeak employee

Hallo Nina,

Deine Vermutung was die Ursache angeht stimmt: Der Wert (bzw. genauer: der ENTRY) einer optionsbasierten EK ist immer ein String, man braucht aber eigentlich eine Zahl.

Das einfachste ist hier tatsächlich, die fünf Varianten "auszuformulieren". Wenn der Hinweistext für alle fünf Werte gleich sein soll, kommst Du hier mit einer Regel aus, ansonsten müsstest Du das in mehrere aufteilen.

Wenn Dein FS_CATALOG "st_elements" und Dein Radiobutton "st_maxEntries" heißt, funktioniert folgende Regeldefinition:

<RULES>

    <RULE>

        <WITH>

            <NOT>

                <OR>

                    <AND>

                        <EQUAL>

                            <PROPERTY name="ENTRY" source="st_maxEntries"/>

                            <TEXT>1</TEXT>

                        </EQUAL>

                        <GREATER_THAN>

                            <PROPERTY name="SIZE" source="st_elements"/>

                            <NUMBER>1</NUMBER>

                        </GREATER_THAN>

                    </AND>

                    <AND>

                        <EQUAL>

                            <PROPERTY name="ENTRY" source="st_maxEntries"/>

                            <TEXT>2</TEXT>

                        </EQUAL>

                        <GREATER_THAN>

                            <PROPERTY name="SIZE" source="st_elements"/>

                            <NUMBER>2</NUMBER>

                        </GREATER_THAN>

                    </AND>

                    <AND>

                        <EQUAL>

                            <PROPERTY name="ENTRY" source="st_maxEntries"/>

                            <TEXT>3</TEXT>

                        </EQUAL>

                        <GREATER_THAN>

                            <PROPERTY name="SIZE" source="st_elements"/>

                            <NUMBER>3</NUMBER>

                        </GREATER_THAN>

                    </AND>

                    <AND>

                        <EQUAL>

                            <PROPERTY name="ENTRY" source="st_maxEntries"/>

                            <TEXT>4</TEXT>

                        </EQUAL>

                        <GREATER_THAN>

                            <PROPERTY name="SIZE" source="st_elements"/>

                            <NUMBER>4</NUMBER>

                        </GREATER_THAN>

                    </AND>

                    <AND>

                        <EQUAL>

                            <PROPERTY name="ENTRY" source="st_maxEntries"/>

                            <TEXT>5</TEXT>

                        </EQUAL>

                        <GREATER_THAN>

                            <PROPERTY name="SIZE" source="st_elements"/>

                            <NUMBER>5</NUMBER>

                        </GREATER_THAN>

                    </AND>

                </OR>

            </NOT>

        </WITH>

        <DO>

            <VALIDATION>

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

                <MESSAGE lang="*" text="Achtung - es werden nicht alle Elemente angezeigt"/>

            </VALIDATION>

        </DO>

    </RULE>

</RULES>

Viele Grüße

Michael

View solution in original post

1 Reply
mbergmann
Crownpeak employee

Hallo Nina,

Deine Vermutung was die Ursache angeht stimmt: Der Wert (bzw. genauer: der ENTRY) einer optionsbasierten EK ist immer ein String, man braucht aber eigentlich eine Zahl.

Das einfachste ist hier tatsächlich, die fünf Varianten "auszuformulieren". Wenn der Hinweistext für alle fünf Werte gleich sein soll, kommst Du hier mit einer Regel aus, ansonsten müsstest Du das in mehrere aufteilen.

Wenn Dein FS_CATALOG "st_elements" und Dein Radiobutton "st_maxEntries" heißt, funktioniert folgende Regeldefinition:

<RULES>

    <RULE>

        <WITH>

            <NOT>

                <OR>

                    <AND>

                        <EQUAL>

                            <PROPERTY name="ENTRY" source="st_maxEntries"/>

                            <TEXT>1</TEXT>

                        </EQUAL>

                        <GREATER_THAN>

                            <PROPERTY name="SIZE" source="st_elements"/>

                            <NUMBER>1</NUMBER>

                        </GREATER_THAN>

                    </AND>

                    <AND>

                        <EQUAL>

                            <PROPERTY name="ENTRY" source="st_maxEntries"/>

                            <TEXT>2</TEXT>

                        </EQUAL>

                        <GREATER_THAN>

                            <PROPERTY name="SIZE" source="st_elements"/>

                            <NUMBER>2</NUMBER>

                        </GREATER_THAN>

                    </AND>

                    <AND>

                        <EQUAL>

                            <PROPERTY name="ENTRY" source="st_maxEntries"/>

                            <TEXT>3</TEXT>

                        </EQUAL>

                        <GREATER_THAN>

                            <PROPERTY name="SIZE" source="st_elements"/>

                            <NUMBER>3</NUMBER>

                        </GREATER_THAN>

                    </AND>

                    <AND>

                        <EQUAL>

                            <PROPERTY name="ENTRY" source="st_maxEntries"/>

                            <TEXT>4</TEXT>

                        </EQUAL>

                        <GREATER_THAN>

                            <PROPERTY name="SIZE" source="st_elements"/>

                            <NUMBER>4</NUMBER>

                        </GREATER_THAN>

                    </AND>

                    <AND>

                        <EQUAL>

                            <PROPERTY name="ENTRY" source="st_maxEntries"/>

                            <TEXT>5</TEXT>

                        </EQUAL>

                        <GREATER_THAN>

                            <PROPERTY name="SIZE" source="st_elements"/>

                            <NUMBER>5</NUMBER>

                        </GREATER_THAN>

                    </AND>

                </OR>

            </NOT>

        </WITH>

        <DO>

            <VALIDATION>

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

                <MESSAGE lang="*" text="Achtung - es werden nicht alle Elemente angezeigt"/>

            </VALIDATION>

        </DO>

    </RULE>

</RULES>

Viele Grüße

Michael