Crystal Report包含多个数据源,一个是空的

时间:2011-03-10 20:28:59

标签: crystal-reports

我有一个Crystal报表,其中一个表作为数据源,我希望包含另一个包含报表页脚详细信息的表。

我在报告中有两个未链接的数据源,但是当选择条件没有从主表中返回任何行时,非空非链接源的结果也是空的。

我怀疑它在两个数据源之间进行交叉连接,所以如果一个是空的,那么与另一个数据源连接的也是空的。问题是我需要非空表中的行显示在报表页脚部分中,并且它们会被另一个空数据源抑制。

当选择条件及其参数选择在主表中返回空结果集时,如何从独立表中获取要显示在报表页脚中的行?

感谢您的帮助,

-Beth

另外,我尝试使用命令作为数据源与sql这样:

select * from waitlist
union all
select distinct null as reportID, null as ..., lastupdated
from waitlist

但它仍然为lastupdated返回null并且抑制报表页脚中的子报表。

1 个答案:

答案 0 :(得分:0)

我最终将我的报告数据源设置为一个视图,该视图将另一行合并到表中。我还需要更改我的选择标准,以便允许此行通过。

这是我的数据源:

CREATE VIEW [dbo].[vw_rpt_waitlist] AS
select * from waitlist
union all
select distinct 
reportID, 
null as (fields...), 
lastupdated, 
'reserved' as countyName
from 
waitlist     

这是我的记录选择公式:

({vw_rpt_waitlist.countyName} = {?County} or 
 {vw_rpt_waitlist.countyName} = "reserved") and
{vw_rpt_waitlist.reportID} = 14

如果返回了实际行,我还会取消详细信息部分:

formula = {vw_rpt_waitlist.countyName} = "reserved"

并获取他们在报告页眉中选择的参数化县名,我使用:

dim t as string
dim c as string

if {vw_rpt_waitlist.countyName}="reserved" then
    c = {?County}(1)
else
    c = {vw_rpt_waitlist.countyName}
end if   

t = "Waitlist by " + {@serviceTitle} + " and Waiver Need Index as of "  
      + cstr({vw_rpt_waitlist.lastUpdated},"MM/dd/yyyy")

formula = t

由于'保留'县总是通过,子报告没有被压制。