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
事件在必要时通过设置报告的PrintSection
和NextRecord
属性来添加一个空行。
为确保重置每个页面的计数器并防止页面的第一行为空白,使用PageHeaderSection
的Format
事件。
使用常量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 报告中获取两个计数之间的差异