Wednesday, December 3, 2014

Dərs 29: ALV hesabat (FIELDCAT istifadəsi)...

ALV hesabatda FİELDCAT-dan istifadə edərək hazırlanması.








*&---------------------------------------------------------------------*
*& Report  ZTEST_FIELDCAT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZTEST_FIELDCAT.

TYPE-POOLS slis.
TABLES spfli.

DATA BEGIN OF gt_spfli OCCURS 0,
         carrid  LIKE spfli-carrid,
         connid  LIKE spfli-connid,
         countryfr  LIKE spfli-countryfr,
         cityfrom  LIKE spfli-cityfrom,
       END OF gt_spfli.

DATA gv_repid TYPE sy-repid.

SELECT-OPTIONS so_carid FOR spfli-carrid.


START-OF-SELECTION.
  gv_repid sy-repid.
  SELECT FROM spfli
           INTO CORRESPONDING FIELDS OF TABLE gt_spfli
           WHERE carrid IN so_carid.

  IF sy-subrc NE 0.
    MESSAGE 'Seçilmiş kriteriyaya görə məlumat yoxdur' TYPE 'I'.
    RETURN.
  ELSE.
    PERFORM alv_goster.
  ENDIF.
*&---------------------------------------------------------------------*
*&      Form  ALV_GOSTER
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM alv_goster .

  DATA lt_fieldcat TYPE slis_t_fieldcat_alv.
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name               gv_repid
      i_internal_tabname           'GT_SPFLI'
*     I_STRUCTURE_NAME             =
*     I_CLIENT_NEVER_DISPLAY       = 'X'
      i_inclname                   gv_repid
*     I_BYPASSING_BUFFER           =
*     I_BUFFER_ACTIVE              =
*     I_MODE                       =
   CHANGING
     ct_fieldcat                  lt_fieldcat
*   EXCEPTIONS
*     INCONSISTENT_INTERFACE       = 1
*     PROGRAM_ERROR                = 2
*     OTHERS                       = 3
           .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
*     I_INTERFACE_CHECK                 = ' '
*     I_BYPASSING_BUFFER                = ' '
*     I_BUFFER_ACTIVE                   = ' '
*     I_CALLBACK_PROGRAM                = ' '
*     I_CALLBACK_PF_STATUS_SET          = ' '
*     I_CALLBACK_USER_COMMAND           = ' '
*     I_CALLBACK_TOP_OF_PAGE            = ' '
*     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*     I_CALLBACK_HTML_END_OF_LIST       = ' '
*     I_STRUCTURE_NAME                  =
*     I_BACKGROUND_ID                   = ' '
*     I_GRID_TITLE                      =
*     I_GRID_SETTINGS                   =
*     IS_LAYOUT                         =
      IT_FIELDCAT                       lt_fieldcat[]
*     IT_EXCLUDING                      =
*     IT_SPECIAL_GROUPS                 =
*     IT_SORT                           =
*     IT_FILTER                         =
*     IS_SEL_HIDE                       =
*     I_DEFAULT                         = 'X'
*     I_SAVE                            = ' '
*     IS_VARIANT                        =
*     IT_EVENTS                         =
*     IT_EVENT_EXIT                     =
*     IS_PRINT                          =
*     IS_REPREP_ID                      =
*     I_SCREEN_START_COLUMN             = 0
*     I_SCREEN_START_LINE               = 0
*     I_SCREEN_END_COLUMN               = 0
*     I_SCREEN_END_LINE                 = 0
*     I_HTML_HEIGHT_TOP                 = 0
*     I_HTML_HEIGHT_END                 = 0
*     IT_ALV_GRAPHICS                   =
*     IT_HYPERLINK                      =
*     IT_ADD_FIELDCAT                   =
*     IT_EXCEPT_QINFO                   =
*     IR_SALV_FULLSCREEN_ADAPTER        =
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER           =
*     ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          gt_spfli
*   EXCEPTIONS
*     PROGRAM_ERROR                     = 1
*     OTHERS                            = 2
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


ENDFORM.                    " ALV_GOSTER

No comments:

Post a Comment