第1章 概述

datastore数据源的使用需要同时满足如下两个条件:

1.在使用UniEAP Platform V4(或更高版本)的RIA组件;

2.数据已经在客户端的web页面存储,数据读取通过业务逻辑已经实现,如果使用report的sql数据源,就需要重复开发。并且,有些数据是通过复杂的业务逻辑计算得来,而不是简单的sql可以查询到的。

第2章 具体实现方法

2.1 创建datastore数据集

点击数据源管理右侧“+”号,点击创建DataStore数据集,打开如下页面

1

2.2 选择已配置数据源

注意:此Tab页是为了兼容旧版本设计器的数据源配置方式而保留的,如果是新做的报表,建议使用在线数据源配置

为了兼容旧版本的C/S报表设计器,在Web报表设计器中增加了“选择已配置数据源”选项,可以在下方数据源下拉列表中,选择到datasource.xml文件中已配置的datastore数据源,如下图红框位置

2

2.2.1 数据源只有一个sessionFactory

数据源名称选择datastore_v4_sessionFactory。

3

2.2.2 数据源有多个sessionFactory

对于数据源有多个sessionFactory,需要在datasource.xml中配置多个数据源。

4

<Category Name="datastore" Caption="UniEAP DataStore 数据源" SourceClass="com.neusoft.report.engine.dataset.datasource.impl.DataStoreDataSource" 
    QuerierClass="com.neusoft.report.engine.dataset.executer.datastore.DataStoreDataSetExecuter">
        <DataSource Name="datastore_v4_sessionFactory" Caption="datastore_v4_sessionFactory">
            <Parameters>
                    <Param Name="metadataProvider" Value='com.neusoft.report.engine.dataset.datasource.impl.HibernateMetadataProvider'/>
                    <Param Name="sessionFactoryName" Value='sessionFactory'/>
            </Parameters>
        </DataSource>
        <DataSource Name="datastore_v3_drm" Caption="datastore_v3_drm">
                <Parameters>
                     <Param Name="metadataProvider" Value='com.neusoft.report.engine.dataset.datasource.impl.DrmDataStoreMetadataProvider'/>
                </Parameters>
        </DataSource>
    </Category>

2.3 在线配置数据源

在线配置数据源支持在线配置metadataProvider,可以将类完整路径填入输入框中,如下图所示

5

2.4 获得数据集的字段

获得数据集的字段有以下几种方法

2.4.1 自动解析

无论是使用“已配置的数据源”还是“在线配置数据源”,添加了metadataProvider,就可以通过点击“解析按钮”,解析出metadataProvider类中返回的字段

注意:解析时metadataProvider中可能会用到“DataStore名称”,可以在解析前输入“DataStore名称”,6

7

解析完成后,单击确定即可。

2.4.2 手动添加

在获取数据集字段时,也可以不配置metadataProvider,而通过手动添加的方式,添加数据集字段,添加完成后,单击确定即可。

8

2.4.3 通过Entity添加

如果datastore与UniEAP Platform V4.x的entity模型有映射关系,可以直接通过Entity名称进行解析。

在下页面中,输入一个entity类名称,

9

输入Entity类名称的时候需要注意,如类为com.neusoft.report.User,那么直接输入User,然后点击解析,解析出对应entity的元数据。 其中datastore名称可以自己取,但需注意在前台调用时,名称要与这个名称匹配。

2.5 前台调用方法以及举例

在路径report/unieap/pages/sample/jsp/othershow/datastore/demo2.jsp中

function submitData(){
        var dc = new unieap.ds.DataCenter();
        dc.addDataStore(dataCenter.getDataStore("测试"));
        dc.addDataStore(dataCenter.getDataStore("title"));
        var param={};
        param.reportId="datacenter_report_orders";
        param.newReport="true";
        param.datacenter=dc.toJson();
        DSReportShow(param);
    }

这一段代码中实现了:

1.DataCenter的创建

2.两个DataStore"测试"和"title"的创建

3.数据集的调用

查看页面,实现效果如下:

10

点击下面的生成报表按钮,则此页面上的数据生成了一张报表,如图:

11

results matching ""

    No results matching ""

    results matching ""

      No results matching ""