2017-02-20 141 views
0

我已经使用ActiveReports 9 Designer创建了一个Section Report。我需要根据标志设置水印。如果标志为ON,则应为该特定页面设置水印。如果标志为OFF,则水印应该是无效的。在ActiveReports中设置水印

我在组头中有标志文本框和水印图像。所以我想在报告脚本的GROUPHEADER1_BeforePrint中切换水印。

Sub GroupHeader1_BeforePrint 
    if(TxtFlg.text = "1") Then 
     rpt.Watermark = imgWaterMark.Image 
    else 
     rpt.Watermark = nothing 
    End If 
End Sub 

我的问题是 - 第一页跳过,它从下一页继续。第2页显示第1页水印,第3页显示第2页水印等。为什么它显示像这样?

任何人都可以请帮助我。提前致谢 。

回答

0

如果我们想根据条件显示主动报告中的水印,那么报告的水印属性会有点困难。相反,我们可以使用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 
1

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

+0

我没有得到该怎么办。你可以给我任何链接或示例代码。 – Reshma