ABAP:将数据类型传递给表单

ABAP:将数据类型传递给表单,abap,Abap,我想将自己的数据类型传递给表单,但它不起作用: TYPES: BEGIN OF my_type, v1 TYPE i, v2 TYPE i, END OF my_type. PERFORM calc using ...some parameters... . FORM calc using ...some parameters... . DATA values TYPE my_type " <- ERROR type my_type does not e

我想将自己的数据类型传递给表单,但它不起作用:

TYPES: BEGIN OF my_type,
     v1 TYPE i,
     v2 TYPE i,
   END OF my_type. 


PERFORM calc using ...some parameters... .

FORM calc using ...some parameters... .

DATA values TYPE my_type " <- ERROR type my_type does not exist

...some code...

ENDFORM.
类型:从my_类型开始,
v1类型i,
v2 i型,
我的类型结束了。
使用…某些参数…执行计算。
使用…某些参数…形成计算。

数据值类型my_TYPE“备注:根据注释中的更多信息:代码在功能模块中定义

一个功能模块是它自己的程序(名称是
SAPL
…功能组名称…)。每个功能模块都是它自己的include

如果在报表中定义类型,则功能模块无法知道类型定义。如果需要在报表和功能模块(组)之间共享类型定义,则应在SE11中将其定义为全局类型


如果仅在功能模块内运行代码,则可以在功能组的顶部包含中定义类型。但不应在功能模块界面中使用此定义。

备注:根据注释中的更多信息:代码在功能模块中定义

一个功能模块是它自己的程序(名称是
SAPL
…功能组名称…)。每个功能模块都是它自己的include

如果在报表中定义类型,则功能模块无法知道类型定义。如果需要在报表和功能模块(组)之间共享类型定义,则应在SE11中将其定义为全局类型


如果您只在功能模块内运行代码,您可以在功能组的顶部包含中定义类型。但您不应该在功能模块接口中使用此定义。

我怀疑您的原始代码可能有输入错误。您在问题中显示的伪代码应该可以工作。原始代码位于功能模块中ule-这有什么区别吗?是的。功能模块是它自己的程序(名称是SAPL…功能组名称…)。每个功能模块都是它自己的包含。普通报告和功能组之间没有关系。如果需要共享类型定义,应在SE11中将其定义为全局类型。(也许共享包含也会起作用。但我不确定,也不推荐)。请发布一个不起作用的实际代码示例,而不是一些缩写为无关的代码片段。@knut thx,se11帮助了我。我将我的结构定义为全局类型。现在我可以在函数模块中使用它。我怀疑您的原始代码中可能有输入错误。您在问题中显示的伪代码应该起作用。原始代码代码位于功能模块中-这有什么区别吗?是的。功能模块是它自己的程序(名称是SAPL…功能组名称…)。每个功能模块都有自己的包含。普通报表和功能组之间没有关系。如果需要共享类型定义,则应在SE11中将其定义为全局类型。(可能共享包含也会起作用。但我不确定,也不推荐使用)。请发布一个不起作用的实际代码示例,而不是一些缩写为不相关的代码片段。@knut thx,se11帮助了我。我将结构定义为全局类型。现在我可以在函数模块中使用它。