将SELECT-OPTIONS表作为参数传递给子例程?
问题描述:
所以我有这样的:将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.
什么,我也试过了,而不是结构SELOPT
使用表类型piq_selopt_t
而不是通过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.
+0
我很害怕没有正确输入东西 - 我是一个前爪哇人:) – 2013-02-17 18:54:27
我确认后,你会得到+1,我会接受答案。谢谢。 – 2012-07-24 13:34:18