在 ActiveReports 中设置水印
Set Watermark in ActiveReports
我使用 ActiveReports 9 Designer 创建了一个部分报告。我需要根据标志设置水印。如果标志为 ON,则应为该特定页面设置水印。如果标志为 OFF,则水印应该为空。
我在组 header 中有标志文本框和水印图像。所以我想到了在报告脚本的 GROUPHEADER1_BeforePrint 中切换水印。
Sub GroupHeader1_BeforePrint
if(TxtFlg.text = "1") Then
rpt.Watermark = imgWaterMark.Image
else
rpt.Watermark = nothing
End If
End Sub
我的问题是 - 第一页跳过,从下一页继续。第 1 页水印显示在第 2 页,第 2 页水印显示在第 3 页,依此类推。为什么会这样显示?
谁能帮帮我。提前致谢 。
这是设计行为。 Watermark
属性 用于整个报告,并在呈现任何其他部分之前呈现。因此,当您在 GroupHeader_Format
事件中设置水印时,该页面的水印已经打印,因此无法更改。因此,水印打印在下一页上。现在,要解决在第一页上呈现水印的问题,您可以在 ReportStart
事件中设置它。对于其他页面,您必须声明一个全局变量并设置水印,请记住它会打印在下一页上。
如果我们想根据条件在活动报告中显示水印,使用报告的水印 属性 有点困难。相反,我们可以使用 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
我使用 ActiveReports 9 Designer 创建了一个部分报告。我需要根据标志设置水印。如果标志为 ON,则应为该特定页面设置水印。如果标志为 OFF,则水印应该为空。
我在组 header 中有标志文本框和水印图像。所以我想到了在报告脚本的 GROUPHEADER1_BeforePrint 中切换水印。
Sub GroupHeader1_BeforePrint
if(TxtFlg.text = "1") Then
rpt.Watermark = imgWaterMark.Image
else
rpt.Watermark = nothing
End If
End Sub
我的问题是 - 第一页跳过,从下一页继续。第 1 页水印显示在第 2 页,第 2 页水印显示在第 3 页,依此类推。为什么会这样显示?
谁能帮帮我。提前致谢 。
这是设计行为。 Watermark
属性 用于整个报告,并在呈现任何其他部分之前呈现。因此,当您在 GroupHeader_Format
事件中设置水印时,该页面的水印已经打印,因此无法更改。因此,水印打印在下一页上。现在,要解决在第一页上呈现水印的问题,您可以在 ReportStart
事件中设置它。对于其他页面,您必须声明一个全局变量并设置水印,请记住它会打印在下一页上。
如果我们想根据条件在活动报告中显示水印,使用报告的水印 属性 有点困难。相反,我们可以使用 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