为信息集添加 SELECT-OPTIONS
Add SELECT-OPTIONS for infoset
我无法将参数的 Select-选项正确添加到信息集中。
我在选择屏幕中得到了这个参数:
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.
所以基本上有 2 个参数(见 SQ01 中的截图):
我不明白如何使用 "SELECT-OPTION" 语句插入范围可选参数。
提前感谢任何形式的help/suggestion。
S.
我们走吧。
1.信息:
你检查过这个功能模块了吗BAPI_PLANNEDORDER_GET_DETAIL?它不接受任何范围-tables / select-选项作为其参数的参数。
2。假设:
唯一的,这可能是你的目的,根据一开始的变量声明类型,
it_data type standard table of BAPI_PLDORDCOMP_E1.
让我假设,您可能想提供一个组件列表,因此您认为,您需要一个范围 table,以便只有某些组件被 selected。
3。方法:
如果这是你的情况,那么你必须在你的 selection 屏幕中创建 select-options,就像这样简单:(这可能是一种方法,不过,你应该找到适当的 table,其中存储了计划订单的所有组件,并在 "FOR" 中使用其 "name"-matnr。)。这只是简单地展示了它是如何完成的。
SELECT-OPTIONS: so_matnr FOR marc-matnr.
如果程序哀悼,在开头添加语句,或者在top-include:
TABLES: "TheTableNameYouWantForFor".
如果您将 SO_xxx 添加到您的参数部分,这将在代码中隐式创建一个变量,用作范围-table。
在调试器中你可以看到这样的东西:
你现在必须
- a) 分析这个范围-TABLE,以便正确解析它
这并不容易,(可能有 function-module/method,但我不知道)。
您基本上要做的是提取那些 material-numbers,其中
是需要的。这并不像听起来那么明显,因为用户也可以
已进入多个范围/多个排除项/多个单一值/多个包含项。
SIGN 和 OPTION 字段负责上述组合。
SAP 提供了很多。
这张照片将向您展示这可能意味着什么。
- b) 一旦你正确地解析了所有的东西并真正确定了,还应该选择哪些材料(也许是第二个中介 table),你可以
在 so_xxx-implicit-table 或 mediator-table 处循环到结构中,获取值,将其传递给 bapi 调用和 HOPE 的参数 -table 的结构,即 materialnumber 足以让 BAPI 结构传递 materials(你应该先用 se37 测试它)。如何从隐式 select-options-table?
中检索 materials
但是,据我所知,这是正确的方法,是自定义 F4 回调,因为您已经输入了计划订单的密钥。
这意味着,您将拥有系统中所有 material 的子集,减少为计划订单的组成部分。
这将涉及自定义 F4-Helps、自定义 F4-HelpExits、自定义 F4-Callbacks。
再努力一点。
事实上,对于像这样的简单查询来说已经够多了。
4.结论:
检查 BAPI 做了什么,部分地重新实现它(检查 selected tables、se37 和 st05 之前 se37 会告诉你),自己编写正确的代码(或从 bapi 复制粘贴),您可以使用上面发布的 matnr-range。
我无法将参数的 Select-选项正确添加到信息集中。 我在选择屏幕中得到了这个参数:
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.
所以基本上有 2 个参数(见 SQ01 中的截图):
我不明白如何使用 "SELECT-OPTION" 语句插入范围可选参数。
提前感谢任何形式的help/suggestion。 S.
我们走吧。
1.信息:
你检查过这个功能模块了吗BAPI_PLANNEDORDER_GET_DETAIL?它不接受任何范围-tables / select-选项作为其参数的参数。
2。假设:
唯一的,这可能是你的目的,根据一开始的变量声明类型,
it_data type standard table of BAPI_PLDORDCOMP_E1.
让我假设,您可能想提供一个组件列表,因此您认为,您需要一个范围 table,以便只有某些组件被 selected。
3。方法:
如果这是你的情况,那么你必须在你的 selection 屏幕中创建 select-options,就像这样简单:(这可能是一种方法,不过,你应该找到适当的 table,其中存储了计划订单的所有组件,并在 "FOR" 中使用其 "name"-matnr。)。这只是简单地展示了它是如何完成的。
SELECT-OPTIONS: so_matnr FOR marc-matnr.
如果程序哀悼,在开头添加语句,或者在top-include:
TABLES: "TheTableNameYouWantForFor".
如果您将 SO_xxx 添加到您的参数部分,这将在代码中隐式创建一个变量,用作范围-table。 在调试器中你可以看到这样的东西:
你现在必须
- a) 分析这个范围-TABLE,以便正确解析它 这并不容易,(可能有 function-module/method,但我不知道)。 您基本上要做的是提取那些 material-numbers,其中 是需要的。这并不像听起来那么明显,因为用户也可以 已进入多个范围/多个排除项/多个单一值/多个包含项。 SIGN 和 OPTION 字段负责上述组合。 SAP 提供了很多。
这张照片将向您展示这可能意味着什么。
- b) 一旦你正确地解析了所有的东西并真正确定了,还应该选择哪些材料(也许是第二个中介 table),你可以 在 so_xxx-implicit-table 或 mediator-table 处循环到结构中,获取值,将其传递给 bapi 调用和 HOPE 的参数 -table 的结构,即 materialnumber 足以让 BAPI 结构传递 materials(你应该先用 se37 测试它)。如何从隐式 select-options-table? 中检索 materials
但是,据我所知,这是正确的方法,是自定义 F4 回调,因为您已经输入了计划订单的密钥。 这意味着,您将拥有系统中所有 material 的子集,减少为计划订单的组成部分。
这将涉及自定义 F4-Helps、自定义 F4-HelpExits、自定义 F4-Callbacks。
再努力一点。
事实上,对于像这样的简单查询来说已经够多了。
4.结论:
检查 BAPI 做了什么,部分地重新实现它(检查 selected tables、se37 和 st05 之前 se37 会告诉你),自己编写正确的代码(或从 bapi 复制粘贴),您可以使用上面发布的 matnr-range。