W Pub: ABAP Prog Propios Do List

  1. REPORT ZDOLIST NO STANDARD PAGE HEADING LINE-SIZE 255.
  2.  
  3. DATA: SI(320),
  4.       CX(3) TYPE N,
  5.       AX LIKE CX,
  6.       BX LIKE CX,
  7.       AL(1),
  8.       BEGIN OF DS OCCURS 0, DI(255), END OF DS,
  9.       BEGIN OF SS OCCURS 0, DI(255), END OF SS,
  10.       DI LIKE SI.
  11.  
  12. AT LINE-SELECTION.
  13.   REFRESH DS. CLEAR: DS, AX.
  14.   READ LINE 4. SI+000(80) = SY-LISEL+000(80).
  15.   READ LINE 5. SI+080(80) = SY-LISEL+000(80).
  16.   READ LINE 6. SI+160(80) = SY-LISEL+000(80).
  17.   READ LINE 7. SI+240(80) = SY-LISEL+000(80).
  18.   CX = BX = 1.
  19.   DS-DI = 'Write:¬at¬/'.
  20.   SPLIT SI AT SY-VLINE INTO TABLE SS.
  21.   DO.
  22.      IF SY-INDEX >= 320. EXIT. ENDIF.
  23.      AL = SI+AX(BX).
  24.      ADD 1 TO  AX.
  25.      CHECK AL = SY-VLINE.
  26.      BX = SY-INDEX.
  27.      ADD 1 TO CX.
  28.      READ TABLE SS INDEX CX.
  29.      IF SY-SUBRC EQ 0.
  30.         CONCATENATE '¬"' ss-di INTO ss-di.
  31.      ELSE.
  32.         CLEAR SS-DI.
  33.      ENDIF.
  34.      CONCATENATE DS-DI BX '¬sy-vline, ' SS-DI INTO DS-DI. APPEND DS.
  35.      DS-DI = '¬¬¬¬¬¬¬¬¬¬¬'. BX = 1.
  36.   ENDDO.
  37.   CX = 11.
  38.   SY-LSIND = SY-LSIND - 1.
  39.   SY-LISEL = DI. MODIFY LINE 8.
  40.   SY-LISEL = SI. MODIFY LINE 9.
  41.   LOOP AT DS.
  42.      SY-LISEL = DS-DI. TRANSLATE SY-LISEL USING '¬ '.
  43.      MODIFY LINE CX. ADD 1 TO CX.
  44.   ENDLOOP.
  45. END-OF-SELECTION.
  46.  
  47. SI = 'Paste your list Here and put you | as you wish... '.
  48. SKIP 1.
  49. WRITE: SI+0(50), '@15@' HOTSPOT.
  50. SKIP 1.
  51. CLEAR SI. SI(1) = SY-VLINE.
  52. DO 4 TIMES. WRITE: AT /001 SI+0(081) INPUT ON.  ENDDO.
  53. CLEAR SI. SI+254(1) = '.'.
  54. CX = '000'.
  55. DO 30 TIMES.
  56.    CONCATENATE DI '....5....0' INTO DI.
  57.    WRITE: AT /001 SI.
  58. ENDDO.