Naplnění reportu daty - Graf |
Top Previous Next |
V další lekci využijeme znalostí z Naplnění reportu daty - QueryToCells a Naplnění reportu daty Query while. Pokud jste procházeli příklady postupně máte nyní report který vypadá: pokud jste domání úkol z reportu Naplnění reportu daty Query while vynechali nebo nevíte jak na něj, zde je skript ke kterému jste se měli dopracovat:
procedure OnBeforeReport(Sender : TReportProperty); var i,r : integer; Chart : TDBChart; begin r:=0;i:=0; // load data BDEQuery1.Query.Open; while Not(BDEQuery1.Query.Eof) do begin Sheet.Cells[fromCol+i,fromRow+r ]:=BDEQuery1.Query.FieldbyName('jmeno').AsString; Sheet.Cells[fromCol+i,fromRow+r+1]:=BDEQuery1.Query.FieldbyName('pocet').AsString; inc(i); if i>9 then begin inc(r,3); i:=0; end; BDEQuery1.Query.Next; end; end;
begin end.
Nyní k zobrazeným datům vyrobíme graf. Zvyšte počet řádků na 13 nastavte výšku řádku 12 na 400px, šířku sloupce A na 20px a slučte buňky B12-K12 do jedné buňky. V postranním panelu komponent vyberte komponentu DBChart a vložte do sloučené oblasti B12. Pravým tlačítkem myší vyvolejte kontextovou nabídku:
A vyberte upravit graf. V editoru grafů vytvoříme novou series: na záložce - Chart-Series stiskněte Add a vyberte Bar.
Na tomto místě se nebudeme zabývat kosmetickými úpravami grafu, jako jsou barvy popisy os, automatickou metrikou grafu a podobně. Všechny tyto vlastnosti naleznete v editoru grafů.
Nyní stačí upravit skript reportu na nastavit: Datasource pro graf a to co se bude v grafu zobrazovat: přidáme proměnnou pro graf: Chart : TDBChart; a tuto část kódu Chart:=TDbChart(Sheet['B12'].CellComponent); // najdeme ukazatel na TDbChart with TLineSeries(Chart.SeriesList[0]) do // Nastavíme vlastnosti serie, kterou jsme vytvořili v grafu begin DataSource:=BDEQuery1.Query; // přiřadíme Query ze záložky Data XLabelsSource:=BDEQuery1.Query.Fields[0].FieldName; // na ose X zobrazíme jména YValues.ValueSource:=BDEQuery1.Query.Fields[1].FieldName; // na ose Y počet výskytů v databázi end;
To je vše, nyní report vypadá:
Kompletní skript reportu naleznete zde Všimněte si že Query v reportu na závěr nezavíráme, protože kvůli zobrazení grafu musí zůstat otevřené. Vhodná událost na uzavření Query je například v události reportu OnReportClose. |