2013-07-27 5 views
1

У меня есть база данных, которая содержит определенную меру. Проблема в том, что мера сохраняется в основных единицах (например, 1 мВ сохраняется как 0,001 В). Теперь я использую crytal report для создания отчета с этой мерой, но я хочу преобразовать 0,001V в 1mV.Crystal Report if-then statement

Как я могу это сделать?

I судимое с:

if lcase({database.result_type})="eval" then 
    {@Test_Result} 
else 
(
    if {database.measure}<0.001 then 
     {database.measure}*1000000 & "uV" 
    else if {database.measure}<1 then 
     {database.measure}*1000 & "mV" 
    else if {database.measure}<1000 then 
     {database.measure} & "V" 
); 

, но он не работает. Первый IF должен понять, если это тест PASS/FAIL или измерение.

Как я могу это сделать?

ответ

2

Вы формула должна производить последовательный результат, либо строку, либо число, но не оба:

if lcase({database.result_type})="eval" then 
    // assuming that this is a string 
    {@Test_Result} 
else 
(
    // assuming that `{database.measure}` is a number 
    if {database.measure}<0.001 then 
     ToText({database.measure}*1000000) & "uV" 
    else if {database.measure}<1 then 
     ToText({database.measure}*1000) & "mV" 
    else if {database.measure}<1000 then 
     ToText({database.measure}) & "V" 
);