Создание условной строки в зависимости от RunningTotal - PullRequest
0 голосов
/ 28 января 2019

Я работаю над формулировкой, которую мы используем для счета, созданного в Crystal Reports.У меня есть ряд условий, для которых я хотел бы отобразить другой текст, и когда я тестировал его на прошлой неделе, используя ранее обработанные заказы в нашей базе данных, он работал нормально, но теперь, при новых заказах, он, похоже, не работает, иЯ не могу понять, почему.

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

WHILEPRINTINGRECORDS;
IF {OrderValue} >= 0.01 THEN "Thank you for your payment."
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} = 1) AND NOT 
({Decription} LIKE ["Condition1*", "Condition2*"])) THEN "Text1 Singular."
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} > 1) AND NOT    
({Decription} LIKE ["Condition1*", "Condition2*"])) THEN "Text Plural."
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} = 1) AND 
({Decription} LIKE ["Condition1*"]) THEN "Text2 Singular."
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} > 1) AND 
({Decription} LIKE ["Condition1*"]) THEN "Text2 Plural."
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} = 1) AND 
({Decription} LIKE ["Condition2*"]) AND ({Country} IN ["A", "B", "C")) 
THEN "Text3 Singular"
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} > 1) AND 
({Decription} LIKE ["Condition2*"]) AND ({Country} IN ["A", "B", "C")) 
THEN "Text3 Plural"
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} = 1) AND 
({Decription} LIKE ["Condition2*"]) AND NOT ({Country} IN ["A", "B", "C")) 
THEN "Text4 Singular"
ELSE IF (({OrderValue} = 0.00) AND ({@RunningTotalQuantity} > 1) AND 
({Decription} LIKE ["Condition2*"]) AND NOT ({Country} IN ["A", "B", "C")) 
THEN "Text4 Plural"

Формула отлично работаетдля условия, в котором ордер имеет значение, и он идентифицирует оба условия Condition1 и Condition2, но он всегда отображает только текст Singular, а не Plural.

Это заставило меня подумать, что это может быть связано споле RunningTotal, но когда я включаю это поле в отчет, оно вычисляется правильно, поэтому суммируются количества всех строк заказа;он просто не набирает это число, а скорее смотрит на количество в первой строке детализации, хотя код определенно ссылается на поле RunningTotal.

Я задавался вопросом, было ли это связано с заказом, а небудучи полностью сохраненным в базе данных (т. е. он находился в пакете заказов, но не участвовал в конкурсе), формула подавления в SectionExpert теперь также не работает с некоторыми заказами, где я хочу напечатать только одну часть отчетана первой странице отчета, если есть несколько страниц:

WHILEPRINTINGRECORDS;
NOT (OnLastRecord OR {OrderDetail.HeaderLink}<>next({OrderDetail.HeaderLink}))
AND NOT ({Description} LIKE ["Condition2*"])

Если у кого-либо из вас есть какие-либо идеи, я был бы чрезвычайно признателен.

...