Microsoft Access 报告中每 10 行额外的空间

Posted

技术标签:

【中文标题】Microsoft Access 报告中每 10 行额外的空间【英文标题】:Extra space every 10 lines on a Microsoft Access report 【发布时间】:2019-11-19 03:37:51 【问题描述】:

为了便于阅读,我想在每个报告页面上每 10 行添加一些额外的空间。

我尝试在 Detail_Format 事件例程中计算行数并更改详细信息部分的高度,但这似乎没有任何作用。

然后我尝试使用一个高大的虚拟字段,其中只有一个空格字符,每 10 行可见(以及正确的 CanShrink 设置),额外的空间可见但不在正确的行上。仪器显示事件例程正在正确计算,但效果似乎不同步。

但是必须有一个简单的方法来做到这一点,对吧?有什么建议吗?

【问题讨论】:

如果您发现它解决了您的问题,请考虑accepting the answer。 【参考方案1】:

据我所知,这样的结果只有在打印布局中才有可能。

我就是这样做的:

该示例计算每一页的打印行数,并使用Detail 部分的Print 事件在必要时通过设置报告的PrintSectionNextRecord 属性来添加一个空行。

为确保重置每个页面的计数器并防止页面的第一行为空白,使用PageHeaderSectionFormat 事件。

使用常量INSERT_BLANK_ROW_EVERY 设置何时应插入空白行。

Const INSERT_BLANK_ROW_EVERY As Integer = 10

Dim insertBlankRowNext As Integer
Dim pageLineCount As Integer

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
    If PrintCount = 1 Then pageLineCount = pageLineCount + 1

    Me.PrintSection = Not insertBlankRowNext
    Me.NextRecord = Not insertBlankRowNext

    insertBlankRowNext = (pageLineCount Mod INSERT_BLANK_ROW_EVERY = 0)
End Sub

Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer)
    pageLineCount = 0

    insertBlankRowNext = False
End Sub

关于PrintCount 参数微软写道:

每次计算当前节的 OnPrint 属性设置时,Microsoft Access 都会递增 PrintCount 属性。打印下一部分时,Access 将 PrintCount 属性重置为 0。

在此处查看详细信息:Report.PrintCount property

【讨论】:

【参考方案2】:

您还可以添加空白的虚拟虚假记录。 假设您的报告基于查询,例如Query1,而不是将其用作报告的 RecordSource,您可以将其用作表的源(制作表)并创建一个包含您想要的信息但具有额外记录(行)以提高可读性的表。 就在将 Query1 “转储”到表之后......您将其加载到 RecordSet ...您迭代记录并根据您的需要添加新记录。

【讨论】:

【参考方案3】:

根据 UnhandledException 的回答中的信息,我就是这样做的,而且实际上很容易做到。

第 1 步:在详细信息行上添加所需高度的文本框。我认为必须为文本框和详细信息行设置 CanShrink。

第 2 步:将这些添加到您的事件处理中:

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

    LineFormatEvents = LineFormatEvents + 1
    Me.txtExtraSpace.Visible = (LineFormatEvents Mod 10 = 0)

End Sub

Private Sub PageHeaderSection_Paint()

    LineFormatEvents = 0

End Sub

请注意,我使用的是 Access 2016;我不知道这能用多少个版本。

【讨论】:

以上是关于Microsoft Access 报告中每 10 行额外的空间的主要内容,如果未能解决你的问题,请参考以下文章

如何将 microsoft access - 报告详细信息部分布局与前一个重叠以避免多余的行?

从 DoCmd OpenReport 打印报表时触发 Microsoft Access 中的事件

更改 Microsoft Access 报告上所有控件的字体

在 Microsoft Access 报告中获取两个计数之间的差异

在 microsoft access 2010 表单和报告中显示多个附件

在 microsoft access 中提示报告参数的最佳方式