2013-10-26 2 views
1

Я использую FreeReport (от FastReport) и мне нужно реализовать такой код:FreeReport: как форматировать If-Then

If TOTALPAGES > 1 then Pageheader.visible = false 

Я не знаю, куда писать этот код, я попытался положить внутрь Паскаль код, он не работает.

И эта запись не работает также:

[IFF([TOTALPAGES] > 1,'PAGEHEADER.VIBLE=0')] 

Что такое правильный способ сделать это?

+0

с * TotalPages * вы попали интересную тему. – bummi

ответ

0

Вы можете попробовать подобный код внутри отчета: [если ([PAGE #] < [TOTALPAGES], 'Ok', 'Не Ok')]

1

postition, чтобы обычно помещать код будет OnBeforePrint (*) событие затем PageHeader группы, но это не будет работать с <TotalPages#>

procedure PageHeader1OnBeforePrint(Sender: TfrxComponent); 
begin  
    TfrxPageHeader(Sender).visible := (<TotalPages#> = 1);                           
end; 

проблема с этим подходом является <TotalPages#> не будет оцениваться в это время.
Вторая проблема заключается в том, что отображение или скрытие PageHeader может повлиять на количество страниц. Чтобы достичь желаемого результата, вам нужно будет сделать отчет frxreport1.PrepareReport(true);. Вы можете сделать это дважды, с видимым инструментом PageHeader и unvisble PageHeader. К любой части отчета можно обращаться по адресу frxReport1.FindObject. Перед использованием убедитесь, что это назначено.
В качестве опоры для другого объекта, используемого для печати/предварительного просмотра объектов, является событие OnPrint компонента frxReport, который будет вызываться для каждого объекта перед его визуализацией.

begin 
    frxReport1.FindObject('PageHeader1').Visible := true; 
    frxReport1.PrepareReport(true); 

    // in my test case 2 Pages 
    Showmessage(IntToStr(frxReport1.PreviewPages.Count)); 

    frxReport1.ShowPreparedReport; 

    frxReport1.FindObject('PageHeader1').Visible := false; 
    frxReport1.PrepareReport(true); 

    // in my test case 1 Page 
    Showmessage(IntToStr(frxReport1.PreviewPages.Count)); 

    frxReport1.ShowPreparedReport; 
end; 

Обычное место реализации кода отчета: enter image description here

Смежные вопросы