2012-07-24 64 views
2

所以我有这样的:将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表作为参数,不能设法做到这一点。

回答

7

这是因为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. 
+0

我确认后,你会得到+1,我会接受答案。谢谢。 – 2012-07-24 13:34:18

0

如果你是懒惰的(并且有很多选择选项传递),你磺酰基需要你的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

相关问题