PROMO JULIO en CVOSOFT United States Of America: 💎Calidad, 🔥Bonificaciones, 🥶Precios Congelados y MÁS!

 X 

✒️ABAP Social Break - Laboratorio de Ideas

ABAP Social Break - Laboratorio de Ideas

ABAP Social Break - Laboratorio de Ideas

Z_PLANTILLA_ALV

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 ********************************


 

 

 


Sobre el autor

Publicación académica de Marcelo Alejandro Iacovino, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP SemiSenior

Marcelo Alejandro Iacovino

Profesión: Consultor Abap - Argentina - Legajo: WH43P

✒️Autor de: 4 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Presentación:

Actitud proactiva, excelente trato interpersonal, organizado dinámico y responsable. acepto nuevos desafíos, buscando expectativas de progreso y dispuesto a capacitación constante

Certificación Académica de Marcelo Iacovino