簡體   English   中英

Crystal報告其他If語句

[英]Crystal Reports Else If statement

我不知道為什么這個if語句不起作用。 我有一個DateTime字段DATEFROM和一個String參數(必須為String)periodEnd。 我想根據這兩個日期之間有1、2、3年或更長時間的差異來計算百分比。 當我使用此公式時,將得到“ 100%”或“-”,而從沒有其他兩個選項。 就像CR計算第一個IF一樣,如果為true,則為:“ 100%”,但是如果為false,則它從不檢查其余的Ifs,並直接處理Else

StringVar percentage:="";
If (cDate({?periodEnd})-{TABLE.DATEFROM})<=1 Then 
    percentage:="100%"
Else If (cDate({?periodEnd})-{TABLE.DATEFROM})<=2 Then 
    percentage:="66%"
Else If (cDate({?periodEnd})-{TABLE.DATEFROM})<=3 Then 
    percentage:="33%"
Else 
    percentage:="-"

任何想法?

a)我假設您已經確定自己的periodend格式與cdate解釋的格式匹配?
如果僅減去它們,則默認情況下,Crystal會返回之間的天數。
一年可以做的兩種方法:

datediff("yyyy",cDate({?periodEnd},{TABLE.DATEFROM})

要么

year(cDate({?periodEnd})-year({TABLE.DATEFROM})

b)當您的{TABLE.DATEFROM}大於cDate({?periodEnd}且結果為負數時,您也毫無疑問地得到了解釋。
不確定以下是否是您想要的行為,但我將其提供給您參考

ABS(datediff("yyyy",cDate({?periodEnd},{TABLE.DATEFROM}))

**請確保您檢查了幫助文件中的datediff代碼(例如“ yyyy”等),因為它們不是本能的,當您認為自己使用的是明顯的代碼時,可能會使您絆倒

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM