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

Buscar

Traducir

Amazon

ZSAMPLEALV PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Código fuente - Ejemplos ALV
Lunes, 04 de Agosto de 2003 07:13
Ejemplo básico ALV
REPORT ZALV. 

TYPE-POOLS: SLIS. 

DATA: G_REPID LIKE SY-REPID, 
GS_PRINT            TYPE SLIS_PRINT_ALV, 
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER, 
GT_EVENTS           TYPE SLIS_T_EVENT, 
GT_SORT             TYPE SLIS_T_SORTINFO_ALV, 
GS_LAYOUT           TYPE SLIS_LAYOUT_ALV, 
GT_FIELDCAT         TYPE SLIS_T_FIELDCAT_ALV, 
FIELDCAT_LN LIKE LINE OF GT_FIELDCAT, 
COL_POS TYPE I. 

DATA: BEGIN OF ITAB, 
  FIELD1(5) TYPE C, 
  FIELD2(5) TYPE C, 
  FIELD3(5) TYPE P DECIMALS 2, 
END OF ITAB. 

DATA: BEGIN OF ITAB1 OCCURS 0. 
  INCLUDE STRUCTURE ITAB. 
DATA: END OF ITAB1. 

DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0. 
  INCLUDE STRUCTURE ITAB. 
DATA: END OF ITAB_FIELDCAT. 

* Print Parameters 
PARAMETERS: 
            P_PRINT  AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE 
            P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO 
            P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE 
            P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE 
            P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO 
            P_RESERV TYPE I.                  "NO OF FOOTER LINE 

INITIALIZATION. 
G_REPID = SY-REPID. 
PERFORM PRINT_BUILD    USING GS_PRINT.      "Print PARAMETERS 

START-OF-SELECTION. 
* TEST DATA 
MOVE 'TEST1' TO ITAB1-FIELD1. 
MOVE 'TEST1' TO ITAB1-FIELD2. 
MOVE '10.00' TO ITAB1-FIELD3. 
APPEND ITAB1. 

MOVE 'TEST2' TO ITAB1-FIELD1. 
MOVE 'TEST2' TO ITAB1-FIELD2. 
MOVE '20.00' TO ITAB1-FIELD3. 
APPEND ITAB1. 

DO 50 TIMES. 
  APPEND ITAB1. 
ENDDO. 

END-OF-SELECTION. 

PERFORM BUILD. 
PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS. 
PERFORM COMMENT_BUILD  CHANGING GT_LIST_TOP_OF_PAGE. 
PERFORM CALL_ALV. 

FORM BUILD. 
* DATA FIELD CATALOG 
* Explain Field Description to ALV 
DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV. 

CLEAR FIELDCAT_IN. 
FIELDCAT_LN-FIELDNAME = 'FIELD1'. 
FIELDCAT_LN-TABNAME   = 'ITAB1'. 
*FIELDCAT_LN-NO_OUT    = 'X'.  "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT 
FIELDCAT_LN-KEY       = ' '.   "SUBTOTAL KEY 
FIELDCAT_LN-NO_OUT    = ' '. 
FIELDCAT_LN-SELTEXT_L = 'HEAD1'. 
APPEND FIELDCAT_LN TO GT_FIELDCAT. 

CLEAR FIELDCAT_IN. 
FIELDCAT_LN-FIELDNAME = 'FIELD2'. 
FIELDCAT_LN-TABNAME   = 'ITAB1'. 
FIELDCAT_LN-NO_OUT    = 'X'. 
FIELDCAT_LN-SELTEXT_L = 'HEAD2'. 
APPEND FIELDCAT_LN TO GT_FIELDCAT. 

CLEAR FIELDCAT_IN. 
FIELDCAT_LN-FIELDNAME     = 'FIELD3'. 
FIELDCAT_LN-TABNAME       = 'ITAB1'. 
FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY 
FIELDCAT_LN-REF_TABNAME   = 'MSEG'.  "<- REF TABLE IN THE DICTIONNARY 
FIELDCAT_LN-NO_OUT        = ' '. 
FIELDCAT_LN-DO_SUM        = 'X'.   "SUM UPON DISPLAY 
APPEND FIELDCAT_LN TO GT_FIELDCAT. 

* DATA SORTING AND SUBTOTAL 
DATA: GS_SORT TYPE SLIS_SORTINFO_ALV. 

CLEAR GS_SORT. 
GS_SORT-FIELDNAME = 'FIELD1'. 
GS_SORT-SPOS      = 1. 
GS_SORT-UP        = 'X'. 
GS_SORT-SUBTOT    = 'X'. 
APPEND GS_SORT TO GT_SORT. 

CLEAR GS_SORT. 
GS_SORT-FIELDNAME = 'FIELD2'. 
GS_SORT-SPOS      = 2. 
GS_SORT-UP        = 'X'. 
*GS_SORT-SUBTOT    = 'X'. 
APPEND GS_SORT TO GT_SORT. 

ENDFORM. 

FORM CALL_ALV. 
* ABAP List Viewer 
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' 
EXPORTING 
* I_INTERFACE_CHECK = ' ' 
* I_BYPASSING_BUFFER = 
* I_BUFFER_ACTIVE = ' ' 
I_CALLBACK_PROGRAM = G_REPID 
* I_CALLBACK_PF_STATUS_SET = ' ' 
* I_CALLBACK_USER_COMMAND = ' ' 
I_STRUCTURE_NAME = 'ITAB1' 
IS_LAYOUT =  GS_LAYOUT 
IT_FIELDCAT = GT_FIELDCAT[] 
* IT_EXCLUDING = 
* IT_SPECIAL_GROUPS = 
  IT_SORT = GT_SORT[] 
* IT_FILTER = 
* IS_SEL_HIDE = 
* I_DEFAULT = 'X' 
* I_SAVE = ' ' 
* IS_VARIANT = 
  IT_EVENTS = GT_EVENTS[] 
* IT_EVENT_EXIT = 
  IS_PRINT = GS_PRINT 
* IS_REPREP_ID = 
* I_SCREEN_START_COLUMN = 0 
* I_SCREEN_START_LINE = 0 
* I_SCREEN_END_COLUMN = 0 
* I_SCREEN_END_LINE = 0 
* IMPORTING 
* E_EXIT_CAUSED_BY_CALLER = 
* ES_EXIT_CAUSED_BY_USER = 
TABLES 
T_OUTTAB = ITAB1 
EXCEPTIONS 
PROGRAM_ERROR = 1 
OTHERS = 2. 
ENDFORM. 

* HEADER FORM 
FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT. 
CONSTANTS: 
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'. 
*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'. 

  DATA: LS_EVENT TYPE SLIS_ALV_EVENT. 

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET' 
       EXPORTING 
            I_LIST_TYPE = 0 
       IMPORTING 
            ET_EVENTS   = LT_EVENTS. 

  READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_TOP_OF_PAGE 
                           INTO LS_EVENT. 
  IF SY-SUBRC = 0. 
    MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM. 
    APPEND LS_EVENT TO LT_EVENTS. 
  ENDIF. 

* define END_OF_PAGE event 
* READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_END_OF_PAGE 
*                          INTO LS_EVENT. 
* IF SY-SUBRC = 0. 
*   MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM. 
*   APPEND LS_EVENT TO LT_EVENTS. 
* ENDIF. 
ENDFORM. 

FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER. 
  DATA: GS_LINE TYPE SLIS_LISTHEADER. 

  CLEAR GS_LINE. 
  GS_LINE-TYP  = 'H'. 
  GS_LINE-INFO = 'HEADER 1'. 
  APPEND GS_LINE TO GT_TOP_OF_PAGE. 

  CLEAR GS_LINE. 
  GS_LINE-TYP  = 'S'. 
  GS_LINE-KEY  = 'STATUS 1'. 
  GS_LINE-INFO = 'INFO 1'. 
  APPEND GS_LINE TO GT_TOP_OF_PAGE. 
  GS_LINE-KEY  = 'STATUS 2'. 
  GS_LINE-INFO = 'INFO 2'. 
  APPEND GS_LINE TO GT_TOP_OF_PAGE. 

* CLEAR GS_LINE. 
* GS_LINE-TYP  = 'A'. 
* 
* GS_LINE-INFO = 'ACTION'. 
* APPEND GS_LINE TO  GT_TOP_OF_PAGE. 

ENDFORM. 

FORM TOP_OF_PAGE. 
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' 
       EXPORTING 
            IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE. 
  WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED. 
ENDFORM. 

FORM END_OF_PAGE. 
  WRITE at (sy-linsz) sy-pagno CENTERED. 
ENDFORM. 

* PRINT SETTINGS 
FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV. 
  LS_PRINT-PRINT              = P_PRINT.  "PRINT IMMEDIATE 
  LS_PRINT-NO_PRINT_SELINFOS  = P_NOSINF. "NO SELECTION INFO 
  LS_PRINT-NO_COVERPAGE       = P_NOCOVE. "NO COVER PAGE 
  LS_PRINT-NO_NEW_PAGE        = P_NONEWP. 
  LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO 
  LS_PRINT-RESERVE_LINES      = P_RESERV. 
ENDFORM. 

*END OF ZALV PROGRAM 





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