Title: BIRT
1BIRT
2Wprowadzenie
- Dwa prawa zarzadzania
- What you dont know hurts you.
- What is not on paper has not been said.
3Wprowadzenie
4BIRT
- Business Inteligence and Reporting Tools
- http//www.eclipse.org/birt/phoenix
- Dystrybucje
- Pluginy do Eclipsea (UM)
- RCP
- Runtime
5Budowa
6ODA
7ODA
8BIRT - architektura
Web Report Designer
Custom Report Designer
Eclipse Report Designer
Report Design Engine
9BIRT architektura
XML
Chart Engine
design
HTML
Report Engine
Presentation
Generation
PDF
data
10Start
- Report Design Perspective
- New Report project
- New Report
- Template
- Library
11Master Page
- Master Page
- Palette
- Grid
- Label
- Image
- Properties
- Preview
12Master Page
13Zródla danych
14Zródla danych
15Zbiór danych
16Ale to za malo
17Pierwszy raport
- DnD zródlo danych
- Usunac zbedne kolumny
- Zmienic nazwy w pozostalych
18Formatowanie
19Kto tu rzadzi?
20Agregacja
21Pytania
22DB nowy raport
23DB
- Na raport
- Usunac zbedne kolumny
- Zmienic nazwy
24Grouping Agg
25Merge Gr. Act.
- Shift zaznacza
- Trzeba wybrac komórki, nie kontrolki
- Highlight
26Parametry
27Filtrowanie
- Uaktywniamy tabelke
- Zakladka filtrowanie
28Modyfikacja zapytan
29Wykres
- Nowe Data Set
- select CLASSICMODELS.CUSTOMERS.COUNTRY,
CLASSICMODELS.CUSTOMERS.CREDITLIMIT - from CLASSICMODELS.CUSTOMERS
30Wykres
31Data Cube Cross Tab
- Dane sa reprezentowane w postaci macierzy
- Baza jest co najmniej dwuwymiarowa
- Wymaga stworzenia Data Cubea
32Pytania
33RCP 1
- Pierwszy raport (korzystamy z xmla)
- Tworzymy plugin Hello World
- Zaleznosci
- 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.e
xcel - org.eclipse.birt.report.oda.data.xml
- Run Test
34RCP 1
WebViewer.display( "c/birtApp/firstreport.rptde
sign", WebViewer.HTML, false)
- Inne wywolania
- Report
- Format
- Browser
- Servlet name
- Params
- allowPage
35RCP 1 - rezultat
36Pytania
37RCP 2
- Nowy raport
- Skryptowe zródlo danych
38RCP 2
- Zródlo na strone
- Script -gt open counter 0
- Script -gt close counter null
- Script -gt fetch
- if(counter lt source.size())
- temp source.get(counter)
- row"id" temp0
- row"firstname" temp1
- row"lastname" temp2
- row"boss" temp3
- counter
- return true
- return false
39RCP 2
- Zródlo danych w aplikacji
public class DataSourceProvider public static
ListltObjectgt getSampleData() ListltObjectgt
list new ArrayListltObjectgt() list.add(new
Object"1","Jan", "Weglarz","1") list.add(ne
w Object"2","Lukasz", "Olek","1") list.add(
new Object"3","Krzysztof", "Daniel","2") li
st.add(new Object"4","Jacek",
"Pospychala","2") return list
40RCP 2
- Zaleznosci
- ui, runtime (standardowe)
- DataSource
- org.eclipse.birt.report.engine
- org.eclipse.birt.report.engine.emmiter.pdf
41RCP 2
EngineConfig config new EngineConfig() config.
setProperty("source",
DataSourceProvider.getSampleData()) PDFRenderOpt
ion options new
PDFRenderOption() options.setOutputFormat("pdf")
options.setOutputFileName("d/test.pdf")
42RCP 2
- Platform.startup(config)
- IReportEngineFactory factory
- (IReportEngineFactory) Platform
- .createFactoryObject(
- IReportEngineFactory.
- EXTENSION_REPORT_ENGINE_FACTORY )
- engine factory.createReportEngine(config)
43RCP 2
- IReportRunnable report
- engine.openReportDesign
- ("d/scripted.rptdesign")
- IRunAndRenderTask task
- engine.createRunAndRenderTask(report)
- task.setRenderOption(options)
- task.run()
44RCP 2
- finally
- if (engine ! null)
- engine.destroy()
-
- Platform.shutdown()
45RCP 2
- HTMLRenderOption options
- new HTMLRenderOption()
- options.setOutputFormat("html")
- options.setOutputFileName("d/test.html")
46RCP 2
47Pytania