Derived from http://www.sap-basis-abap.com/abupdown.htm
*&---------------------------------------------------------------------*
*& Report  Z_GET_PROG_DATA
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  z_get_prog_data LINE-SIZE 300.

DATA: mtab_program_trdir LIKE trdir OCCURS 0 WITH HEADER LINE.
DATA: mtab_program_texts LIKE textpool OCCURS 0 WITH HEADER LINE.

DATA: cc TYPE i.

START-OF-SELECTION.

  SELECT * FROM  trdir
         INTO TABLE mtab_program_trdir
         WHERE ( name  LIKE 'Z%' OR name like 'SAPLZ%' ).

  cc = 1.
  LOOP AT mtab_program_trdir.

*-- Get the text for the report
    READ TEXTPOOL mtab_program_trdir-name INTO mtab_program_texts.

*-- Write out message with Program Name/Description
    READ TABLE mtab_program_texts WITH KEY id = 'R'.

    WRITE: / cc, '.'.
    IF sy-subrc = 0.
      "mtab_program_trdir-name.
      "mtab_program_texts-entry.

      WRITE: mtab_program_trdir-name,
               mtab_program_texts-entry(150) COLOR COL_HEADING.
    ELSE.
      " mtab_program_trdir-name.
      " 'No description available'.
      WRITE:  mtab_program_trdir-name,
              'no description'.
    ENDIF.

    cc = cc + 1.
  ENDLOOP.