Crystal Reports选择公式:无匹配时执行后续条件的实现问询
没问题,你的思路方向是对的,但Crystal Reports里不能直接对{dbo.CustomerName}={?CustomerName}这种比较表达式用IsNull()——因为布尔判断的结果只会是真或假,不会是Null。我来帮你调整成可行的逻辑:
推荐公式(适配参数为空/未输入场景)
{dbo.Opportunity} = {?Opportunity} AND (NOT(HasValue({?CustomerName})) OR {dbo.CustomerName} = {?CustomerName})
逻辑说明
- 核心要求始终匹配Opportunity参数,完全符合你说的“报表仍需基于后续选择公式运行”的需求
- 当用户没输入
{?CustomerName}参数(或者参数为空),所有Opportunity匹配的记录都会被保留 - 当用户输入了
{?CustomerName}参数,只有同时满足CustomerName匹配+Opportunity匹配的记录才会被选中
另一种场景(适配字段为空的情况)
如果你是想保留那些{dbo.CustomerName}字段本身为空,但Opportunity符合条件的记录,可以用这个版本:
{dbo.Opportunity} = {?Opportunity} AND (IsNull({dbo.CustomerName}) OR {dbo.CustomerName} = {?CustomerName})
这个版本会筛选出:所有Opportunity匹配的记录,加上那些CustomerName字段为空但Opportunity匹配的记录。
内容的提问来源于stack exchange,提问作者scedsh8919
相关产品推荐
相关产品推荐

