>我需要对SAPScript进行一些更改。我有程序和表单名称
节目: RBOSORDER01形式:RBOSORDER02
我希望更改表单中显示的一些数据。我已经调试了程序,我看到调用写入表单,例如:
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'ITEM_TEXT'
EXCEPTIONS
ELEMENT = 1
WINDOW = 2.
但是数据如何在程序和表单之间传递。我无法在两者之间链接。我希望看到一个带有"ITEM_TEXT"传递的结构或数据元素,然后将这些数据打印在表单中的该元素"ITEM_TEXT"处,但我不清楚链接。
我也看过 SE71 中的表格,但看不到您在哪里定义它。这里的链接在哪里,我错过了什么?
这是形式,所以 SE71 是你需要的。您必须先找到显示此元素 (ITEM_TEXT) 的窗口,然后查找元素并查看其中显示的内容。默认情况下,SAPSript 表单直接使用打印程序的全局变量(结构、内部表)(还有一些其他选项,例如 INCLUDE 文本)。因此,例如,如果在打印程序中声明了一个全局变量gv_text,并且它显示在SAPScript中,那么它将在表单中看起来像&GV_TEXT&。
如果在 SE71 中打开调试,也可以调试 SAPScript(如果表单很大,可能会很痛苦)。
函数'WRITE_FORM'在这种情况下,只是使用ELEMENT='ITEM_TEXT'调用表单的入口点(SE71/RBOSORDER02)。
因此,您最终将在主窗口中找到:
/E ITEM_TEXT
/: INCLUDE &VBDPA-TDNAME& OBJECT VBBP ID 0001 PARAGRAPH IT
在这种情况下,您必须调试此时"VBDPA-TDNAME"是什么,然后您将通过事务"SO10"(标准文本)找到它的值
INCLUDE 可以是复杂的文本,并且可以有自己的格式字符串。
正如Jozsef之前所说,VBDPA-TDNAME在打印程序中是全局定义的。(SE38n/RBOSORDER01)