<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已经没有了