将SELECT-OPTIONS表作为参数传递给子程序?

时间:2012-07-24 12:29:11

标签: parameters sap abap

所以我有这个:

SELECT-OPTIONS gr_saord FOR gv_sales_order OBLIGATORY.

然后

PERFORM check_values CHANGING gr_saord.

然后

FORM check_values CHANGING p_gr_saord TYPE selopt.

我还尝试使用表格类型SELOPT代替结构piq_selopt_t而不是传递gr_saord来传递gr_saord[]

代码的呈现版本和替代结果都在相同的错误消息中:

  

在PERFORM或CALL FUNCTION“CHECK_VALUES”中,实际参数   “GS_SAORD”与形式参数“P_GR_SAORD”不兼容。

基本上我想简单地将SELECT-OPTIONS表作为参数传递,但无法设法完成。

2 个答案:

答案 0 :(得分:8)

这是因为selopt和piq_selopt_t不适用于vbak-vbeln。与您的选择选项相比,这些数据类型的低和高输入方式不同。

这应该有效

data: gv_sales_order type vbap-vbeln.

types: tr_vbeln like RANGE OF gv_sales_order.

SELECT-OPTIONS: gs_saord for gv_sales_order.


perform check_values CHANGING gs_saord[].

form check_values CHANGING p_gr_saord TYPE tr_vbeln.

endform.

答案 1 :(得分:0)

如果你很懒(并且有很多选择要通过)并且你的onyl需要将它们传递给你的FORM中的select语句,你可以跳过类型定义并用

定义你的表单
perform check_values CHANGING gs_saord[].

form check_values CHANGING p_gr_saord TYPE standard table.

endform.