470 likes | 795 Views
BIRT. Wprowadzenie. Dwa prawa zarządzania: What you don’t know hurts you. What is not on paper has not been said. Wprowadzenie. Po co jest Eclipse?. BIRT. Business Inteligence and Reporting Tools http://www.eclipse.org/birt/phoenix Dystrybucje Pluginy do Eclipse’a (UM) RCP
E N D
Wprowadzenie Dwa prawa zarządzania: What you don’t know hurts you. What is not on paper has not been said.
Wprowadzenie • Po co jest Eclipse?
BIRT • Business Inteligence and ReportingTools http://www.eclipse.org/birt/phoenix • Dystrybucje • Pluginy do Eclipse’a (UM) • RCP • Runtime
Budowa ODA BIRT Eclipse • BIRT i ODA
ODA • Runtime
ODA • Designer
BIRT - architektura Report(design) Web Report Designer Custom Report Designer Eclipse Report Designer Report Design Engine
BIRT architektura XML Chart Engine design HTML Report Engine Presentation Generation PDF data
Start • Report Design Perspective • New Report project • New Report • Template • Library
Master Page • Master Page • Palette • Grid • Label • Image • Properties • Preview
Pierwszy raport • DnD źródło danych • Usunąć zbędne kolumny • Zmienić nazwy w pozostałych
DB • Na raport • Usunąć zbędne kolumny • Zmienić nazwy
Merge & Gr. Act. • Shift zaznacza • Trzeba wybrać komórki, nie kontrolki • Highlight
Filtrowanie • Uaktywniamy tabelke • Zakładka filtrowanie
Wykres • Nowe Data Set select CLASSICMODELS.CUSTOMERS.COUNTRY, CLASSICMODELS.CUSTOMERS.CREDITLIMIT from CLASSICMODELS.CUSTOMERS
Data Cube & Cross Tab • Dane są reprezentowane w postaci macierzy • Baza jest co najmniej dwuwymiarowa • Wymaga stworzenia Data Cube’a
RCP 1 • Pierwszy raport (korzystamy z xml’a) • Tworzymy plugin Hello World • Zależności • org.eclipse.birt.report.viewer • org.eclipse.birt.report.engine.emmiter.html • org.eclipse.birt.report.engine.emmiter.pdf • org.eclipse.birt.report.engine.emmiter.prototype.excel • org.eclipse.birt.report.oda.data.xml • Run & Test
RCP 1 WebViewer.display( "c:/birtApp/firstreport.rptdesign", WebViewer.HTML, false); • Inne wywołania • Report • Format • Browser • Servlet name • Params • allowPage
RCP 2 • Nowy raport • Skryptowe źródło danych
RCP 2 • Źródło na stronę • Script -> open: counter = 0; • Script -> close: counter = null; • Script -> fetch: if(counter < source.size()){ temp = source.get(counter); row["id"] = temp[0]; row["firstname"] = temp[1]; row["lastname"] = temp[2]; row["boss"] = temp[3]; counter ++; returntrue; }returnfalse;
RCP 2 • Źródło danych w aplikacji publicclass DataSourceProvider { publicstatic List<Object[]> getSampleData(){ List<Object[]> list = new ArrayList<Object[]>(); list.add(new Object[]{"1","Jan", "Weglarz","1"}); list.add(new Object[]{"2","Lukasz", "Olek","1"}); list.add(new Object[]{"3","Krzysztof", "Daniel","2"}); list.add(new Object[]{"4","Jacek", "Pospychala","2"}); return list; } }
RCP 2 • Zależności • ui, runtime (standardowe) • DataSource • org.eclipse.birt.report.engine • org.eclipse.birt.report.engine.emmiter.pdf
RCP 2 EngineConfig config = new EngineConfig(); config.setProperty("source", DataSourceProvider.getSampleData()); PDFRenderOption options = new PDFRenderOption(); options.setOutputFormat("pdf"); options.setOutputFileName("d:/test.pdf");
RCP 2 • Inicjalizacja • Platform.startup(config); IReportEngineFactory factory = (IReportEngineFactory) Platform .createFactoryObject( IReportEngineFactory. EXTENSION_REPORT_ENGINE_FACTORY ); engine = factory.createReportEngine(config);
RCP 2 • wywołanie • IReportRunnable report = • engine.openReportDesign ("d:/scripted.rptdesign"); IRunAndRenderTask task = engine.createRunAndRenderTask(report); task.setRenderOption(options); task.run();
RCP 2 • Sprzątanie • } finally { if (engine != null) { engine.destroy(); } Platform.shutdown(); }
RCP 2 • A może html? • HTMLRenderOption options • = new HTMLRenderOption(); options.setOutputFormat("html"); options.setOutputFileName("d:/test.html");
RCP 2 • Rezultat