Foro -Documentación -Código fuente -Contacto -Empleo

Buscar

Traducir

Amazon

Z_PLANTILLA_ALV PDF Imprimir E-mail
Usar puntuación: / 3
MaloBueno 
Código fuente - Plantillas
Martes, 29 de Julio de 2003 06:50
Plantilla listado ALV
REPORT Z_PLANTILLA_ALV.
***********************************************************************
* Plantilla para listados ALV    .                                    *
* Andrés Picazo (http://sapabap.cc)                                   *
*                                                                     *
***********************************************************************
TYPE-POOLS: SLIS.

*------I N C L U D E S ------------------------------------------------*

*------C O N S T A N T E S --------------------------------------------*

*------TABLAS/ESTRUCTURAS----------------------------------------------*
TABLES: ???:

*------TABLAS INTERNAS-------------------------------------------------*
data: begin of i_datos occurs 100,
          xxxx,
      end of i_datos.

*------VARIABLES-------------------------------------------------------*
* Variables necesarias para el lisado ALV
DATA: FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,
      HEADING  TYPE SLIS_T_LISTHEADER,
      LAYOUT   TYPE SLIS_LAYOUT_ALV,
      EVENTS   TYPE SLIS_T_EVENT,
      REPNAME  LIKE SY-REPID,
      F2CODE   LIKE SY-UCOMM VALUE  '&ETA',
      G_SAVE(1) TYPE C,
      G_EXIT(1) TYPE C,
      G_VARIANT LIKE DISVARIANT,
      GX_VARIANT LIKE DISVARIANT.

*------CONSTANTES -----------------------------------------------*
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.


*------PARAMETER/SELECT-OPTIONS EN PANTALLA----------------------------*
SELECTION-SCREEN BEGIN OF BLOCK SEL WITH FRAME TITLE TEXT-001.
*SELECT-OPTIONS: S_xxxxx FOR xxxxxxxx.
SELECTION-SCREEN END OF BLOCK SEL.
PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT. " ALV Variant

*------INITIALIZATION -------------------------------------------------*
INITIALIZATION.

*** Inicialización ALV
  REPNAME = SY-REPID.
  PERFORM INITIALIZE_FIELDCAT USING FIELDTAB[].
  PERFORM BUILD_EVENTTAB USING EVENTS[].
  PERFORM BUILD_COMMENT USING HEADING[].
  PERFORM INITIALIZE_VARIANT.
***

*------AT SELECTION-SCREEN---------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
  PERFORM F4_FOR_VARIANT.

AT SELECTION-SCREEN.
  PERFORM PAI_OF_SELECTION_SCREEN.

*------START-OF-SELECTION----------------------------------------------*
START-OF-SELECTION.

* PERFORM SELECCION_DATOS.

*------END-OF-SELECTION------------------------------------------------*
END-OF-SELECTION.

*** Impresión listado ALV
  PERFORM BUILD_LAYOUT USING LAYOUT.
  PERFORM WRITE_OUTPUT.
***

**************************** FORMS ALV  ********************************

*&---------------------------------------------------------------------*
*&      Form  INITIALIZE_FIELDCAT
*&---------------------------------------------------------------------*
*       Cambia atributos de los campos del listado
*----------------------------------------------------------------------*
FORM INITIALIZE_FIELDCAT USING P_FIELDTAB TYPE SLIS_T_FIELDCAT_ALV.
  DATA: L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

* fixed columns (obligatory)
*  CLEAR L_FIELDCAT.
*  L_FIELDCAT-TABNAME    = 'I_DATOS'.
*  L_FIELDCAT-FIX_COLUMN = 'X'.
*  L_FIELDCAT-NO_OUT     = 'O'.
*  L_FIELDCAT-FIELDNAME  = 'WERKS'.
*  APPEND L_FIELDCAT TO P_FIELDTAB.


* totalized columns
*  CLEAR L_FIELDCAT.
*  L_FIELDCAT-TABNAME   = 'I_DATOS'.
*  L_FIELDCAT-SP_GROUP  = 'A'.
*  L_FIELDCAT-DO_SUM    = 'X'.
*  L_FIELDCAT-FIELDNAME = 'LABST'.

* columns not displayed
*  CLEAR L_FIELDCAT.
*  L_FIELDCAT-TABNAME   = 'I_DATOS'.
*  L_FIELDCAT-SP_GROUP  = 'A'.
*  L_FIELDCAT-NO_OUT    = 'X'.
*  L_FIELDCAT-FIELDNAME = 'MEINS'.
*  APPEND L_FIELDCAT TO P_FIELDTAB.


ENDFORM.                               " INITIALIZE_FIELDCAT

*&---------------------------------------------------------------------*
*&      Form  BUILD_EVENTTAB
*&---------------------------------------------------------------------*
*       Gestión de evntos del listado ALV
*----------------------------------------------------------------------*
FORM BUILD_EVENTTAB USING P_EVENTS TYPE SLIS_T_EVENT.
  DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
            I_LIST_TYPE = 0
       IMPORTING
            ET_EVENTS   = P_EVENTS.
  READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                           INTO LS_EVENT.
  IF SY-SUBRC = 0.
    MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
    APPEND LS_EVENT TO P_EVENTS.
  ENDIF.
ENDFORM.                               " BUILD_EVENTTAB

*&---------------------------------------------------------------------*
*&      Form  BUILD_COMMENT
*&---------------------------------------------------------------------*
*       Texto de cabecera de página
*----------------------------------------------------------------------*
FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.
  DATA: HLINE TYPE SLIS_LISTHEADER,
        TEXT(60) TYPE C,
        SEP(20) TYPE C.
  CLEAR: HLINE, TEXT.
  HLINE-TYP  = 'H'.
  WRITE: TEXT-101 TO TEXT+23.
  HLINE-INFO = TEXT.
  APPEND HLINE TO P_HEADING.
  CLEAR TEXT.
  WRITE: 'User: ' TO TEXT,
         SY-UNAME TO TEXT+6,
         'Date: ' TO TEXT+25,
         SY-DATUM TO TEXT+31,
         'Page: ' TO TEXT+50,
         SY-PAGNO TO TEXT+56.
  HLINE-INFO = TEXT.
  APPEND HLINE TO P_HEADING.

ENDFORM.                    " BUILD_COMMENT

*---------------------------------------------------------------------*
*       FORM TOP_OF_PAGE                                              *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
            IT_LIST_COMMENTARY = HEADING.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  INITIALIZE_VARIANT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM INITIALIZE_VARIANT.
  G_SAVE = 'A'.
  CLEAR G_VARIANT.
  G_VARIANT-REPORT = REPNAME.
  GX_VARIANT = G_VARIANT.
  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
       EXPORTING
            I_SAVE     = G_SAVE
       CHANGING
            CS_VARIANT = GX_VARIANT
       EXCEPTIONS
            NOT_FOUND  = 2.
  IF SY-SUBRC = 0.
    P_VARI = GX_VARIANT-VARIANT.
  ENDIF.
ENDFORM.                               " INITIALIZE_VARIANT

*&---------------------------------------------------------------------*
*&      Form  F4_FOR_VARIANT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM F4_FOR_VARIANT.
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
       EXPORTING
            IS_VARIANT = G_VARIANT
            I_SAVE     = G_SAVE
       IMPORTING
            E_EXIT     = G_EXIT
            ES_VARIANT = GX_VARIANT
       EXCEPTIONS
            NOT_FOUND  = 2.
  IF SY-SUBRC = 2.
    MESSAGE ID SY-MSGID TYPE 'S'      NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ELSE.
    IF G_EXIT = SPACE.
      P_VARI = GX_VARIANT-VARIANT.
    ENDIF.
  ENDIF.
ENDFORM.                               " F4_FOR_VARIANT

*&---------------------------------------------------------------------*
*&      Form  PAI_OF_SELECTION_SCREEN
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM PAI_OF_SELECTION_SCREEN.
*
  IF NOT P_VARI IS INITIAL.
    MOVE G_VARIANT TO GX_VARIANT.
    MOVE P_VARI TO GX_VARIANT-VARIANT.
    CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
         EXPORTING
              I_SAVE     = G_SAVE
         CHANGING
              CS_VARIANT = GX_VARIANT.
    G_VARIANT = GX_VARIANT.
  ELSE.
    PERFORM INITIALIZE_VARIANT.
  ENDIF.
ENDFORM.                               " PAI_OF_SELECTION_SCREEN


*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_LAYOUT  text                                               *
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
  P_LAYOUT-F2CODE       = F2CODE.
  P_LAYOUT-ZEBRA        = 'X'.
  P_LAYOUT-DETAIL_POPUP = 'X'.
ENDFORM.                               " BUILD_LAYOUT

*&---------------------------------------------------------------------*
*&      Form  WRITE_OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM WRITE_OUTPUT.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            I_PROGRAM_NAME     = REPNAME
            I_INTERNAL_TABNAME = 'I_DATOS'
            I_INCLNAME         = REPNAME
       CHANGING
            CT_FIELDCAT        = FIELDTAB.
  IF SY-SUBRC <> 0.
    WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.
  ENDIF.
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
            I_CALLBACK_PROGRAM = REPNAME
            I_STRUCTURE_NAME   = 'INV'
            IS_LAYOUT          = LAYOUT
            IT_FIELDCAT        = FIELDTAB
            I_DEFAULT          = 'A'
            I_SAVE             = G_SAVE
            IS_VARIANT         = G_VARIANT
            IT_EVENTS          = EVENTS[]
       TABLES
            T_OUTTAB           = I_DATOS.
  IF SY-SUBRC <> 0.
    WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.
  ENDIF.
ENDFORM.                               " WRITE_OUTPUT

*********************** FIN  FORMS ALV  ********************************

*********************** LOGICA PROGRAMA ********************************



Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
home search