CALL SCREEN 1100.
*&---------------------------------------------------------------------*
*& Module STATUS_1100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_1100 OUTPUT.
SET PF-STATUS '1200'.
SET TITLEBAR 'SHIRTEST'.
ENDMODULE. " STATUS_1100 OUTPUT
*&---------------------------------------------------------------------*
*& Module lt_table_display INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE lt_table_display INPUT.
SELECT SINGLE afko~plnbez INTO afko-plnbez
FROM afko
WHERE afko~aufnr = afpo-aufnr.
IF sy-subrc = 0.
CLEAR lead_aufnr.
SELECT SINGLE lead_aufnr INTO lead_aufnr"取母订单
FROM afko_laufn
WHERE aufnr = afpo-aufnr.
IF lead_aufnr <> ''.
SELECT afko~aufnr afko~plnbez
INTO CORRESPONDING FIELDS OF TABLE alv_shirtest
FROM afko_laufn
INNER JOIN afko ON
afko_laufn~aufnr = afko~aufnr
WHERE afko_laufn~lead_aufnr = lead_aufnr.
LOOP AT alv_shirtest INTO zalv_shir.
SELECT SINGLE maktx
INTO zalv_shir-maktx
FROM makt
WHERE makt~matnr = zalv_shir-plnbez
AND makt~spras = 1.
MODIFY alv_shirtest FROM zalv_shir.
CLEAR zalv_shir.
ENDLOOP.
ENDIF.
ELSE.
MESSAGE i001 WITH '你输入的订单号不存在'.
ENDIF.
IF custom_container1 IS INITIAL.
* 容器控件创建
CREATE OBJECT custom_container1 " CL_GUI_CUSTOM_CONTAINER
EXPORTING
container_name = 'ALV_SHIRTEST'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
* ALV对象创建
CREATE OBJECT grid1 " CL_GUI_ALV_GRID
EXPORTING i_parent = custom_container1
i_appl_events = 'X'.
CALL METHOD grid1->set_table_for_first_display
EXPORTING
i_structure_name = 'ZALV_SHIR' " 列构造(需要自己声明定义)
is_layout = rec_layout " ALV Layout构造
i_save = 'A'
is_variant = rec_variant
* it_toolbar_excluding = tab_toolbar
CHANGING
it_outtab = alv_shirtest " 列数据
it_fieldcatalog = tab_fieldcatalog[].
* CREATE OBJECT event_receiver.
* SET HANDLER event_receiver->handle_double_click FOR grid1.
* CALL METHOD grid1->set_ready_for_input
* EXPORTING
* i_ready_for_input = 1.
ENDIF.
ENDMODULE. " lt_table_display INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_1100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_1100 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN '&F03'.
LEAVE TO SCREEN 0.
* WHEN 'SHI'.
* CALL TRANSACTION 'MM03'.
* WHEN 'EXIT'.
* CALL TRANSACTION 'MM03'.
* LEAVE PROGRAM.
* LEAVE TO SCREEN 0.
WHEN space.
WHEN OTHERS.
ENDCASE.
ENDMODULE. " USER_COMMAND_1100 INPUT
*&---------------------------------------------------------------------*
*& Module cancel INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE cancel INPUT.
LEAVE PROGRAM.
ENDMODULE. " cancel INPUT
*&---------------------------------------------------------------------*
*& Module EXIT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE exit INPUT.
LEAVE PROGRAM.
ENDMODULE. " EXIT INPUT