Если я правильно понимаю ваш вопрос:
Ваши интервалы определены неправильно. Прямо сейчас у вас есть
Если цена выше 20, покажите успех. Если оно выше 50, покажите ошибку. Иначе показывать предупреждение.
Эти утверждения проверяются именно в этом порядке.
Допустим, у вас есть цена 80.
Это выше, чем 20? Да, это так, так показать успех. Не нужно проверять остальное, так как первое условие уже соответствует.
Если вы хотите три интервала, не начинайте со среднего.
<ObjectListItem numberState="{= ${invoice>ExtendedPrice} > 50 ? 'Error' : 20 >= ${invoice>ExtendedPrice} ? 'Warning' : 'Success' }" />
Если вы хотите чтобы начать со среднего, сделайте ваше условие более строгим.
Например, «если оно больше 20, но меньше или равно 50, то успех».
<ObjectListItem numberState="{= ${invoice>ExtendedPrice} > 20 && ${invoice>ExtendedPrice} <= 50 ? 'Success' : ${invoice>ExtendedPrice} > 50 ? 'Error' : 'Warning' }" />
& и <являются специальными символами в XML, поэтому вы должны избегать их. </p>
Но вы видите, это трудно отлаживать и трудно читать. Я настоятельно рекомендую функцию форматирования .
Вы можете отладить ее (поскольку она проста JavaScript) и записать читаемые троичные выражения или операторы if / else.