Personas 3.0 Tabstrip元素

2020-08-22 01:10发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) Hi Personas Pro...

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

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


Hi Personas Pros,

寻求带有Tabstrip元素的路线。 当屏幕上有一个选项卡并编辑屏幕时,在"高级属性编辑器"中,您可以看到" elementOrder"属性。 这是所有标签的JSON,无论是否可见。

在脚本编写中,要达到相同的属性,我似乎面临挑战。 根据条件和标题,我的标签应该打开/关闭。 我用另一种方式(TAB_NEXT命令)解决了它,但这并不优雅。

我希望你们有解决方案! 谢谢!

亲切的问候,

彼得·托特

6条回答
半个程序猿
2020-08-22 01:48

嗨,塔玛斯,

由于某些原因,控件ID不是静态的。 开发系统中的同一选项卡与质量系统中的选项卡具有不同的ID。 生产系统似乎也是独立的,但是生产系统中的ID与开发系统或质量系统的ID相同。 因此,我唯一能抓住的就是标签的文本。

Krists嗨,

如上所述,选项卡的顺序只是一个问题。 要隐藏(或显示)的选项卡的ID不是静态的。 因此,我需要elementOrder可以在脚本中读取。 我可以循环查看其内容,看看哪个标签的text属性中显示" General"或" Long Text"。 我现在也可以使用控件进行相同的操作:

//加载
 var startTab ="";
 var targetTab ="";
 而(true){
 如果(startTab === session.findById(" wnd [0]/usr/tabsTABSTRIP")。selectedTab){
 如果(targetTab!==""){
 targetTab.select();
 }
 打破;
 }
 如果(startTab ===""){
 startTab = session.findById(" wnd [0]/usr/tabsTABSTRIP")。selectedTab;
 }
 session.findById(" wnd [0]/usr/tabsTABSTRIP")。selectedTab.hide();
 如果(session.findById(" wnd [0]/usr/tabsTABSTRIP")。selectedTab.text ===" General"){
 session.findById(" wnd [0]/usr/tabsTABSTRIP")。selectedTab.show();
 }
 如果(session.findById(" wnd [0]/usr/tabsTABSTRIP")。selectedTab.text ===" Long Text"){
 session.findById(" wnd [0]/usr/tabsTABSTRIP")。selectedTab.show();
 targetTab = session.findById(" wnd [0]/usr/tabsTABSTRIP")。selectedTab;
 }
 session.findById(" wnd [0]/tbar [0]/okcd")。text =" TAB_NEXT";
 session.findById(" wnd [0]")。sendVKey(0);
 }
 

targetTab就在那儿,因为除了仅显示两个选项卡外,还需要登陆"长文本"。 HTML GUI上缺少TAB_NEXT后面的控件。 因此,仅适用于命令。

绝对不是我编写过的最好的代码。 无论如何,它只是有效。 但我希望有一个干净的代码。

亲切的问候,

彼得·托特(Peter Toth)