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



所以我有这个:

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.

相关内容

  • 没有找到相关文章

最新更新