Ważną częścią raportu jest komponent graficzny, a mianowicie wykresy i tabele. Pozwalają one szybko analizować dane, aby ocenić tendencję wzrostu lub spadku, lub po prostu szybko odczytać informacje. Tak działa ludzkie postrzeganie, że informacje graficzne są odbierane szybciej. Dlatego na znakach drogowych można zobaczyć obrazy, które są natychmiast zrozumiałe i odpowiednio interpretowane przez mózg.
Wykresy i tabele są oparte na danych statystycznych. Z reguły są one pobierane z bazy danych. Zdarzają się takie sytuacje, gdy konieczne jest tworzenie harmonogramów na podstawie przekonwertowanych danych. Na przykład przy użyciu początkowych obliczeń danych. Niektóre generatory raportów pozwalają używać tylko gotowe źródło danych. Nie jest to wygodne, ponieważ konwersja danych jest niezbędna do przeprowadzenia raportu.
Spójrzmy na problem, który użytkownik generatora raportów List & Label poruszył w swoim pytaniu:
Aby zaimplementować to w list & label, należy utworzyć tabelę pośrednią i zapisać do niej dane ze zmiennych. Chodzi o to, że wykres kołowy działa tylko z tabelarycznym źródłem danych. Segmenty wykresów są obliczane przez agregowanie danych.
Generator raportów FastReport.Net może być użyty w wykresach danych ze źródła i danych ręcznie dodanych w edytorze. Jednak raporty FastReport mają wbudowany skrypt, który "rozwiązuje nam ręce" i zapewnia możliwość dostosowania grafiki w kodzie. Oznacza to, że możemy "przesunąć" dowolne dane na wykresie. Na przykład należy wykonać obliczenia w raporcie i zapisać wyniki w zmiennych raportu, a następnie chcesz na nich zbudować wykres. Jest to dość łatwe do wdrożenia.
Można również dodać obiekt MSChart na stronie raportu i utworzyć program obsługi zdarzeń BeforePrint:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
private void MSChart1_BeforePrint(object sender, EventArgs e) { MSChart1.DeleteSeries(0); //Usuń serię domyślną MSChart1.AddSeries(SeriesChartType.Pie); //Dodaj nową serię z wykresem kołowym MSChart1.Series[0].SeriesSettings.Points.Clear(); //Wyczyść dane serii //Przejrzyj wszystkie parametry w raporcie foreach (Parameter param in Report.Parameters) { //Dodaj do serii punkt na osi Y. Dla osi wykres kołowy Y wystarczy MSChart1.Series[0].SeriesSettings.Points.AddY(param.Value); } //Włącz legendę MSChart1.Chart.Legends[0].Enabled = false; //Ustawianie etykiet serii wykresu kołowego MSChart1.Series[0].SeriesSettings.Label = "#VALY"; //Ustawianie wysokości obiektu MSChart MSChart1.Height = 500; //Ustawianie szerokości obiektu MSChart MSChart1.Width = 500; } |
W rezultacie będziemy mieli taki wykres kołowy:
W tym przykładzie użyliśmy parametrów raportu jako źródła danych, ale można również użyć zmiennych w skrypcie raportu, tablic, kolekcji.
Niestety, w oficjalnej dokumentacji FastReport.Net nie ma opisu właściwości i metod obiektu MSChart. Ten składnik jest bardzo złożony z wieloma ustawieniami, więc będziesz musiał poświęcić trochę czasu na znalezienie odpowiednich właściwości. W tym przykładzie pokazałem najprostszy sposób szybkiego tworzenia grafiki z minimalnymi ustawieniami.