Lumira Designer:SDK扩展-在setter方法上使用callZTLFunction

2020-08-21 10:04发布

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

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


专家您好,

我正在使用HTML 5范围滑块创建自定义SDK扩展组件。 每当滑块值更改时,我想在Lumira中的组件的scriptBox中执行代码。 在花了很多时间进行调试之后,我认为我已将问题缩小到以下事实:我无法更新 " currentValue" xml属性的值 (代表滑块当前值的属性),以编程方式在我的.js文件中。 这是所有相关代码:

component.js

 this。$()。children('#slider')。on(" input",function(){

  /*我想我需要使用它-但也许我错了
    that.callZTLFunction(" setValue",function(result){
    alert("结果:" +结果);
    that.fireEvent(" onchange");  },"" + that。$()。children('#slider')。val());
    */
    that.currentValue(that。$()。children('#slider')。val());
    that.fireEvent(" onchange");

   });
 };

 this.currentValue = function(newVal){
    alert("设置当前值:" + newVal);
  如果(newVal!==未定义){
    $。()。children('#slider')。val(newVal);
   //这会基于newVal设置一些CSS样式-不相关
    this.updateSliderDisplay(newVal); 返回这个 } else {返回
    this。$()。children('#slider')。val();
  }
 }; 

contribution.ztl

/*设置滑块范围的当前值。  */
 无效setValue(float newVal)
 {*
    this.currentValue = newVal;
 *}

/*返回滑块范围的当前值。  */
 float getValue(){*
   返回this.currentValue;
 *} 

组件脚本框:

 this.setValue(35);//这是对此特定组件实例的引用
 APPLICATION.alert("新的当前值:" + this.getValue()); 

执行轨迹(滑块范围为1-100):

1.默认滑块值:50(默认属性值)

2将值更改为68。

输出跟踪:

2.1。 (警告对话框)"设置当前值:68"

2.2。 (警报对话框)"新的当前值:35"

2.3。 (警告对话框)"设置当前值:35"

此时,我的滑块已按预期位置位于35

3.将值更改为50

输出跟踪:

3.1。 (警告对话框)"设置当前值:65"

3.2。 (警报对话框)"新的当前值:35"

此时,我的滑块位于65,而不是35。

4。 如果我重复将值更改为一些X

输出跟踪:

4.1。 (警告对话框)"设置当前值:X"

4.2。 (警报对话框)"新的当前值:35"

4.3。 (警告对话框)"设置当前值:X"

我的滑块位于X而不是35。

此跟踪使我相信,该属性第一次更改为35只是因为在滑块的" oninput"期间没有任何可更新(设置)属性值的操作。 然后,我猜是因为该值第一次设置为35,并且此后一直未更改,因此下次执行this.setValue(35)时不会触发任何操作,因为没有更改。 我相信我需要使用callZTLFunction以编程方式在" oninput" eventHandler中设置属性的值,以便在执行scriptBox中的setter时,将其注册为实际更改,并在component.js中执行currentValue()。 。 不幸的是,我遇到的有关callZTLFunction的信息和示例很稀少,仅演示了何时在getter上使用它-我试图在setter上使用它而没有成功。 是否可以在设置器上使用callZTLFunction? 如果是,您可以举个例子吗? 根据我的描述,我对问题的总体理解是否正确,或者在事件触发方式以及框架如何使用代码方面还缺少其他东西? 如果您认为问题出在其他地方,或者您需要其他信息,请告诉我。 我期待着您的答复,因为一段时间以来这一直是绊脚石。

谢谢

迪米塔尔

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

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


专家您好,

我正在使用HTML 5范围滑块创建自定义SDK扩展组件。 每当滑块值更改时,我想在Lumira中的组件的scriptBox中执行代码。 在花了很多时间进行调试之后,我认为我已将问题缩小到以下事实:我无法更新 " currentValue" xml属性的值 (代表滑块当前值的属性),以编程方式在我的.js文件中。 这是所有相关代码:

component.js

 this。$()。children('#slider')。on(" input",function(){

  /*我想我需要使用它-但也许我错了
    that.callZTLFunction(" setValue",function(result){
    alert("结果:" +结果);
    that.fireEvent(" onchange");  },"" + that。$()。children('#slider')。val());
    */
    that.currentValue(that。$()。children('#slider')。val());
    that.fireEvent(" onchange");

   });
 };

 this.currentValue = function(newVal){
    alert("设置当前值:" + newVal);
  如果(newVal!==未定义){
    $。()。children('#slider')。val(newVal);
   //这会基于newVal设置一些CSS样式-不相关
    this.updateSliderDisplay(newVal); 返回这个 } else {返回
    this。$()。children('#slider')。val();
  }
 }; 

contribution.ztl

/*设置滑块范围的当前值。  */
 无效setValue(float newVal)
 {*
    this.currentValue = newVal;
 *}

/*返回滑块范围的当前值。  */
 float getValue(){*
   返回this.currentValue;
 *} 

组件脚本框:

 this.setValue(35);//这是对此特定组件实例的引用
 APPLICATION.alert("新的当前值:" + this.getValue()); 

执行轨迹(滑块范围为1-100):

1.默认滑块值:50(默认属性值)

2将值更改为68。

输出跟踪:

2.1。 (警告对话框)"设置当前值:68"

2.2。 (警报对话框)"新的当前值:35"

2.3。 (警告对话框)"设置当前值:35"

此时,我的滑块已按预期位置位于35

3.将值更改为50

输出跟踪:

3.1。 (警告对话框)"设置当前值:65"

3.2。 (警报对话框)"新的当前值:35"

此时,我的滑块位于65,而不是35。

4。 如果我重复将值更改为一些X

输出跟踪:

4.1。 (警告对话框)"设置当前值:X"

4.2。 (警报对话框)"新的当前值:35"

4.3。 (警告对话框)"设置当前值:X"

我的滑块位于X而不是35。

此跟踪使我相信,该属性第一次更改为35只是因为在滑块的" oninput"期间没有任何可更新(设置)属性值的操作。 然后,我猜是因为该值第一次设置为35,并且此后一直未更改,因此下次执行this.setValue(35)时不会触发任何操作,因为没有更改。 我相信我需要使用callZTLFunction以编程方式在" oninput" eventHandler中设置属性的值,以便在执行scriptBox中的setter时,将其注册为实际更改,并在component.js中执行currentValue()。 。 不幸的是,我遇到的有关callZTLFunction的信息和示例很稀少,仅演示了何时在getter上使用它-我试图在setter上使用它而没有成功。 是否可以在设置器上使用callZTLFunction? 如果是,您可以举个例子吗? 根据我的描述,我对问题的总体理解是否正确,或者在事件触发方式以及框架如何使用代码方面还缺少其他东西? 如果您认为问题出在其他地方,或者您需要其他信息,请告诉我。 我期待着您的答复,因为一段时间以来这一直是绊脚石。

谢谢

迪米塔尔

付费偷看设置
发送

一周热门 更多>