Seal Report Designer界面中Sources节点用于配置和定义所有需要连接的数据来源,既包含全局数据源,也包含报表独有的数据源,支持各种数据库(SQL Server、MySQL等)、NoSQL、Excel、JSON、REST API 等,为后续的数据模型提供基础。
之前的文章介绍过Seal Server Manager和Seal Report Designer都支持创建数据源,前者创建的数据表会被所有报表共享,适合那些在多个报表中都会用到的公共数据表,而后者创建的数据表仅对当前报表文件有效,适合只在单一报表中使用的专用数据。
本文记录在Seal Report Designer中创建专用数据源的过程,为便于后续尽可能全面的测试报表组件,使用DeepSeek构造了某公司多款产品多年内在国内不同销售区域的销售数据,测试表及数据如下图所示:

启动Seal Report Designer,打开之前创建的销售统计报表,在Sources节点点右键,选择"Add a new SQL Data Source"菜单新建SQL数据源。Sources节点中带"(Repository)"名称的数据源是存储在Seal Report的"存储库 (Repository)"中的数据源,支持全局共享、可被多个报表重复使用。右键菜单中也支持添加带"(Repository)"名称的数据源,点击后会在Sources节点下新增一个带"(Repository)"名称及流水号的专用数据源,不会将新增的数据源添加到全局数据源中。

数据源节点的属性不多,比较重要的属性包括Current connection(配置数据源使用的数据链接)、Force load(配置是否在报表执行时强制加载数据源)、Report Execution Init Script(在报表执行前动态修改数据源配置)、Pre SQL Statement(在打开数据源但未执行数据查询时执行的自定义SQL语句)、Post SQL Statement(在执行数据查询后但关闭数据源前执行的自定义SQL语句)。

Connections子节点用于配置数据连接,本文连接mysql数据库,因此在connection子节点中配置mysql数据库连接信息,如下图所示:
Tables子节点用于创建统计数据表,创建数据表的方式之前介绍过,本文中创建多个数据表以统计全部销售信息、销售员信息、货品信息。

Sources的Joins子节点用于定义数据源中不同数据表之间的关联关系,以实现多表数据整合,如下图所示,Joins节点下的每个连接的常用属性包括:Name(连接的名称)、Join type(连接类型,下拉选择,包括内连接、左连接、右连接等)、Is bi-directional(标记是否为双向连接)、Left table(连接左侧的表名)、Right table(连接右侧的表名)、Join clause(连接条件)。

Sources的Enumerated Lists子节点用于创建可供用户选择的预定义值列表,在报表运行时以下拉菜单的形式呈现。
参考文献:
1https://github.com/ariacom/Seal-Report
4https://sealreport.org/forum/