Zine.net online

Witaj na Zine.net online Zaloguj się | Rejestracja | Pomoc
w Szukaj

arkadiusz.wasniewski

Zacznij od nowej strony, ale nie drukuj pustej

Jakiś czas temu podałem sposób na rozwiązanie problemu drukowania w ramach kontrolki List podraportów zaczynając każdorazowo od nowej strony. Efektem było niestety drukowanie na koniec pustej strony. Wydawałoby się, iż wystarczy jedynie kontrolkę Rectangle na koniec wyłączyć i marnotrawstwo papieru oraz nadszarpywanie naszej reputacji zostanie zlikwidowane. W tym celu właściwości Hidden przypisałem wyrażenie:

=IIF(RowNumber(“DataSet”) < CountRows(“DataSet”), False, True)

Analiza jest trywialna: dopóki bieżący numer wiersza jest mniejszy od liczby wszystkich wierszy w danym zbiorze danych kontrolka Rectangle jest wyświetlana.

Właściwości kontrolki Rectangle

Właściwości kontrolki Rectangle

Okazuje się jednak, iż jakiekolwiek wyrażenie powoduje ignorowanie wstawiania znaku końca strony (PageBreakAtEnd = True)! Prosty eksperyment polega na zamianie wartości False na wyrażenie =False. Ot błąd w implementacji (nota bene zdaje się, iż jest on od wersji Microsoft SQL Server 2000).

Rozwiązanie?!

Ech… Rozbicie tego na dwie kontrolki Rectangle. Pierwsza sprawdza i ustawia tylko właściwość Hidden oraz zawiera drugą kontrolkę Rectangle. Ta druga, wewnętrzna kontrolka dopiero ustawia PageBreakAtEnd na True.

PS. Opisywany problem dotyczy na pewno Reporting Services w wersji 2005. Pozostałych wersji nie sprawdzałem.

Opublikowane 27 maja 2009 11:43 przez arkadiusz.wasniewski
Filed under:

Komentarze:

 

arturstan said:

O rany...

Niech mi ktoś wytłumaczy, czemu tak podstawowej rzeczy, nie ma "z pudełka".

maja 28, 2009 21:49
 

arkadiusz.wasniewski said:

Może po to, aby mieć więcej rozrywki z programowania...

maja 29, 2009 13:23
 

michal said:

A klasa LocalReport ma takie wycieki pamięci, że się można załamać.

czerwca 29, 2009 13:53
Komentarze anonimowe wyłączone
W oparciu o Community Server (Personal Edition), Telligent Systems