Page tree
Skip to end of metadata
Go to start of metadata

填报数据是保存在数据库中的,因此可以像其他数据库一样,作为统计报表的数据源。

填报模块的数据大体分为两大部分:业务数据和用户数据。业务数据是指用户通过填报页面录入的数据;用户数据则是通过填报模块服务管理器的用户管理模块所维护的用户、角色、组织结构等信息。

借助报表系统的多数据源支持能力,可以将业务数据与用户数据相结合,实现数据权限控制,即根据用户身份,控制每个用户可以看到的业务数据范围。


填报模块的业务数据保存在如下路径的SQLite数据库中:

C:\Users\Public\Documents\ForguncyServer\arsinput\App_Data\ForguncyDB.sqlite3

在报表设计器中,定义一个ODBC类型的数据源,连接字串如下:

DRIVER=SQLITE3 ODBC DRIVER;DATABASE=C:\Users\Public\Documents\ForguncyServer\arsinput\App_Data\ForguncyDB.sqlite3

如下图:

基于这个数据源,创建业务数据集,就像普通数据集一样。填报模块业务数据库的表,是在填报模块设计器中定义的。

比如,在填报模块设计器中设计的表名是【订单】,下面这个SQL语句就是取出全部订单数据的数据集查询语句:

select * from 订单


注意:

如果填报模块使用的是外联数据库,那么数据源与数据集的定义就跟普通数据源和数据集完全一样,根据数据库类型定义即可。


填报模块的用户数据保存在如下路径的SQLite数据库中:

C:\Program Files (x86)\ForguncyServer\Forguncy.UserService2\App_Data\v4\UserServiceDB.sqlite3

相应的,获取填报模块用户信息的数据源连接字串如下:

DRIVER=SQLITE3 ODBC DRIVER;DATABASE=C:\Program Files (x86)\ForguncyServer\Forguncy.UserService2\App_Data\v4\UserServiceDB.sqlite3

如下图:

用户信息包括用户基本信息、角色信息、角色成员信息等。使用SQLite数据库管理工具(如DB Browser for SQLite),可以看到用户信息库表结构,如下图:

图中的UserProfile表,就是用户基础信息表。

定义一个数据集,使用下面的SQL语句作为数据集的查询语句,即可查出所有填报用户的信息:

select * from UserProfile


与用户有关的其他数据库表包括:

角色:webpages_Roles

角色成员:webpages_UsersInRoles

组织结构:OrganizationNodeListTable

组织成员:OrganizationMemberListTable


注意:

由于用户信息数据库文件位于Program Files系统文件夹下,默认访问权限受限。为了保证报表系统可以访问数据库,必须设置文件夹和其中SQLite文件的访问权限,允许Users读写。



具体的报表设计,可以参照葡萄城报表安装目录下的示例模板,该模板文件的默认路径如下:

C:\葡萄城报表\DemoData\ArsInputReports\销售订单统计.rdlx

这个示例模板实现了根据用户及其所属组织结构进行数据权限控制的效果。例如,一个分店店员只能看到自己的销售订单,而店长则可以看到全店每个店员录入的订单。











  • No labels