zalvtest2
REPORT zalvtest2.
INCLUDE zalvtest2t01.
INCLUDE zalvtest2f01.
************************************************************************************************************
* I N I T I A L I Z A T I O N
************************************************************************************************************
INITIALIZATION.
s_vbeln-sign = 'I'. " Giving initial values to select-options.
s_vbeln-option = 'BT'.
s_vbeln-low = 5000.
s_vbeln-high = 5010.
APPEND s_vbeln TO s_vbeln.
************************************************************************************************************
* A T S E L E C T I O N S C R E E N E V E N T
************************************************************************************************************
AT SELECTION-SCREEN.
PERFORM get_vbak_data. " Getting data from vbak into it_vbak
SORT it_vbak BY vbeln. " sorting table for read statement using binary search
************************************************************************************************************
* S T A R T O F S E L E C T I O N
************************************************************************************************************
START-OF-SELECTION.
PERFORM GET_VBAK_DATA. " Getting data from vbak into it_vbak
SORT IT_VBAK BY VBELN. " sorting table for read statement using binary search
************************************************************************************************************
* E N D O F S E L E C T I O N
************************************************************************************************************
END-OF-SELECTION.
PERFORM FLDCAT_POPULATE . " Populating the fieldcat
* PERFORM SORT_FOR_SUBTOT. " Sorting for finding subtotals
PERFORM LAYOUT_POPULATE. " Populating the layout
* PERFORM EVENT_ON_ALVLIST. " Populating the events
PERFORM GIVE_KEYINFO. " Populating the keyinfo.
PERFORM DISP_ALV. " Displaying the basic list
zalvtest2t01.
************************************************************************************************************
* C O N S T A N T S D E C L A R A T I O N
************************************************************************************************************
CONSTANTS: C_AUN(20) VALUE 'AUN', " Constant for storing the parameter id of vbeln
C_MAT(20) VALUE 'MAT', " Constant for storing the parameter id of matnr
C_VA03(20) VALUE 'VA03', " Constant for storing the tcode VA03
C_MM03(20) VALUE 'MM03', " Constant for storing the tcode MM03
C_TOP(45) VALUE 'SALES ORDER ITEM INFORMATION', " Constant to pass the Top Of Page
C_TITL(35) VALUE 'SALES ORDER DETAILS', " Constant to pass the window titlebar
C_URL(45) VALUE 'www.lgsglobal.com', " Constant to hold the url address
C_STIT(70) VALUE 'ITEM DETAILS', " Constant to hold the title of the secondary grid
C_BTIT(70) VALUE 'HEADER DETAILS'. " Constant to hold the title of the basic grid
************************************************************************************************************
* D A T A D E C L A R A T I O N
************************************************************************************************************
DATA: F_COLOR TYPE I, " Flag to change color
F_STOP TYPE C, " Flag to exit from program
V_VBELN TYPE VBAK-VBELN, " Variable for select options
P_LAYVAR1 TYPE DISVARIANT. " Variable for variant name
TYPE-POOLS : SLIS.
************************************************************************************************************
* T Y P E S D E C L A R A T I O N
************************************************************************************************************
TYPES: BEGIN OF TY_VBAK, " Declaration of Sales Order header type
VBELN TYPE VBAK-VBELN, " Sales document no
ERDAT TYPE VBAK-ERDAT, " Sales document created date
ERNAM TYPE VBAK-ERNAM, " Sales document created by
NETWR TYPE VBAK-NETWR, " Net value of sales document
VKORG TYPE VBAK-VKORG, " Sales organisation
END OF TY_VBAK. " End of declaration of sales order header
************************************************************************************************************
* W O R K A R E A D E C L A R A T I O N
************************************************************************************************************
DATA: WA_VBAK TYPE TY_VBAK. " Work area for sales order header details
* Work areas for ALV header
DATA: WA_FLDCAT TYPE SLIS_FIELDCAT_ALV, " Work area for fieldcatalog basic
WA_LAYOUT TYPE SLIS_LAYOUT_ALV, " Work area for layout basic
WA_EVENTS TYPE SLIS_ALV_EVENT, " Work area for events basic
WA_SORT TYPE SLIS_SORTINFO_ALV. " Workarea for ALV Sort table
* Work areas for ALV item
DATA: WA_FLDCAT1 TYPE SLIS_FIELDCAT_ALV, " Work area for fieldcatalog secondary
WA_LAYOUT1 TYPE SLIS_LAYOUT_ALV, " Work area for layout secondary
WA_EVENTS1 TYPE SLIS_ALV_EVENT, " Work area for events secondary
WA_SORT1 TYPE SLIS_SORTINFO_ALV. " Workarea for ALV Sort table
* Work areas for ALV variant
DATA: WA_VARIANT TYPE DISVARIANT, " Workarea for ALV variants display
WA_VARIANT1 TYPE DISVARIANT. " Workarea for ALV variants check
DATA: WA_KEYINFO TYPE SLIS_KEYINFO_ALV. " Workarea for specifying keyinfo.
************************************************************************************************************
* I N T E R N A L T A B L E S D E C L A R A T I O N
************************************************************************************************************
DATA: IT_VBAK TYPE STANDARD TABLE OF TY_VBAK. " Internal table declaration for so header
* internal tables for ALV header
DATA: IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV, " Internal table for basic list fieldcatalog
IT_EVENTS TYPE SLIS_T_EVENT, " Internal table for basic list events
IT_SORT TYPE SLIS_T_SORTINFO_ALV. " Internal table for ALV sort
* internal tables for ALV item.
DATA: IT_FLDCAT1 TYPE SLIS_T_FIELDCAT_ALV, " Internal table for secondary list fieldcatalog
IT_EVENTS1 TYPE SLIS_T_EVENT, " Internal table for secondary list events
IT_SORT1 TYPE SLIS_T_SORTINFO_ALV. " Internal table for ALV sort
************************************************************************************************************
* S E L E C T I O N S C R E E N
************************************************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK K WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_VBELN FOR V_VBELN. " Selection criteria for sales document number
*PARAMETERS: p_layvar TYPE disvariant-variant. " Parameter for specifying the layout variant
SELECTION-SCREEN END OF BLOCK K.
zalvtest2f01
FORM get_vbak_data .
SELECT vbeln " Populating the header table with data from vbak table
erdat
ernam
netwr
vkorg
FROM vbak
INTO TABLE it_vbak
WHERE vbeln IN s_vbeln.
IF sy-subrc <> 0.
f_stop = 'X'.
STOP. "#EC *
ENDIF.
ENDFORM. " get_vbak_data
FORM fldcat_populate .
DEFINE fldcatb. " Macro to populate fieldcat of basic list.
wa_fldcat-fieldname = &1.
wa_fldcat-row_pos = 1.
wa_fldcat-col_pos = &2.
wa_fldcat-seltext_l = &3.
wa_fldcat-seltext_m = &4.
wa_fldcat-seltext_s = &5.
wa_fldcat-hotspot = &6.
wa_fldcat-key = &7.
wa_fldcat-do_sum = &8.
wa_fldcat-tabname = &9.
append wa_fldcat to it_fldcat.
END-OF-DEFINITION.
fldcatb 'VBELN' '1' 'SORDER NUM' 'SO NUM' 'SNUM' 'X' 'X' ' ' 'IT_VBAK'. "calling the macro
fldcatb 'ERDAT' '2' 'SORDER DATE' 'SO DATE' 'SDAT' ' ' ' ' ' ' 'IT_VBAK'.
fldcatb 'ERNAM' '3' 'SORDER NAME' 'SO NAME' 'SNAM' ' ' ' ' ' ' 'IT_VBAK'.
fldcatb 'NETWR' '4' 'NET PRICE' 'NET PRICE' 'NET PRICE' ' ' ' ' 'X' 'IT_VBAK'.
fldcatb 'VKORG' '5' 'SALES ORG' 'S ORG' 'SORG' ' ' ' ' ' ' 'IT_VBAK'.
ENDFORM. " fldcat_populate
FORM sort_for_subtot .
wa_sort-fieldname = 'VBELN'.
wa_sort-spos = 1.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO it_sort.
ENDFORM. " sort_for_subtot
FORM layout_populate .
wa_layout-colwidth_optimize = 'X'. " Getting the optimum length
wa_layout-window_titlebar = c_titl.
wa_layout-zebra = 'X'. " Getting alternate colors.
ENDFORM. " layout_populate
FORM event_on_alvlist . " Populating the events table for basic list
wa_events-name = 'TOP_OF_PAGE'.
wa_events-form = 'SUB_TOP'.
APPEND wa_events TO it_events.
wa_events-name = 'USER_COMMAND'.
wa_events-form = 'SUB_USERCOMAND'.
APPEND wa_events TO it_events.
ENDFORM. " event_on_alvlist
FORM give_keyinfo .
wa_keyinfo-header01 = 'VBELN'.
wa_keyinfo-item01 = 'VBELN'.
ENDFORM. " give_keyinfo
FORM DISP_ALV .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' " Displaying the basic list
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_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 = C_BTIT
* I_GRID_SETTINGS =
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FLDCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
IT_SORT = IT_SORT
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = P_LAYVAR1
IT_EVENTS = 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. " disp_alv