Skip to main content



      Home
Home » Archived » BIRT » Joint data set does not invoke DataSourceEventHandler(DataSourceEventHandler.beforeOpen method is not executed with joint data set)
Joint data set does not invoke DataSourceEventHandler [message #519472] Mon, 08 March 2010 17:38 Go to next message
Eclipse UserFriend
I have a DataSourceEventHandler with a beforeOpen() method that updates the connection properties (user and password) to point to a specific schema depending on the value of a request parameter. This works fine as long as the report uses only one table. Reports that use a joint data set to join two or more tables fail because the DataSourceEventHandler is never invoked.

I've run this in debug with break points set in the event handler's beforeOpen method and on the JDBC driver's connect method. The stack looks like this when it works correctly (single table).

DataSourceEventHandler.beforeOpen(IDataSourceInstance, IReportContext) line: 32	
DataSourceScriptExecutor.handleBeforeOpen(IDataSourceInstanceHandle) line: 87	
OdaDataSourceRuntime(DataSourceRuntime).beforeOpen() line: 245	
PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).dataSourceBeforeOpen() line: 184	
PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).openDataSource() line: 386	
PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).prepareExecution(IBaseQueryResults, Scriptable) line: 315	


When using a joint data set the stack looks like this when it hits the driver's connect method (the event handler's breakpoint is skipped)

Driver.connect(String, Properties) line: 175	
JDBCDriverManager$WrappedDriver.connect(String, Properties) line: 1162	
DriverManager.getConnection(String, Properties, ClassLoader) line: 582	
DriverManager.getConnection(String, Properties) line: 154	
JDBCDriverManager.doConnect(String, String, String, Properties, Collection<String>) line: 251	
JDBCDriverManager.getConnection(String, String, String, Properties, Collection<String>) line: 212	
Connection.connectByUrl(String, Properties) line: 234	
Connection.open(Properties) line: 160	
OdaConnection.open(Properties) line: 238	
ConnectionManager.openConnection(String, Properties, Map) line: 180	
DataSource.newConnection() line: 193	
DataSource.open() line: 181	
OdaDataSourceRuntime(DataSourceRuntime).openOdiDataSource(IDataSource) line: 209	
PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).openDataSource() line: 396	
PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).prepareExecution(IBaseQueryResults, Scriptable) line: 315	


The stack above that point is the same in both cases.

The data source looks like this:
<oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="WMDataSource" id="5">
    <property name="eventHandlerClass">com.infor.wm.reports.birtviewer.DataSourceEventHandler</property>
    <property name="odaDriverClass">net.sourceforge.jtds.jdbc.Driver</property>
    <property name="odaURL">jdbc:jtds:sqlserver://localhost:1433/WMPRD;useLOBs=false</property>
    <property name="odaUser">******</property>
    <encrypted-property name="odaPassword" encryptionID="base64">******</encrypted-property>
</oda-data-source>

Re: Joint data set does not invoke DataSourceEventHandler [message #519615 is a reply to message #519472] Tue, 09 March 2010 08:49 Go to previous messageGo to next message
Eclipse UserFriend
John,

Can you try this in script like the attached example?
Also please log a bug for this.

Jason

<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.20"
id="1">
<property name="createdBy">Eclipse BIRT Designer Version
2.5.1.v20090903 Build &lt;2.5.1.v20090917-1447></property>
<property name="units">in</property>
<property name="iconFile">/templates/blank_report.gif</property>
<property name="bidiLayoutOrientation">ltr</property>
<data-sources>
<oda-data-source
extensionID="org.eclipse.birt.report.data.oda.jdbc" name="Data Source"
id="7">
<text-property name="displayName"></text-property>
<property
name="odaDriverClass">org.eclipse.birt.report.data.oda.sampledb.Driver </property>
<property name="odaURL">jdbc:classicmodels:sampledb</property>
<property name="odaUser">ClassicModels</property>
</oda-data-source>
</data-sources>
<data-sets>
<oda-data-set
extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
name="Data Set" id="8">
<list-property name="columnHints">
<structure>
<property name="columnName">ORDERNUMBER</property>
<text-property
name="displayName">ORDERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">PRODUCTCODE</property>
<text-property
name="displayName">PRODUCTCODE</text-property>
</structure>
<structure>
<property name="columnName">QUANTITYORDERED</property>
<text-property
name="displayName">QUANTITYORDERED</text-property>
</structure>
<structure>
<property name="columnName">PRICEEACH</property>
<text-property
name="displayName">PRICEEACH</text-property>
</structure>
<structure>
<property name="columnName">ORDERLINENUMBER</property>
<text-property
name="displayName">ORDERLINENUMBER</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="dataType">float</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<method name="beforeOpen"><![CDATA[this.queryText = "select
* from orderdetails where ordernumber = 10104";]]></method>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="nativeName">ORDERNUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="nativeName">PRODUCTCODE</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="nativeName">QUANTITYORDERED</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="nativeName">PRICEEACH</property>
<property name="dataType">float</property>
<property name="nativeDataType">8</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="nativeName">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">5</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select *
from orderdetails where ordernumber = 10101]]></xml-property>
<xml-property name="designerValues"><![CDATA[<?xml
version="1.0" encoding="UTF-8"?>
<model:DesignValues
xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design"
xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
<Version>1.0</Version>
<design:ResultSets derivedMetaData="true">
<design:resultSetDefinitions>
<design:resultSetColumns>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERNUMBER</design:name>
<design:position>1</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERNUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERNUMBER</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRODUCTCODE</design:name>
<design:position>2</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>15</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PRODUCTCODE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTCODE</design:label>
<design:formattingHints>
<design:displaySize>15</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>QUANTITYORDERED</design:name>
<design:position>3</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>QUANTITYORDERED</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>QUANTITYORDERED</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRICEEACH</design:name>
<design:position>4</design:position>
<design:nativeDataTypeCode>8</design:nativeDataTypeCode>
<design:precision>15</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PRICEEACH</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRICEEACH</design:label>
<design:formattingHints>
<design:displaySize>22</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERLINENUMBER</design:name>
<design:position>5</design:position>
<design:nativeDataTypeCode>5</design:nativeDataTypeCode>
<design:precision>5</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERLINENUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERLINENUMBER</design:label>
<design:formattingHints>
<design:displaySize>6</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>
]]></xml-property>
</oda-data-set>
<oda-data-set
extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
name="Data Set1" id="9">
<list-property name="columnHints">
<structure>
<property name="columnName">ORDERNUMBER</property>
<text-property
name="displayName">ORDERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">ORDERDATE</property>
<text-property
name="displayName">ORDERDATE</text-property>
</structure>
<structure>
<property name="columnName">REQUIREDDATE</property>
<text-property
name="displayName">REQUIREDDATE</text-property>
</structure>
<structure>
<property name="columnName">SHIPPEDDATE</property>
<text-property
name="displayName">SHIPPEDDATE</text-property>
</structure>
<structure>
<property name="columnName">STATUS</property>
<text-property
name="displayName">STATUS</text-property>
</structure>
<structure>
<property name="columnName">COMMENTS</property>
<text-property
name="displayName">COMMENTS</text-property>
</structure>
<structure>
<property name="columnName">CUSTOMERNUMBER</property>
<text-property
name="displayName">CUSTOMERNUMBER</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">ORDERDATE</property>
<property name="dataType">date</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">REQUIREDDATE</property>
<property name="dataType">date</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">SHIPPEDDATE</property>
<property name="dataType">date</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">STATUS</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">6</property>
<property name="name">COMMENTS</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">7</property>
<property name="name">CUSTOMERNUMBER</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<method name="beforeOpen"><![CDATA[this.queryText = "select
* from orders where ordernumber = 10104";]]></method>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="nativeName">ORDERNUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">ORDERDATE</property>
<property name="nativeName">ORDERDATE</property>
<property name="dataType">date</property>
<property name="nativeDataType">91</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">REQUIREDDATE</property>
<property name="nativeName">REQUIREDDATE</property>
<property name="dataType">date</property>
<property name="nativeDataType">91</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">SHIPPEDDATE</property>
<property name="nativeName">SHIPPEDDATE</property>
<property name="dataType">date</property>
<property name="nativeDataType">91</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">STATUS</property>
<property name="nativeName">STATUS</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">6</property>
<property name="name">COMMENTS</property>
<property name="nativeName">COMMENTS</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">7</property>
<property name="name">CUSTOMERNUMBER</property>
<property name="nativeName">CUSTOMERNUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select *
from orders where ordernumber = 10101]]></xml-property>
<xml-property name="designerValues"><![CDATA[<?xml
version="1.0" encoding="UTF-8"?>
<model:DesignValues
xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design"
xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
<Version>1.0</Version>
<design:ResultSets derivedMetaData="true">
<design:resultSetDefinitions>
<design:resultSetColumns>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERNUMBER</design:name>
<design:position>1</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERNUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERNUMBER</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERDATE</design:name>
<design:position>2</design:position>
<design:nativeDataTypeCode>91</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERDATE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERDATE</design:label>
<design:formattingHints>
<design:displaySize>10</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>REQUIREDDATE</design:name>
<design:position>3</design:position>
<design:nativeDataTypeCode>91</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>REQUIREDDATE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>REQUIREDDATE</design:label>
<design:formattingHints>
<design:displaySize>10</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>SHIPPEDDATE</design:name>
<design:position>4</design:position>
<design:nativeDataTypeCode>91</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>SHIPPEDDATE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>SHIPPEDDATE</design:label>
<design:formattingHints>
<design:displaySize>10</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>STATUS</design:name>
<design:position>5</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>15</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>STATUS</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>STATUS</design:label>
<design:formattingHints>
<design:displaySize>15</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>COMMENTS</design:name>
<design:position>6</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>32700</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>COMMENTS</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>COMMENTS</design:label>
<design:formattingHints>
<design:displaySize>32700</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>CUSTOMERNUMBER</design:name>
<design:position>7</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>CUSTOMERNUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>CUSTOMERNUMBER</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>]]></xml-property>
</oda-data-set>
<joint-data-set name="JDS" id="10">
<list-property name="columnHints">
<structure>
<property name="columnName">Data
Set::QUANTITYORDERED</property>
<property name="alias">QUANTITYORDERED</property>
<text-property name="displayName">Data
Set::QUANTITYORDERED</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::CUSTOMERNUMBER</property>
<property name="alias">CUSTOMERNUMBER</property>
<text-property name="displayName">Data
Set1::CUSTOMERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::ORDERNUMBER</property>
<property name="alias">Data
Set1::ORDERNUMBER</property>
<text-property name="displayName">Data
Set1::ORDERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">Data
Set::PRICEEACH</property>
<property name="alias">PRICEEACH</property>
<text-property name="displayName">Data
Set::PRICEEACH</text-property>
</structure>
<structure>
<property name="columnName">Data
Set::ORDERNUMBER</property>
<property name="alias">Data Set::ORDERNUMBER</property>
<text-property name="displayName">Data
Set::ORDERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">Data
Set::PRODUCTCODE</property>
<property name="alias">PRODUCTCODE</property>
<text-property name="displayName">Data
Set::PRODUCTCODE</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::STATUS</property>
<property name="alias">STATUS</property>
<text-property name="displayName">Data
Set1::STATUS</text-property>
</structure>
<structure>
<property name="columnName">Data
Set::ORDERLINENUMBER</property>
<property name="alias">ORDERLINENUMBER</property>
<text-property name="displayName">Data
Set::ORDERLINENUMBER</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::REQUIREDDATE</property>
<property name="alias">REQUIREDDATE</property>
<text-property name="displayName">Data
Set1::REQUIREDDATE</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::COMMENTS</property>
<property name="alias">COMMENTS</property>
<text-property name="displayName">Data
Set1::COMMENTS</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::ORDERDATE</property>
<property name="alias">ORDERDATE</property>
<text-property name="displayName">Data
Set1::ORDERDATE</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::SHIPPEDDATE</property>
<property name="alias">SHIPPEDDATE</property>
<text-property name="displayName">Data
Set1::SHIPPEDDATE</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">Data
Set::ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="dataType">float</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">6</property>
<property name="name">Data
Set1::ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">7</property>
<property name="name">ORDERDATE</property>
<property name="dataType">date</property>
</structure>
<structure>
<property name="position">8</property>
<property name="name">REQUIREDDATE</property>
<property name="dataType">date</property>
</structure>
<structure>
<property name="position">9</property>
<property name="name">SHIPPEDDATE</property>
<property name="dataType">date</property>
</structure>
<structure>
<property name="position">10</property>
<property name="name">STATUS</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">11</property>
<property name="name">COMMENTS</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">12</property>
<property name="name">CUSTOMERNUMBER</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<simple-property-list name="dataSets">
<value>Data Set</value>
<value>Data Set1</value>
</simple-property-list>
<list-property name="joinConditions">
<structure>
<property name="joinType">full-out</property>
<property name="joinOperator">eq</property>
<property name="leftDataSet">Data Set</property>
<property name="rightDataSet">Data Set1</property>
<expression
name="leftExpression">dataSetRow["ORDERNUMBER"]</expression >
<expression
name="rightExpression">dataSetRow["ORDERNUMBER"]</expression >
</structure>
</list-property>
</joint-data-set>
</data-sets>
<styles>
<style name="report" id="4">
<property name="fontFamily">sans-serif</property>
<property name="fontSize">10pt</property>
</style>
<style name="crosstab" id="5">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="crosstab-cell" id="6">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
</styles>
<page-setup>
<simple-master-page name="Simple MasterPage" id="2">
<page-footer>
<text id="3">
<property name="contentType">html</property>
<text-property
name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property>
</text>
</page-footer>
</simple-master-page>
</page-setup>
</report>



John Sipher wrote:
> I have a DataSourceEventHandler with a beforeOpen() method that updates
> the connection properties (user and password) to point to a specific
> schema depending on the value of a request parameter. This works fine as
> long as the report uses only one table. Reports that use a joint data
> set to join two or more tables fail because the DataSourceEventHandler
> is never invoked.
>
> I've run this in debug with break points set in the event handler's
> beforeOpen method and on the JDBC driver's connect method. The stack
> looks like this when it works correctly (single table).
>
> DataSourceEventHandler.beforeOpen(IDataSourceInstance, IReportContext)
> line: 32
> DataSourceScriptExecutor.handleBeforeOpen(IDataSourceInstanc eHandle)
> line: 87
> OdaDataSourceRuntime(DataSourceRuntime).beforeOpen() line: 245
> PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).dataSou rceBeforeOpen()
> line: 184
> PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).openDat aSource()
> line: 386
> PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).prepare Execution(IBaseQueryResults,
> Scriptable) line: 315
>
>
> When using a joint data set the stack looks like this when it hits the
> driver's connect method (the event handler's breakpoint is skipped)
>
> Driver.connect(String, Properties) line: 175
> JDBCDriverManager$WrappedDriver.connect(String, Properties) line: 1162
> DriverManager.getConnection(String, Properties, ClassLoader) line: 582
> DriverManager.getConnection(String, Properties) line: 154
> JDBCDriverManager.doConnect(String, String, String, Properties,
> Collection<String>) line: 251
> JDBCDriverManager.getConnection(String, String, String, Properties,
> Collection<String>) line: 212
> Connection.connectByUrl(String, Properties) line: 234
> Connection.open(Properties) line: 160
> OdaConnection.open(Properties) line: 238
> ConnectionManager.openConnection(String, Properties, Map) line: 180
> DataSource.newConnection() line: 193
> DataSource.open() line: 181
> OdaDataSourceRuntime(DataSourceRuntime).openOdiDataSource(ID ataSource)
> line: 209
> PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).openDat aSource()
> line: 396
> PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).prepare Execution(IBaseQueryResults,
> Scriptable) line: 315
>
>
> The stack above that point is the same in both cases.
>
> The data source looks like this:
> <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc"
> name="WMDataSource" id="5">
> <property
> name="eventHandlerClass">com.infor.wm.reports.birtviewer.DataSourceEventHandler </property>
>
> <property
> name="odaDriverClass">net.sourceforge.jtds.jdbc.Driver</property >
> <property
> name="odaURL">jdbc:jtds:sqlserver://localhost:1433/WMPRD;useLOBs=false</property>
>
> <property name="odaUser">******</property>
> <encrypted-property name="odaPassword"
> encryptionID="base64">******</encrypted-property>
> </oda-data-source>
>
>
Re: Joint data set does not invoke DataSourceEventHandler [message #519640 is a reply to message #519615] Tue, 09 March 2010 10:04 Go to previous messageGo to next message
Eclipse UserFriend
Bug 305165 has been created.
Re: Joint data set does not invoke DataSourceEventHandler [message #519770 is a reply to message #519640] Tue, 09 March 2010 11:34 Go to previous message
Eclipse UserFriend
Thanks John

John Sipher wrote:
> Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=305165 has been created.
>
Re: Joint data set does not invoke DataSourceEventHandler [message #519771 is a reply to message #519770] Tue, 09 March 2010 11:34 Go to previous message
Eclipse UserFriend
BTW did you try the JavaScript event?

Jason Weathersby wrote:
> Thanks John
>
> John Sipher wrote:
>> Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=305165 has been
>> created.
>>
Previous Topic:Eclipse RCP issue with modal dialog
Next Topic:BIRT install on Windows 7
Goto Forum:
  


Current Time: Fri Jul 04 18:09:11 EDT 2025

Powered by FUDForum. Page generated in 0.05298 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top