REPORT ZOOPS_ALV_CHECKBOX.
**********Structure Declaration.
TYPES : BEGIN OF TY_EKKO,
EBELN TYPE EBELN,
BUKRS TYPE BUKRS,
BSTYP TYPE EBSTYP,
BSART TYPE ESART,
LIFNR TYPE LIFNR,
END OF TY_EKKO,
BEGIN OF TY_EKPO,
EBELN TYPE EBELN,
EBELP TYPE EBELP,
TXZ01 TYPE TXZ01,
MATNR TYPE MATNR,
WERKS TYPE EWERK,
MENGE TYPE BSTMG,
MEINS TYPE BSTME,
NETPR TYPE BPREI,
NETWR TYPE BWERT,
END OF TY_EKPO,
BEGIN OF TY_FINAL,
CHK TYPE CHAR1,
EBELN TYPE EBELN,
BUKRS TYPE BUKRS,
LIFNR TYPE LIFNR,
EBELP TYPE EBELP,
TXZ01 TYPE TXZ01,
MATNR TYPE MATNR,
MENGE TYPE BSTMG,
MEINS TYPE BSTME,
NETPR TYPE BPREI,
END OF TY_FINAL.
**********Internal Table Declaration.
DATA : T_EKKO TYPE STANDARD TABLE OF TY_EKKO INITIAL SIZE 1,
T_EKPO TYPE STANDARD TABLE OF TY_EKPO INITIAL SIZE 1,
T_FINAL TYPE STANDARD TABLE OF TY_FINAL INITIAL SIZE 1,
T_FCAT TYPE STANDARD TABLE OF LVC_S_FCAT.
*********Workarea Declaration.
DATA : W_EKKO TYPE TY_EKKO,
W_EKPO TYPE TY_EKPO,
W_FINAL TYPE TY_FINAL,
W_FCAT TYPE LVC_S_FCAT,
W_LAYOUT TYPE LVC_S_LAYO.
*********Constant Declaration.
DATA : LV_EBELN TYPE EKKO-EBELN,
P_COL TYPE INT2.
DATA : GCL_CUS_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
GCL_ALV_GRID TYPE REF TO CL_GUI_ALV_GRID.
*********INITIALIZATION Event.
INITIALIZATION.
REFRESH : T_EKKO,
T_EKPO,
T_FINAL.
CLEAR : W_EKKO,
W_EKPO,
W_FINAL.
*********Selection Screen.
SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS S_EBELN FOR LV_EBELN.
SELECTION-SCREEN END OF BLOCK A.
START-OF-SELECTION.
PERFORM GET_EKKO.
PERFORM GET_EKPO.
END-OF-SELECTION.
PERFORM GET_POP_FINAL.
PERFORM CUSTOM_CONTANER.
*&---------------------------------------------------------------------*
*& Form GET_EKKO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_EKKO .
SELECT EBELN
BUKRS
BSTYP
BSART
LIFNR
FROM EKKO INTO TABLE T_EKKO WHERE EBELN IN S_EBELN.
IF T_EKKO IS INITIAL.
MESSAGE 'Data Not Found' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_EKPO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_EKPO .
IF T_EKKO IS NOT INITIAL.
SELECT EBELN
EBELP
TXZ01
MATNR
WERKS
MENGE
MEINS
NETPR
NETWR
FROM EKPO INTO TABLE T_EKPO FOR ALL ENTRIES IN T_EKKO
WHERE EBELN = T_EKKO-EBELN.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_POP_FINAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_POP_FINAL .
SORT T_EKPO BY EBELN.
SORT T_EKKO BY EBELN.
CLEAR W_EKPO.
LOOP AT T_EKPO INTO W_EKPO.
W_FINAL-EBELN = W_EKPO-EBELN.
W_FINAL-EBELP = W_EKPO-EBELP.
W_FINAL-MENGE = W_EKPO-MENGE.
W_FINAL-MEINS = W_EKPO-MEINS.
W_FINAL-NETPR = W_EKPO-NETPR.
W_FINAL-MATNR = W_EKPO-MATNR.
W_FINAL-TXZ01 = W_EKPO-TXZ01.
READ TABLE T_EKKO INTO W_EKKO WITH KEY EBELN = W_EKPO-EBELN BINARY SEARCH.
IF SY-SUBRC = 0.
W_FINAL-LIFNR = W_EKKO-LIFNR.
W_FINAL-BUKRS = W_EKKO-BUKRS.
ENDIF.
APPEND W_FINAL TO T_FINAL.
CLEAR W_FINAL.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CUSTOM_CONTANER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM CUSTOM_CONTANER .
CALL SCREEN 9001.
ENDFORM.
*&---------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_9001 OUTPUT.
SET PF-STATUS 'ZSTATUS_9001'.
SET TITLEBAR 'ZTITLE_9001'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module FILL_FIELDCAT OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE FILL_FIELDCAT OUTPUT.
PERFORM FILL_FIELDCAT USING : P_COL 'CHK' ' ' 'X' 'X' 'X' '1',
P_COL 'EBELN' 'Purchase Doc.No' ' ' ' ' ' ' ' ',
P_COL 'EBELP' 'Item No' ' ' ' ' ' ' ' ',
P_COL 'BUKRS' 'Company Code' ' ' ' ' ' ' ' ',
P_COL 'LIFNR' 'Vendor' ' ' ' ' ' ' ' ',
P_COL 'MATNR' 'Material No' ' ' ' ' ' ' ' ',
P_COL 'TXZ01' 'Material Description' ' ' ' ' ' ' ' ',
P_COL 'MENGE' 'Quantity' ' ' ' ' 'X' ' ',
P_COL 'MEINS' 'Uom' ' ' ' ' ' ' ' ',
P_COL 'NETPR' 'Price' ' ' ' ' 'X' ' '.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9001 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9001 INPUT.
IF SY-UCOMM = 'BACK' OR SY-UCOMM = 'EXIT' OR SY-UCOMM = 'CANCEL'.
LEAVE TO SCREEN 0.
ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Form FILL_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FILL_FIELDCAT USING : P_COL
P_FIELD TYPE CHAR20
P_DES TYPE CHAR40
P_KEY TYPE CHAR1
P_CHEK TYPE CHAR1
P_EDIT TYPE CHAR4
P_LENTH TYPE INT2.
W_FCAT-COL_POS = P_COL.
W_FCAT-FIELDNAME = P_FIELD.
W_FCAT-COLTEXT = P_DES.
W_FCAT-KEY = P_KEY.
W_FCAT-CHECKBOX = P_CHEK.
W_FCAT-EDIT = P_EDIT.
W_FCAT-OUTPUTLEN = P_LENTH.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
ENDFORM.
*&---------------------------------------------------------------------*
*& Module DISPLAY_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE DISPLAY_DATA OUTPUT.
W_LAYOUT-CWIDTH_OPT = 'X'.
W_LAYOUT-EDIT_MODE = 'X'.
W_LAYOUT-ZEBRA = 'X'.
*********Create Object for Container.
CREATE OBJECT GCL_CUS_CONTAINER
EXPORTING
* PARENT = PARENT
CONTAINER_NAME = 'CC'
* STYLE = STYLE
* LIFETIME = lifetime_default
* REPID = REPID
* DYNNR = DYNNR
* NO_AUTODEF_PROGID_DYNNR = NO_AUTODEF_PROGID_DYNNR
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6.
**********Create Object for Display Data.
CREATE OBJECT GCL_ALV_GRID
EXPORTING
I_PARENT = GCL_CUS_CONTAINER
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
OTHERS = 5.
**********Dispaly Data using Method.
GCL_ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY(
EXPORTING
* I_BUFFER_ACTIVE = I_BUFFER_ACTIVE
* I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
* I_CONSISTENCY_CHECK = I_CONSISTENCY_CHECK
* I_STRUCTURE_NAME = I_STRUCTURE_NAME
* IS_VARIANT = IS_VARIANT
I_SAVE = 'X'
I_DEFAULT = 'X'
IS_LAYOUT = W_LAYOUT
* IS_PRINT = IS_PRINT
* IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
* IT_TOOLBAR_EXCLUDING = IT_TOOLBAR_EXCLUDING
* IT_HYPERLINK = IT_HYPERLINK
* IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
* IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
* IR_SALV_ADAPTER = IR_SALV_ADAPTER
CHANGING
IT_OUTTAB = T_FINAL
IT_FIELDCATALOG = T_FCAT
* IT_SORT = IT_SORT
* IT_FILTER = IT_FILTER
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
).
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDMODULE.
Output:
**********Structure Declaration.
TYPES : BEGIN OF TY_EKKO,
EBELN TYPE EBELN,
BUKRS TYPE BUKRS,
BSTYP TYPE EBSTYP,
BSART TYPE ESART,
LIFNR TYPE LIFNR,
END OF TY_EKKO,
BEGIN OF TY_EKPO,
EBELN TYPE EBELN,
EBELP TYPE EBELP,
TXZ01 TYPE TXZ01,
MATNR TYPE MATNR,
WERKS TYPE EWERK,
MENGE TYPE BSTMG,
MEINS TYPE BSTME,
NETPR TYPE BPREI,
NETWR TYPE BWERT,
END OF TY_EKPO,
BEGIN OF TY_FINAL,
CHK TYPE CHAR1,
EBELN TYPE EBELN,
BUKRS TYPE BUKRS,
LIFNR TYPE LIFNR,
EBELP TYPE EBELP,
TXZ01 TYPE TXZ01,
MATNR TYPE MATNR,
MENGE TYPE BSTMG,
MEINS TYPE BSTME,
NETPR TYPE BPREI,
END OF TY_FINAL.
**********Internal Table Declaration.
DATA : T_EKKO TYPE STANDARD TABLE OF TY_EKKO INITIAL SIZE 1,
T_EKPO TYPE STANDARD TABLE OF TY_EKPO INITIAL SIZE 1,
T_FINAL TYPE STANDARD TABLE OF TY_FINAL INITIAL SIZE 1,
T_FCAT TYPE STANDARD TABLE OF LVC_S_FCAT.
*********Workarea Declaration.
DATA : W_EKKO TYPE TY_EKKO,
W_EKPO TYPE TY_EKPO,
W_FINAL TYPE TY_FINAL,
W_FCAT TYPE LVC_S_FCAT,
W_LAYOUT TYPE LVC_S_LAYO.
*********Constant Declaration.
DATA : LV_EBELN TYPE EKKO-EBELN,
P_COL TYPE INT2.
DATA : GCL_CUS_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
GCL_ALV_GRID TYPE REF TO CL_GUI_ALV_GRID.
*********INITIALIZATION Event.
INITIALIZATION.
REFRESH : T_EKKO,
T_EKPO,
T_FINAL.
CLEAR : W_EKKO,
W_EKPO,
W_FINAL.
*********Selection Screen.
SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS S_EBELN FOR LV_EBELN.
SELECTION-SCREEN END OF BLOCK A.
START-OF-SELECTION.
PERFORM GET_EKKO.
PERFORM GET_EKPO.
END-OF-SELECTION.
PERFORM GET_POP_FINAL.
PERFORM CUSTOM_CONTANER.
*&---------------------------------------------------------------------*
*& Form GET_EKKO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_EKKO .
SELECT EBELN
BUKRS
BSTYP
BSART
LIFNR
FROM EKKO INTO TABLE T_EKKO WHERE EBELN IN S_EBELN.
IF T_EKKO IS INITIAL.
MESSAGE 'Data Not Found' TYPE 'E' DISPLAY LIKE 'I'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_EKPO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_EKPO .
IF T_EKKO IS NOT INITIAL.
SELECT EBELN
EBELP
TXZ01
MATNR
WERKS
MENGE
MEINS
NETPR
NETWR
FROM EKPO INTO TABLE T_EKPO FOR ALL ENTRIES IN T_EKKO
WHERE EBELN = T_EKKO-EBELN.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_POP_FINAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM GET_POP_FINAL .
SORT T_EKPO BY EBELN.
SORT T_EKKO BY EBELN.
CLEAR W_EKPO.
LOOP AT T_EKPO INTO W_EKPO.
W_FINAL-EBELN = W_EKPO-EBELN.
W_FINAL-EBELP = W_EKPO-EBELP.
W_FINAL-MENGE = W_EKPO-MENGE.
W_FINAL-MEINS = W_EKPO-MEINS.
W_FINAL-NETPR = W_EKPO-NETPR.
W_FINAL-MATNR = W_EKPO-MATNR.
W_FINAL-TXZ01 = W_EKPO-TXZ01.
READ TABLE T_EKKO INTO W_EKKO WITH KEY EBELN = W_EKPO-EBELN BINARY SEARCH.
IF SY-SUBRC = 0.
W_FINAL-LIFNR = W_EKKO-LIFNR.
W_FINAL-BUKRS = W_EKKO-BUKRS.
ENDIF.
APPEND W_FINAL TO T_FINAL.
CLEAR W_FINAL.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CUSTOM_CONTANER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM CUSTOM_CONTANER .
CALL SCREEN 9001.
ENDFORM.
*&---------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_9001 OUTPUT.
SET PF-STATUS 'ZSTATUS_9001'.
SET TITLEBAR 'ZTITLE_9001'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module FILL_FIELDCAT OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE FILL_FIELDCAT OUTPUT.
PERFORM FILL_FIELDCAT USING : P_COL 'CHK' ' ' 'X' 'X' 'X' '1',
P_COL 'EBELN' 'Purchase Doc.No' ' ' ' ' ' ' ' ',
P_COL 'EBELP' 'Item No' ' ' ' ' ' ' ' ',
P_COL 'BUKRS' 'Company Code' ' ' ' ' ' ' ' ',
P_COL 'LIFNR' 'Vendor' ' ' ' ' ' ' ' ',
P_COL 'MATNR' 'Material No' ' ' ' ' ' ' ' ',
P_COL 'TXZ01' 'Material Description' ' ' ' ' ' ' ' ',
P_COL 'MENGE' 'Quantity' ' ' ' ' 'X' ' ',
P_COL 'MEINS' 'Uom' ' ' ' ' ' ' ' ',
P_COL 'NETPR' 'Price' ' ' ' ' 'X' ' '.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9001 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9001 INPUT.
IF SY-UCOMM = 'BACK' OR SY-UCOMM = 'EXIT' OR SY-UCOMM = 'CANCEL'.
LEAVE TO SCREEN 0.
ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Form FILL_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FILL_FIELDCAT USING : P_COL
P_FIELD TYPE CHAR20
P_DES TYPE CHAR40
P_KEY TYPE CHAR1
P_CHEK TYPE CHAR1
P_EDIT TYPE CHAR4
P_LENTH TYPE INT2.
W_FCAT-COL_POS = P_COL.
W_FCAT-FIELDNAME = P_FIELD.
W_FCAT-COLTEXT = P_DES.
W_FCAT-KEY = P_KEY.
W_FCAT-CHECKBOX = P_CHEK.
W_FCAT-EDIT = P_EDIT.
W_FCAT-OUTPUTLEN = P_LENTH.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
ENDFORM.
*&---------------------------------------------------------------------*
*& Module DISPLAY_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE DISPLAY_DATA OUTPUT.
W_LAYOUT-CWIDTH_OPT = 'X'.
W_LAYOUT-EDIT_MODE = 'X'.
W_LAYOUT-ZEBRA = 'X'.
*********Create Object for Container.
CREATE OBJECT GCL_CUS_CONTAINER
EXPORTING
* PARENT = PARENT
CONTAINER_NAME = 'CC'
* STYLE = STYLE
* LIFETIME = lifetime_default
* REPID = REPID
* DYNNR = DYNNR
* NO_AUTODEF_PROGID_DYNNR = NO_AUTODEF_PROGID_DYNNR
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6.
**********Create Object for Display Data.
CREATE OBJECT GCL_ALV_GRID
EXPORTING
I_PARENT = GCL_CUS_CONTAINER
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
OTHERS = 5.
**********Dispaly Data using Method.
GCL_ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY(
EXPORTING
* I_BUFFER_ACTIVE = I_BUFFER_ACTIVE
* I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
* I_CONSISTENCY_CHECK = I_CONSISTENCY_CHECK
* I_STRUCTURE_NAME = I_STRUCTURE_NAME
* IS_VARIANT = IS_VARIANT
I_SAVE = 'X'
I_DEFAULT = 'X'
IS_LAYOUT = W_LAYOUT
* IS_PRINT = IS_PRINT
* IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
* IT_TOOLBAR_EXCLUDING = IT_TOOLBAR_EXCLUDING
* IT_HYPERLINK = IT_HYPERLINK
* IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
* IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
* IR_SALV_ADAPTER = IR_SALV_ADAPTER
CHANGING
IT_OUTTAB = T_FINAL
IT_FIELDCATALOG = T_FCAT
* IT_SORT = IT_SORT
* IT_FILTER = IT_FILTER
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
).
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDMODULE.
Output:
No comments:
Post a Comment