Как напечатать текст или изображение в заголовке на основе разрыва элемента управления

Я настраиваю нашу проверку MICR. Мы часто печатаем сотни чеков. По некоторым чекам оплачивается много переводов, поэтому строки перевода не все помещаются на одной странице, что приводит к переполнению. Нам нужно напечатать VOID над самим чеком, который находится в ЗАГОЛОВКЕ на второй и последующих страницах этого чека.

Я написал выражение видимости следующим образом:

=Iif(Globals!PageNumber > 1, False, True)

То, что было достигнуто, было скрыто на странице 1 задания на печать. Проблема в том, что большинство страниц после страницы 1 были новыми чеками и не должны быть аннулированы. Должна быть только вторая страница из того же чека.
Мне нужно сделать это на контрольном разрыве, где он меняет номер чека. Я должен печатать VOID только тогда, когда текущая страница имеет тот же контрольный номер, что и предыдущая страница. Поскольку это находится в заголовке, контрольный номер относится к скрытому полю в теле:

=элементы отчета!txtCalc_DspCheckNum21.value

Я бы сравнил это значение с предыдущим контрольным номером, но как мне сохранить этот предыдущий контрольный номер и теперь сравнить их?

Я добавил текстовое поле (очень крупными буквами) над чеком и спрятал его. Затем я


person lfeder    schedule 18.06.2019    source источник


Ответы (1)


Вам, вероятно, потребуется настроить это с помощью пользовательского кода.

На странице «Свойства отчета — код» вставьте следующий код:

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)

В заголовке установите для выражения Visiblility-Hidden значение:

=IIF(Code.ThisCheck = Code.LastCheck, False, True)

Итак, что мы делаем, так это то, что всякий раз, когда ваше текстовое поле txtCalc_DspCheckNum21 обрабатывается, оно запоминает предыдущий и текущий контрольные номера. Если они разные (т. е. первая страница для этого чека), он скрывает изображение, а если они одинаковы, он показывает VOID-изображение (т. е. последующие страницы для этого чека).

Обратите внимание, что это зависит от txtCalc_DspCheckNum21, отображаемого на каждой странице.

person Chris Latta    schedule 19.06.2019
comment
В качестве комплимента решению Криса со стороны Epicor, если я правильно помню, я считаю, что есть способ увеличить количество строк, которые появляются на каждой странице для контрольных заглушек внутри Epicor. Это не решит вашу проблему, но поможет сократить количество бумаги. - person Pants; 19.06.2019
comment
Спасибо, но это не сработало: выражение Visibility.Hidden для текстового поля «Textbox7» включает в себя предыдущую агрегатную функцию. Предыдущий нельзя использовать в верхних или нижних колонтитулах страницы. - person lfeder; 20.06.2019
comment
Извините, я пропустил это в своем быстром ответе. Вместо этого давайте попробуем какой-нибудь пользовательский код. - person Chris Latta; 20.06.2019
comment
Спасибо. Это может сработать, но я на самом деле нашел удивительно простое решение. Если я выберу группу строк, которая выполняет разрыв, одним из свойств будет Group/PageBreak/ResetPageNumber. Если я установлю это в TRUE, это сработает! - person lfeder; 20.06.2019
comment
Хороший трюк, молодец! Вы должны добавить это как ответ и принять его, чтобы будущие посетители этого вопроса могли использовать ваше решение. - person Chris Latta; 21.06.2019