水晶报表 -- 将多行合并为一行



示例:

RecordID ............ MemberName ........... SportID ......... Sport
1 .................. James ................. 1 ...............Hockey
1 .................. James ................. 2 ...............Football
2 .................. Jose .................. 5 ...............Basketball
3 .................. Jennifer .............. 2 ...............Football
3 .................. Jennifer .............. 4 ...............Dodgeball
4 .................. Jaqueline ............. 1 ...............Hockey
4 .................. Jaqueline ............. 3 ...............Baseball
4 .................. Jaqueline ............. 5 ...............Basketball
5 .................. John .................. 6 ...............Track

大家好,所以我正在尝试制作一份报告,该报告将输出特定 RecordID 的单页数据,具体取决于我在参数字段中输入的 RecordID。为此,我在报告中为 RecordID 创建了一个参数字段,并为 RecordID 创建了一个组,到目前为止,数据从其他表中得出的很好(其中的内容排列如"名字"、"姓氏"等,对于给定的 RecordID(。

到目前为止,一切都很好,因为此特定表的数据与其他表的数据排列方式不同。

我的问题是,报告每页只输出一个结果,而不是一次输出所有结果;所以,对于詹姆斯的例子,我只在第一页上选中了"曲棍球"框,然后在第二页上只选中了"足球"框,依此类推。

我希望此表的输出如下所示(对于 RecordID=1(:

James:
[checkbox] Hockey.................. [empty checkbox] Dodgeball
[checkbox] Football................ [empty checkbox] Basketball
[empty checkbox] Baseball.......... [empty checkbox] Track

这就是我制作复选框的方式(设置为 Wingdings 字体(:

If {RecordID} = 1 Then
Chr(254)
Else
Chr(111)

谁能帮我解决这个问题?

编辑这是我老板尝试的解决方案(目前不起作用(:

对于 为每个运动声明一个变量

Shared BooleanVar Hockey:=False;
Shared BooleanVar Football:=False;
Shared BooleanVar Basketball:=False;
Shared BooleanVar Baseball:=False;
Shared BooleanVar Basketball:=False;
Shared BooleanVar Track:=False;

对于每个变量:

Shared BooleanVar Hockey; 
If {SportID} = 1 Then 
Sport=True 

这个复选框:

Shared BooleanVar Hockey;
If Hockey = True Then
Chr(254)

如果我理解的话,你的结构是这样的:

按记录 ID 分组 分组:SportId 包含所有复选框的详细信息部分

因此,报告选择记录 ID 1,然后选择 SportId 1。因此,详细信息部分第一次出现中的数据是:

备案号会员名称体育ID ...运动 1 ..................詹姆斯。。。。。。。。。。。。。。。。。1 ...............曲棍球

然后,继续使用 RecordId 1,然后选择下一个 SportId,即 2。因此,详细信息部分第一次出现中的数据是:

备案号会员名称体育ID ...运动 1 ..................詹姆斯。。。。。。。。。。。。。。。。。2 ...............足球

然后,报告选择下一个 RecordId (2(,然后选择下一个 SportId (5(。因此,详细信息部分第一次出现中的数据是:

备案号会员名称体育ID ...运动 2 ..................何塞。。。。。。。。。。。。。。。。。。5 ...............篮球

你能看到现在发生了什么吗?(如果我确实理解你的话(。

它将始终以这种方式检查一项运动。

我会尝试以下解决方案。它的工作原理是,如果你只有这 6 项运动,你就会知道这项运动。

  1. 仅按记录 ID 分组。通过 SportId 删除该组。
  2. 将复选框放在组页脚中。
  3. 计算每项运动的发生次数。每项运动使用一个跑步总场地。请记住在记录 ID 更改时重置。
  4. 当每项运动的计数器大于零时,使用公式选中该运动的复选框。

如果您需要有关运行总计字段的帮助,或者我误解了问题,请告诉我。

已编辑:如何创建汇总字段(步骤 3(

在"字段
  1. 资源管理器"上,右键单击"运行总计字段",然后单击"新建..."。
  2. 给它起一个最好的名字(是的,名字很重要(:例如"曲棍球计数器"。
  3. 设置"要汇总的字段"="SportId"。
  4. 设置"摘要类型"="计数"。
  5. 使用公式按钮设置"评估":
    {YourTableName.SportID} = 1//其中 1 是曲棍球运动 ID
  6. 设置"重置"="更改组时","组#1"(记录ID(。
  7. 将全新的汇总字段拖到组 #1 页脚部分。
  8. 其他运动重复这些步骤(对不起,这会很无聊(。

我不确定它是否对您有帮助,但您可以查看这篇文章,其中包含有关运行总计字段的更多信息。

最新更新