2016-05-05 3 views
0

Я пишу эту формулу с помощью BusinessObjects DeskI, но она возвращает синтаксическую ошибку. Это моя формула:Синтаксис формулы BusinessObjects

=IF(length(<Dt_Credit>=0) then <Dt_Credit>=(TODATE("01011900","ddMMyyyy"))  
ELSE <DT_Credit> 

ответ

1

В вашей формуле много неправильного. Давайте разложим его:

=IF (length(<Dt_Credit>=0) 
     then <Dt_Credit>= ( 
          TODATE("01011900","ddMMyyyy") 
         )  
     ELSE <DT_Credit> 

Во-первых, у вас нет закрывающей круглой скобки. Скобки не требуются в If/Then, поэтому вы можете просто отбросить ее после If. Вам также не нужны скобки вокруг функции ToDate. Итак, мы имеем:

=IF length(<Dt_Credit>=0) 
then <Dt_Credit> = TODATE("01011900","ddMMyyyy") 
ELSE <DT_Credit> 

Далее вы делаете задание на <Dt_Credit>объекта в формулу, что невозможно. Таким образом, мы будем считать, что из:

=IF length(<Dt_Credit>=0) 
then TODATE("01011900","ddMMyyyy") 
ELSE <DT_Credit> 

Далее, я предполагая, что<Dt_Credit> на самом деле является Date объектом, а не Number. Если это так, то функция Length() не будет работать, поскольку она не принимает даты в качестве параметров. Если вы тестируете на пустой <Dt_Credit>, то вы должны использовать вместо IsNull():

=IF IsNull (<Dt_Credit>) 
then TODATE("01011900","ddMMyyyy") 
ELSE <DT_Credit> 

Наконец, я предполагаю, что вы используете DeskI. Если это WebI, то синтаксис немного отличается. Замените <> на [].

+0

Большое вам спасибо, я очень благодарен – hollyx