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

Posted daiyudong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储过程可以正常执行出结果,但用友UAP报表查询结果为空相关的知识,希望对你有一定的参考价值。

近期根据甲方需求做了一张简单的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报表查询结果为空的主要内容,如果未能解决你的问题,请参考以下文章

用友UAP NC 单据节点_打开参照字段的问题_从打不开参照放大镜_到成功打开了但是取不到值_到修复成功

水晶报表可以连接oracle的存储过程吗

用友u8库龄分析如何查询

用友UAP

用友u8库龄分析如何查询

SQL Server存储过程同时返回分页结果集和总数