Tworząc raport, chcemy, aby był on jak najbardziej „przyjazny” dla konsumentów. Zbyt dużo przetwarzania danych i elementów projektu utrudnia zrozumienie informacji. W rezultacie, wiele osób chce usunąć miejsca w tabeli, w których nie ma danych. Generator raportów FastReport.Net umożliwia wykonanie tej funkcji. Jak można się domyślić, konieczne jest nie tylko ukrycie kolumny, ale także jej tytułu. Jeśli ukrywanie kolumny jest kwestią kilku kliknięć myszą, to ukrywanie zadania opisanego w tytule nie jest takie proste.
Załóżmy, że mamy tabelę, której dane chcemy wyświetlić w raporcie. Jednak niektórych danych może tam nie być lub mogą przybierać wartość zero. W takim przypadku, możemy użyć narzędzia „Zaznaczanie warunkowe” (Conditional Selection), aby ukryć komórki zawierające wartość zero. Proszę wybrać żądaną komórkę i kliknąć ikonę na pasku narzędzi:
Po dodaniu warunków domyślnie sprawdzane będzie występowanie wartości zero. Właśnie tego potrzebujemy. Wybieramy tylko opcje wyświetlania. W naszym przypadku, usuwamy widoczną flagę:
Dlatego w przypadku tych mało pomysłowych operacji wprowadziliśmy ukryte komórki zerowe. Ale to nie rozwiązuje wszystkich problemów. Naszym zadaniem jest ukrycie tytułu całej kolumny, jeśli żadna wartość w nich nie jest większa od zera. Przerwa w tej kolumnie spowoduje sprawdzenie danych wyjściowych każdej strony.
Aby sprawdzić, czy na tej stronie, w danej kolumnie nie ma danych, użyjemy funkcji „wynik” (result).
Wynik ten jest sumowany w danej kolumnie i znajdziemy tam podsumowanie wszystkich zawartych w niej wartości. Jeśli suma wynosi zero, w kolumnie nie ma pojedynczej wartości większej niż zero i trzeba ukryć nagłówek kolumny.
A więc dodajmy wynik:
Wynik został umieszczony w pasku „Stopka strony” (Page Footer):
Wynik można następnie ukryć za pomocą właściwości „widoczny” (visible).
Teraz ustawmy schemat działania programu tak, aby ukryć nagłówek ostatniej kolumny. Zamiast tekstu RUB wprowadzamy wyrażenie:
[IIf([Total]!=0,Text14.Text = "RUB",Text14.Text = "")]
To jednak nie wszystko. Ponieważ wynik powstaje po wyświetleniu tytułu i danych na stronie, w momencie wykonywania wyrażenia, które wprowadziliśmy powyżej, całkowita wartość nie ma znaczenia. Dlatego musimy użyć opcji opóźnionego obliczania wyrażenia w nagłówku kolumny i podwójnego przejścia raportu.
Proszę wybrać pole tekstowe z nagłówkiem kolumny RUB. We właściwościach pola tekstowego wyszukujemy parametr „ProcessAt” i zmieniamy go na „PageFinished”:
Następnie musimy otworzyć okno właściwości raportu i aktywować opcję „Podwójne przejście” (Doublepass):
Opcja ta umożliwia dwukrotne tworzenie raportu. Podczas pierwszego tworzenia zostaną obliczone wszystkie wyniki, a podczas drugiego wyniki te można wykorzystać w nagłówkach. Jest to konieczne, ponieważ raport jest budowany zasadniczo spójnie. Oznacza to, że podczas tworzenia następnego elementu nie będzie można zmienić poprzedniego. Dlatego potrzebne jest ponowne tworzenie raportu, który uwzględnia wyniki kolejnych elementów.
Zobaczmy, jak działa nasz raport, jeśli wszystkie dane w kolumnie RUB mają wartość 0:
Na niektórych stronach mogą pojawić się dane, więc pojawi się również kolumna:
W ten sposób możemy dynamicznie wyświetlać lub ukrywać kolumny zgodnie z zawartymi w nich danymi.