首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ActiveReports中设置水印

在ActiveReports中设置水印
EN

Stack Overflow用户
提问于 2017-02-20 05:09:27
回答 2查看 1.3K关注 0票数 2

我使用ActiveReports 9设计器创建了一个区段报告。我需要根据一个标志设置水印。如果标志已打开,则应为该特定页设置水印。如果标志关闭,水印应该是什么都不是。

我在组标题中有标记文本框和水印图像。因此,我想在报表脚本的GROUPHEADER1_BeforePrint中切换水印。

代码语言:javascript
复制
Sub GroupHeader1_BeforePrint
    if(TxtFlg.text = "1") Then
        rpt.Watermark = imgWaterMark.Image
    else
        rpt.Watermark = nothing
    End If
End Sub

我的问题是--第一页正在跳过,从下一页开始继续。第一页水印在第二页中显示,第二页水印在第三页中显示等等。为什么它会像这样显示?

有人能帮帮我吗。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-22 05:09:03

如果我们想要根据条件在活动报表中显示水印,那么它的水印属性就很难实现。相反,我们可以使用类似于报表水印的DrawText

代码是这样的:

代码语言:javascript
复制
Sub GroupHeader1_BeforePrint
    if(TxtFlg.text = "1") Then
        Me.rpt.CurrentPage.ForeColor = Color.FromArgb(80, 128,128,128)
        Me.rpt.CurrentPage.Font = New Font("Arial", 45F)
        Me.rpt.CurrentPage.DrawText("DRAFT", 0.489F, 5F, 8, 2)
    else
        Me.rpt.CurrentPage.ForeColor = Color.FromArgb(80, 255, 255, 255)
        Me.rpt.CurrentPage.Font = New Font("Arial", 20F)
        Me.rpt.CurrentPage.DrawText("", 1.5F, 3F, 2, 2)
    End If
End Sub 
票数 1
EN

Stack Overflow用户

发布于 2017-02-20 08:23:55

这就是设计行为。Watermark属性用于整个报表,并在呈现任何其他部分之前呈现。因此,当您在GroupHeader_Format事件中设置水印时,该页面的水印已经打印出来,因此无法更改。因此,水印将打印到下一页。现在,要解决您在第一页上呈现水印的问题,可以在ReportStart事件中设置它。对于其他页面,您必须声明一个全局变量并设置水印,记住它将在下一页上打印。

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

https://stackoverflow.com/questions/42336901

复制
相关文章

相似问题

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