Crystal reports 有价值的功能水晶报告
在我的报告中,我有3个参数Crystal reports 有价值的功能水晶报告,crystal-reports,Crystal Reports,在我的报告中,我有3个参数when、week和year。 如果我选择When=schedule,则报告应在当前周运行,而不考虑参数窗口中给出的年和周值。 如果我选择when=Now,则报告应针对参数窗口中给定的周值和月值运行。 请建议 我试过了,但没有成功 if hasvalue({?Week}) and HasValue({?Year}) and {?When} = 'Now' Then {?Week} = {Command.WEEK} and {?Year} = {Command.YEAR}
when、week和year
。
如果我选择When=schedule
,则报告应在当前周运行,而不考虑参数窗口中给出的年和周值。
如果我选择when=Now
,则报告应针对参数窗口中给定的周值和月值运行。
请建议
我试过了,但没有成功
if hasvalue({?Week}) and HasValue({?Year}) and {?When} = 'Now'
Then
{?Week} = {Command.WEEK} and {?Year} = {Command.YEAR}
else
({?Week} = DatePart ("ww", Currentdatetime) and {?Year} = DatePart ("yyyy", Currentdatetime)
我的做法是:
而不是检查参数的null
值。。为参数提供一个默认值,并在false
条件下检查该值
假设我们将默认值设为None
if {?Week}="None" and {?Year}="None" and {?When} = 'Now'
Then
{?Week} = {Command.WEEK} and {?Year} = {Command.YEAR}
else
({?Week} = DatePart ("ww", Currentdatetime) and {?Year} = DatePart ("yyyy", Currentdatetime)
注意:以上代码只是一个示例,请根据您的要求进行更改。
在crystal report中为空,INSTR函数将在这种情况下使用
ISNULL:-检查值是否为null,然后返回true或false。
说明:-检查字符串中的子字符串,如果找到,则返回索引else 0
查看链接中的详细信息
就你而言
if isnull({?Week}) and isnull({?Year}) and isnull{?When}
Then
return false
else
//in else again check with if else condition
if {?When} = 'schedule'
then
do something
else
do something
您可以通过以下方式使用:
if {?Week}<>"" then {Command.WEEK}={?Week} else {Command.WEEK}={Command.WEEK}
如果{Week}“”,则{Command.Week}={Week}否则{Command.Week}={Command.Week}
希望这会有所帮助。如果参数是可选的,则必须使用
hasvalue()
检查它是否确实有一个值;使用isnull()
将不起作用,并将导致错误。