Thursday, 19 March 2015




REPORT  ZRQ1.

TYPES:
BEGIN OF ty_alv,
  lights(1) TYPE c, "Exception, Holding the value of the lights
  text(20) TYPE c, "some text
END OF ty_alv.

DATA: gs_alv TYPE ty_alv,
      gt_alv TYPE TABLE OF ty_alv,
      gr_alv TYPE REF TO cl_salv_table,
      gr_columns TYPE REF TO cl_salv_columns_table.

START-OF-SELECTION.
  gs_alv-lights = '1'. "Color red
  gs_alv-text = 'RED SIGNAL'.
  APPEND gs_alv TO gt_alv.
  gs_alv-lights = '2'. "Color yellow
  gs_alv-text = 'YELLOW SIGNAL'.
  APPEND gs_alv TO gt_alv.
  gs_alv-lights = '3'. "Color green
  gs_alv-text = 'GREEN SIGNAL'.
  APPEND gs_alv TO gt_alv.

  CALL METHOD cl_salv_table=>factory
    IMPORTING
      r_salv_table = gr_alv
    CHANGING
      t_table      = gt_alv.

  gr_columns = gr_alv->get_columns( ).
  gr_columns->set_exception_column( value = 'LIGHTS' ).
  CALL METHOD gr_alv->display.
        


*&---------------------------------------------------------------------*
*& Report  ZRQ3
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZRQ3.


TABLES:pa0008.
TYPE-POOLS:slis.
TYPES:BEGIN OF ty_pa0008,
  pernr LIKE pa0008-pernr,
  begda LIKE pa0008-begda,
  endda LIKE pa0008-endda,
  ansal LIKE pa0008-ansal,
  lga01 LIKE pa0008-lga01,
  bet01 LIKE pa0008-bet01,
END OF ty_pa0008.
DATA: it_pa0008 TYPE STANDARD TABLE OF ty_pa0008 WITH HEADER LINE.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
      wa_fieldcat TYPE slis_fieldcat_alv,
      it_layout TYPE slis_layout_alv,
      wa_events TYPE slis_alv_event,
      it_events TYPE slis_t_event.

START-OF-SELECTION.
  PERFORM getd_data.
  PERFORM disp_alv.
*&---------------------------------------------------------------------*
*& Form getD_data
*----------------------------------------------------------------------*
FORM getd_data .
  SELECT pernr
          begda
          endda
          ansal
          lga01
          bet01
    FROM pa0008
    INTO TABLE it_pa0008
    UP TO 10 ROWS .
  SORT it_pa0008 BY pernr begda DESCENDING.
ENDFORM. " getD_data
*&---------------------------------------------------------------------*
*& Form disp_alv
*----------------------------------------------------------------------*
FORM disp_alv .
  wa_fieldcat-fieldname = 'PERNR'.
  wa_fieldcat-reptext_ddic = 'Personnel no'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'BEGDA'.
  wa_fieldcat-reptext_ddic = 'Start date'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'ENDDA'.
  wa_fieldcat-reptext_ddic = 'End date'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'ANSAL'.
  wa_fieldcat-reptext_ddic = 'Annula salary'.
  wa_fieldcat-do_sum = 'X'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'LGA01'.
  wa_fieldcat-reptext_ddic = 'Wage Type'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = 'BET01'.
  wa_fieldcat-reptext_ddic = 'Amount for wagetype'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  it_layout-totals_text = 'total text'.
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      i_callback_program = sy-repid
      is_layout          = it_layout
      it_fieldcat        = it_fieldcat
    TABLES
      t_outtab           = it_pa0008.
ENDFORM. " disp_alv




report  zrq2.
tABLES:     ekko.
TYPE-POOLS: slis.
TYPES: BEGIN OF t_ekko,
  sel,
  ebeln TYPE ekpo-ebeln,
  ebelp TYPE ekpo-ebelp,
  statu TYPE ekpo-statu,
  aedat TYPE ekpo-aedat,
  matnr TYPE ekpo-matnr,
  menge TYPE ekpo-menge,
  meins TYPE ekpo-meins,
  netpr TYPE ekpo-netpr,
  peinh TYPE ekpo-peinh,
END OF t_ekko.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
      wa_ekko TYPE t_ekko.

DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      gd_tab_group TYPE slis_t_sp_group_alv,
      gd_layout    TYPE slis_layout_alv,
      gd_repid     LIKE sy-repid.

************************************************************************
*Start-of-selection.
START-OF-SELECTION.

  PERFORM data_retrieval.
  PERFORM build_fieldcatalog.
  PERFORM build_layout.
  PERFORM display_alv_report.

*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       Build Fieldcatalog for ALV Report
*----------------------------------------------------------------------*
FORM build_fieldcatalog.

  fieldcatalog-fieldname   = 'EBELN'.
  fieldcatalog-seltext_m   = 'Purchase Order'.
  fieldcatalog-col_pos     = 0.
  fieldcatalog-outputlen   = 10.
  fieldcatalog-emphasize   = 'X'.
  fieldcatalog-key         = 'X'.
*  fieldcatalog-do_sum      = 'X'.
*  fieldcatalog-no_zero     = 'X'.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'EBELP'.
  fieldcatalog-seltext_m   = 'PO Item'.
  fieldcatalog-col_pos     = 1.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'STATU'.
  fieldcatalog-seltext_m   = 'Status'.
  fieldcatalog-col_pos     = 2.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'AEDAT'.
  fieldcatalog-seltext_m   = 'Item change date'.
  fieldcatalog-col_pos     = 3.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'MATNR'.
  fieldcatalog-seltext_m   = 'Material Number'.
  fieldcatalog-col_pos     = 4.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'MENGE'.
  fieldcatalog-seltext_m   = 'PO quantity'.
  fieldcatalog-col_pos     = 5.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'MEINS'.
  fieldcatalog-seltext_m   = 'Order Unit'.
  fieldcatalog-col_pos     = 6.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'NETPR'.
  fieldcatalog-seltext_m   = 'Net Price'.
  fieldcatalog-col_pos     = 7.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-do_sum      = 'X'.        "Display column total
  fieldcatalog-datatype     = 'CURR'.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'PEINH'.
  fieldcatalog-seltext_m   = 'Price Unit'.
  fieldcatalog-col_pos     = 8.
  APPEND fieldcatalog TO fieldcatalog.
  CLEAR  fieldcatalog.
ENDFORM.                    " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       Build layout for ALV grid report
*----------------------------------------------------------------------*
FORM build_layout.
  gd_layout-box_fieldname     = 'SEL'.
  "set field name to store row selection
  gd_layout-edit              = 'X'. "makes whole ALV table editable
  gd_layout-zebra             = 'X'.
ENDFORM.                    " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*       Display report using ALV grid
*----------------------------------------------------------------------*
FORM display_alv_report.
  gd_repid = sy-repid.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program      = gd_repid
      i_callback_user_command = 'USER_COMMAND'
      is_layout               = gd_layout
      it_fieldcat             = fieldcatalog[]
      i_save                  = 'X'
    TABLES
      t_outtab                = it_ekko
    EXCEPTIONS
      program_error           = 1
      OTHERS                  = 2.
  IF sy-subrc <> 0.
  ENDIF.
ENDFORM.                    " DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*&      Form  DATA_RETRIEVAL
*&---------------------------------------------------------------------*
*       Retrieve data form EKPO table and populate itab it_ekko
*----------------------------------------------------------------------*
FORM data_retrieval.

  SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
    UP TO 10 ROWS
    FROM ekpo
    INTO CORRESPONDING FIELDS OF TABLE it_ekko.
ENDFORM.                    " DATA_RETRIEVAL
*------------------------------------------------------------------*
*       FORM USER_COMMAND                                          *
*------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
                  rs_selfield TYPE slis_selfield.

* Check function code
  CASE r_ucomm.
    WHEN '&IC1'.
*   Check field clicked on within ALVgrid report
      IF rs_selfield-fieldname = 'EBELN'.
*     Read data table, using index of row user clicked on
        READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
*     Set parameter ID for transaction screen field
        SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
*     Sxecute transaction ME23N, and skip initial data entry screen
        CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
      ENDIF.

    WHEN '&DATA_SAVE'.  "user presses SAVE
      LOOP AT it_ekko INTO wa_ekko.
        IF wa_ekko-sel EQ 'X'.
*       Process records that have been selected
        ENDIF.
      ENDLOOP.
  ENDCASE.
ENDFORM.                    "user_command*&---------------------------------------------------------------------*



REPORT  ZRQ4.
tables: pa0008.
type-pools: slis.

types: begin of ty_pa0008,
        pernr type PERSNO,
        begda type begda,
        endda type endda,
        OBJPS type OBJPS,
        ansal type ansal,
        lga01 type LGART,
        bet01 type PAD_AMT7S,
      END OF ty_pa0008.

DATA: gs_pa0008 type ty_pa0008,
      gi_pa0008 type table of ty_pa0008.

DATA: gi_fieldcat type slis_t_fieldcat_alv,
      gs_fieldcat type slis_fieldcat_alv,
      gi_layout   type slis_layout_alv.

      start-of-selection.
      SELECT pernr
          begda
          endda
          objps
          ansal
          lga01
          bet01
    FROM pa0008
    INTO TABLE gi_pa0008
    UP TO 10 ROWS .
  SORT gi_pa0008 BY pernr begda DESCENDING.


  gs_fieldcat-fieldname = 'PERNR'.
  gs_fieldcat-reptext_ddic = 'Personnel no'.
  APPEND gs_fieldcat TO gi_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'BEGDA'.
  gs_fieldcat-reptext_ddic = 'Start date'.
  APPEND gs_fieldcat TO gi_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'ENDDA'.
  gs_fieldcat-reptext_ddic = 'End date'.
  APPEND gs_fieldcat TO gi_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'OBJPS'.
  gs_fieldcat-reptext_ddic = 'Object Identification'.
  APPEND gs_fieldcat TO gi_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'ANSAL'.
  gs_fieldcat-reptext_ddic = 'Annula salary'.
  gs_fieldcat-do_sum = 'X'.
  APPEND gs_fieldcat TO gi_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'LGA01'.
  gs_fieldcat-reptext_ddic = 'Wage Type'.
  APPEND gs_fieldcat TO gi_fieldcat.
  CLEAR gs_fieldcat.

  gs_fieldcat-fieldname = 'BET01'.
  gs_fieldcat-reptext_ddic = 'Amount for wagetype'.
  APPEND gs_fieldcat TO gi_fieldcat.
  CLEAR gs_fieldcat.

  gi_layout-totals_text = 'total text'.


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 EXPORTING

   I_CALLBACK_PROGRAM                = sy-repid
   I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
   IS_LAYOUT                         = gi_layout
   IT_FIELDCAT                       = gi_fieldcat
  TABLES
    T_OUTTAB                          = gi_pa0008.

IF SY-SUBRC <> 0.
ENDIF.

***************************************************************
form top_of_page.

  data:gi_header type slis_t_listheader,
        gs_header type slis_listheader.

  gS_header-typ  = 'S'.
  gS_header-key  = 'USER'.
  gS_header-info = sy-uname.
  APPEND gS_header TO gi_header.


  gS_header-typ  = 'S'.
  gS_header-key  = 'DATE'.
  gS_header-info = sy-datum.
 APPEND gS_header TO gi_header.

  gs_header-typ  = 'H'.
  gs_header-info = 'Employee Year to Date Salaries'.
  APPEND gS_header TO gi_header.


CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
  EXPORTING
    IT_LIST_COMMENTARY       = gi_header.
endform.







          

No comments:

Post a Comment