最近在学习用Reporting Service 作报表,没想到仅支持VB的表达式 (那位知道其它的表达式,或者有支持语法的帮助文档,那“感谢天,感谢地,感谢……” 给我一份吧)我那个心颤……
想写这么个提示信息:页面输入两个查询参数BeginTime, EndTime 当这两个参数为空值“”时,页面提示当前月的第一天到最后一天,效果:2007年4月1日 至 2007年4月30日,如果输入查询参数则显示输入的时间,使用的表达式:
IIF(Parameters
!
BeginTime.Value
<>
""
,
Format(DateSerial(Year(Parameters
!
BeginTime.Value),Month(Parameters
!
BeginTime.Value),Day(Parameters
!
BeginTime.Value)),
"
yyyy年M月d日
"
),
Format(DateSerial(Year(Globals
!
ExecutionTime),Month( Globals
!
ExecutionTime ),
1
) ,
"
yyyy年M月d日
"
) )
&
"
至
"
&
IIF(Parameters
!
EndTime.Value
<>
""
,
Format(DateSerial(Year( Parameters
!
EndTime.Value ),Month( Parameters
!
EndTime.Value ),Day( Parameters
!
EndTime.Value )),
"
yyyy年M月d日
"
),
Format(DateSerial(Year(Globals
!
ExecutionTime),Month( Globals
!
ExecutionTime )
+
1
,
1
-
1
) ,
"
yyyy年M月d日
"
))
没想到,IIF(expr,truepart,falsepart)居然是不管表达式expr返回的true 还是false 居然都会去计算truepart和falsepart,这样就总会出现空值强制转换的问题,那自然是报错了。
后来一想,能不能用三目运算符,结果一试居然说:表达式里面不能出现“:”,没有“:”的三目运算符没见过当然也不知道怎么用^_^,只好罢了,想想CSDN上潜龙游凤颇多,抛砖引玉 望高人指点,小生先谢过