云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

京东云_服务器多开_高性能

小七 141 0

京东云_服务器多开_高性能

在最近的一次twitter"对话"中,我询问了一些常见的编程错误。我得到的一个答案是:

好吧……SAP Skipt也将消亡多年……

我认为SAPGUI和GUI控件将统治许多SAP开发人员的日常工作多年。

无论如何。这篇博文的原因是另一个经常出现的错误。如果你是一个有经验的程序员:

多个控件实例

当创建一个GUI控件时,你需要有一个父容器。一个常见的错误是,大数据培训班,控件将被一次又一次地创建。这是可能的,但用户将只看到最初创建的控件。

如果您知道您要做什么,您可以在一个容器中堆叠多个不同的控件,并确保只有一个控件可见。

下面是一个小(德语)演示:https://www.tricktresor.de/blog/controls-stapeln/

识别此错误的唯一方法是看一下CL\u GUI\u CONTAINER reference的children表

CONTAINER structure

我想到了可视化CONTAINER结构:

识别对象引用

如果给定了顶部容器,显示结构很容易,因为所有的子对象都存储在每个控件的属性表children中。

困难的部分是:如何识别这些对象,以便您知道哪个对象引用程序中的哪个变量。

有两种可能:

通过系统调用可以找到内部对象id:

通过使用RTTI(运行时类型信息)可以找到对象的类型:

通过此信息,消费返利新模式,我可以创建对象标识就像在调试器中看到的一样:

这个信息也使得构建树非常舒服,因为我有唯一的对象名。

如果在程序中全局定义了一个特定对象的变量名,那么找到它就很容易了。在这里您可以使用功能模块GET\ U GLOBAL\ U SYMBOLS来获得所有使用变量的列表。

在这个功能模块的结果表中有一些有用的字段。对象实例的类型为"r"和reftypeloc"CLAS"。

使用脏赋值,我可以获取对象引用并将其存储在内部表中,哪个云服务器好,以显示对象id的变量名。

显示容器结构

使用所有这些信息,我可以显示给定对象的容器结构。对于放置在dynpro上的容器,我可以显示CL\u GUI\u CONTAINER=>SCREEN0或SCREEN1的子级(取决于弹出级别)。

没有直接链接到dynpro的容器,企业内部软件,像CL\u GUI\u DOCKING\u CONTAINER或CL\u GUI\u DIALOGBOX\u CONTAINER只能通过提供实例来显示。

对象信息

对于我经历的另一个项目,忽略了每个对象的属性"name"。使用此属性时有一些奇怪的行为:

但是,将名称添加到控件可以更容易地识别控件和容器。如果容器是CL\u GUI\u CUSTOM\u容器,那么将设置Dynpro区域的名称,这非常有用。

用法

要使用此工具,您需要在Dynpro的PAI末尾实现一行:

对话框将显示容器层次结构的结构。

另一种方法是将代码行放在调试器中脚本窗口中的方法脚本。选择左侧的"直接执行",然后按"执行脚本"。

优化

我可以想到一些增强功能…

应该有一个按钮或特殊的节点条目来刷新当前结构。

到目前为止,您可以添加一个要显示的控件。特别是如果你有许多停靠容器,将所有这些容器添加到显示器上会很有帮助。

在这个版本中,你需要设置顶部容器以查看下面的结构。如果您提供任何控件,顶部的结构也将被分析和显示,这也会很有帮助。

我也可以想象,应该可以向标准调试器添加一个工具。与分析数据结构的方法相同,可以插入控件的名称或id,并且该结构将直接显示在调试器中。双击一个对象将引导您进入详细视图。

Larsiohvam的Medicals

感谢Lars Hvam,云购网,代码可以在Gihub查看和测试https://github.com/tricktresor/container\u层次结构