SAP_ABAP_FI
ST04-Query Version2 본문
기존 화면 동일
-> 쿼리 부분만 상이
DATA: lr_data TYPE REF TO data,
lr_str TYPE REF TO cl_abap_structdescr,
lr_table TYPE REF TO cl_abap_tabledescr.
DATA: lv_string TYPE string.
FIELD-SYMBOLS:<fs_tab> TYPE STANDARD TABLE.
TRY.
DATA(result) = NEW cl_sql_statement( )->execute_query( pv_sql ).
CATCH cx_sql_exception INTO DATA(lr_root).
lv_string = lr_root->get_text( ).
PERFORM error_msg_disp USING lv_string.
EXIT.
CATCH cx_parameter_invalid INTO DATA(lr_param).
lv_string = lr_param->get_text( ).
PERFORM error_msg_disp USING lv_string.
EXIT.
ENDTRY.
DATA(lt_meta) = result->get_metadata( ).
DATA(lr_meta) = result->get_struct_ref( EXPORTING md_tab = lt_meta
p_strict = abap_false
).
lr_str ?= cl_abap_typedescr=>describe_by_data_ref( lr_meta ).
lr_table = cl_abap_tabledescr=>create(
p_line_type = lr_str
p_table_kind = cl_abap_tabledescr=>tablekind_std
).
LOOP AT lr_str->components INTO DATA(ls_component).
APPEND VALUE #(
fieldname = ls_component-name
datatype = ls_component-type_kind
inttype = ls_component-type_kind
intlen = ls_component-length
decimals = ls_component-decimals
coltext = ls_component-name
col_opt = 'A'
just = COND #( WHEN ls_component-type_kind = 'g' THEN 'L'
ELSE 'R'
)
) TO gt_fcat.
ENDLOOP.
CREATE DATA lr_data TYPE HANDLE lr_table.
CHECK lr_data IS BOUND.
TRY.
result->set_param_table( EXPORTING itab_ref = lr_data ).
CATCH cx_parameter_invalid INTO lr_param.
ENDTRY.
TRY.
*----> DB 데이터 추출
result->next_package( ).
CATCH cx_sql_exception INTO lr_root.
lv_string = lr_root->get_text( ).
PERFORM error_msg_disp USING lv_string.
EXIT.
CATCH cx_parameter_invalid INTO lr_param.
lv_string = lr_param->get_text( ).
PERFORM error_msg_disp USING lv_string.
EXIT.
ENDTRY.
ASSIGN lr_data->* TO <fs_tab>.
result->close( ).
CHECK <fs_tab> IS ASSIGNED.
gr_grid->set_table_for_first_display( CHANGING
it_outtab = <fs_tab>
it_fieldcatalog = gt_fcat
).
CLEAR: gt_fcat.
'SAP_ABAP_Source' 카테고리의 다른 글
ABAP SelectionScreen/Event/응용 (0) | 2021.10.10 |
---|---|
abap 문법/sql (0) | 2021.10.09 |
ABAP_DOMAIN_FIELD값 가져오기 (0) | 2021.09.07 |
ST04-Query부분 발췌 (0) | 2021.09.07 |
동적 InterTable 만들기 (0) | 2021.09.07 |