W Pub: ABAP Rut Ordenar

  1. REPORT ZNADAR_ORDENA .
  2. * Ini --------- Slo para el ejemplo -----------------------------------
  3. DATA: BEGIN OF IT OCCURS 0, KMPO1(5), KMPO2(5), KMPO3 TYPE I, END OF IT.
  4. * Fin --------- Slo para el ejemplo -----------------------------------
  5. AT LINE-SELECTION.
  6.    PERFORM SORT_ME USING 'IT' 'D' 'ESCRIBE'.
  7. * Ini --------- Slo para el ejemplo -----------------------------------
  8. END-OF-SELECTION.
  9. IT-KMPO1 = 'RRRRR'. IT-KMPO2 = 'BBBBB'. IT-KMPO3 = 231. APPEND IT.
  10. IT-KMPO1 = 'LLLLL'. IT-KMPO2 = 'MMMMM'. IT-KMPO3 = 101. APPEND IT.
  11. IT-KMPO1 = 'EEEEE'. IT-KMPO2 = 'AAAAA'. IT-KMPO3 = 325. APPEND IT.
  12. IT-KMPO1 = 'RRRRR'. IT-KMPO2 = 'OOOOO'. IT-KMPO3 = 235. APPEND IT.
  13. PERFORM ESCRIBE.
  14.  
  15. FORM ESCRIBE.
  16. LOOP AT IT. WRITE: /010 IT-KMPO1, 020 IT-KMPO2, 030 IT-KMPO3. ENDLOOP.
  17. ENDFORM.
  18. * Fin --------- Slo para el ejemplo -----------------------------------
  19. FORM SORT_ME USING TABNAME ORDEDBY PRINTRUTINE.
  20. DATA: DI(20).
  21.    GET CURSOR FIELD DI.
  22.    SPLIT DI AT '-' INTO DI DI.
  23.    IF ORDEDBY = 'A'.
  24.       CASE TABNAME. "<--- Pon aqui las tablas que tenga y quieras
  25. * Ini ####### Aqu es obligado cambiar el nombre de la tabla ###########
  26.          WHEN 'IT'. SORT IT BY (DI) ASCENDING.
  27. * Fin ####### Aqu es obligado cambiar el nombre de la tabla ###########
  28.       ENDCASE.
  29.    ELSEIF ORDEDBY = 'D'.
  30.       CASE TABNAME. "<--- Pon aqui las tablas que tenga y quieras
  31. * Ini ####### Aqu es obligado cambiar el nombre de la tabla ###########
  32.          WHEN 'IT'. SORT IT BY (DI) DESCENDING.
  33. * Fin ####### Aqu es obligado cambiar el nombre de la tabla ###########
  34.       ENDCASE.
  35.    ENDIF.
  36.    SY-LSIND = SY-LSIND - 1.
  37.    LEAVE TO LIST-PROCESSING.
  38.    PERFORM (PRINTRUTINE) IN PROGRAM (SY-REPID) IF FOUND.
  39. ENDFORM.