1

例子:

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)
4

1 回答 1

0

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

按 RecordId 分组 按 SportId 详细信息部分,带有所有复选框

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

RecordID ...... 会员名 ...... SportID ...... Sport
1 .... 詹姆斯 .................... 1 .... ...曲棍球

然后,继续 RecordId 1,并选择下一个 SportId,即 2。因此,第一次出现 details 部分的数据是:

RecordID ...... 会员名 ...... SportID ...... Sport
1 .... 詹姆斯 .................... 2 .... ...足球

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

RecordID ...... 会员名 ...... SportID ...... Sport
2 ................. 何塞 .................. 5 ...... ....篮球

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

它总是会以这种方式检查一项运动。

我会尝试以下解决方案。我的意思是,如果您只有这 6 项运动,那么它对您来说是众所周知的运动。

  1. 仅按 RecordId 分组。按 SportId 删除组。
  2. 将复选框放在组页脚中。
  3. 计算每项运动的出现次数。为每项运动使用一个跑步总场。记得在 RecordId 更改时重置。
  4. 当该运动的计数器大于零时,使用公式检查该运动的复选框。

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

已编辑:如何创建运行总计字段(第 3 步)

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

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

于 2019-10-01T17:19:03.113 回答