Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » BIRT » Drill-through with multiple parameter
Drill-through with multiple parameter [message #364500] Mon, 04 August 2008 09:21 Go to next message
Eclipse UserFriend
Originally posted by: loum.xxx.aaa

I'm a BIRT newbie.
When I design a report, I got a problem with drill-through.
In this report, I had some parameters.
Parameter P_IN is a dynamic list, and allow multiple values.
When I set drill-through, it need set Report Parameter and P_IN is needed.
But when run this report and click hyperlink the url is
test.rptdesign&__format=html&P_IN=A100&P_IN=A200 &P_IN=A300&P_TYPE=NEW&__locale=zh_TW&__svg=f alse&__designer=false&__pageoverflow=0&__masterp age=true
There had problem with P_IN, because P_IN have three value and
test.rptdesign will get P_IN just one value is A300.

Have anyone can help me??
Re: Drill-through with multiple parameter [message #364506 is a reply to message #364500] Mon, 04 August 2008 14:02 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: jasonweathersby.alltel.net

Loume,

You can always build your own drill through link. Take a look at this
example. It uses a text element to create a client side script that
contains a link to a detail report. Look at the oncreate for the row
containing the text element that shows how the serverside script creates
the call to the client side link.

Jason


<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.15"
id="1">
<property name="createdBy">Eclipse BIRT Designer Version
2.2.1.r221_v20070924 Build &lt;2.2.0.v20070924-1550></property>
<property name="units">in</property>
<property name="comments">Copyright (c) 2007 &lt;&lt;Your Company
Name here>></property>
<html-property name="description">Creates a blank report with no
predefined content.</html-property>
<method name="beforeFactory"><![CDATA[cn = "";
sd = "";]]></method>
<text-property name="displayName">Blank Report</text-property>
<property name="iconFile">/templates/blank_report.gif</property>
<data-sources>
<oda-data-source
extensionID="org.eclipse.birt.report.data.oda.jdbc" name="Data Source"
id="6">
<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="7">
<list-property name="columnHints">
<structure>
<property name="columnName">ORDERNUMBER</property>
<property name="displayName">ORDERNUMBER</property>
</structure>
<structure>
<property name="columnName">ORDERDATE</property>
<property name="displayName">ORDERDATE</property>
</structure>
<structure>
<property name="columnName">REQUIREDDATE</property>
<property name="displayName">REQUIREDDATE</property>
</structure>
<structure>
<property name="columnName">SHIPPEDDATE</property>
<property name="displayName">SHIPPEDDATE</property>
</structure>
<structure>
<property name="columnName">STATUS</property>
<property name="displayName">STATUS</property>
</structure>
<structure>
<property name="columnName">COMMENTS</property>
<property name="displayName">COMMENTS</property>
</structure>
<structure>
<property name="columnName">CUSTOMERNUMBER</property>
<property name="displayName">CUSTOMERNUMBER</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>
<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>
<property name="queryText">select *
from orders
</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>
</data-sets>
<styles>
<style name="crosstab" id="4">
<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="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="detail" id="72">
<property name="backgroundColor">#FFFF80</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
</style>
<style name="headerfooter" id="73">
<property name="backgroundColor">#004080</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
</style>
<style name="groupheader" id="74">
<property name="backgroundColor">#0080FF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</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>
<body>
<table id="8">
<property name="width">100%</property>
<property name="dataSet">Data Set</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">ORDERNUMBER</property>
<expression
name="expression">dataSetRow["ORDERNUMBER"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">ORDERDATE</property>
<expression
name="expression">dataSetRow["ORDERDATE"]</expression>
<property name="dataType">date</property>
</structure>
<structure>
<property name="name">REQUIREDDATE</property>
<expression
name="expression">dataSetRow["REQUIREDDATE"]</expression >
<property name="dataType">date</property>
</structure>
<structure>
<property name="name">SHIPPEDDATE</property>
<expression
name="expression">dataSetRow["SHIPPEDDATE"]</expression >
<property name="dataType">date</property>
</structure>
<structure>
<property name="name">STATUS</property>
<expression
name="expression">dataSetRow["STATUS"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">COMMENTS</property>
<expression
name="expression">dataSetRow["COMMENTS"]</expression>
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">CUSTOMERNUMBER</property>
<expression
name="expression">dataSetRow["CUSTOMERNUMBER"];</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">Column Binding_1</property>
<expression name="expression">cn</expression>
<property name="dataType">any</property>
</structure>
<structure>
<property name="name">Column Binding</property>
<expression name="expression">cn</expression>
<property name="dataType">any</property>
</structure>
</list-property>
<column id="47"/>
<column id="53"/>
<column id="86"/>
<header>
<row id="9">
<property name="style">headerfooter</property>
<cell id="10">
<label id="11">
<text-property
name="text">ORDERNUMBER</text-property>
</label>
</cell>
<cell id="22">
<label id="23">
<text-property
name="text">CUSTOMERNUMBER</text-property>
</label>
</cell>
<cell id="81"/>
</row>
</header>
<group id="54">
<property name="groupName">NewTableGroup1</property>
<property name="interval">none</property>
<property name="sortDirection">asc</property>
<expression name="keyExpr">row["SHIPPEDDATE"]</expression>
<structure name="toc">
<expression
name="expressionValue">row["SHIPPEDDATE"]</expression>
</structure>
<property name="repeatHeader">true</property>
<property name="hideDetail">false</property>
<property name="pageBreakAfter">auto</property>
<property name="pageBreakBefore">auto</property>
<property name="pageBreakInside">auto</property>
<header>
<row id="55">
<method name="onCreate"><![CDATA[cn =
"";]]></method>
<property name="style">groupheader</property>
<cell id="56">
<data id="71">
<property
name="resultSetColumn">SHIPPEDDATE</property>
</data>
</cell>
<cell id="62"/>
<cell id="82"/>
</row>
</header>
<footer>
<row id="63">
<property name="style">groupheader</property>
<cell id="64"/>
<cell id="70"/>
<cell id="84"/>
</row>
</footer>
</group>
<detail>
<row id="24">
<method name="onCreate"><![CDATA[cn = cn
+"&NewParameter="+
this.getRowData().getColumnValue("CUSTOMERNUMBER");]]></method >
<property name="style">detail</property>
<cell id="25">
<data id="26">
<property
name="resultSetColumn">ORDERNUMBER</property>
</data>
</cell>
<cell id="37">
<data id="38">
<property
name="resultSetColumn">CUSTOMERNUMBER</property>
<structure name="action">
<property
name="linkType">drill-through</property>
<property
name="reportName">MultiSelectParameter.rptdesign</property >
<property
name="targetWindow">_blank</property>
<property
name="targetFileType">report-design</property>
<list-property name="paramBindings">
<structure>
<property
name="paramName">NewParameter</property>
<expression
name="expression">row["CUSTOMERNUMBER"]</expression>
</structure>
</list-property>
</structure>
</data>
</cell>
<cell id="83">
<table id="88">
<property name="width">100%</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">Column
Binding</property>
<expression
name="expression">cn</expression>
<property
name="dataType">any</property>
</structure>
</list-property>
<column id="95"/>
<header>
<row id="89">
<cell id="90"/>
</row>
</header>
<detail>
<row id="91">
<cell id="92"/>
</row>
</detail>
<footer>
<row id="93">
<cell id="94">
<text id="75">
<property
name="contentType">html</property>
<text-property
name="content"><![CDATA[<form name="input" onSubmit="return reloadPage();">
<script type="text/javascript">

function buildURL(pcn){
var strReturn = "";
var mnurl = "";
var rpt = "";
var fwd = -1;
var bwd = -1;
var newrpt = "";
var mycn = "";

mycn = pcn;
//alert( mycn );
var strHref = location.href;
var cnt = strHref.indexOf("?");
if ( cnt > -1 ){
mnurl = strHref.substr(0, cnt+1);
}
rpt = getURLParam("__report");
fwd = rpt.lastIndexOf("/");
bwd = rpt.lastIndexOf("\\");
if( bwd > -1 ){
newrpt = rpt.substr( 0, bwd+1) + "MultiSelectParameter.rptdesign";
//alert(escape(newrpt));
}else if( fwd > -1 ){
newrpt = rpt.substr( 0, fwd+1) + "MultiSelectParameter.rptdesign";
//alert(escape(newrpt));
}

mnurl = mnurl + "__report=" + escape(newrpt)+mycn + "&__overwrite=true";
alert( mnurl );


location.replace(mnurl);
return false;
}




function getURLParam(strParamName){
var strReturn = "";
var strHref = location.href;
if ( strHref.indexOf("?") > -1 ){
var strQueryString =
strHref.substr(strHref.indexOf("?")).toLowerCase();
var aQueryString = strQueryString.split("&");
for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
if (
aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
var aParam = aQueryString[iParam].split("=");
strReturn = aParam[1];
break;
}
}
}
return unescape(strReturn);
}

</script>
</form>


<table width=100%>
<tr>
<td colspan=2><input type="button" value="drill to details this and
above" onEnter = "buildURL('<VALUE-OF>cn;</VALUE-OF>')"
onclick="buildURL('<VALUE-OF>cn;</VALUE-OF>')"></td>
</tr>
</table>
]]></text-property>
</text>
</cell>
</row>
</footer>
</table>
</cell>
</row>
</detail>
<footer>
<row id="39">
<cell id="40"/>
<cell id="46"/>
<cell id="85"/>
</row>
</footer>
</table>
</body>
</report>


loume wrote:
> I'm a BIRT newbie.
> When I design a report, I got a problem with drill-through.
> In this report, I had some parameters.
> Parameter P_IN is a dynamic list, and allow multiple values.
> When I set drill-through, it need set Report Parameter and P_IN is needed.
> But when run this report and click hyperlink the url is
> test.rptdesign&__format=html&P_IN=A100&P_IN=A200 &P_IN=A300&P_TYPE=NEW&__locale=zh_TW&__svg=f alse&__designer=false&__pageoverflow=0&__masterp age=true
>
> There had problem with P_IN, because P_IN have three value and
> test.rptdesign will get P_IN just one value is A300.
>
> Have anyone can help me??
>
Re: Drill-through with multiple parameter [message #364519 is a reply to message #364506] Tue, 05 August 2008 02:09 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: loume.asdf.asdf

Thx Jason.
But my report drill through parameter P_IN need more then one value,
so it can't use your support function to do it.
Because report need get parameter P_IN include two or more values.
Re: Drill-through with multiple parameter [message #364562 is a reply to message #364519] Fri, 08 August 2008 14:06 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: jasonweathersby.alltel.net

Loume,

If you look at the example it does add multiple parameters. It adds one
on every detail row.

Jason

loume wrote:
> Thx Jason.
> But my report drill through parameter P_IN need more then one value,
> so it can't use your support function to do it.
> Because report need get parameter P_IN include two or more values.
>
Re: Drill-through with multiple parameter [message #364770 is a reply to message #364562] Thu, 21 August 2008 09:20 Go to previous message
andreas is currently offline andreasFriend
Messages: 25
Registered: July 2009
Junior Member
Hi loume,
i know this is an older post, but i came across your problem also now.
I managed it in the following way:
In the source report i created a variable where i concatenate the values
of the multi selected values of the report parameter.
I.e.
parameter:
p1
selected values:
v1
v2
v3

in script of report element where the hyperlink is set:
for(i=0;i<p1.length;i++){
param_to_target_report = param_to_target_report + params["p1"].value[i] +
"#"
}
param_to_target_report =
param_to_target_report.substring(0,param_to_target_report.le ngth - 1)

In the hyperlink options you can link the param_to_target_report to the
desired parameter of the target report.

In target report you can split this value and do with it whatever you want.

Hope that helps,
Andreas
Previous Topic:Lines in Crosstab and Table
Next Topic:Birt and EPS
Goto Forum:
  


Current Time: Wed Apr 24 16:57:47 GMT 2024

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

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

Back to the top