有时希望单元格直接从数据库获取数据,而无需预先定义数据集。此时可使用Sql()函数实现。通过FineReport报表组件,可以方便地在单元格中调用该函数,直接执行SQL语句提取所需数据,提升报表设计效率与灵活性。
1、 公式解析
2、 SQL(连接名,SQL语句,列索引,行索引)用于从指定数据库连接中执行SQL查询,获取结果集中位于第列索引列与第行索引行交叉处的单元格数据。该函数通过连接名称访问数据库,执行提供的查询语句,并返回符合行列位置的具体数值或字符串内容。
3、 connectionName:表示数据库名称,需以字符串形式书写,并用引号括起来,例如FRDemo。
4、 SQL:以字符串形式表示的SQL语句。
5、 列序号,整数类型,表示列的位置编号。
6、 行序号,整数类型,表示行的位置。
7、 可省略行序号,返回结果仅为数据列内容。
8、 示例:通常仅获取特定字段的值
9、 在表STSCORE中,第三行第三列的数据是Alex。
10、 若想在报表单元格中直接显示数据Alex,而不必预先定义数据集再引用,可采用sql()函数实现。只需在目标单元格输入公式:=sql(FRDemo,SELECT * FROM STSCORE,3,3),即可从指定数据源中提取对应位置的数据。保存并预览报表时,该单元格将直接呈现Alex这一结果,操作简洁高效,适用于快速获取特定查询值的场景。
11、 示例:参数化公式应用演示
12、 当包含参数时,可直接在报表单元格内获取数据值,具体写法如下所示。
13、 显示Class1班级第三列的所有数值内容。
14、 若要显示特定值,例如 Jonny 的数据(即 Class1 班级对应第3列第4行的数值),可按如下方式书写:
15、 若参数为报表变量或单元格引用,应按以下方式书写:
16、 或
17、 当参数为\$\$\$表示获取当前单元格值时,字符串类型也需拼接单引号,示例如下:
18、 若参数或单元格包含多个值,SQL函数应按相应语法处理多值情况。
