盈帆数据报表工具之如何在SQL语句中使用公式

2025-10-20 09:26

盈帆数据报表工具之如何在SQL语句中使用公式

使用报表工具制作报表之前,通常情况下需要准备数据,再通过拖拽数据字段或单元格设置数据字段的方式,将所需数据放到相应的位置之上。在报表设计器中,可以根据所链接的数据库规范,写相应的SQL语句,最终获取实际的业务数据。但有些SQL语句处理起来复杂,通过完全写SQL语句的方式相对比较困难,这里可以使用公式的方式协助编写SQL语句。

数据集设置

使用报表工具制作报表时如需添加数据集,根据实际需求,用SQL语句添加数据库中的数据集,添加后的数据集在此区域显示,支持多数据库多数据集。数据集包括:模板数据集、服务器数据集。

模版数据集列表提供查询、增加、删除、修改、刷新、中英文对照、宏替换等功能。

新增数据集界面,输入SQL语句即可添加数据集。具体属性如下:



属性
功能描述
数据集名称
数据集名称,不能设置为空、重复名、特殊符号。
数据库
数据库链接。
刷新
刷新数据连接,重新获取数据库中的表名。
预览
预览数据源,点击可以进入数据预览窗口,可查看通过语句查询出的结果。
数据表
所链接的数据库表,单击查询按钮,显示全部。输入表名查找相应的表。
分页
查找的数据库表进行分页显示。
数据表字段
显示所选表的数据字段。
全选
数据表字段全选。
生成 SQL
勾选的数据字段,自动生成相应的查询 SQL语句。例如:"select 地区 from 产品销量"。
数据集获取语句
数据集获取的SQL语句,支持存储过程。语法与相对应的数据库链接的数据库保持一致。
数据集描述
当前数据集的备注信息。



添加数据源之前需要进行设置"数据链接"操作,正常可链接数据库后,方可正常获取到数据集。添加的数据集不能出现"."符号,使用SQL语句时,可以用as做正常的数据别名。操作界面中点击表名,"数据表字段"中自动弹出相应表的数据字段,选择需要显示的字段,点击"生成SQL"按钮,在数据集获取语句中自动添加"select 选择的数据表字段 from 表名"。

点击右上角的“SQL”按钮,可查看SQL语句生成的数据。预览界面中可选择预览行数,点击刷新按钮可看到相应的新数据。

数据集编辑界面与新增数据集界面一致。

中英文对照界面可以把当前数据集字段设置显示文本,确定后字段后面显示设置的对照名,当前有数据集被选中时有效。

宏替换界面可以把SQL语句中使用的参数或公式进行替换。在设置数据集时,有时会用到一些特殊的格式,例如:带入参数@{param1}、取父格的某个单元格@{parent.A1}、取其他数据集字段值[ds].[字段]等。这些无法正常产生数据集字段,可使用宏替换的方式,特殊的字段替换成具体的值,可以正常显示数据集字段。此替换只在数据集显示字段时有效,实际预览时根据实际情况显示,模板参数设置了默认值,又使用了宏替换,数据集预览时,优先显示宏替换设置的值。

通用数据集列表提供查询、增加、删除、修改、刷新等功能。使用通用数据集前提是需要在菜单中的"设置"->"通用数据集"中已经添加数据集,可以直接选择已经设置好的通用数据集。

数据集公式使用

在添加数据集时,可以直接写SQL语句,也可以写视图,主要目的是获取实际业务的数据字段。通常情况下有一些复杂的SQL语句比较难处理,这里提供可以使用JS语法公式来配合,方便处理SQL语句。例如:添加一个模板参数param1,如果此模板参数为空,则取全部的数据;如果参数不为空,则取参数对应的条件数据。不同的数据库SQL语句的复杂程度不同,本例中使用sqlite数据库,具体SQL语句如下:“select * from 产品销量 where case @{param1} when '' then 1=1 else 业务员=@{param1} end”。

这里可以使用公式的方式来处理,在SQL语句中如果使用公式需要使用“(= )”的格式,具体的公式内容可在括号内等号后面,上面的SQL语句可以变成这样:“select * from 产品销量 where (= @{param1} == '' ? "1=1" : "业务员=@{param1}")”,当参数为空时where后面的条件变为“1=1”,如果不为空,那么直接取业务员是参数的值。

使用这种方式时,点击确定后,数据集字段会显示为空。

因为这本身不符合SQL语句语法,点击宏替换,将“(= @{param1} == '' ? "1=1" : "业务员=@{param1}")”设置为“键”,“1=1”设置为“值”,点击确定,再点击数据集的刷新,这样就会正常显示数据集字段。此方法不影响最终报表生成时的SQL语句运行,只是为了可以正常显示数据字段。

另一种方式是提前先设置正常可以显示数据字段的SQL语句,报表字段出现后,正常设计报表,报表样式都正常设置后,最后修改数据集。虽然这种方式最终不会显示字段,但不影响生成报表时的正常SQL语句运行。

在SQL语句中使用公式时,很多情况下,无法确定自己写的SQL语句是否正确,在菜单栏中“帮助”菜单下有“SQL语句”日志,这里面可以查看使用设计器预览报表时,实际运行的SQL语句,可根据显示的结果来验证使用的公式是否正确。

方式与习惯

数据集中编写的SQL语句,本质上都是字符串,最终会将组织的字符串作为SQL语句来执行。在SQL语句中使用JS语法公式这种方式,对于SQL语句非常熟练的使用人员,刚接触可能并不习惯,会觉得不如自己纯粹的写SQL方便,并且无需调试。对于SQL语句不是十分熟练的使用人员,使用此方法可简化SQL语句的书写。根据实际情况,选择自己习惯的方式,最终达到想要的业务数据即可。


电话咨询:19945086027(微信同号)
微信客服
扫码咨询