集智平台复杂报表设计之内建数据集

如果报表的数据来源比较特殊,需要程序员自己处理,可以采用自定义数据集的方式,此时选择数据集的类型为自定义,然后在编辑界面中输入类名和需要用到的参数。

举例:创建一个学生成绩的自定义数据集。

1.在添加数据集的窗口中输入数据集名称后点击“自定义数据集”图标,系统会自动跳到“自定义数据集”数据集创建窗口。

注意:数据集名不能为纯数字。


2.在数据集类名编辑框中输入数据集类名,该类应该由程序员自己实现,实现报表提供的一个接口IDataSetFactory,

IDataSetFactory接口只定义了一个方法: public DataSet createDataSet(Context ctx, DataSetConfig dsc,boolean retrieve)

自定义类必须实现此方法,并返回一个DataSet对象,以下是对本方法的说明:

功能:生成自定义数据集 public DataSet createDataSet(Context ctx,DataSetConfig dsc, boolean retrieve) Parameters: ctx  报表运行上下文 dsc – 数据集配置 retrieve – 是否检索出数据,若为false则不取出数据只产生数据集的结构 createDataSet()方法由系统调用,我们不用去关心怎么调用它,而关心的是如何利用已有的方法参数,根据需要实现这个方法。createDataSet()方法返回的是一个DataSet对象,可以开始时便新建一个用于返回的DataSet对象: int rows = listsize(); //数据初始行数,根据实际求得 int cols = 3; //数据列数 DataSet ds = new DataSet(rows,cols,”ds1″); DataSet的三个参数分别是数据初始行数、数据字段列、数据集名。新建DataSet对象后往其中设置数据字段名,这个过程一定要在设置数据前。例如,我们要对这个数据集添加三个数据字段: ds.addCol( “name” ); //列名 ds.addCol( “subject” ); //列名 ds.addCol( “grade” ); //列名 对于有字段的数据集,就可以设置其包含的数据了: for( int i = 0; i < rows; i++ ) { Row row = ds.addRow(); DataBean data = (DataBean) list.get(i); row.setData(1, data.getName()); row.setData(2, data.getSubject()); row.setData(3, new Integer(data.getGrade()) ); }

3.点击【增加】按钮,为自定义数据集添加参数。

4.点击【确定】按钮,一个自定义数据集就建好了。

本文标签: