繁体   English   中英

具有价值功能的水晶报告

[英]Has value function crystal reports

在我的报告中,我有3个参数when, week and 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)

在水晶报表中,ISNULL和INSTR函数将在这种情况下使用。

ISNULL:-检查值是否为null,然后返回true,否则返回false。 INSTR:-检查字符串中的子字符串,如果找到,则给索引,否则返回0。

检查链接中的详细信息

http://publib.boulder.ibm.com/infocenter/rsahelp/v7r0m0/index.jsp?topic=/com.businessobjects.integration.eclipse.designer.doc/designer/Crystal_Syntax47.html

就你而言

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

我的方法是:

而不是检查参数的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)

Note: Above code is just an example change it as per your requirement.

您可以通过以下方式使用:

if {?Week}<>"" then {Command.WEEK}={?Week} else {Command.WEEK}={Command.WEEK}

希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM