Design Studio 1.6 SDK组件:如何在不单击的情况下将文本区域中的值读取到文本框中

2020-09-15 06:19发布

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

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


大家好,

我尝试构建一个sdk组件,该组件每5秒生成一个随机文本到Span区域。 我已将其链接到Text区域类" sapMInputBaseInner",并能够在Design studio的Text区域组件中查看生成的文本。

我要使用生成的文本到文本框中进行进一步分析

示例:TEXT_2.setText(TEXTAREA_1.getValue());

如果(TEXT_2.getText()==" 2018")

{

在2018年过滤其他组件

};


上面的代码位于TEXTAREA的Change事件脚本上。

这里的问题是,一旦文本发生更改,on事件就不会自动触发,并且需要手动单击(在应用程序的任何位置)才能触发on Change事件脚本。

因此,每次我需要在应用程序上单击某个位置以将最新文本从TEXTAREA提取到"文本"框中时。


有没有办法在其中

1。 我们可以通过SDK或计时器来绕过手动单击或触发TEXTAREA的on change事件吗?

OR

2。 GetText(); SDK组件的属性是否可以每5秒自动更新并将最新文本带到文本框中?


谢谢

阿布


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

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


大家好,

我尝试构建一个sdk组件,该组件每5秒生成一个随机文本到Span区域。 我已将其链接到Text区域类" sapMInputBaseInner",并能够在Design studio的Text区域组件中查看生成的文本。

我要使用生成的文本到文本框中进行进一步分析

示例:TEXT_2.setText(TEXTAREA_1.getValue());

如果(TEXT_2.getText()==" 2018")

{

在2018年过滤其他组件

};


上面的代码位于TEXTAREA的Change事件脚本上。

这里的问题是,一旦文本发生更改,on事件就不会自动触发,并且需要手动单击(在应用程序的任何位置)才能触发on Change事件脚本。

因此,每次我需要在应用程序上单击某个位置以将最新文本从TEXTAREA提取到"文本"框中时。


有没有办法在其中

1。 我们可以通过SDK或计时器来绕过手动单击或触发TEXTAREA的on change事件吗?

OR

2。 GetText(); SDK组件的属性是否可以每5秒自动更新并将最新文本带到文本框中?


谢谢

阿布


付费偷看设置
发送
4条回答
SAP小菜
1楼-- · 2020-09-15 06:50

问题在于仅当焦点移出文本区域时,文本区域中的值才会更新。 因此,除非焦点移开,否则TEXTAREA_1.getValue()将不会返回确切的值。 此行为是设计使然,因此您需要扩展来提供onKeyUp或onKeyDown事件( http://www.java2s.com/Tutorial/JavaScript/0200__Form/TextareaonKeyUp.htm )。

绿领巾童鞋
2楼-- · 2020-09-15 06:41

嗨,穆斯塔法,

感谢您的回复。

此处的业务用例是通过语音命令启用DS。 因此,我尝试使用Google API开发一个SDK,该SDK可以将语音转换为文本,并将文本输出发送给DS进行进一步分析。 我提到随机生成数字只是为了关注问题而不是主要要求。

我关注了您的帖子和其他主题,以尝试适应SDK中的语音识别Java脚本,并寻求Java开发人员的帮助。 他们建议直接与" sapMInputBaseInner"类集成。 但是这种方法不能像前面提到的那样起作用。

关于您建议定义value属性的建议,我尝试了定义Text属性并对文本" setvalue"进行硬编码。 但是我无法在文本框TEXT_1.setText(AUDIO_1.getText())中获得"设置值"; (在启动脚本中)。


请让我知道前进的方向。


谢谢

阿布

 ZTL 

类com.sap.voice.Audio扩展了组件{ 字符串getText() {* 返回this.Text; *} }
 XML


 
 
 
 Component.js


 this.Text = function(){


 this.getText();


 };

 this.getText = function(){
 this._Text ="设置值";
 }
 
DafaDDDa
3楼-- · 2020-09-15 06:46

嗨Arijit,

感谢您的回复。

我之前尝试过blur()来移除焦点,但是它不起作用。

这些是我在运行时试图在控制台中触发的事情。

$('#TEXTAREA_1_control-inner')。blur();

$('#TEXTAREA_1_control-inner')。keyup();

$('#TEXTAREA_1_control-inner')。keydown();

请让我知道我要去哪里了。

谢谢

Abu

Tong__Ming
4楼-- · 2020-09-15 06:30

嗨,Abu,

我有以下问题和评论:

1)我很想知道您的随机生成数字的SDK组件的业务用例是什么?

2)在我看来,您的组件的主要目标是生成一个随机数,然后使应用程序能够在生成该数字时查询该数字以执行进一步的处理。 与其采用依赖于与TextArea组件进行手动集成来获取值的混合方法,不应该将SDK组件构建为独立的。 我建议您重新设计SDK组件,如下所示:

(i)而不是将生成的随机数链接到Text Area类,而是为您的组件定义一个Value属性,并使用随机数更新该值;

(ii)为您的SDK组件定义一个自定义的"更改时"事件,并在步骤(i)中更新Value属性时触发该事件

使用上述方法,然后可以将if then代码放入SDK组件的On Change事件中,并使用SDK的 getValue()方法检查数字的当前值。 零件。 与尝试将类" sapMInputBaseInner"与"文本区域"组件集成在一起相比,这是一种更加干净的解决方案。

此致

穆斯塔法。

一周热门 更多>