现象

在制作电子表格,有时候需要在单元格绑定参数,而参数的控件类型是【平铺勾选面板】,会发现会多一个空值选项,为什么?实际上数据并没有这个选项

并没有客户预期的如下的效果:

现象说明

首先,上面的现象是正常的。下面我们说明一下:

在已经排除参数备选值是是没有“空值”这个记录的情况下,而又报表展示存在这样的一个值,这个要如何排查?

先通过对报表进行【血统分析】确定对应的参数来源数据集,看数据集是否的参数部分是否添加了{[]} 这样的符号( 添加此符号实现效果是参数备选值多一个【空值】选项,并且可选中【空值】查询所有的数据 ):

若是不想要显示空值选项,可直接将{[]}符号移除,这时候的报表效果如下:

 

 

也就是说字段或者表,是从左侧资源树拖到查询中,并且不会自动变成文字形式的才行。

--------------------------------------------------------------------------------------------------------------------------------

所以针对系统中的3类查询,能否在血统分析中找到表。总结如下:

 

原理解释

其实我们可以尝试将鼠标移动到查询中的那些“对象”上面

可以看到,这些对象,实际上系统是可以从这些对象上面获取到它对应的表的信息的,所以可以在血统分析中显示出来。

 

而原生sql查询意味着“原生”,送到数据库中的sql就是客户写在查询中的,在系统中不能添加任何的处理。所以即使是从左侧拖过去的表和字段,也会变成文字的形式(参数、用户属性、函数除外)。

 

------------------------------------------------------------------------------------------------------

那么,原生sql,或者自己手写的sql查询,有没有其他方法能够在血统分析中找到表呢?

这个其实很难做到。如果要找到sql中所使用的表,那么必须把这些查询的sql取出来,然后对其进行解析,找到里面用到了什么表,这个本身有难度。而且除了表名以外,还会有不同的schema,另外不同数据库的语法还不完全一样,因此实现的可能性比较小。