2015-03-31 2 views
0

Я обрабатываю поле, которое может быть или не быть численным значением. Если это не так-числовая, я просто распечатать его, как есть, если это числовая, я буду делать некоторые расчеты по нему, так что я пробовал:Crystal Reports isNumeric vs toNumber

Local StringVar TxtUnct := {RESULT.ATTRIBUTE_1}; 
Local NumberVar Result := 0; 
if not(isNumeric(TxtUnct)) Then(
    TxtUnct 
); 
Local NumberVar unct :=ToNumber(TxtUnct); 

Но я в конечном итоге с "Струна нечисловой «. для последней строки. Обидно, он выглядит численно isNumeric, но не ToNumber. Существуют ли какие-либо «более строгие» проверки в Crystal Reports?

+0

Формула может иметь только один тип данных ... она не может быть строкой в ​​одном случае и числом в другом. – Ryan

+0

Это всего лишь часть этого, я в конечном итоге возвращаю строку во всех случаях. – MortenSickel

ответ

0

Ваше представление неверно ... вы сначала усваиваете, но согласно вашему требованию присвойте, если строка является числом. Так что измените это.

Local StringVar TxtUnct; 
Local NumberVar Result := 0; 
if not(isNumeric(TxtUnct)) 
Then 
(
    TxtUnct :={RESULT.ATTRIBUTE_1}; 
); 
Local NumberVar unct :=ToNumber(TxtUnct) 
0

Я думаю, вы просто слишком усложняете его всеми этими локальными переменными. Вы можете сделать это с помощью простого заявления if-then-else.

Смежные вопросы