Opening files from ReportExplorer
The ReportExplorer class generates an actuate.reportexplorer.eventconstants.ON_SELECTION_CHANGED event when the user selects a folder or file in the Report Explorer User Interface. To access the file information in this event, implement an event handler like the one shown in the following code:
var file;
...
explorer.registerEventHandler( actuate.reportexplorer.EventConstants.ON_SELECTION_CHANGED, selectionChanged );
...
function selectionChanged( selectedItem, pathName ){
file = pathName;
}
The event passes the path and name of the file in the second parameter of the handler, pathName. To access the file, the event handler stores the path in a global variable, file.
In this implementation, the file path is updated each time a file selected. To open the file currently selected, implement a button on the page that runs a separate function that opens the file. The following code example shows a button that calls the custom displayReport( ) function, which attempts to open the file using an actuate.viewer object:
<input type="button" style="width: 150pt;" value="View Report" onclick="javascript:displayReport( )"/>
...
function displayReport( ){
var viewer = new actuate.Viewer("explorerpane");
try {
viewer.setReportName(file);
viewer.submit( );
} catch (e) {
alert("Selected file is not viewable: " + file);
runReportExplorer( );
}
}
The try-catch block returns to the report explorer if Viewer is unable to open the file.
This is a complete example of a ReportExplorer page that opens a file in the BIRT Viewer when the user activates the View Report button:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>Report Explorer Page</title>
</head>
<body onload="init( )">
<input type="button" style="width: 150pt;" value="View Report"onclick="javascript:displayReport( )"/>
<hr />
<div id="explorerpane">
<script type="text/javascript" language="JavaScript" src="http://localhost:8700/iportal/jsapi"></script>
<script type="text/javascript" language="JavaScript">
var file = "unknown";
function init( ) {
actuate.load("reportexplorer");
actuate.load("viewer");
actuate.load("dialog");
requestOpts = new actuate.RequestOptions( );
actuate.initialize( "http://localhost:8900/iportal",requestOpts, null, null, runReportExplorer);
}
function runReportExplorer( ) {
var explorer = new actuate.ReportExplorer("explorerpane");
explorer.registerEventHandler( actuate.reportexplorer.EventConstants.ON_SELECTION_CHANGED, selectionChanged );
explorer.setFolderName( "/Public" );
var resultDef = "Name|FileType|Version|VersionName|Description";
explorer.setResultDef( resultDef.split("|") );
explorer.submit( );
}
function selectionChanged( selectedItem, pathName ){
file = pathName;
}
function displayReport( ){
var y = document.getElementById('explorerpane'), child;
while(child=y.firstChild){
y.removeChild(child);
}
var viewer = new actuate.Viewer("explorerpane");
try {
viewer.setReportName(file);
viewer.submit( );
} catch (e) {
alert("Selected file is not viewable: " + file);
runReportExplorer( );
}
}
</script>
</div>
</body>
</html>