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