首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次预览/打印报告时会触发什么事件?

每次预览/打印报告时会触发什么事件?
EN

Stack Overflow用户
提问于 2013-07-17 15:51:49
回答 2查看 6K关注 0票数 2

我想回避textbox报表控件的值,并根据它的值隐藏或显示它,我可以通过VBA轻松地实现它:

代码语言:javascript
复制
If Me.Fixed.Value = 0 Then
    Me.Fixed.Visible = False
End If

这很好,但我使用的查询作为报表的记录源,允许一次性打印一系列记录(每页1条/报表),我希望对每个页面/报表运行上述代码。我不知道该把代码放在哪里,这样每一张唱片都会按照规则播放。目前,如果我选择了8条记录的范围,只有第一条记录能做我想做的事情,而且当我在打印预览屏幕中浏览其他记录时,报告的格式将保持不变。

我尝试过以下事件:

报告:

  • 论电流
  • 有载
  • 关注焦点
  • 论开放
  • 启动
  • 论页

部分:

  • 论格式
  • 列印
  • 涂上

我可以把我的VBA放在哪里,这样每次我滚动/浏览在该报告上返回的记录范围时,我的代码就会运行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-17 17:50:58

您还需要将Visible属性设置为True,否则它将保持不可见性。

我正在使用Details部分的Format事件:

代码语言:javascript
复制
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    If Me.Fixed = 0 Then
        Me.Fixed.Visible = False
    Else
        Me.Fixed.Visible = True
    End If
End Sub

这在打印预览中有效,但在报表视图中不起作用。也许有一种方法可以让它与Report一起工作,但是我从来没有使用过这个视图。

这句话可以简化:

代码语言:javascript
复制
Me.Fixed.Visible = Not (Me.Fixed = 0)
票数 4
EN

Stack Overflow用户

发布于 2016-02-26 16:51:16

请注意,Visible属性在Detail_Paint()事件中不可用,这是您需要在报表视图中应用条件格式设置的事件。(这可能是必要的,如果你试图做一些花哨的事情,如模拟超链接的钻取效果。)

解决方法是将文本框的ForeColor设置为等于BackColor。虽然文本在技术上仍然存在,但它没有在显示的报告上“显示”,因此模拟了一个隐藏字段。

代码语言:javascript
复制
Private Sub Detail_Paint()
    ' Check for even numbers
    If (txtID Mod 2 = 0) Then
        txtID.ForeColor = vbBlack
    Else
        ' Set to back color to simulate hidden or transparent.
        ' (Assuming we are using a Normal BackStyle)
        txtID.ForeColor = txtID.BackColor
    End If
End Sub

示例输出:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17704530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档