[英]Create internal table as subset of columns of another internal table
如何在 ABAP 中按索引获取表的单列?
例如我有:
A B C
1 2 3
1 2 3
我想用[2,2]得到B列。
编辑:这是我的代码
DATA:
l_r_data TYPE REF TO data,
ld_e_cell_data TYPE rrws_t_cell.
CALL FUNCTION 'RRW3_GET_QUERY_VIEW_DATA'
EXPORTING
* i_infoprovider =
i_query = l_query_name
* i_view_id =
i_t_parameter = l_t_parameter
IMPORTING
e_axis_info = ld_e_axis_info
e_cell_data = ld_e_cell_data
e_axis_data = ld_e_axis_data
e_txt_symbols = ld_e_txt_symbols
EXCEPTIONS
no_applicable_data = 1
invalid_variable_values = 2
no_authority = 3
abort = 4
invalid_view = 6
OTHERS = 7.
IF sy-subrc <> 0.
** MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
** WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
现在我只需要 l_r_data 中 ld_e_cell_data 第二列的数据。
假设您有一个内部表lt_itab1
具有行结构field1
, field2
,...和第二个表lt_itab2
,其行结构仅包含field2
。 然后你可以使用:
lt_table_2 = CORRESPONDING #( lt_table_1 ).
“SAP Netweaver 版本低于 7.4
REPORT zab_demo.
TYPES:
BEGIN OF ty_connection,
connid TYPE s_conn_id,
END OF ty_connection.
DATA:
flight TYPE sflight,
flights TYPE STANDARD TABLE OF sflight,
connection_structured TYPE ty_connection,
connections_structured TYPE STANDARD TABLE OF ty_connection,
connections_unstructured TYPE STANDARD TABLE OF s_conn_id.
SELECT * FROM sflight INTO TABLE flights UP TO 10 ROWS.
LOOP AT flights INTO flight.
connection_structured-connid = flight-connid.
APPEND connection_structured TO connections_structured.
ENDLOOP.
LOOP AT flights INTO flight.
APPEND flight-connid TO connections_unstructured.
ENDLOOP.
“具有内联数据声明的 SAP Netweaver 版本高于 7.4
REPORT zab_demo2.
"Types can be of course from Data Dictionary, here we define types for demonstaration purpose only.
TYPES:
BEGIN OF ty_connection,
connid TYPE s_conn_id,
END OF ty_connection.
TYPES:
BEGIN OF ty_cat,
cat TYPE s_conn_id,
END OF ty_cat.
TYPES ty_connections TYPE STANDARD TABLE OF ty_connection WITH NON-UNIQUE KEY connid.
DATA:
connections_structured2 TYPE ty_connections,
connections_unstructured TYPE STANDARD TABLE OF s_conn_id,
cats_structured TYPE STANDARD TABLE OF ty_cat WITH NON-UNIQUE KEY cat.
SELECT * FROM sflight INTO TABLE @DATA(flights) UP TO 10 ROWS.
DATA(connections_structured) = CORRESPONDING ty_connections( flights ).
connections_structured2 = CORRESPONDING #( flights ).
"FOR can be combined with REDUCE, WHERE, FILTER and INIT, to get out more from BI Queries
DATA(connections_structured3) = VALUE ty_connections( FOR flight IN flights ( connid = flight-connid ) ).
"Of course you can cut out 2 of 3 columns also, here we cut only one out
connections_unstructured = VALUE #( FOR flight IN flights ( flight-connid ) ).
"Move column to other internal table with different field name
cats_structured = CORRESPONDING #( flights MAPPING cat = connid ).
"Move column to other internal table with different type
connections_unstructured = VALUE string_table( FOR flight IN flights ( CONV string( flight-connid ) ) ).
" 表 lt_values 包含列值的条目。
METHOD SEL_B.
DATA: lt_values TYPE standard table of rrxfloat ,
ld_e_cell_data TYPE rrws_t_cell.
FIELD-SYMBOLS: <cell> TYPE rrws_s_cell,
<val> TYPE rrxfloat.
loop at ld_e_cell_data ASSIGNING <cell>.
APPEND INITIAL LINE TO lt_values ASSIGNING <val>.
<val> = <cell>-value.
ENDLOOP.
ENDMETHOD.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.