2013-02-08 3 views
0

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

If IsNull({USAGE.CURFY_Q1}) and IsNull({USAGE.CURFY_Q2}) 
    and IsNull({USAGE.CURFY_Q3}) and IsNull({USAGE.CURFY_Q4}) 
then "" 
else 
"Q1: " & Cstr({USAGE.CURFY_Q1}) & chr(13) & chr(10) & 
"Q2: " & Cstr({USAGE.CURFY_Q2}) & chr(13) & chr(10) & 
"Q3: " & Cstr({USAGE.CURFY_Q3}) & chr(13) & chr(10) & 
"Q4: " & Cstr({USAGE.CURFY_Q4}) 

формула создает этот результат:

Q1: 5.00 
Q2: 2.00 
Q3: 0.00 
Q4: 0.00 

я предпочел бы:

Q1: 5 
Q2: 2 
Q3: 
Q4: 

Я думаю ToText (Q1,0) могут быть задействованы ... :)

+0

У меня есть чередующиеся цвета с изменением каждого номера позиции. Ваше решение - интересная мысль, но я бы предпочел, чтобы выход отображался без манипуляции цветом. – Sun

ответ

2
local stringvar q1; 
local stringvar q2; 
local stringvar q3; 
local stringvar q4; 

if isnull({USAGE.CURFY_Q1}) then q1:="" else q1:=totext({USAGE.CURFY_Q1},0); 
if isnull({USAGE.CURFY_Q2}) then q2:="" else q2:=totext({USAGE.CURFY_Q2},0); 
if isnull({USAGE.CURFY_Q3}) then q3:="" else q3:=totext({USAGE.CURFY_Q3},0); 
if isnull({USAGE.CURFY_Q4}) then q4:="" else q4:=totext({USAGE.CURFY_Q4},0); 

if (q1="" and q2="" and q3="" and q4="") then "" else 

"Q1: " & q1 & chr(10) & 
"Q2: " & q2 & chr(10) & 
"Q3: " & q3 & chr(10) & 
"Q4: " & q4 
+0

Большое спасибо за отличный ответ. Я хотел иметь несколько выражений if then else в формуле, но я не знал, как их создать. Я также не знал, что вы можете просто использовать chr (10) вместо 13,10. Этот пример очень помогает. :) – Sun