本子庸 发表于 2022-1-26 11:25:37

activereport15版本,数据集参数如何判空

图片file:///C:\Users\10313\AppData\Roaming\Tencent\Users\1031398450\QQ\WinTemp\RichOle\~)YY]X67J`@HXLREX7PCB2X.png
这里判断值是不是为空,也就是不用等号,参数值是is null,怎么设置?

SELECT d.FName '乡镇名称',c.Fname '客户名称',c.FLinkman1 '联系人',c.FMobilePhone1 '电话',a.FTime '掉线时间',b.FSerial '序列号',b.FName '设备名称',a.Warning_Type_ID '预警类型'
FROM dbo.Entity_Electric_Detector_CurrentValue a JOIN dbo.Entity_DeviceInfo b ON a.Device_ID=b.ID JOIN dbo.Entity_Customer c ON b.Customer_ID=c.ID JOIN dbo.Entity_Town d ON c.Town_ID=d.ID
WHERE a.Warning_Type_ID=1 AND b.IsHomeWell =@is_HW AND c.City_ID = @city
ORDER BY d.ID,c.Fname,a.FTime


--   =@is_HW有的值是1,有的无值

Bella.Yuan 发表于 2022-1-26 11:25:38

本帖最后由 Bella.Yuan 于 2022-1-26 15:01 编辑

您好,您的意思是输入参数后根据参数展示对应数据,或者直接点击查询查看值为空的数据,如果是的话您可以参考下面截图进行设置,首先参数设置为允许空白纸

其次sql修改为:

这个是我的数据:



Bella.Yuan 发表于 2022-1-26 12:14:06

本帖最后由 Bella.Yuan 于 2022-1-26 14:08 编辑

您好,where 条件可以写成这样:
WHERE a.Warning_Type_ID=1 AND c.City_ID = @city ANDb.IsHomeWell = @is_HW OR "" = @is_HWORDER BY d.ID,c.Fname,a.FTime其中注意参数,需要设置为空,如下:

本子庸 发表于 2022-1-26 13:43:06

Bella.Yuan 发表于 2022-1-26 12:14
您好,where 条件可以写成这样:
WHERE a.Warning_Type_ID=1 AND c.City_ID = @city ANDb.IsHomeWell =...

这么写报错预览不了我的意思是根据参数is_HW等于1或者是null,来筛选数据

本子庸 发表于 2022-1-26 15:40:57

Bella.Yuan 发表于 2022-1-26 15:00
您好,您的意思是输入参数后根据参数展示对应数据,或者直接点击查询查看值为空的数据,如果是的话您可以参 ...



那个允许空白值勾选了,可选值我只保留1,就会报这个错


另一个参数要填吗?怎么填?

Bella.Yuan 发表于 2022-1-26 16:03:08

本子庸 发表于 2022-1-26 15:40
那个允许空白值勾选了,可选值我只保留1,就会报这个错




您好,您的意思是参数为1或者空设置为下拉列表进行选择,可以按下图进行设置
报错原因是sql语句导致的,您检查一下您的sql语句编写是否正确,按下图示点击执行后输入参数即可查看结果,验证sql是否正确。


本子庸 发表于 2022-1-26 16:29:16

Bella.Yuan 发表于 2022-1-26 16:03
您好,您的意思是参数为1或者空设置为下拉列表进行选择,可以按下图进行设置
报错原因是sql语句导致的 ...

这个地方不能用标签吗..
我希望这个地方能有个标签提示是哪种设备,能设置吗?

Bella.Yuan 发表于 2022-1-26 16:51:41

您好,针对这个情况,您可以在参数的可选值里面设置标签的名字为对应设备的名称,如下图,预览时报表,点击对应参数的下拉列表展示的是参数的标签内容,具体sql执行使用参数的value。   

本子庸 发表于 2022-1-26 17:29:11

Bella.Yuan 发表于 2022-1-26 16:51
您好,针对这个情况,您可以在参数的可选值里面设置标签的名字为对应设备的名称,如下图,预览时报表,点击 ...

.....我按你那样设置会报错,而且最终的效果也不是我想要的,这没有标签可以点击,就点个空标签也太尴尬了
isnull(b.IsHomeWell,0)=@is_HW
我用isnull()函数将空值转换成0,然后参数就可以用1和0来进行匹配了

Bella.Yuan 发表于 2022-1-26 18:20:18

本子庸 发表于 2022-1-26 17:29
.....我按你那样设置会报错,而且最终的效果也不是我想要的,这没有标签可以点击,就点个空标签也太尴 ...

您好,针对标签,上面回复只是一个参考,具体参数可选值的标签内容您可以自定义,上面我使用的标签名称是和参数的value值一样的。使用isnull()函数也是可以的:hjyzw:
页: [1]
查看完整版本: activereport15版本,数据集参数如何判空