если И тогда еще заявление - PullRequest
1 голос
/ 03 мая 2019

Я начинающий самоучка. Я ищу дополнительные {billing.items}, которые будут отображаться только при наличии стандартных {billing.items}. Тогда, если нет, просто получите стандарт. Я использую оператор IF AND THEN ELSE. Ничего не возвращается с самого начала, ЕСЛИ И ПОТОМ я получаю только ДРУГОЕ.

когда я делаю простое заявление IF THEN со всем списком, я и получаю все данные. Таким образом, данные существуют. Но мне нужно, чтобы дополнительные элементы зависели от наличия стандартных элементов. Я в тупике.

( if ({billing.items} in [1244, 1245, 1246, 1247, 1248, 1249, 1250] and {billing.items} in [1296, 2390, 2391, 2392, 2393]) then true else {billing.items} in [1244, 1245, 1246, 1247, 1248, 1249, 1250] )

1 Ответ

0 голосов
/ 05 июня 2019

Если я правильно понимаю, вы хотите проверить, доступен ли хотя бы один элемент из каждого списка.

Crystal Reports всегда просматривает формулу на основе записей. Таким образом, {billing.items} всегда оценивается как значение текущей записи, и, таким образом, статус всегда будет false, поскольку {billing.items} содержит только одно значение.

Чтобы решить эту проблему, вы можете создать три отдельные формулы: одну с первым списком и одну со вторым списком. В третьей формуле (или формуле подавления) вы можете проверить, является ли «Максимум» каждой формулы списка в отчете true.

Формула "@ List1"

{billing.items} in [1244, 1245, 1246, 1247, 1248, 1249, 1250]

Формула "@ List2"

{billing.items} in [1296, 2390, 2391, 2392, 2393]

Проверка

if Maximum({@List1})=true and Maximum({@List2})=true then
    // Standard-Items are present
else
    // Standard-Items are NOT present
...