Browse Source
【问题原因】粘贴数据集的逻辑是使用TableDataWrapper生成TableDataPane + 使用当使用TableDataPane生成新的数据集;在生成TableDataPane的时候,会调用对应Class类型的构造方法,并populateBean一下;对于存储过程,ProcedureDataPane在populateBean的时候会在SwingWorker的doInBackground()中去做一次查询,然后在done()更新参数;远程连接下,查询的过程变长,导致还没来得及更新上参数,后续使用TableDataPane生成新的数据集时,参数为空,因此创建DataModel的时候后台报错缺失参数,前端表现为数据集编辑面板上没参数 【改动方案】1.专属于存储过程的ProcedureDataPane中提供可以更新参数的方法;2.对复制粘贴时调用的生成TableDataPane的方法包了一层,然后判断是否为存储过程,如果是的话,将源TableData的参数直接更新进去,保证后面这个Pane里是一直有参数的 【review建议】可能有更好的改法,这里这么改主要是因为生成TableDataPane和populateBean的代码都比较古老,逻辑也不熟,不太敢改。newui
Yvan
3 years ago
3 changed files with 28 additions and 4 deletions
Loading…
Reference in new issue