Friday, 11 January 2013

Interactive Reports



REPORT  zprem_interactive.

TYPES BEGIN OF ty_test,
        code TYPE i,
        name(10TYPE c,
        amount TYPE DECIMALS 2,
       END OF ty_test.

DATA it_test TYPE STANDARD TABLE OF ty_test WITH HEADER LINE INITIAL SIZE 10.

DATA wa TYPE ty_test,
       chk1 TYPE c,
       fldname(30), fldval(50).

*set pf-status 'PF01'.
*set titlebar 'PF01'.
*

INITIALIZATION.
  it_test-code 300.
  it_test-name 'Ramesh'.
  it_test-amount 5500.
  APPEND it_test.

  wa-code 207.
  wa-name 'Prem'.
  wa-amount 5000.
  APPEND wa TO it_test.

  it_test-code 117.
  it_test-name 'James Bond'.
  it_test-amount 9900.
  INSERT it_test INDEX 3.

  it_test-code 217.
  it_test-name 'Sivaraman'.
  it_test-amount 9900.
  INSERT it_test INDEX 3.

  it_test-code 201.
  it_test-name 'Saravanan'.
  it_test-amount 1000.
  APPEND it_test.

  it_test-code 210.
  it_test-name 'Shanmugam'.
  it_test-amount 6000.
  APPEND it_test.

  WRITE 'Loop Display ( Appended rows ) :-'.
  LOOP AT it_test.
    WRITE / chk1 AS CHECKBOX,
    sy-tabixsy-vlineit_test-codeit_test-nameit_test-amount.
    HIDE it_test-codeit_test-name.
  ENDLOOP.
  SKIP.

END-OF-SELECTION.
  CLEAR it_test-codeit_test-name.
  WRITE 'this from end of selection'.


*&--------------------------------------------------------------------*
*&      Form  DISP1
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM disp1.
  WINDOW STARTING AT 15 10
         ENDING AT 80 15.
  DO.
    CLEAR chk1.
    READ LINE sy-index FIELD VALUE chk1.
    IF sy-subrc NE 0.
      EXIT.
    ELSE.
      CHECK chk1 NE space.
      WRITE / it_test-codeit_test-name.
      MODIFY CURRENT LINE :
        FIELD VALUE chk1 FROM ' '
        FIELD FORMAT chk1 INPUT OFF.
    ENDIF.
  ENDDO.
ENDFORM.                                                    "DISP1

***line double click ****
AT LINE-SELECTION.
  CHECK sy-lsind 1.
  WINDOW STARTING AT 4
         ENDING AT 85 20.
  WRITE/  'THE USER DOUBLE-CLICKED A LINE IN THE REPORT'.
  WRITE/  sy-lisel.
  WRITE 'Sometime ',it_test-name' is good '.
  WRITE 'Sometime ',it_test-name' is bad  '.
  WRITE 'Sometime ',it_test-name' is rich '.
  WRITE 'Sometime ',it_test-name' is poor '.
  WRITE 'Who knows, who is ',it_test-name' ? '.
  WRITE /'we can also use this in SELECT statement'.
  CLEAR it_test-codeit_test-name.

  .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  ULINE.
  SKIP.
  SKIP.
  WRITE 'Below from Get Cursor Field...'.
  GET CURSOR FIELD fldname VALUE fldval.
  CONDENSE fldname.
  CONDENSE fldval.
  WRITE 'You have clicked 'fldname' & its value is 'fldval.

***function key press F6 ****
AT pf06.
  PERFORM disp1.

*AT USER-COMMAND.
*  CASE SY-UCOMM.
*    WHEN 'STOP' OR 'CANCEL'.
*      LEAVE TO SCREEN 0.
*    WHEN 'TESTME'.
*      PERFORM DISP1.
*  ENDCASE.

No comments:

Post a Comment