birt-关于dataset中columHint列的添加问题

本文介绍如何在BIRT报表设计中通过代码自动生成数据集和列提示,包括设置数据源、打开和获取数据的脚本,以及如何动态创建列提示以匹配数据列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

			<list-property name="columnHints">
                <structure>
                    <property name="columnName">name</property>
                    <text-property name="displayName">name</text-property>
                </structure>
                <structure>
                    <property name="columnName">phone</property>
                    <text-property name="displayName">phone</text-property>
                </structure>
                <structure>
                    <property name="columnName">assress</property>
                    <text-property name="displayName">address</text-property>
                </structure>
            </list-property>

之前在通过代码生成的rprtdesign文件中一直不知道如在代码中生成这个list,现在在生成dataset代码中加入

void buildDataSet(List<String> cols) throws SemanticException
    {
        ScriptDataSetHandle scHandle = designFactory.newScriptDataSet( "sc");
        scHandle.setDataSource( "Data source" );
        scHandle.setOpen("\n" +
                "count=0;\n" +
                "uf=new Packages.com.envision.birt.deapi.service.UserFactory();\n" +
                "users=uf.createUser();");
        scHandle.setFetch("if(count<users.size()){\n" +
                "    row[\"name\"]=users.get(count).getName();\n" +
                "    row[\"phone\"]=users.get(count).getPhone();\n" +
                "    row[\"address\"]=users.get(count).getAddress();\n" +
                "    count++;\n" +
                "    return true;\n" +
                "}\n" +
                "return false;");
        scHandle.setClose("us=null;\n" +
                "users=null;");
/**begin**/
        PropertyHandle computedSet = scHandle.getPropertyHandle( IDataSetModel.COLUMN_HINTS_PROP );
        ColumnHint cs1 = null;
        for(int i = 0; i < cols.size(); i++){
            cs1 = StructureFactory.createColumnHint();
            cs1.setProperty("columnName",(String)cols.get(i));
            cs1.setProperty("displayName",(String)cols.get(i));

            computedSet.addItem(cs1);
        }
/**end**/
        designHandle.getDataSets( ).add( scHandle );
  }

因为之前的setColumnName已经没有了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值