*&---------------------------------------------------------------------*
*& Report ZRA_TEST_045
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zra_test_045.
TABLES: vbak,vbap.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_vbak,
vbeln TYPE vbeln_va, "Sales Document
erdat TYPE erdat, "Date on Which Record Was Created
erzet TYPE erzet, "Entry time
END OF ty_vbak,
BEGIN OF ty_vbap,
vbeln TYPE vbeln_va, "Sales Document
posnr TYPE posnr_va, "Sales Document Item
matnr TYPE matnr, "Material Number
END OF ty_vbap.
DATA : it_vbak TYPE STANDARD TABLE OF ty_vbak,
wa_vbak TYPE ty_vbak,
it_vbap TYPE STANDARD TABLE OF ty_vbap,
wa_vbap TYPE ty_vbap,
lv_vbeln TYPE vbeln.
DATA : i_fldcat TYPE slis_t_fieldcat_alv,
w_fldcat TYPE slis_fieldcat_alv,
w_layout TYPE slis_layout_alv,
i_fldcat1 TYPE slis_t_fieldcat_alv,
w_fldcat1 TYPE slis_fieldcat_alv,
w_layout1 TYPE slis_layout_alv,
v_repid TYPE sy-repid.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
INITIALIZATION.
v_repid = sy-repid.
CLEAR: wa_vbak,
wa_vbap.
REFRESH: it_vbak,
it_vbap.
START-OF-SELECTION.
SELECT vbeln
erdat
erzet
FROM vbak
INTO TABLE it_vbak
WHERE vbeln IN s_vbeln.
IF sy-subrc EQ 0.
SORT it_vbak BY vbeln.
ENDIF.
END-OF-SELECTION.
PERFORM create_fieldcatalog.
PERFORM create_layout.
PERFORM create_display.
*&---------------------------------------------------------------------*
*& Form create_fieldcatalog
*&---------------------------------------------------------------------*
* text
*------------------------------ ----------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_fieldcatalog .
DATA: c_pos TYPE i VALUE 1,
r_pos TYPE i VALUE 1.
w_fldcat-col_pos = c_pos.
w_fldcat-row_pos = r_pos.
w_fldcat-fieldname = 'VBELN'.
w_fldcat-seltext_l = 'SALES DOCUMENT'.
w_fldcat-tabname = 'IT_VBAK'.
APPEND w_fldcat TO i_fldcat.
CLEAR: w_fldcat.
c_pos = c_pos + 1.
w_fldcat-col_pos = c_pos.
w_fldcat-row_pos = r_pos.
w_fldcat-fieldname = 'ERDAT'.
w_fldcat-seltext_l = 'CREATED ON'.
w_fldcat-tabname = 'IT_VBAK'.
APPEND w_fldcat TO i_fldcat.
CLEAR: w_fldcat.
c_pos = c_pos + 1.
w_fldcat-col_pos = c_pos.
w_fldcat-row_pos = r_pos.
w_fldcat-fieldname = 'ERZET'.
w_fldcat-seltext_l = 'ENTRY TIME'.
w_fldcat-tabname = 'IT_VBAK'.
APPEND w_fldcat TO i_fldcat.
CLEAR: w_fldcat.
ENDFORM. " create_fieldcatalog
*&---------------------------------------------------------------------*
*& Form create_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_layout .
w_layout-colwidth_optimize = 'X'.
w_layout-zebra = 'X'.
ENDFORM. " create_layout
*&---------------------------------------------------------------------*
*& Form create_display
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = v_repid
* I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout = w_layout
it_fieldcat = i_fldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_vbak
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " create_display
*&---------------------------------------------------------------------*
*& Form user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm TYPE sy-ucomm rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = rs_selfield-value
IMPORTING
output = lv_vbeln.
PERFORM get_vbap.
PERFORM layout1.
PERFORM popup_display1.
ENDCASE.
ENDFORM. "user_command
*&---------------------------------------------------------------------*
*& Form get_vbap
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_vbap .
SELECT vbeln
posnr
matnr
FROM vbap
INTO TABLE it_vbap
WHERE vbeln = lv_vbeln.
IF sy-subrc EQ 0.
SORT it_vbap BY vbeln.
ENDIF.
ENDFORM. " get_vbap
*&---------------------------------------------------------------------*
*& Form layout1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM layout1 .
w_layout1-colwidth_optimize = 'X'.
w_layout1-zebra = 'X'.
ENDFORM. " layout1
*&---------------------------------------------------------------------*
*& Form popup_display1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form popup_display1 .
DATA: c_pos TYPE i VALUE 1,
r_pos TYPE i VALUE 1.
refresh: i_fldcat1.
clear: w_fldcat1.
w_fldcat1-col_pos = c_pos.
w_fldcat1-row_pos = r_pos.
w_fldcat1-fieldname = 'VBELN'.
w_fldcat1-seltext_l = 'SALES DOCUMENT'.
w_fldcat1-tabname = 'IT_VBAP'.
APPEND w_fldcat1 TO i_fldcat1.
CLEAR: w_fldcat1.
c_pos = c_pos + 1.
w_fldcat1-col_pos = c_pos.
w_fldcat1-row_pos = r_pos.
w_fldcat1-fieldname = 'POSNR'.
w_fldcat1-seltext_l = 'SALES DOCUMENT ITEM'.
w_fldcat1-tabname = 'IT_VBAP'.
APPEND w_fldcat1 TO i_fldcat1.
CLEAR: w_fldcat1.
c_pos = c_pos + 1.
w_fldcat1-col_pos = c_pos.
w_fldcat1-row_pos = r_pos.
w_fldcat1-fieldname = 'MATNR'.
w_fldcat1-seltext_l = 'MATERIAL NUMBER'.
w_fldcat1-tabname = 'IT_VBAP'.
APPEND w_fldcat1 TO i_fldcat1.
CLEAR: w_fldcat1.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
* I_TITLE =
I_SELECTION = 'X'
* I_ALLOW_NO_SELECTION =
I_ZEBRA = 'X'
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_CHECKBOX_FIELDNAME =
* I_LINEMARK_FIELDNAME =
* I_SCROLL_TO_SEL_LINE = 'X'
i_tabname = 'IT_VBAP'
* I_STRUCTURE_NAME = ty_vbap
IT_FIELDCAT = i_fldcat1
* IT_EXCLUDING =
I_CALLBACK_PROGRAM = v_repid
* I_CALLBACK_USER_COMMAND =
* IS_PRIVATE =
* IMPORTING
* ES_SELFIELD =
* E_EXIT =
tables
t_outtab = it_vbap
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endform. " popup_display1
No comments:
Post a Comment