请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Eden.Sun Wyn认证
超级版主   /  发表于:2025-6-27 16:29  /   查看:52  /  回复:0
本帖最后由 Eden.Sun 于 2025-7-1 11:10 编辑

前面的帖子我们介绍了如何通过Wyn系统日志排查报表内嵌数据集的问题:【报表设计】内嵌数据集问题排查(一)。今天我们继续介绍如何直接在报表中排查内嵌数据集的SQL语句问题。二者的原理是一样的,都是通过观察发送到数据库的最终SQL语句来逐步排查、解决问题。今天的方法可以不用修改系统日志,只在报表中就可以进行查看。


话不多说,我们来看看具体的操作步骤:
1. 创建报表参数
先在报表中创建需要的报表参数

2. 调试SQL语句
然后在报表中创建一个文本框组件,将数据集SQL写在文本框组件中:
select * from 订单 where 订单编号 in ({@订单编号}) and 支付方式 = {@支付方式}


预览时,就可以查看到发送到数据库的最终SQL语句:

3. 问题定位
从最终的SQL我们可以看到两个问题:
① 多值参数"订单编号"的最终形式不对,数据库可识别的多值形式应该是("A","B", ......),而不是现在的对象数组;
② 单值参数"支付方式"是文本字符串,数据库可识别的形式应该是"支付宝"。

4. 问题修改,根据上一步定位到的问题,我们就可以进行SQL的修改:

预览查看最终解析的效果:


我们可以将报表预览的最终SQL语句复制到数据库中执行,如果直接在数据库中可以正常执行,那么就说明我们在数据集中写的SQL是正确的。

5. 创建数据集
把SQL语句调整正确之后,我们就可以用他来创建数据集了

然后是设计、预览报表:


附件是帖子中的报表demo,有需要的小伙伴可以参考使用。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部