marcbyte

Edit ALV fields

Sep 25th, 2020 (edited)
725
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 5.75 KB | None | 0 0
  1. TABLES: EKKO.
  2. TYPE-POOLS: SLIS. "ALV Declarations
  3. *Data Declaration
  4. *----------------
  5. TYPES: BEGIN OF T_EKKO,
  6. EBELN TYPE EKPO-EBELN,
  7. EBELP TYPE EKPO-EBELP,
  8. STATU TYPE EKPO-STATU,
  9. AEDAT TYPE EKPO-AEDAT,
  10. MATNR TYPE EKPO-MATNR,
  11. MENGE TYPE EKPO-MENGE,
  12. MEINS TYPE EKPO-MEINS,
  13. NETPR TYPE EKPO-NETPR,
  14. PEINH TYPE EKPO-PEINH,
  15. FIELD_STYLE TYPE LVC_T_STYL, "FOR DISABLE
  16. END OF T_EKKO.
  17. DATA: IT_EKKO TYPE STANDARD TABLE OF T_EKKO INITIAL SIZE 0,
  18. WA_EKKO TYPE T_EKKO.
  19. *ALV data declarations
  20. DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
  21. DATA: IT_FIELDCAT TYPE LVC_T_FCAT, "slis_t_fieldcat_alv WITH HEADER LINE,
  22. WA_FIELDCAT TYPE LVC_S_FCAT,
  23. GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
  24. GD_LAYOUT TYPE LVC_S_LAYO, "slis_layout_alv,
  25. GD_REPID LIKE SY-REPID.
  26. ************************************************************************
  27. *Start-of-selection.
  28. START-OF-SELECTION.
  29.   PERFORM DATA_RETRIEVAL.
  30.   PERFORM SET_SPECIFIC_FIELD_ATTRIBUTES.
  31.   PERFORM BUILD_FIELDCATALOG.
  32.   PERFORM BUILD_LAYOUT.
  33.   PERFORM DISPLAY_ALV_REPORT.
  34. *&---------------------------------------------------------------------*
  35. *& Form BUILD_FIELDCATALOG
  36. *&---------------------------------------------------------------------*
  37. * Build Fieldcatalog for ALV Report
  38. *----------------------------------------------------------------------*
  39. FORM BUILD_FIELDCATALOG.
  40.   WA_FIELDCAT-FIELDNAME = 'EBELN'.
  41.   WA_FIELDCAT-SCRTEXT_M = 'Purchase Order'.
  42.   WA_FIELDCAT-COL_POS = 0.
  43.   WA_FIELDCAT-OUTPUTLEN = 10.
  44.   WA_FIELDCAT-EMPHASIZE = 'X'.
  45.   WA_FIELDCAT-KEY = 'X'.
  46.   APPEND WA_FIELDCAT TO IT_FIELDCAT.
  47.   CLEAR WA_FIELDCAT.
  48.   WA_FIELDCAT-FIELDNAME = 'EBELP'.
  49.   WA_FIELDCAT-SCRTEXT_M = 'PO Item'.
  50.   WA_FIELDCAT-COL_POS = 1.
  51.   APPEND WA_FIELDCAT TO IT_FIELDCAT.
  52.   CLEAR WA_FIELDCAT.
  53.   WA_FIELDCAT-FIELDNAME = 'STATU'.
  54.   WA_FIELDCAT-SCRTEXT_M = 'Status'.
  55.   WA_FIELDCAT-COL_POS = 2.
  56.   APPEND WA_FIELDCAT TO IT_FIELDCAT.
  57.   CLEAR WA_FIELDCAT.
  58.   WA_FIELDCAT-FIELDNAME = 'AEDAT'.
  59.   WA_FIELDCAT-SCRTEXT_M = 'Item change date'.
  60.   WA_FIELDCAT-COL_POS = 3.
  61.   APPEND WA_FIELDCAT TO IT_FIELDCAT.
  62.   CLEAR WA_FIELDCAT.
  63.   WA_FIELDCAT-FIELDNAME = 'MATNR'.
  64.   WA_FIELDCAT-SCRTEXT_M = 'Material Number'.
  65.   WA_FIELDCAT-COL_POS = 4.
  66.   APPEND WA_FIELDCAT TO IT_FIELDCAT.
  67.   CLEAR WA_FIELDCAT.
  68.   WA_FIELDCAT-FIELDNAME = 'MENGE'.
  69.   WA_FIELDCAT-SCRTEXT_M = 'PO quantity'.
  70.   WA_FIELDCAT-COL_POS = 5.
  71.   APPEND WA_FIELDCAT TO IT_FIELDCAT.
  72.   CLEAR WA_FIELDCAT.
  73.   WA_FIELDCAT-FIELDNAME = 'MEINS'.
  74.   WA_FIELDCAT-SCRTEXT_M = 'Order Unit'.
  75.   WA_FIELDCAT-COL_POS = 6.
  76.   APPEND WA_FIELDCAT TO IT_FIELDCAT.
  77.   CLEAR WA_FIELDCAT.
  78.   WA_FIELDCAT-FIELDNAME = 'NETPR'.
  79.   WA_FIELDCAT-SCRTEXT_M = 'Net Price'.
  80.   WA_FIELDCAT-EDIT = 'X'. "sets whole column to be editable
  81.   WA_FIELDCAT-COL_POS = 7.
  82.   WA_FIELDCAT-OUTPUTLEN = 15.
  83.   WA_FIELDCAT-DATATYPE = 'CURR'.
  84.   APPEND WA_FIELDCAT TO IT_FIELDCAT.
  85.   CLEAR WA_FIELDCAT.
  86.   WA_FIELDCAT-FIELDNAME = 'PEINH'.
  87.   WA_FIELDCAT-SCRTEXT_M = 'Price Unit'.
  88.   WA_FIELDCAT-COL_POS = 8.
  89.   APPEND WA_FIELDCAT TO IT_FIELDCAT.
  90.   CLEAR WA_FIELDCAT.
  91. ENDFORM. " BUILD_FIELDCATALOG
  92. *&---------------------------------------------------------------------*
  93. *& Form BUILD_LAYOUT
  94. *&---------------------------------------------------------------------*
  95. * Build layout for ALV grid report
  96. *----------------------------------------------------------------------*
  97. FORM BUILD_LAYOUT.
  98. * Set layout field for field attributes(i.e. input/output)
  99.   GD_LAYOUT-STYLEFNAME = 'FIELD_STYLE'.
  100.   GD_LAYOUT-ZEBRA = 'X'.
  101. ENDFORM. " BUILD_LAYOUT
  102. *&---------------------------------------------------------------------*
  103. *& Form DISPLAY_ALV_REPORT
  104. *&---------------------------------------------------------------------*
  105. * Display report using ALV grid
  106. *----------------------------------------------------------------------*
  107. FORM DISPLAY_ALV_REPORT.
  108.   GD_REPID = SY-REPID.
  109. * call function 'REUSE_ALV_GRID_DISPLAY'
  110.   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  111.   EXPORTING
  112.   I_CALLBACK_PROGRAM = GD_REPID
  113. * i_callback_user_command = 'USER_COMMAND'
  114.   IS_LAYOUT_LVC = GD_LAYOUT
  115.   IT_FIELDCAT_LVC = IT_FIELDCAT
  116.   I_SAVE = 'X'
  117.   TABLES
  118.   T_OUTTAB = IT_EKKO
  119.   EXCEPTIONS
  120.   PROGRAM_ERROR = 1
  121.   OTHERS = 2.
  122.   IF SY-SUBRC <> 0.
  123. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  124. * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  125.   ENDIF.
  126. ENDFORM. " DISPLAY_ALV_REPORT
  127. *&---------------------------------------------------------------------*
  128. *& Form DATA_RETRIEVAL
  129. *&---------------------------------------------------------------------*
  130. * Retrieve data form EKPO table and populate itab it_ekko
  131. *----------------------------------------------------------------------*
  132. FORM DATA_RETRIEVAL.
  133.   SELECT EBELN EBELP STATU AEDAT MATNR MENGE MEINS NETPR PEINH
  134.   UP TO 10 ROWS
  135.   FROM EKPO
  136.   INTO CORRESPONDING FIELDS OF TABLE IT_EKKO.
  137. ENDFORM. " DATA_RETRIEVAL
  138. *&---------------------------------------------------------------------*
  139. *& Form set_specific_field_attributes
  140. *&---------------------------------------------------------------------*
  141. * populate FIELD_STYLE table with specific field attributes
  142. *----------------------------------------------------------------------*
  143. FORM SET_SPECIFIC_FIELD_ATTRIBUTES .
  144.   DATA LS_STYLEROW TYPE LVC_S_STYL .
  145.   DATA LT_STYLETAB TYPE LVC_T_STYL .
  146. * Populate style variable (FIELD_STYLE) with style properties
  147. *
  148. * The NETPR field/column has been set to editable in the fieldcatalog...
  149. * The following code sets it to be disabled(display only) if 'NETPR'
  150. * is gt than 10.
  151.   LOOP AT IT_EKKO INTO WA_EKKO.
  152.     IF WA_EKKO-NETPR GT 10.
  153.       LS_STYLEROW-FIELDNAME = 'NETPR' .
  154.       LS_STYLEROW-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
  155.       "set field to disabled
  156.       APPEND LS_STYLEROW TO WA_EKKO-FIELD_STYLE.
  157.       MODIFY IT_EKKO FROM WA_EKKO.
  158.     ENDIF.
  159.   ENDLOOP.
  160. ENDFORM. " set_specific_field_attributes
  161.  
Add Comment
Please, Sign In to add comment