如果指定了某些参数,而有些则为空白,则在Crystal Reports中显示所有记录

问题描述 投票:0回答:1

我正在制作一个Crystal Report,它具有四个名为abcd的参数。

使用这些参数,我想从rptData表中的四个名为'First','Second','Third'和'Fourth'的列中获取数据。

现在,我要加载提供ab参数并保持cd参数为空白的报告;打算使报告使用ab参数过滤数据,并且将加载ThirdFourth中的所有匹配数据。换句话说,如果我要在SSMS中运行查询,就是这样。

select * from dbo.rptData where First = 'a' and Second = 'b';

我是Crystal Report的初学者。所以我这样尝试:从“报告”菜单->“选择公式”->“记录”并将其保存在此处:

if isnull({?a}) or {?a} = '' then true else
{rptData.First} like {?a}

and if isnull({?b}) or {?b} = '' then true else
{rptData.Second} like {?b}

....

也尝试这样:

if isnull({?a}) or {?a} = ''
then {rptData.First} = {rptData.First} else
{rptData.First} like {?a}

and ....

运行报表时,如果给出所有参数,它将加载预期的数据。如果我给出前两个/三个参数,它将返回一个空白报告。否则,它将加载所有数据。

crystal-reports
1个回答
0
投票

使用HasValue()函数检查可选参数是否具有值。

(HasValue({?a}) or {rptData.First} like "*" + {?a} + "*")
AND
(HasValue({?b}) or {rptData.Second} like "*" + {?b} + "*")
© www.soinside.com 2019 - 2024. All rights reserved.