我无法将参数的Select-Option正确添加到信息集中。 我在选择屏幕中得到了这些参数:
REPORT RSAQDVP_TEMPLATE .
*
*---------------------------------------------------------------------*
* declarations
* (insert your declarations in this section)
*---------------------------------------------------------------------*
data:
BAPI_PLDORDCOMP_E1 type BAPI_PLDORDCOMP_E1,
it_data type standard table of BAPI_PLDORDCOMP_E1.
field-symbols: <struc> type BAPI_PLDORDCOMP_E1.
*-------------------------------------------------------------------*
* selection screen statements
*-------------------------------------------------------------------*
* (define your selection-screen here)
parameters: plant_in like MARC-WERKS default 'IX09',
pln_orde type PLAF-PLNUM.
* !! the following comment MUST NOT BE CHANGED !!
*<QUERY_HEAD>
*-------------------------------------------------------------------*
* read data into IT_DATA
*-------------------------------------------------------------------*
* (select your data here into internal table IT_DATA)
call function 'BAPI_PLANNEDORDER_GET_DETAIL'
EXPORTING
PLANNEDORDER = pln_orde
TABLES
componentsdata = it_data.
我不明白如何使用&#34; SELECT-OPTION&#34;插入范围可选参数。的语句。
提前感谢任何帮助/建议。 S上。
答案 0 :(得分:2)
我们走了。
<强> 1。的信息:强>
您是否检查过此功能模块BAPI_PLANNEDORDER_GET_DETAIL?它不接受任何范围表/ select-options作为其参数的参数。
<强> 2。假设强>
唯一可能是你的目标,基于开头变量声明的类型,
it_data type standard table of BAPI_PLDORDCOMP_E1.
让我假设,你可能想要提供一个组件列表,因此你认为,你需要一个范围表,以便只选择一个组件。
第3。操作方法:强>
如果这是你的情况,那么你必须在你的选择屏幕中创建选择选项,简单如下:(这可能是一种方式,但是,你应该找到适当的表,其中存储了计划订单的所有组件,并在&#34; FOR&#34;中使用其名称&#34; -matnr。这里只是简单地说明了它是如何完成的。
SELECT-OPTIONS: so_matnr FOR marc-matnr.
如果程序哀悼,请在开头添加语句,或者在top-include:
中添加TABLES: "TheTableNameYouWantForFor".
如果您将SO_xxx添加到您的param的部分,这将在代码中隐含地创建一个变量,该变量用作范围表。 在调试器中您可以看到如下内容:
你现在必须
这张照片会告诉你,这可能意味着什么。
但是,从我所看到的,这将是正确的方法,是自定义F4回调,因为您已经输入了计划订单的密钥。 这意味着,您将拥有系统中所有材料的子集,减少为计划订单的组成部分。
这将涉及自定义F4-Helps,自定义F4-HelpExits,自定义F4-Callbacks。
多一点努力。
事实上对于像这样的简单查询来说很多。
<强> 4。结论强>
检查,BAPI做了什么,部分重新实现(在se37之前检查所选表格,se37和st05将告诉你),自己编写正确的代码(或从bapi复制粘贴),你可以使用matnr-range,如上所述。