[英]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.