Поместите эту формулу в поле подавления в разделе сведений:
WhilePrintingRecords;
Global BooleanVar finished;
finished := OnLastRecord
И сделайте эту формулу подавления в заголовке страницы:
Global BooleanVar finished
- До
finished
инициализируется заголовок страницы. - После того, как вы распечатаете запись детали, она будет установлена на
false
. - Когда вы, наконец, достигнете последней секции детализации,
finished
будетустановите на true
. - Если вы случайно дойдете до заголовка другой страницы,
finished
по-прежнему true
, и Crystal будет подавлять заголовок.
Это интересная проблема,Я сталкивался с таким поведением раньше, но никогда не пытался его решить.Я думаю, что вам нужно использовать переменную, потому что в заголовке страницы обычные параметры, такие как Next()
и OnLastRecord
, не могут различить наличие еще одной записи для печати и отсутствие записей для печати.Я думаю, что при подсчете итогов возникнет та же проблема - значения будут одинаковыми на странице с еще одной записью для печати и на странице без записей для печати.