我使用ActiveReports 9设计器创建了一个区段报告。我需要根据一个标志设置水印。如果标志已打开,则应为该特定页设置水印。如果标志关闭,水印应该是什么都不是。
我在组标题中有标记文本框和水印图像。因此,我想在报表脚本的GROUPHEADER1_BeforePrint中切换水印。
Sub GroupHeader1_BeforePrint
if(TxtFlg.text = "1") Then
rpt.Watermark = imgWaterMark.Image
else
rpt.Watermark = nothing
End If
End Sub我的问题是--第一页正在跳过,从下一页开始继续。第一页水印在第二页中显示,第二页水印在第三页中显示等等。为什么它会像这样显示?
有人能帮帮我吗。提前谢谢。
发布于 2017-02-22 05:09:03
如果我们想要根据条件在活动报表中显示水印,那么它的水印属性就很难实现。相反,我们可以使用类似于报表水印的DrawText。
代码是这样的:
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 发布于 2017-02-20 08:23:55
这就是设计行为。Watermark属性用于整个报表,并在呈现任何其他部分之前呈现。因此,当您在GroupHeader_Format事件中设置水印时,该页面的水印已经打印出来,因此无法更改。因此,水印将打印到下一页。现在,要解决您在第一页上呈现水印的问题,可以在ReportStart事件中设置它。对于其他页面,您必须声明一个全局变量并设置水印,记住它将在下一页上打印。
https://stackoverflow.com/questions/42336901
复制相似问题