【问题标题】:Create datasets with javascript (birt)使用 javascript (birt) 创建数据集
【发布时间】:2012-10-08 13:20:11
【问题描述】:

我想通过将参数传递给报告来按需创建数据集,这些参数是应该查询的文件的名称,以便在报告中获得正确的列和数据,我正在考虑编辑这个。 queryText 属性,其中“this”表示尚未创建的数据集。

有可能吗?如果可以,怎么做?

非常感谢。

【问题讨论】:

    标签: javascript reporting birt


    【解决方案1】:

    您始终可以使用脚本数据集事件适配器来描述它。唯一的问题是报告的内容不会知道这些名称。您将需要编写更多代码来处理这种情况。如果您创建一个空白报表并添加一个脚本数据源和一个没有列的脚本数据集,您可以将事件处理程序设置为类似于以下内容的类:

    package my.event.handlers;
    
    import org.eclipse.birt.report.engine.api.script.IScriptedDataSetMetaData;
    import org.eclipse.birt.report.engine.api.script.IUpdatableDataSetRow;
    import org.eclipse.birt.report.engine.api.script.eventadapter.ScriptedDataSetEventAdapter;
    import org.eclipse.birt.report.engine.api.script.instance.IDataSetInstance;
    
    public class MyScriptedDataSetMeta extends ScriptedDataSetEventAdapter {
    
    private Integer cnt=0;
    private Integer cntT=3;
    
    @Override
    public boolean fetch(IDataSetInstance dataSet, IUpdatableDataSetRow row) {
    
        if( cnt < cntT){
            try{
                row.setColumnValue("col1", cnt);
                row.setColumnValue("col2", "hello");
                row.setColumnValue("A_Column", "jjj");
    
                cnt++;
                return true;
            }catch (Exception e){
    
            }
        }
        return false;
    }
    
    @Override
    public boolean describe(IDataSetInstance dataSet,
            IScriptedDataSetMetaData metaData) {
        // TODO Auto-generated method stub
        metaData.addColumn("col1", Integer.class);
        metaData.addColumn("col2", String.class);
        metaData.addColumn("A_Column", String.class);
    
        return true;
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多