所以我有这个:
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
表作为参数传递,但无法设法完成。
答案 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.