Problems with DATASETS - Urgent :/ [message #368313] |
Wed, 20 May 2009 13:04  |
Eclipse User |
|
|
|
Hi,
In database i had:
Article 1 > Prices: 10, 20, 30
Article 2 > Prices: 500, 600, 700
Iam using Datanucleus.
In Report i had this datasets:
+Articles (dataset#1)
openMethod : iterate_article = article.iterator();
fetchMethod : if (!iterate_article.hasNext()) return false;
article = iterate_article.next();
row["code"] = article.code();
(....)
return true;
+Prices (dataset #2)
openMethod: iterate_prices = article.getPrices().iterator();
fetchMethod: if (!iterate_prices.hasNext()) return false;
price = iterate_prices.next();
row["price"] = price.getValue();
return false;
In Layout i create a Table (with dataset#1) with two details rows. At
first row i put the fields of dataset #1, in second row details i add a
Table (with dataset#2).
When i render the report, appears like this:
| Code | Description |
1 Article 1
|Price|
500
600
700
| Code | Description |
2 Article 2
|Price|
500
600
700
All articles assumes the price's of the LAST article! Why? Can u Help me
please?
In report should appear:
| Code | Description |
1 Article 1
|Price|
10
20
30
| Code | Description |
2 Article 2
|Price|
500
600
700
Thanks!
|
|
|
Re: Problems with DATASETS - Urgent :/ [message #368321 is a reply to message #368313] |
Wed, 20 May 2009 13:54   |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.alltel.net
Sergio,
Parameterize the inner dataset. Take a look at this example.
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 <2.2.0.v20070924-1550></property>
<property name="units">in</property>
<property name="comments">Copyright (c) 2006 <<Your Company
Name here>></property>
<method name="initialize"><![CDATA[importPackage( Packages.java.util );
importPackage( Packages.java.lang );
var outerMap = new Hashtable();
var innerMap = new Hashtable();
for ( i=0; i<10; i++ ){
var mystring = "Outerrow_" + i;
var myinnerstring = "Innerrow_" + i;
outerMap.put(i, mystring);
innerMap.put( mystring, myinnerstring );
}
reportContext.setPersistentGlobalVariable("outerMap", outerMap);
reportContext.setPersistentGlobalVariable("innerMap", innerMap);]]></method>
<data-sources>
<script-data-source name="Data Source" id="4"/>
</data-sources>
<data-sets>
<script-data-set name="outer" id="5">
<list-property name="resultSetHints">
<structure>
<property name="position">0</property>
<property name="name">outtercol</property>
<property name="dataType">string</property>
</structure>
</list-property>
<list-property name="columnHints">
<structure>
<property name="columnName">outtercol</property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">outtercol</property>
<property name="dataType">string</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<method name="open"><![CDATA[hMap =
reportContext.getPersistentGlobalVariable("outerMap");
iter = hMap.entrySet().iterator();]]></method>
<method name="fetch"><![CDATA[if( iter.hasNext() ){
myObject = iter.next();
row["outtercol"] = myObject.getValue().toString();
return true;
}else{
return false;
}]]></method>
</script-data-set>
<script-data-set name="inner" id="6">
<list-property name="resultSetHints">
<structure>
<property name="position">0</property>
<property name="name">innercol</property>
<property name="dataType">string</property>
</structure>
</list-property>
<list-property name="columnHints">
<structure>
<property name="columnName">innercol</property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">innercol</property>
<property name="dataType">string</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<list-property name="parameters">
<structure>
<property name="name">innerparm</property>
<property name="dataType">string</property>
<property name="position">1</property>
<expression name="defaultValue">testkey</expression>
<property name="isInput">true</property>
<property name="isOutput">true</property>
</structure>
</list-property>
<method name="open"><![CDATA[i = 0;
jj = inputParams["innerparm"];]]></method>
<method name="fetch"><![CDATA[iMap =
reportContext.getPersistentGlobalVariable("innerMap");
inObj = iMap.get(jj);
if( i > 0 )return false;
if( inObj != null ){
row["innercol"] = inObj.toString();
}
i++
return true;]]></method>
</script-data-set>
</data-sets>
<styles>
<style name="detail" id="54">
<property name="backgroundColor">#BACAE2</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="headerfooter" id="55">
<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="56">
<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 name="myoutertable" id="7">
<property name="width">100%</property>
<property name="dataSet">outer</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">outtercol</property>
<expression
name="expression">dataSetRow["outtercol"]</expression>
<property name="dataType">string</property>
</structure>
</list-property>
<column id="16"/>
<column id="20"/>
<header>
<row id="8">
<property name="style">headerfooter</property>
<cell id="9">
<label id="10">
<text-property
name="text">OuterDSCol</text-property>
</label>
</cell>
<cell id="17"/>
</row>
</header>
<detail>
<row id="11">
<property name="style">detail</property>
<cell id="12">
<data id="13">
<property
name="resultSetColumn">outtercol</property>
</data>
</cell>
<cell id="18">
<table name="innertable" id="21">
<property name="width">100%</property>
<property name="dataSet">inner</property>
<list-property name="paramBindings">
<structure>
<property
name="paramName">innerparm</property>
<expression
name="expression">row["outtercol"]</expression>
</structure>
</list-property>
<list-property name="boundDataColumns">
<structure>
<property
name="name">innercol</property>
<expression
name="expression">dataSetRow["innercol"]</expression>
<property
name="dataType">string</property>
</structure>
<structure>
<property name="name">Column
Binding</property>
<expression
name="expression">row._outer[row.__rownum]</expression>
<property
name="dataType">any</property>
</structure>
</list-property>
<expression
name="bookmark">"innertableforrow"+row._outer[row.__rownum] </expression>
<column id="59"/>
<column id="30"/>
<header>
<row id="22">
<cell id="57"/>
<cell id="23">
<label id="24">
<text-property
name="text">InnerDataSetCol</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="25">
<property
name="style">groupheader</property>
<cell id="58">
<data id="60">
<property
name="resultSetColumn">Column Binding</property>
</data>
</cell>
<cell id="26">
<data id="27">
<property
name="resultSetColumn">innercol</property>
</data>
</cell>
</row>
</detail>
</table>
</cell>
</row>
</detail>
<footer>
<row id="14">
<property name="style">headerfooter</property>
<cell id="15"/>
<cell id="19"/>
</row>
</footer>
</table>
</body>
</report>
Sergio Gomes wrote:
> Hi,
>
> In database i had:
>
> Article 1 > Prices: 10�, 20�, 30�
> Article 2 > Prices: 500�, 600�, 700�
>
> Iam using Datanucleus.
>
> In Report i had this datasets:
>
> +Articles (dataset#1)
> openMethod : iterate_article = article.iterator();
> fetchMethod : if (!iterate_article.hasNext()) return false;
> article = iterate_article.next();
> row["code"] = article.code();
> (....)
> return true;
>
>
> +Prices (dataset #2)
> openMethod: iterate_prices = article.getPrices().iterator();
> fetchMethod: if (!iterate_prices.hasNext()) return false;
> price = iterate_prices.next();
> row["price"] = price.getValue();
> return false;
>
>
> In Layout i create a Table (with dataset#1) with two details rows. At
> first row i put the fields of dataset #1, in second row details i add a
> Table (with dataset#2).
>
>
>
> When i render the report, appears like this:
>
> | Code | Description |
> 1 Article 1
> |Price|
> 500 600
> 700
> | Code | Description |
> 2 Article 2
> |Price|
> 500
> 600
> 700
>
>
> All articles assumes the price's of the LAST article! Why? Can u Help me
> please?
>
> In report should appear:
>
> | Code | Description |
> 1 Article 1
> |Price|
> 10
> 20
> 30
> | Code | Description |
> 2 Article 2
> |Price|
> 500
> 600
> 700
>
>
> Thanks!
>
>
>
>
>
>
>
>
>
|
|
|
|
|
|
Re: Problems with DATASETS - Urgent :/ [message #368367 is a reply to message #368352] |
Tue, 26 May 2009 10:29   |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.windstream.net
Sergio,
Take a look at this simple example:
package DEAPI;
import java.io.File;
import java.io.IOException;
import org.eclipse.birt.core.framework.Platform;
import org.eclipse.birt.report.model.api.CellHandle;
import org.eclipse.birt.report.model.api.DataItemHandle;
import org.eclipse.birt.report.model.api.DesignConfig;
import org.eclipse.birt.report.model.api.DesignElementHandle;
import org.eclipse.birt.report.model.api.DesignEngine;
import org.eclipse.birt.report.model.api.ElementFactory;
import org.eclipse.birt.report.model.api.IDesignEngine;
import org.eclipse.birt.report.model.api.IDesignEngineFactory;
import org.eclipse.birt.report.model.api.LabelHandle;
import org.eclipse.birt.report.model.api.PropertyHandle;
import org.eclipse.birt.report.model.api.ReportDesignHandle;
import org.eclipse.birt.report.model.api.RowHandle;
import org.eclipse.birt.report.model.api.OdaDataSetHandle;
import org.eclipse.birt.report.model.api.OdaDataSourceHandle;
import org.eclipse.birt.report.model.api.SessionHandle;
import org.eclipse.birt.report.model.api.StructureFactory;
import org.eclipse.birt.report.model.api.StyleHandle;
import org.eclipse.birt.report.model.api.TableGroupHandle;
import org.eclipse.birt.report.model.api.TableHandle;
import org.eclipse.birt.report.model.api.ColumnHandle;
import org.eclipse.birt.report.model.api.activity.SemanticException ;
import org.eclipse.birt.report.model.api.command.ContentException;
import org.eclipse.birt.report.model.api.command.NameException;
import org.eclipse.birt.report.model.api.elements.DesignChoiceConst ants;
import org.eclipse.birt.report.model.api.elements.structures.Comput edColumn;
import org.eclipse.birt.report.model.api.metadata.IMetaDataDictiona ry;
import org.eclipse.birt.report.model.elements.interfaces.IReportIte mModel;
import org.eclipse.birt.report.model.elements.interfaces.IStyleMode l;
import org.eclipse.birt.report.model.api.ScriptDataSetHandle;
import org.eclipse.birt.report.model.api.ScriptDataSourceHandle;
import com.ibm.icu.util.ULocale;
import
org.eclipse.birt.report.model.api.elements.structures.Result SetColumn;
import java.util.Iterator;
import java.util.List;
import org.eclipse.birt.report.model.api.DataSetHandle;
public class ScriptedDS
{
ReportDesignHandle reportDesignHandle = null;
ElementFactory elementFactory = null;
IMetaDataDictionary dict = null;
ComputedColumn cs1, cs2, cs3, cs4, cs5 = null;
public static void main( String[] args ) throws SemanticException,
IOException
{
new ScriptedDS( ).createReport( );
}
void createReport( ) throws SemanticException, IOException
{
//Configure the Engine and start the Platform
DesignConfig config = new DesignConfig( );
config.setBIRTHome("C:/birt/birt-runtime-2_3_2/birt-runtime-2_3_2/ReportEngine ");
IDesignEngine engine = null;
try{
Platform.startup( config );
IDesignEngineFactory factory = (IDesignEngineFactory) Platform
.createFactoryObject(
IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY );
engine = factory.createDesignEngine( config );
}catch( Exception ex){
ex.printStackTrace();
}
SessionHandle session = engine.newSessionHandle( ULocale.ENGLISH ) ;
// Create a new report
reportDesignHandle = session.createDesign( );
// Element factory is used to create instances of BIRT elements.
elementFactory = reportDesignHandle.getElementFactory( );
dict = new DesignEngine( null ).getMetaData( );
createMasterPages( );
createDataSources( );
createDataSets( );
createBody( );
reportDesignHandle.saveAs("output/desample/SDS.rptdesign"
);//$NON-NLS-1$//$NON-NLS-2$
reportDesignHandle.close();
System.out.println("finished");
Platform.shutdown();
}
//Scripted Data Set
private void createDataSources( ) throws SemanticException
{
ScriptDataSourceHandle dataSourceHandle =
elementFactory.newScriptDataSource( "Data Source" );
reportDesignHandle.getDataSources( ).add( dataSourceHandle );
}
private void createDataSets( ) throws SemanticException
{
ScriptDataSetHandle dataSetHandle = elementFactory.newScriptDataSet(
"Data Set" );//$NON-NLS-1$
dataSetHandle.setDataSource( "Data Source" );//$NON-NLS-1$
// Set open( ) in code
dataSetHandle.setOpen( "i=0;"
);
// Set fetch( ) in code
dataSetHandle.setFetch( "if ( i < 20 ){"
+ "row[\"Month\"] = 1;"
+ "row[\"Product\"] = 'My Product' + parseInt(i/3);"
+ "row[\"Amount\"] = i;"
+ "i++;"
+ "return true;}" + "else return false;" );
PropertyHandle computedSet =
dataSetHandle.getPropertyHandle(ScriptDataSetHandle.RESULT_S ET_PROP);
// Since this is a Scripted Data Source you need to tell the
// DataSet what the columns are. For this example, we will just
// hard code the known resultColumn values
ResultSetColumn resultColumn = StructureFactory.createResultSetColumn();
resultColumn.setPosition(1);
resultColumn.setColumnName("Month");
resultColumn.setDataType("integer");
computedSet.addItem(resultColumn);
resultColumn = StructureFactory.createResultSetColumn();
resultColumn.setPosition(2);
resultColumn.setColumnName("Product");
resultColumn.setDataType("string");
computedSet.addItem(resultColumn);
resultColumn = StructureFactory.createResultSetColumn();
resultColumn.setPosition(3);
resultColumn.setColumnName("Amount");
resultColumn.setDataType("integer");
computedSet.addItem(resultColumn);
reportDesignHandle.getDataSets( ).add( dataSetHandle );
}
private void createMasterPages( ) throws ContentException, NameException
{
DesignElementHandle simpleMasterPage =
elementFactory.newSimpleMasterPage( "Master Page" );//$NON-NLS-1$
reportDesignHandle.getMasterPages( ).add( simpleMasterPage );
}
private void createBody( ) throws SemanticException
{
TableHandle table = elementFactory.newTableItem( null, 3, 1, 1, 1 );
table.setProperty( IStyleModel.TEXT_ALIGN_PROP,
DesignChoiceConstants.TEXT_ALIGN_CENTER );
table.setWidth( "80%" );//$NON-NLS-1$
table.setProperty( IReportItemModel.DATA_SET_PROP, "Data Set"
);//$NON-NLS-1$
ColumnHandle ch = (ColumnHandle)table.getColumns().get(0);
//ch.setProperty("Width", "3in");
ch.getWidth().setStringValue("3in");
// bind the data set columns to the table
DataSetHandle dataSetHandle = (DataSetHandle)
reportDesignHandle.getDataSets().get(0);
List resultSetCols =
dataSetHandle.getListProperty(DataSetHandle.RESULT_SET_PROP) ;
PropertyHandle boundCols = table.getColumnBindings();
for (Iterator iterator = resultSetCols.iterator(); iterator.hasNext();) {
ResultSetColumn rsHandle = (ResultSetColumn) iterator.next();
ComputedColumn col = StructureFactory.createComputedColumn();
col.setName(rsHandle.getColumnName());
col.setExpression("dataSetRow[\"" + rsHandle.getColumnName() + "\"]");
boundCols.addItem(col);
}
// Header
RowHandle header = (RowHandle) table.getHeader( ).get( 0 );
CellHandle tcell = (CellHandle) header.getCells( ).get( 0 );
tcell.getWidth().setStringValue("3in");
LabelHandle label = elementFactory.newLabel( null );
label.setText( "Order" );//$NON-NLS-1$
tcell.getContent( ).add( label );
tcell = (CellHandle) header.getCells( ).get( 1 );
label = elementFactory.newLabel( null );
label.setText( "Product" );//$NON-NLS-1$
tcell.getContent( ).add( label );
tcell = (CellHandle) header.getCells( ).get( 2 );
label = elementFactory.newLabel( null );
label.setText( "Amount" );//$NON-NLS-1$
tcell.getContent( ).add( label );
RowHandle detail = (RowHandle) table.getDetail( ).get( 0 );
DataItemHandle data = elementFactory.newDataItem( null );
tcell = (CellHandle) detail.getCells( ).get( 1 );
data = elementFactory.newDataItem( null );
data.setResultSetColumn("Product");
tcell.getContent( ).add( data );
tcell = (CellHandle) detail.getCells( ).get( 2 );
data = elementFactory.newDataItem( null );
data.setResultSetColumn( "Amount" );
tcell.getContent( ).add( data );
reportDesignHandle.getBody( ).add( table );
}
}
Jason
Sergio Gomes wrote:
> Hi,
>
> Thanks Jason for your help!
>
> It works! =)
>
> Now i Have to found, how to crete this Binding Parameter programatly..
> Something like this...
>
> scriptDataSet = factory.newScriptDataSet("articles");
> scriptDataSet.setDataSource(BirtVARS.parameters_datasource);
> scriptDataSet.setOpen(openMethod);
> scriptDataSet.setFetch(fetchMethod);
>
>
>
>
>
|
|
|
|
|
|
|
|
Re: Problems with DATASETS - Urgent :/ [message #368425 is a reply to message #368417] |
Thu, 28 May 2009 11:51  |
Eclipse User |
|
|
|
Originally posted by: jasonweathersby.windstream.net
Sergio,
That code was showing you the problem with using global variables in the
same table. I should have made that clearer. The only way I know to do
it is to add a hidden table to pre-calculate the values. See attached.
You may also want to look at adding a joint dataset.
Jason
<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.17"
id="1">
<property name="createdBy">Eclipse BIRT Designer Version
2.3.2.r232_20090202 Build <2.3.2.v20090218-0730></property>
<property name="units">in</property>
<property name="comments">Copyright (c) 2006 <<Your Company
Name here>></property>
<method name="beforeFactory"><![CDATA[myArray = [];
ctr=0;
rctr=0;]]></method>
<data-sources>
<script-data-source name="Data Source" id="4"/>
</data-sources>
<data-sets>
<script-data-set name="outer" id="5">
<list-property name="resultSetHints">
<structure>
<property name="position">1</property>
<property name="name">c1</property>
<property name="dataType">integer</property>
</structure>
</list-property>
<list-property name="columnHints">
<structure>
<property name="columnName">c1</property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">c1</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<method name="open"><![CDATA[i=0;]]></method>
<method name="fetch"><![CDATA[if (i++ >10)
return false;
else {
row.c1=i;
return true;
}]]></method>
</script-data-set>
<script-data-set name="inner" id="6">
<list-property name="resultSetHints">
<structure>
<property name="position">1</property>
<property name="name">c2</property>
<property name="dataType">integer</property>
</structure>
</list-property>
<list-property name="columnHints">
<structure>
<property name="columnName">c2</property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">c2</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<list-property name="parameters">
<structure>
<property name="name">startval</property>
<property name="dataType">integer</property>
<property name="position">1</property>
<expression name="defaultValue">1</expression>
<property name="isInput">true</property>
</structure>
</list-property>
<method name="open"><![CDATA[j =
inputParams["startval"];]]></method>
<method name="fetch"><![CDATA[if (j ++ >=6)
return false;
else {
row.c2=j;
return true;
}]]></method>
</script-data-set>
</data-sets>
<styles>
<style name="table-header" id="37">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-footer" id="38">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-detail" id="39">
<property name="backgroundColor">#E6ECFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-group-header-1" id="40">
<property name="backgroundColor">#809FFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-group-footer-1" id="41">
<property name="backgroundColor">#809FFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="special-header" id="42">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">medium</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="crosstab-detail" id="43">
<property name="backgroundColor">#E6ECFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="crosstab-header" id="44">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</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="7">
<property name="width">100%</property>
<property name="dataSet">outer</property>
<list-property name="visibility">
<structure>
<property name="format">all</property>
<expression name="valueExpr">true</expression>
</structure>
</list-property>
<list-property name="boundDataColumns">
<structure>
<property name="name">c1</property>
<expression
name="expression">dataSetRow["c1"]</expression>
<property name="dataType">integer</property>
</structure>
</list-property>
<property name="pageBreakInterval">50</property>
<column id="20"/>
<column id="22"/>
<header>
<row id="8">
<cell id="9">
<label id="23">
<text-property name="text">c1</text-property>
</label>
</cell>
<cell id="11"/>
</row>
</header>
<detail>
<row id="12">
<cell id="13">
<data id="24">
<property name="resultSetColumn">c1</property>
</data>
</cell>
<cell id="15">
<table id="25">
<property name="width">100%</property>
<property name="dataSet">inner</property>
<list-property name="paramBindings">
<structure>
<property
name="paramName">startval</property>
<expression
name="expression">row["c1"]</expression>
</structure>
</list-property>
<list-property name="boundDataColumns">
<structure>
<property name="name">c2</property>
<expression
name="expression">myArray[ctr] = dataSetRow["c2"]+row._outer["c1"];
ctr++;
dataSetRow["c2"];</expression>
<property
name="dataType">integer</property>
</structure>
<structure>
<property name="name">Column
Binding</property>
<expression
name="expression">row._outer[row.__rownum]</expression>
<property
name="dataType">string</property>
</structure>
</list-property>
<property
name="pageBreakInterval">50</property>
<column id="32"/>
<header>
<row id="26">
<cell id="27">
<label id="35">
<text-property
name="text">c2</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="28">
<cell id="29">
<data id="36">
<property
name="resultSetColumn">c2</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="30">
<cell id="31"/>
</row>
</footer>
</table>
</cell>
</row>
</detail>
<footer>
<row id="16">
<cell id="17"/>
<cell id="19"/>
</row>
</footer>
</table>
<table id="55">
<property name="width">100%</property>
<property name="dataSet">outer</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">c1</property>
<expression
name="expression">dataSetRow["c1"]</expression>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">Column Binding</property>
<expression name="expression">var rtn =myArray[rctr];
rctr++;
rtn;</expression>
<property name="dataType">integer</property>
</structure>
</list-property>
<property name="pageBreakInterval">50</property>
<column id="77"/>
<column id="78"/>
<column id="82"/>
<header>
<row id="56">
<cell id="57">
<label id="58">
<text-property name="text">c1</text-property>
</label>
</cell>
<cell id="59"/>
<cell id="79">
<label id="83">
<text-property
name="text">combination</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="60">
<cell id="61">
<data id="62">
<property name="resultSetColumn">c1</property>
</data>
</cell>
<cell id="63">
<table id="64">
<property name="width">100%</property>
<property name="dataSet">inner</property>
<list-property name="paramBindings">
<structure>
<property
name="paramName">startval</property>
<expression
name="expression">row["c1"]</expression>
</structure>
</list-property>
<list-property name="boundDataColumns">
<structure>
<property name="name">c2</property>
<expression
name="expression">myArray[ctr] = dataSetRow["c2"]*row._outer["c1"];
ctr++;
dataSetRow["c2"];</expression>
<property
name="dataType">integer</property>
</structure>
<structure>
<property name="name">Column
Binding</property>
<expression
name="expression">row._outer[row.__rownum]</expression>
<property
name="dataType">string</property>
</structure>
</list-property>
<property
name="pageBreakInterval">50</property>
<column id="73"/>
<header>
<row id="65">
<cell id="66">
<label id="67">
<text-property
name="text">c2</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="68">
<cell id="69">
<data id="70">
<property
name="resultSetColumn">c2</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="71">
<cell id="72"/>
</row>
</footer>
</table>
</cell>
<cell id="80">
<data id="84">
<property name="resultSetColumn">Column
Binding</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="74">
<cell id="75"/>
<cell id="76"/>
<cell id="81"/>
</row>
</footer>
</table>
</body>
</report>
Sergio Gomes wrote:
> Hi Jason,
>
> i tryed your example but i have this problem:
>
> in Database i had:
>
> Code Description Stock Price
>
> 1 A 0 10
> 2 B 0 20
>
> i followed your example, but in report appears:
>
> Code Description Stock Price(Table) ColumnBinding
>
> 1 A 0 10 20
> 2 B 0 20 10
>
>
> Can u see my xml to suggest me something?
>
> It's really important for me solve this problem :/
>
>
> Thanks
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.17"
> id="1">
> <property name="author">Projecto Colibri ***BETA***</property>
> <property name="createdBy">Eclipse BIRT Designer Version
> 2.3.2.r232_20090202 Build <2.3.2.v20090218-0730></property>
> <property name="units">mm</property>
> <html-property name="description">Projecto Colibri
> ***BETA***</html-property>
> <method name="initialize"><![CDATA[importPackage( Packages.java.util );
> importPackage( Packages.java.lang );
> importPackage( Packages.rcpcolibri.dao.model );
>
> var hashmap = new Hashtable();
>
> iterate = artigos.iterator();
> while( iterate.hasNext() ){
> object = iterate.next();
> var key = object.getCodigo();
> hashmap.put(key, object);
> }
>
> reportContext.setPersistentGlobalVariable("hashmap", hashmap);
> ]]></method>
> <parameters>
> <scalar-parameter name="Nome" id="11">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Morada" id="12">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Localidade" id="13">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Código Postal" id="14">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="NIF" id="15">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Telefone" id="16">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Telefone 2" id="17">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Telemóvel" id="18">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Fax" id="19">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="URL" id="20">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="E-mail" id="21">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Capital Social" id="22">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Conservatória" id="23">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Nome do Projecto" id="24">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Versão do Projecto" id="25">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Título do Relatório" id="26">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Entidade do Relatório" id="27">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Vias do Relatório" id="28">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Filtro do Relatório" id="29">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Data Inicial" id="30">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> <scalar-parameter name="Data Final" id="31">
> <property name="valueType">static</property>
> <property name="dataType">string</property>
> <property name="isRequired">false</property>
> </scalar-parameter>
> </parameters>
> <data-sources>
> <script-data-source name="RCPColibriBD" id="5"/>
> </data-sources>
> <data-sets>
> <script-data-set name="d1-artigos" id="6">
> <list-property name="resultSetHints">
> <structure>
> <property name="position">1</property>
> <property name="name">d1-1</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">2</property>
> <property name="name">d1-2</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">3</property>
> <property name="name">d1-3</property>
> <property name="dataType">date</property>
> </structure>
> <structure>
> <property name="position">4</property>
> <property name="name">d1-4</property>
> <property name="dataType">date</property>
> </structure>
> <structure>
> <property name="position">5</property>
> <property name="name">d1-5</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">6</property>
> <property name="name">d1-6</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">7</property>
> <property name="name">d1-7</property>
> <property name="dataType">decimal</property>
> </structure>
> <structure>
> <property name="position">8</property>
> <property name="name">d1-8</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">9</property>
> <property name="name">d1-9</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">10</property>
> <property name="name">d1-10</property>
> <property name="dataType">blob</property>
> </structure>
> <structure>
> <property name="position">11</property>
> <property name="name">d1-11</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">12</property>
> <property name="name">d1-12</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">13</property>
> <property name="name">d1-13</property>
> <property name="dataType">decimal</property>
> </structure>
> <structure>
> <property name="position">14</property>
> <property name="name">d1-14</property>
> <property name="dataType">decimal</property>
> </structure>
> <structure>
> <property name="position">15</property>
> <property name="name">d1-15</property>
> <property name="dataType">decimal</property>
> </structure>
> <structure>
> <property name="position">16</property>
> <property name="name">d1-16</property>
> <property name="dataType">decimal</property>
> </structure>
> <structure>
> <property name="position">17</property>
> <property name="name">d1-17</property>
> <property name="dataType">decimal</property>
> </structure>
> <structure>
> <property name="position">18</property>
> <property name="name">d1-18</property>
> <property name="dataType">decimal</property>
> </structure>
> <structure>
> <property name="position">19</property>
> <property name="name">d1-19</property>
> <property name="dataType">decimal</property>
> </structure>
> <structure>
> <property name="position">20</property>
> <property name="name">d1-20</property>
> <property name="dataType">decimal</property>
> </structure>
> <structure>
> <property name="position">21</property>
> <property name="name">d1-21</property>
> <property name="dataType">decimal</property>
> </structure>
> <structure>
> <property name="position">22</property>
> <property name="name">d1-22</property>
> <property name="dataType">decimal</property>
> </structure>
> <structure>
> <property name="position">23</property>
> <property name="name">d1-23</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">24</property>
> <property name="name">d1-24</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">25</property>
> <property name="name">d1-25</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">26</property>
> <property name="name">d1-26</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">27</property>
> <property name="name">d1-27</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">28</property>
> <property name="name">d1-28</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">29</property>
> <property name="name">d1-29</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">30</property>
> <property name="name">d1-30</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">31</property>
> <property name="name">d1-31</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">32</property>
> <property name="name">d1-32</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">33</property>
> <property name="name">d1-33</property>
> <property name="dataType">decimal</property>
> </structure>
> <structure>
> <property name="position">34</property>
> <property name="name">d1-34</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">35</property>
> <property name="name">d1-35</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">36</property>
> <property name="name">d1-36</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">37</property>
> <property name="name">d1-37</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">38</property>
> <property name="name">d1-38</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">39</property>
> <property name="name">d1-39</property>
> <property name="dataType">integer</property>
> </structure>
> <structure>
> <property name="position">40</property>
> <property name="name">d1-40</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">41</property>
> <property name="name">d1-41</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">42</property>
> <property name="name">d1-42</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">43</property>
> <property name="name">d1-43</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">44</property>
> <property name="name">d1-44</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">45</property>
> <property name="name">d1-45</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">46</property>
> <property name="name">d1-46</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">47</property>
> <property name="name">d1-47</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">48</property>
> <property name="name">d1-48</property>
> <property name="dataType">string</property>
> </structure>
> <structure>
> <property name="position">49</property>
> <property name="name">d1-49</property>
> <property name="dataType">decimal</property>
> </structure>
> </list-property>
> <list-property name="columnHints">
> <structure>
> <property name="columnName">d1-1</property>
> <property name="displayName">Botão</property>
> </structure>
> <structure>
> <property name="columnName">d1-2</property>
> <property name="displayName">Código</property>
> </structure>
> <structure>
> <property name="columnName">d1-3</property>
> <property name="displayName">Data Alteração</property>
> </structure>
> <structure>
> <property name="columnName">d1-4</property>
> <property name="displayName">Data Criação</property>
> </structure>
> <structure>
> <property name="columnName">d1-5</property>
> <property name="displayName">Descrição</property>
> </structure>
> <structure>
> <property name="columnName">d1-6</property>
> <property name="displayName">Descrição
> abreviada</property>
> </structure>
> <structure>
> <property name="columnName">d1-7</property>
> <property name="displayName">Entradas</property>
> </structure>
> <structure>
> <property name="columnName">d1-8</property>
> <property name="displayName">Estado</property>
> </structure>
> <structure>
> <property name="columnName">d1-9</property>
> <property name="displayName">Gestão de Stock</property>
> </structure>
> <structure>
> <property name="columnName">d1-10</property>
> <property name="displayName">Imagem</property>
> </structure>
> <structure>
> <property name="columnName">d1-11</property>
> <property name="displayName">Intrastat</property>
> </structure>
> <structure>
> <property name="columnName">d1-12</property>
> <property name="displayName">Observações</property>
> </structure>
> <structure>
> <property name="columnName">d1-13</property>
> <property name="displayName">Preço Custo
> Médio</property>
> </structure>
> <structure>
> <property name="columnName">d1-14</property>
> <property name="displayName">Ultimo Preço
> Custo</property>
> </structure>
> <structure>
> <property name="columnName">d1-15</property>
> <property name="displayName">Ultimo Preço
> Venda</property>
> </structure>
> <structure>
> <property name="columnName">d1-16</property>
> <property name="displayName">Saídas</property>
> </structure>
> <structure>
> <property name="columnName">d1-17</property>
> <property name="displayName">Stock
> Encomendado</property>
> </structure>
> <structure>
> <property name="columnName">d1-18</property>
> <property name="displayName">Stock Exterior</property>
> </structure>
> <structure>
> <property name="columnName">d1-19</property>
> <property name="displayName">Stock Mínimo</property>
> </structure>
> <structure>
> <property name="columnName">d1-20</property>
> <property name="displayName">Stock Previsto</property>
> </structure>
> <structure>
> <property name="columnName">d1-21</property>
> <property name="displayName">Stock Real</property>
> </structure>
> <structure>
> <property name="columnName">d1-22</property>
> <property name="displayName">Stock Reservado</property>
> </structure>
> <structure>
> <property name="columnName">d1-23</property>
> <property name="displayName">Tipo</property>
> </structure>
> <structure>
> <property name="columnName">d1-24</property>
> <property name="displayName">Autor - Checksum</property>
> </structure>
> <structure>
> <property name="columnName">d1-25</property>
> <property name="displayName">Autor - Estado</property>
> </structure>
> <structure>
> <property name="columnName">d1-26</property>
> <property name="displayName">Autor - Nome</property>
> </structure>
> <structure>
> <property name="columnName">d1-27</property>
> <property name="displayName">Autor - Password</property>
> </structure>
> <structure>
|
|
|
Powered by
FUDForum. Page generated in 0.06275 seconds