Thursday, 8 November 2012

DISPLAY AND EXIT USING CHECKBOX


*&---------------------------------------------------------------------*
*& Report  ZSS_REPORT_004                                               *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  zap_report_004                           .

TABLES: mara,makt.

TYPES: BEGIN OF ty_mara,
        matnr TYPE  matnr,    "Material Number
        ersda TYPE  ersda,    "Created On
        ernam TYPE  ernam,    "Name of Person who Created the Object
       END OF ty_mara,
       BEGIN OF ty_makt,
        matnr TYPE  matnr,    "Material Number
        spras TYPE  spras,    "Language Key
        maktx TYPE  maktx,    "Material Description (Short Text)
       END OF ty_makt.

DATA: it_mara TYPE STANDARD TABLE OF ty_mara INITIAL SIZE 0,
      wa_mara TYPE ty_mara,
      it_makt TYPE STANDARD TABLE OF ty_makt INITIAL SIZE 0,
      wa_makt TYPE ty_makt,
      c1,
      lv_matnr TYPE matnr.


SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_matnr FOR mara-matnr.
SELECTION-SCREEN: END OF BLOCK b1.

AT SELECTION-SCREEN.
  IF s_matnr IS NOT INITIAL.
    SELECT SINGLE matnr
    FROM mara
    INTO lv_matnr
    WHERE matnr IN s_matnr.
    IF sy-subrc NE 0.
      MESSAGE: 'Material Number does not exist' TYPE'E'.
    ENDIF.
  ENDIF.

START-OF-SELECTION.
  SELECT matnr
         ersda
         ernam
 FROM  mara
 INTO TABLE it_mara
 WHERE matnr IN s_matnr.
  IF sy-subrc EQ 0.
    SORT it_mara BY matnr.
  ENDIF.


END-OF-SELECTION.
  IF it_mara IS NOT INITIAL.
    LOOP AT it_mara INTO wa_mara.
      WRITE: / c1 AS CHECKBOX,wa_mara-matnr,
               wa_mara-matnr,
               wa_mara-ersda,
               wa_mara-ernam.
      HIDE wa_mara-matnr.
    ENDLOOP.
  ENDIF.


  SET PF-STATUS 'DISPLAY'.


AT USER-COMMAND.

  CASE sy-ucomm.

    WHEN 'DISPLAY'.

    WHEN 'EXIT'.
      MESSAGE ' ARE YOU SURE' TYPE 'I'.
      LEAVE LIST-PROCESSING.

    WHEN OTHERS.

  ENDCASE.
  DATA ln TYPE i.
  DESCRIBE LIST NUMBER OF LINES ln.
  DO ln TIMES.
    READ LINE sy-index FIELD VALUE c1 .
    IF c1 = 'X'.
      SELECT matnr
          spras
          maktx
   FROM  makt
   INTO TABLE it_makt
   WHERE matnr = wa_mara-matnr.
      IF sy-subrc EQ 0.
        SORT it_makt BY matnr.
      ENDIF.
      IF it_makt IS NOT INITIAL.
        LOOP AT it_makt INTO wa_makt.
          WRITE: / wa_makt-matnr,
                   wa_makt-spras,
                   wa_makt-maktx.
        ENDLOOP.
      ENDIF.
    ENDIF.
  ENDDO.

No comments: