自定义数据集
应用场景
产品支持使用多种类型的数据集,例如:普通SQL数据集、复杂SQL数据集、存储过程数据集等等。
报表的数据来源大部分都能通过这些类型获取,但也会有特殊的情况。例如:
- 银行系统的数据保密性要求高,不允许直接连数据库,数据只能来源于WebService接口
- 数据抽取要与复杂业务逻辑相结合,难以直接通过SQL获取,需要通过编程处理数据
- 客户的数据来源于excel、word、txt甚至是html
以上的种种业务需求都可以通过自定义数据集来实现。
自定义数据集的特点
产品提供了IDataSetFactory数据集工厂接口,用户可以基于该接口自行创建实现类,并实现接口中的createDataSet()方法,来完成客户化的数据集生成。
使用自定义数据集时还能够传入和使用参数,灵活地实现一些动态的业务逻辑。可以通过自定义数据集类CustomDataSetConfig提供的方法,方便地获取自定义数据集中设置的参数。
因此,自定义数据集的实质就是以java类为实现载体,获取到系统中如参数等重要信息后,按照需求的业务逻辑遍历出数据,实例化DataSet对象并最终返回给报表。如果报表的数据来源比较特殊,需要程序员自己处理,就可以采用自定义数据集的方式。此时建立数据集时选择数据集的类型为自定义,然后在编辑界面中输入类名和需要用到的参数。报表运算时,就会自动执行实现类中的createDataSet()方法来取得报表运算所需要的数据集。
自定义数据集的使用,涉及以下相关接口和类:
- IDataSetFactory接口,自定义数据集工厂,基于此接口实现自定义的数据集生成方式
- DataSet类,数据集对象类,用于封装数据集数据
- CustomDataSetConfig类,自定义数据集类,可以获取和设置数据集的名称、参数、数据集工厂类等信息
下面将详细介绍它们的使用。