Crystal reports 筛选crystal报表中的分组记录

Crystal reports 筛选crystal报表中的分组记录,crystal-reports,report,crystal-reports-2013,Crystal Reports,Report,Crystal Reports 2013,我有一个问题,我不知道如何克服。我需要根据组内的字段在crystal reports中筛选我的组。不仅如此,我还需要它根据同一组中此字段中是否有两个不同的值来过滤组。例如,假设我有一个问题表和一个委员会的投票。对于包含议题名称和投票(是、否或弃权)的议题,每次投票有一个条目。我将按议题名称对表格进行分组,并且我希望过滤这些分组,以仅显示投票分为是和否的议题(即:否弃权和不一致)。我该怎么做呢?您输入分组顶层的数据需要预先聚合,以便显示哪些投票有多个不同的响应。无论后端数据源是什么,都需要这样做。

我有一个问题,我不知道如何克服。我需要根据组内的字段在crystal reports中筛选我的组。不仅如此,我还需要它根据同一组中此字段中是否有两个不同的值来过滤组。例如,假设我有一个问题表和一个委员会的投票。对于包含议题名称和投票(是、否或弃权)的议题,每次投票有一个条目。我将按议题名称对表格进行分组,并且我希望过滤这些分组,以仅显示投票分为是和否的议题(即:否弃权和不一致)。我该怎么做呢?

您输入分组顶层的数据需要预先聚合,以便显示哪些投票有多个不同的响应。无论后端数据源是什么,都需要这样做。如果我在SQL中执行此操作,例如,给定表:

create table dbo.Issues (
IssueID int identity(1,1) not null ,
constraint pkc_Issues primary key clustered ( IssueID ) ,
IssueText varchar(1000) )

--Note - not putting anything unique on VoterName because there may be 2 Joe Blows in the voter population.
create table dbo.Voters (
VoterID int identity(1,1) not null ,
constraint pkc_Voters primary key clustered ( VoterID ) ,
VoterName varchar(512) not null ) )

create table dbo.Votes (
VoteID int identity(1,1) not null ,
constraint pkn_Votes primary key nonclustered ( VoteID ) ,
VoterID int not null ,
constraint fk_VoterID@Votes foreign key ( VoterID ) references dbo.Voters ( VoterID ) ,
IssueID int not null ,
constraint fk_IssueID@Votes foreign key ( IssueID ) references dbo.Issues ( IssueID ) ,
constraint uci_IssueID_VoterID@Votes unique clustered ( IssueID , VoterID ) ,
VoteResponse varchar(16) null )
我会使用多个步骤提取数据(但如果您认为这更容易理解,可以自由地进行子查询):

然后我会加入到这一行列,为Crystal提供素材:

select dbo.Issues.IssueID ,
dbo.Issues.IssueText ,
cast(case when #hasMultiple.ResponseCount > 1 then 1 else 0 end as bit) as HasMultiple ,
dbo.Votes.VoteID ,
dbo.Votes.VoterID ,
dbo.Votes.VoteResponse ,
dbo.Voters.VoterName
from dbo.Issues
inner join dbo.Votes
on dbo.Issues.IssueID = dbo.Votes.IssueID
left join dbo.Voters
on dbo.Votes.VoterID = dbo.Voters.VoterID
left join #hasMultiple
on dbo.Issues.IssueID = #hasMultiple.IssueID

您输入到分组顶层的数据需要预先聚合,以便显示哪些投票有多个不同的响应。无论后端数据源是什么,都需要这样做。如果我在SQL中执行此操作,例如,给定表:

create table dbo.Issues (
IssueID int identity(1,1) not null ,
constraint pkc_Issues primary key clustered ( IssueID ) ,
IssueText varchar(1000) )

--Note - not putting anything unique on VoterName because there may be 2 Joe Blows in the voter population.
create table dbo.Voters (
VoterID int identity(1,1) not null ,
constraint pkc_Voters primary key clustered ( VoterID ) ,
VoterName varchar(512) not null ) )

create table dbo.Votes (
VoteID int identity(1,1) not null ,
constraint pkn_Votes primary key nonclustered ( VoteID ) ,
VoterID int not null ,
constraint fk_VoterID@Votes foreign key ( VoterID ) references dbo.Voters ( VoterID ) ,
IssueID int not null ,
constraint fk_IssueID@Votes foreign key ( IssueID ) references dbo.Issues ( IssueID ) ,
constraint uci_IssueID_VoterID@Votes unique clustered ( IssueID , VoterID ) ,
VoteResponse varchar(16) null )
我会使用多个步骤提取数据(但如果您认为这更容易理解,可以自由地进行子查询):

然后我会加入到这一行列,为Crystal提供素材:

select dbo.Issues.IssueID ,
dbo.Issues.IssueText ,
cast(case when #hasMultiple.ResponseCount > 1 then 1 else 0 end as bit) as HasMultiple ,
dbo.Votes.VoteID ,
dbo.Votes.VoterID ,
dbo.Votes.VoteResponse ,
dbo.Voters.VoterName
from dbo.Issues
inner join dbo.Votes
on dbo.Issues.IssueID = dbo.Votes.IssueID
left join dbo.Voters
on dbo.Votes.VoterID = dbo.Voters.VoterID
left join #hasMultiple
on dbo.Issues.IssueID = #hasMultiple.IssueID

您需要创建两个带有if-else条件的公式,并根据需要将其放置在详细信息或页脚中。您应该将您已经尝试过的代码作为问题正文的一部分发布。您需要创建两个带有if-else条件的公式,并根据需要将其放置在详细信息或页脚中。您应该发布您已经发布的代码作为问题主体的一部分已经尝试过。