我在水晶报表中使用命令查询来提取我需要的信息。 查询结果如下:
Amt Date Acc Unit Setup Owner? Owner
5.00 2016-03-01 1 A A Y B
5.00 2016-03-01 2 A B N null
5.00 2016-03-01 3 A null null null
我的逻辑流程是:如果是主人? =“Y”然后得到主人,否则如果主人? =“N”或isnull,然后进行设置,否则如果设置为null,则获取单位。
在记录选择中,我尝试了一个if-else-if语句来帮助过滤每条记录,看起来这样就得到了“B”单位。:
If({Command.Owner? = "Y") Then {Command.Owner = "B")
Else if ({Command.owner? = "N" or isnull({Command.owner}) Then
{Command.setup = "B")
Else if ({Command.owner? = "N" or isnull({Command.owner}) AND {command.setup} <> "B" Then
{Command.unit} = "B"
基本上,这样做是检查所有者?是Y,然后获取所有者为B的记录,如果是N或null,则获取设置为B的记录,如果两者都是不真实的,则获得B单位。
但它没有得到所有记录。我希望能够获得所有这些记录。像
Amt Date Acc Unit Setup Owner? Owner
5.00 2016-03-01 1 A A Y B
5.00 2016-03-01 2 A B N null
5.00 2016-03-01 3 B null null null
所有都是有效的返回,但记录选择只会抓取与第一个条件匹配的记录,然后忽略其余的记录。
我尝试了与if语句相同的if-else-if而不是Else,但是没有返回任何内容。我也用OR做了同样的事情,它什么也没有返回。
有没有办法搜索每条记录,如果它与其中一条条件匹配,那么将其拉出并显示它?
答案 0 :(得分:1)
试试这个(为空序列编辑)?
If (isnull({Command.owner}) or {Command.owner?} = "N") and not isnull({Command.setup} and {Command.Owner?} <> "Y") then {Command.setup} = "B"
Else if {Command.Owner?} = "Y" Then {Command.owner} = "B"
Else {Command.unit} = "B"