2020-08-22 01:10发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
Hi Personas Pros,
寻求带有Tabstrip元素的路线。 当屏幕上有一个选项卡并编辑屏幕时,在"高级属性编辑器"中,您可以看到" elementOrder"属性。 这是所有标签的JSON,无论是否可见。
在脚本编写中,要达到相同的属性,我似乎面临挑战。 根据条件和标题,我的标签应该打开/关闭。 我用另一种方式(TAB_NEXT命令)解决了它,但这并不优雅。
我希望你们有解决方案! 谢谢!
亲切的问候,
彼得·托特
隐藏选项卡与更改其顺序不同,因此尚不清楚您的目标是什么。
动态隐藏应该很容易。 如果您的屏幕布局数量有限(取决于某些情况,选项卡的顺序不同),那么您可能需要考虑使用视口,而不是对屏幕进行动态更改,否则可能会导致性能问题。
嗨,彼得,
因此,您试图通过脚本根据某些条件隐藏或显示选项卡吗? 您能提供一笔交易以及更多细节吗? 我很乐意为您提供帮助,但是这里没有足够的信息。
谢谢,布莱恩
嗨,布莱恩,
感谢您的回复。 我使用事务IL03,但它通常适用于您在屏幕上看到Tabstrip的任何事务。 在我的情况下,当您尝试隐藏"常规"和"长文本"选项卡之外的所有内容时,交易会令人头疼,因为选项卡的数量和描述来自于自定义,具体取决于功能位置的类别(?)。因此,当您输入 功能位置并编辑该特定功能位置的样式,您将隐藏除这两个选项卡之外的所有内容。下次您返回不同的功能位置时,会弹出新的选项卡,您没有机会在上一个位置中隐藏。/p>
所以我的想法是读取GuiTabStrip的属性" elementOrder"。 当您在Edit Flavor中时,将焦点放在GuiTabStrip上,然后从"更多选项"中选择"高级",在"高级属性编辑器"中您会看到此属性,它是一个JSON列表,将所有选项卡的ID对齐。 然后可以在session.findById(ID).hide()中使用这些ID。
至少那是我开创性的想法。 在脚本视图中,您无法以任何方式查看/获取此属性。 我希望其他人会知道魔术。
再次感谢您对此进行研究。
Peter Toth
不,我认为视口不会在这里为您提供帮助。但是,如果我对您的理解正确,那么您会看到两个选项卡,其中包含所需的内容以及所有其他内容 标签应该被隐藏。 您可以选择将所有必需的控件移出这两个选项卡,然后隐藏整个选项卡条吗?
嗨,塔玛斯,
很高兴再次认识您。 :)
我没有视口经验。 我开始研究它。 实际上,我什至没有考虑它,因为动态性来自ABAP级别,因此我实际上不需要选择隐藏的内容,我只知道要显示的内容。 请参阅我对Brian的回答。 视口在这里适用吗?
谢谢您回答我的问题。
嗨,Peter
您可以在Slipstream Engine(SE)风味编辑器(/sap/bc/se/m)中覆盖默认的标签顺序。 选择TabStrip控件,打开"高级属性编辑器",寻找elementOrder属性。 要更改顺序,您需要根据自己的喜好安排Tab ID值来更新JSON值。
请确保您没有从JSON数组中删除或重复任何ID。 不支持通过从elementOrder中删除标签来隐藏标签,而应使用"隐藏"按钮。 基于更新的elementOrder值的新标签顺序将在Slipstream Engine运行时中应用。
请注意,由于基于堆栈内核版本的属性支持会有所不同,因此在SAP GUI for HTML(WebGUI)Flavor Editor中编辑elementOrder属性当前处于禁用状态(您可以在WebGUI中测试SE Flavor)。 此外,GuiTabStrip的elementOrder是静态属性,无法使用脚本引擎API进行更改。
谢谢!
克里斯特·马格斯
SAP屏幕角色开发团队
由于某些原因,控件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)
最多设置5个标签!
隐藏选项卡与更改其顺序不同,因此尚不清楚您的目标是什么。
动态隐藏应该很容易。 如果您的屏幕布局数量有限(取决于某些情况,选项卡的顺序不同),那么您可能需要考虑使用视口,而不是对屏幕进行动态更改,否则可能会导致性能问题。
# p#嗨,彼得,
因此,您试图通过脚本根据某些条件隐藏或显示选项卡吗? 您能提供一笔交易以及更多细节吗? 我很乐意为您提供帮助,但是这里没有足够的信息。
谢谢,布莱恩
嗨,布莱恩,
感谢您的回复。 我使用事务IL03,但它通常适用于您在屏幕上看到Tabstrip的任何事务。 在我的情况下,当您尝试隐藏"常规"和"长文本"选项卡之外的所有内容时,交易会令人头疼,因为选项卡的数量和描述来自于自定义,具体取决于功能位置的类别(?)。因此,当您输入 功能位置并编辑该特定功能位置的样式,您将隐藏除这两个选项卡之外的所有内容。下次您返回不同的功能位置时,会弹出新的选项卡,您没有机会在上一个位置中隐藏。/p>
所以我的想法是读取GuiTabStrip的属性" elementOrder"。 当您在Edit Flavor中时,将焦点放在GuiTabStrip上,然后从"更多选项"中选择"高级",在"高级属性编辑器"中您会看到此属性,它是一个JSON列表,将所有选项卡的ID对齐。 然后可以在session.findById(ID).hide()中使用这些ID。
至少那是我开创性的想法。 在脚本视图中,您无法以任何方式查看/获取此属性。 我希望其他人会知道魔术。
再次感谢您对此进行研究。
亲切的问候,
Peter Toth
不,我认为视口不会在这里为您提供帮助。
但是,如果我对您的理解正确,那么您会看到两个选项卡,其中包含所需的内容以及所有其他内容 标签应该被隐藏。 您可以选择将所有必需的控件移出这两个选项卡,然后隐藏整个选项卡条吗?
嗨,塔玛斯,
很高兴再次认识您。 :)
我没有视口经验。 我开始研究它。 实际上,我什至没有考虑它,因为动态性来自ABAP级别,因此我实际上不需要选择隐藏的内容,我只知道要显示的内容。 请参阅我对Brian的回答。 视口在这里适用吗?
谢谢您回答我的问题。
亲切的问候,
Peter Toth
嗨,Peter
您可以在Slipstream Engine(SE)风味编辑器(/sap/bc/se/m)中覆盖默认的标签顺序。 选择TabStrip控件,打开"高级属性编辑器",寻找elementOrder属性。 要更改顺序,您需要根据自己的喜好安排Tab ID值来更新JSON值。
请确保您没有从JSON数组中删除或重复任何ID。 不支持通过从elementOrder中删除标签来隐藏标签,而应使用"隐藏"按钮。 基于更新的elementOrder值的新标签顺序将在Slipstream Engine运行时中应用。
请注意,由于基于堆栈内核版本的属性支持会有所不同,因此在SAP GUI for HTML(WebGUI)Flavor Editor中编辑elementOrder属性当前处于禁用状态(您可以在WebGUI中测试SE Flavor)。 此外,GuiTabStrip的elementOrder是静态属性,无法使用脚本引擎API进行更改。
谢谢!
克里斯特·马格斯
SAP屏幕角色开发团队
嗨,塔玛斯,
由于某些原因,控件ID不是静态的。 开发系统中的同一选项卡与质量系统中的选项卡具有不同的ID。 生产系统似乎也是独立的,但是生产系统中的ID与开发系统或质量系统的ID相同。 因此,我唯一能抓住的就是标签的文本。
Krists嗨,
如上所述,选项卡的顺序只是一个问题。 要隐藏(或显示)的选项卡的ID不是静态的。 因此,我需要elementOrder可以在脚本中读取。 我可以循环查看其内容,看看哪个标签的text属性中显示" General"或" Long Text"。 我现在也可以使用控件进行相同的操作:
targetTab就在那儿,因为除了仅显示两个选项卡外,还需要登陆"长文本"。 HTML GUI上缺少TAB_NEXT后面的控件。 因此,仅适用于命令。
绝对不是我编写过的最好的代码。 无论如何,它只是有效。 但我希望有一个干净的代码。
亲切的问候,
彼得·托特(Peter Toth)
一周热门 更多>