仅在打印时显示报告页数
Posted
技术标签:
【中文标题】仅在打印时显示报告页数【英文标题】:Show Report Pages Count Only On Print 【发布时间】:2010-09-27 04:59:06 【问题描述】:在 MS Access 报告中,可以使用带有以下内容的文本框显示页数:
= "Page " & Page & " of " & Pages & " Pages"
但是,这对于大型报表来说是有问题的,因为在所有页面都被格式化之前,Access 无法在预览中打开报表的第一页(因此它知道总页数)。
理想情况下,在预览中我只显示“第 123 页”,但当实际打印报告时,它会被“第 123 页,共 456 页”替换。
这可能是一厢情愿的想法,但有人做过这样的事情吗?
【问题讨论】:
【参考方案1】:Access 2007(您没有指明您的版本),通过 vba 可以使用 CurrentView 属性,您可以更改页面文本框的控制源:
Private Sub Report_Open(Cancel As Integer)
Select Case Me.CurrentView
Case acCurViewDesign
Case acCurViewPreview
' Page # Only
Pages_TextBox.ControlSource = "Page" & Me.Page
Case acCurViewReportBrowse
' Page # of #
Pages_TextBox.ControlSource = "Page" & Me.Page & " of " & Me.Pages
Case acCurViewLayout
End Select
End Sub
【讨论】:
好建议。这些状态有命名常量,我倾向于使用它们而不是文字值,因为它们省去了添加 cmets 来解释每个值所指的内容。 谢谢杰夫。这在我将其更改为格式时有效: page_number.ControlSource = "= 'Page ' & [Page]" 不幸的是,如果用户预览报告,然后选择他们经常这样做的打印,则它不起作用。你也知道克服这个问题的技巧吗? 您可能必须在 PageHeaderSection_Format 中执行此操作。不理想,但打印时会触发。不好的是它为每个页面运行。以上是关于仅在打印时显示报告页数的主要内容,如果未能解决你的问题,请参考以下文章
[ASP.NET Core 3.1 MVC Razor页面仅在模型成员有效时显示图标