由此次更新发现的新BUG

image.png
bug1:原有数据,如图,数据来源现在只显示id了,更新之前还能正常显示表名或者视图名;
bug2:数据来源没有显示视图,只有表,此次更新之前是能够正常显示视图的。


评论区

超级管理员 2025-02-12 09:20

原来那个表是不是视图表来的。
之前视图表作为数据源的话,是有问题的,也就是视图表不能套视图表,会出现找不到表错误。所以在选择数据来源的时候把视图表屏蔽了

晚风 2025-02-12 10:56

强烈建议:视图表必须打开,不能屏蔽,视图是做统计的灵魂;前面即使使用视图表个别地方有点小问题,可以变通处理,而不是武断地砍掉功能。

晚风 2025-02-12 11:51

@超级管理员

强烈建议:视图表必须打开,不能屏蔽,视图是做统计的灵魂;前面即使使用视图表个别地方有点小问题,可以变通处理,而不是武断地砍掉功能。

超级管理员 2025-02-12 11:59

业务表:tbl_student
然后视图表 view_student1:数据源配置了 select * from tbl_student  这个没有问题
然后视图表view_student2: 引用的是视图表1,最终构造成的sql =select * from view_student1 ,这样会报错找不到表的,你那边的使用场景是怎样?

晚风 2025-02-12 13:27

@超级管理员 @超级管理员

1.暂时,我只用到了第一层,直接读取视图,没用到视图嵌套,直接读取视图就可以解决;
2.视图表view_student2: 引用的是视图表1,最终构造成的sql =select * from view_student1 ,这样会报错找不到表的?这是什么原因呢?语法结构没有任何问题呀?报什么错误呢?是权限问题么?


实在无法解决,可以变通的做些限制,比如判断下,对视图嵌套做个限制,有友好提示就可以。

超级管理员 2025-02-12 13:38

用到第一层的话,现在是支持的。
是因为view_student1本身也是通过其他数据源得出来的数据的。最终视图2在执行select * fromview_student1 就会导致mysql找不到表,因为view_student1也不是正真的数据库表来的。如果遇到这样的问题的话,可以通过把视图1的数据源复制到视图2。也就是视图1和视图2用同一个数据源语句,,然后视图2再单独处理自己的特有业务逻辑

晚风 2025-02-12 14:43

@超级管理员

1.在线开发-表单开发:无法直接读取视图,下拉菜单中找不到,只能反向生成;反向生成后,数据源中仍然没有,直接保存;保存后再进入编辑,数据源中仍然没有此视图;此时,只能当作一般的管理模块来使用,仅满足部分使用场景。
2.在线开发-报表设计:无法直接读取视图,这个成了最大的限制,这个限制要打开,务必允许读取视图。除非我们集成一套功能强大的报表工具。
3.mysql中:view2查view1,亲测通过,mysql支持视图嵌套查询。

晚风 2025-02-12 20:40

@晚风

补充:
1.在线开发-表单开发:通过手动方式在平台上,下拉选择表,创建视图,这个功能现在是没有问题的。
综合来看,“在线开发-表单开发”中,对于视图的处理,下拉菜单不允许选择视图,不能嵌套,只对个别业务有影响,可以变通解决。

2.在线开发-报表设计:这里跟表单开发不同,视图是一定要允许的,第一层就可以,无需嵌套,这两个模块有本质区别。如果对于嵌套处理不好,这里可以限制嵌套,但不能禁止使用视图。

晚风 2025-02-13 11:34

@超级管理员

在线开发-报表设计,这部分不能读取视图,能不能处理?或者恢复回原来的状态,允许读取视图

晚风 2025-02-14 12:01

@超级管理员

在线开发-报表设计,这部分不能读取视图,能不能处理下,允许读取视图

超级管理员 2025-02-14 13:40

@晚风

在前端代码全局搜索

else if (item.tableClassify !== 2) dbList.push(row)

修改为

else dbList.push(row)

即可

回复