首页 > 其他 > 详细

存储过程可以正常执行出结果,但用友UAP报表查询结果为空

时间:2020-01-06 12:09:44      阅读:122      评论:0      收藏:0      [点我收藏+]

近期根据甲方需求做了一张简单的UAP报表,由于需要过滤条件所以写的是存储过程,设置了几个参数

写好的存储过程直接执行后没有问题,四个参数都是传递的nulll值:

DECLARE    @return_value int

EXEC    @return_value = [dbo].[qijun_zuixindanjia]
        @cinvcode = NULL,
        @cfree1 = NULL,
        @vendor = NULL,
        @cbustype = NULL

SELECT    Return Value = @return_value

结果如下:

技术分享图片

但是发布到U8后,怎么查询都没有结果,可是存储过程明明可以正常执行,那问题只能出现在UAP平台里面了

仔细想了一下,这一次报表添加的过滤条件是之前没有用过的,有可能这个过滤条件UAP传递的参数值不是null而是空值

于是我重新执行一下存储过程,这次参数不用NULL,而是用空字符串:

DECLARE    @return_value int

EXEC    @return_value = [dbo].[qijun_zuixindanjia]
        @cinvcode =‘‘,
        @cfree1 = ‘‘,
        @vendor = ‘‘,
        @cbustype = ‘‘

SELECT    Return Value = @return_value

查询结果确实是空:

技术分享图片

看来最大的可能原因是,用友UAP对于某些查询条件默认传递的是空字符串,在存储过程将参数值强制设置为null就可以了:

if @cinvcode=‘‘  set @cinvcode=null
if @cfree1=‘‘ set @cfree1=null
if @vendor=‘‘ set @vendor=null
if @cbustype=‘‘ set @cbustype=null

修改后UAP平台就可以正常查询出结果了:

技术分享图片

存储过程可以正常执行出结果,但用友UAP报表查询结果为空

原文:https://www.cnblogs.com/daiyudong/p/12155451.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!