Difference between revisions of "Msz"
From Documentation
(→Source) |
|||
Line 73: | Line 73: | ||
<iframe id="iframe" src="/report/reportPage.zul" hflex="1" vflex="1" scrolling="auto" /> | <iframe id="iframe" src="/report/reportPage.zul" hflex="1" vflex="1" scrolling="auto" /> | ||
</window> | </window> | ||
+ | </zk> | ||
+ | </source> | ||
+ | |||
+ | '''The reportPage.zul''' | ||
+ | <source lang="xml"> | ||
+ | <?page title="Тестовый отчет" contentType="text/html;charset=UTF-8"?> | ||
+ | <?script src="http://localhost:8081/ActuateBIRTViewer/jsapi" ?> | ||
+ | <zk> | ||
+ | ... | ||
+ | |||
+ | <script> | ||
+ | zk.afterMount(function() { | ||
+ | init(); | ||
+ | }); | ||
+ | </script> | ||
+ | <n:script xmlns:n="native"> | ||
+ | <![CDATA[ | ||
+ | function init(){ | ||
+ | actuate.load("viewer"); | ||
+ | actuate.initialize("http://localhost:8081/ActuateBIRTViewer", null, null, null, null); | ||
+ | } | ||
+ | function runReportI(jsonElements) { | ||
+ | var countOfElements = jsonElements.elements.length; | ||
+ | for (var i = 0; i < countOfElements; i++) { | ||
+ | var year = jsonElements.elements[i].year; | ||
+ | } | ||
+ | var viewer = new actuate.Viewer("viewer1"); | ||
+ | viewer.setReportName("/salesDashboard.rptdesign"); | ||
+ | viewer.setParameters({Year:year}); | ||
+ | var options2 = new actuate.viewer.UIOptions( ); | ||
+ | options2.enableToolBar(true); | ||
+ | options2.enableMainMenu(false); | ||
+ | viewer.setUIOptions( options2 ); | ||
+ | viewer.setSize(1100,800); | ||
+ | viewer.submit(); | ||
+ | } | ||
+ | |||
+ | function runReportXLS() { | ||
+ | var viewer = new actuate.Viewer("viewer1"); | ||
+ | viewer.downloadReport("xls", null, null); | ||
+ | } | ||
+ | |||
+ | function runReportPDF() { | ||
+ | var viewer = new actuate.Viewer("viewer1"); | ||
+ | viewer.downloadReport("pdf", null, null); | ||
+ | } | ||
+ | |||
+ | function printReport() { | ||
+ | var viewer = new actuate.Viewer("viewer1"); | ||
+ | viewer.showPrintDialog( ); | ||
+ | } | ||
+ | |||
+ | ]]> | ||
+ | </n:script> | ||
+ | <window width="100%" height="100%" apply="ru.ufa.zkbirt.ViewReportController"> | ||
+ | <borderlayout> | ||
+ | <center autoscroll="true"> | ||
+ | <html ><![CDATA[ | ||
+ | <div id="viewer1"> | ||
+ | </div> | ||
+ | ]]> | ||
+ | </html> | ||
+ | </center> | ||
+ | ... | ||
+ | |||
</zk> | </zk> | ||
</source> | </source> |
Revision as of 09:42, 5 June 2014
Integrating_BIRT_Viewer_Toolkit_and_ZK
Author
Shamil' Mustafin, Engineer, Nefteavtomatika, Russia
Shamil' Mustafin, Engineer, Nefteavtomatika, Russia
Date
June 03, 2014
June 03, 2014
Version
ZK CE 7.0.2
ZK CE 7.0.2
Introduction
Environment
- Apache Tomcat/7.0.52
- ActuateBIRTViewer Toolkit [1]
- ZK Framework CE 7.0.2
- File Report Sales Dashboard.rtpdesign must be placed in the folder Tomcat7\webapps\ActuateBIRTViewer\WEB-INF\repository
- ZkBirtReport.war
Features
- To pass parameters are used ZK components
- Passing parameters via JSON
- You can generate reports independently from each other (in different tabs)
Source
The MainController.java
public class MainController extends SelectorComposer<Window>{
/**
*
*/
private static final long serialVersionUID = 1L;
@Wire("#treeReports") private Tree treeReports;
@Wire("#mainTabs") private Tabbox mainTabs;
@Wire("#mainTabs > tabs") private Tabs tabs;
@Wire("#mainTabs > tabpanels") private Tabpanels tabpanels;
private void setTabValue(String url, String nameReport) {
Tab tab = new Tab(nameReport);
tab.setClosable(true);
tab.setSelected(true);
tabs.appendChild(tab);
Tabpanel tabpanel = new Tabpanel();
Include include = new Include(url);
tabpanel.appendChild(include);
tabpanels.appendChild(tabpanel);
}
@Listen("onClick = #viewReport")
public void showReport() {
if (treeReports.getSelectedItem() != null) {
String url = treeReports.getSelectedItem().getValue();
String label = treeReports.getSelectedItem().getLabel();
setTabValue(url, label);
} else {
showNotify("Select the report");
return;
}
}
private void showNotify(String msg) {
Clients.showNotification(msg,"warning",null,null,0);
}
}
The report.zul
<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<window border="none" width="100%" height="100%" >
<iframe id="iframe" src="/report/reportPage.zul" hflex="1" vflex="1" scrolling="auto" />
</window>
</zk>
The reportPage.zul
<?page title="Тестовый отчет" contentType="text/html;charset=UTF-8"?>
<?script src="http://localhost:8081/ActuateBIRTViewer/jsapi" ?>
<zk>
...
<script>
zk.afterMount(function() {
init();
});
</script>
<n:script xmlns:n="native">
<![CDATA[
function init(){
actuate.load("viewer");
actuate.initialize("http://localhost:8081/ActuateBIRTViewer", null, null, null, null);
}
function runReportI(jsonElements) {
var countOfElements = jsonElements.elements.length;
for (var i = 0; i < countOfElements; i++) {
var year = jsonElements.elements[i].year;
}
var viewer = new actuate.Viewer("viewer1");
viewer.setReportName("/salesDashboard.rptdesign");
viewer.setParameters({Year:year});
var options2 = new actuate.viewer.UIOptions( );
options2.enableToolBar(true);
options2.enableMainMenu(false);
viewer.setUIOptions( options2 );
viewer.setSize(1100,800);
viewer.submit();
}
function runReportXLS() {
var viewer = new actuate.Viewer("viewer1");
viewer.downloadReport("xls", null, null);
}
function runReportPDF() {
var viewer = new actuate.Viewer("viewer1");
viewer.downloadReport("pdf", null, null);
}
function printReport() {
var viewer = new actuate.Viewer("viewer1");
viewer.showPrintDialog( );
}
]]>
</n:script>
<window width="100%" height="100%" apply="ru.ufa.zkbirt.ViewReportController">
<borderlayout>
<center autoscroll="true">
<html ><![CDATA[
<div id="viewer1">
</div>
]]>
</html>
</center>
...
</zk>
Summary
http://www.actuate.com/info/birt-viewer-toolkit/ [2].
http://developer.actuate.com/deployment-center/deployment-guides/birt-viewer-toolkit/ [3].