为什么isResultSetEmpty()方法执行"更改结果集"事件?

2020-09-07 17:40发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)人们好, 企业希望根据是否有来...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


人们好,

企业希望根据是否有来自数据源的数据在Lumira仪表板上显示或隐藏图表。 为此,我在相应数据源的"结果集已更改"事件中使用以下代码:

 if(me.isInitialized()){
 如果(me.isResultSetEmpty()){
 CHART_1.setVisible(false);
 }其他{
 CHART_1.setVisible(true);
 }
 }
 

我的问题是,如果" Lumira"不拒绝第二次执行," isResultSetEmpty"方法似乎再次调用数据源的" On Result Set Changed"事件,这将导致循环。

为什么" isResultSetEmpty"将事件称为"结果集已更改"? 是否有可能在不调用事件" On Result Set Changed"并导致循环的情况下检查da数据源是否为空?

感谢您的帮助。

BR,

西蒙(Simon)

3条回答

您好,Reiner,谢谢您的回答。 但这不是图表组件中的错误。 问题在于数据源的方法" isResultSetEmpty"将其自身的事件称为"结果集已更改"。 这导致Lumira幸运地停止循环。 我已将数据源中"结果集已更改"事件中的代码更改为以下代码,但仍会发生错误。

如果
 (me.isInitialized()){
           如果(me.isResultSetEmpty()){
//CHART_23.setVisible(false);
//}其他{
//CHART_23.setVisible(true);
           }
 } 

如果我对下面的示例进行第二次修改,则不会发生该错误。

如果
 (me.isInitialized()){
//如果((me.isResultSetEmpty()){
//CHART_23.setVisible(false);
//}其他{
//CHART_23.setVisible(true);
//}
 } 

因此,方法" isResultSetEmpty"将事件称为"结果集已更改",但未调用" isInitialized"事件。 但是为什么呢?

最后一次尝试:我从数据源的"更改结果集"事件中完全删除了上面的代码,并将其替换为以下两行。

 var init = me.isInitialized();
 var empty = me.isResultSetEmpty(); 

发生错误。 如果第二行被注释掉,则不会发生该错误。 因此,问题绝对是我认为使用" isResultSetEmpty"会导致循环,这是一个错误。 还是我做错了什么?

一周热门 更多>