*&---------------------------------------------------------------------*
*& Report  ZSL_LISTAGENS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT  zsl_listagens.
TYPE-POOLS: slis.
TABLES: zslaloc, zslproj, zslcli.
DATA: BEGIN OF t_lista OCCURS 0,
        zcod_proj    LIKE zslaloc-zcod_proj,
        zdesc_proj   LIKE zslproj-zdesc_proj,
        zcod_cli     LIKE zslcli-zcod_cli,
        znom_cli     LIKE zslcli-znom_cli,
        zcod_cons    LIKE zslcons-zcod_cons,
        znom_cons    LIKE zslcons-znom_cons,
        zinicio_aloc LIKE zslaloc-zinicio_aloc,
        zfim_aloc    LIKE zslaloc-zfim_aloc,
      END OF t_lista.
*DATA: t_lista LIKE s_lista OCCURS 0 WITH HEADER LINE.
SELECTION-SCREEN: BEGIN OF BLOCK myblock WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_proj FOR zslaloc-zcod_proj,
                s_cli FOR  zslcli-zcod_cli,
                s_cons FOR zslaloc-zcod_cons,
                s_dati FOR zslaloc-zinicio_aloc.
SELECTION-SCREEN:END OF BLOCK myblock.
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*&---------------------------------------------------------------------*
  SELECT a~zcod_proj p~zdesc_proj p~zcod_cli cl~znom_cli
         a~zcod_cons co~znom_cons a~zinicio_aloc a~zfim_aloc
  FROM zslaloc AS a
  INNER JOIN zslcons AS co ON a~zcod_cons = co~zcod_cons
  INNER JOIN zslproj AS p  ON a~zcod_proj = p~zcod_proj
  INNER JOIN zslcli  AS cl ON p~zcod_cli = cl~zcod_cli
  INTO CORRESPONDING FIELDS OF TABLE t_lista
  WHERE a~zcod_proj IN s_proj AND p~zcod_cli IN s_cli AND
        a~zcod_cons IN s_cons AND a~zinicio_aloc IN s_dati.
*&---------------------------------------------------------------------*
END-OF-SELECTION.
*&---------------------------------------------------------------------*
  IF t_lista[] IS INITIAL.
    MESSAGE i003(zsl_m) WITH 'Não ha alocações com '
                             'estes critérios de selecção'.
  ELSE.
    PERFORM write_data.
  ENDIF.
*&---------------------------------------------------------------------*
*&      Form  write_data
*&---------------------------------------------------------------------*
FORM write_data .
  DATA: lt_fields TYPE slis_t_fieldcat_alv,
        wa_fields TYPE slis_fieldcat_alv,
        wa_layout TYPE slis_layout_alv.
  CLEAR: lt_fields.
*  wa_fields-col_pos = 1.
*  wa_fields-fieldname = 'ZCOD_PROJ'.
*  WA_FIELDS-seltext_m = 'Código Projecto'.
**  wa_fields-ddictxt = 'M'.
*  append wa_fields to lt_fields.
*
*clear: wa_fields.
*  wa_fields-col_pos = 2.
*  wa_fields-fieldname = 'ZCOD_CLI'.
*  WA_FIELDS-seltext_m = 'Código Cliente'.
**  wa_fields-ddictxt = 'M'.
*  append wa_fields to lt_fields.
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name         = sy-repid
      i_internal_tabname     = 'T_LISTA'
*      i_structure_name       = 'S_LISTA'
      i_inclname             = sy-repid
    CHANGING
      ct_fieldcat            = lt_fields
    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.
  wa_layout-colwidth_optimize = 'X'.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
     i_callback_program                = sy-repid
     i_callback_pf_status_set          = 'SET_PF_STATUS'
     i_callback_user_command           = '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                         = wa_layout
     it_fieldcat                       = lt_fields
*   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                          = t_lista
* 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.                    " write
*&--------------------------------------------------------------------*
*&      Form  set_pf_status
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      -->RT_EXTAB   text
*---------------------------------------------------------------------*
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
  SET PF-STATUS 'STAT100'.
ENDFORM.                    "set_pf_sta
*&--------------------------------------------------------------------*
*&      Form  user_comand
*&--------------------------------------------------------------------*
FORM user_command  USING r_ucomm     LIKE sy-ucomm
                         rs_selfield TYPE slis_selfield.
  CASE r_ucomm.
    WHEN 'BACK1'.
*      MESSAGE w003(zsl_m) WITH 'BACK'.
*      CALL SCREEN 1000.
      set screen 0.
      leave screen.
*       leave to selection-screen 1000.
    WHEN OTHERS.
      MESSAGE s003(zsl_m) WITH rs_selfield-sel_tab_field
                               rs_selfield-col_stable
                               rs_selfield-row_stable
                               rs_selfield-fieldname.
  ENDCASE.
ENDFORM.                    "user_comma
Subscrever:
Enviar feedback (Atom)
 
 
 Mensagens
Mensagens
 
 
Sem comentários:
Enviar um comentário