所以我有这个:
SELECT-OPTIONS gr_saord FOR gv_sales_order OBLIGATORY.
然后
PERFORM check_values CHANGING gr_saord.
然后
FORM check_values CHANGING p_gr_saord TYPE selopt.
我还尝试了用piq_selopt_t
代替结构SELOPT
,用gr_saord[]
代替传递gr_saord
。
所提供的代码版本和替代代码都会导致相同的错误消息:
在PERFORM或CALL FUNCTION"CHECK_VALUES"中,实际参数"GS_SAORD"与形式参数"P_GR_SAORD"不兼容。
基本上,我只想简单地传递一个SELECT-OPTIONS
表作为参数,但无法做到这一点这是因为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.
如果你很懒(有很多选择选项要传递),并且你不需要将它们传递给FORM中的select语句,你可以跳过类型定义,用定义你的表单
perform check_values CHANGING gs_saord[].
form check_values CHANGING p_gr_saord TYPE standard table.
endform.