如何在Crystal报表选择专家中使用通配符

时间:2011-06-09 15:44:44

标签: crystal-reports crystal-reports-2008

我在另一个论坛上发现了这个

为参数

设置默认值“ALL”

将if语句添加到Select Expert:

If {?Parameter}='ALL' 
Then {Database.Field} like '*' 
Else {Database.Field} = {?Parameter} and
{fctime_ts} >= {@StartDate} and 
{fctime_ts} < {@EndDate}

没有用,由于某种原因,它不使用日期约束。那么我尝试了以下内容。

{fpartno} = IIF({?PartNbr} = 'All', '*' , {?PartNbr}) 

如果我使用实际的部件号,效果很好,但是当我使用默认值时,它根本不起作用。

这是我完整的选择公式:

fpartno} = IIF({?PartNbr} = 'All', '*' , {?PartNbr}) and 
{fctime_ts} >= {@StartDate} and 
{fctime_ts} < {@EndDate} 

任何人都知道如何在这个论坛上提到的答案与日期一起工作或者如何使这种方式有用?

2 个答案:

答案 0 :(得分:0)

尝试:

(If {?Parameter}='ALL' Then
  {Database.Field} LIKE '*' 
Else
  {Database.Field} = {?Parameter}
)
and {fctime_ts} >= {@StartDate}
and {fctime_ts} < {@EndDate}

答案 1 :(得分:0)

我对你推荐的内容有疑问,但我找到了这个答案。

这是它的工作原理,它会检查PartNbr是否等于'All'。如果是,那么它会跳到日期限制。通过跳过,它将依次选择该日期范围内的所有部分。如果PartNbr不等于'All',它将采用PartNbr并在日期范围内获得具有该数字的部分。

这个解决方案对我来说很有用,如果有人来的话,只需要更新ID

({?PartNbr} = 'All'
or
{?PartNbr}= {intran.fpartno}) and
{intran.fctime_ts} >= {@StartDate} and
{intran.fctime_ts} <= {@EndDate}