Reporting services 如何基于控件中断在标题中打印文本或图像

Reporting services 如何基于控件中断在标题中打印文本或图像,reporting-services,epicorerp,Reporting Services,Epicorerp,我正在定制我们的MICR检查。我们经常打印数百张支票。一些支票支付了许多汇款人,因此汇款行不能全部放在一页上,因此出现了溢出。我们需要在支票上打印VOID,它位于该支票第二页和后续页的页眉中 我写了一个可见性表达式,如下所示: =Iif(全局!页码>1,假,真) 这样做的目的是将其隐藏在打印作业的第1页上。问题是,第1页之后的大多数页面都是新的支票,不应该作废。只有来自同一支票的第二页才应显示。 我需要在他检查号码变化的控制中断时这样做。只有当当前页与上一页具有相同的支票号码时,我才应打印VOI

我正在定制我们的MICR检查。我们经常打印数百张支票。一些支票支付了许多汇款人,因此汇款行不能全部放在一页上,因此出现了溢出。我们需要在支票上打印VOID,它位于该支票第二页和后续页的页眉中

我写了一个可见性表达式,如下所示:

=Iif(全局!页码>1,假,真)

这样做的目的是将其隐藏在打印作业的第1页上。问题是,第1页之后的大多数页面都是新的支票,不应该作废。只有来自同一支票的第二页才应显示。
我需要在他检查号码变化的控制中断时这样做。只有当当前页与上一页具有相同的支票号码时,我才应打印VOID。由于该字段位于标题中,因此检查编号指的是正文中的隐藏字段:

=报告项目!txtCalc_DspCheckNum21.value

我会将此值与上一个支票号码进行比较,但如何存储上一个支票号码,现在比较这两个号码


我在支票上添加了一个文本框(非常大的字母)并将其隐藏。然后

您可能需要使用自定义代码进行设置

在报告属性代码页中,插入以下代码:

Dim LastCheck As String
Dim ThisCheck As String

Function SetCheck(CheckNumber As String) AS String
Begin
    LastCheck = ThisCheck
    ThisCheck = CheckNumber
    Return ThisCheck
End
现在,对于您的文本框
txtCalc\DspCheckNum21
给出以下表达式:

=Code!SetCheck(Fields!CheckNum.Value)
在标题中,将图像可见性隐藏表达式设置为:

=IIF(Code.ThisCheck = Code.LastCheck, False, True)
因此,我们所做的是,无论何时呈现文本框
txtCalc\u DspCheckNum21
,它都会记住以前和当前的检查编号。如果它们不同(即该支票的第一页),则隐藏图像;如果它们相同,则显示无效图像(即该支票的后续页)


请注意,这依赖于每页上呈现的
txtCalc\DspCheckNum21

作为对Chris解决方案的一种赞美,从epicor方面来说,如果我没记错的话,我相信有一种方法可以增加epicor内部检查存根在每页上显示的行数。这并不能解决您的问题,但有助于最小化纸张谢谢,但这不起作用:“文本框'Textbox7'的可见性。隐藏表达式包括Previous聚合函数。Previous不能用于页眉或页脚。”抱歉,我在快速回答中忽略了这一点。让我们试试一些自定义代码。谢谢。这可能有效,但我实际上找到了一个非常简单的解决方案。如果选择执行中断的行组,则其中一个属性是group/PageBreak/ResetPageNumber。如果我把它设置为真的,它就工作了!好把戏,干得好!你应该把它作为一个答案,并接受它,这样这个问题的未来访问者可以使用你的解决方案。