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

Buscar

Traducir

Amazon

Otra plantilla ALV Grid PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Código fuente - Ejemplos ALV
Escrito por Administrator   
Jueves, 10 de Marzo de 2005 10:07
Otra plantilla ALV Grid
*----------------------------------------------------------------------*
* - Programa.......: YREPORTE *
* - Creador........: XXXXXXXXXXXXXXXXXXXXX *
* - Transacción....: XXXXXX *
* - Creación.......: XX.XXXXXXX.2004 *
* - Proposito......: Carga Inicial XXXXXXXXXXXXXXX *
* *
*----------------------------------------------------------------------*
* Modificador Fecha MARCA Motivo *
* ----------- -------- ----- ----------------------------------------- *
* XXXXXXXX DD.MM.AA @01 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx *
* *
*----------------------------------------------------------------------*
REPORT ZPRUEBA50 MESSAGE-ID z0
NO STANDARD PAGE HEADING
LINE-SIZE 132
LINE-COUNT 65.
*&---------------------------------------------------------------------*
*& Tablas
*&---------------------------------------------------------------------*
TABLES:
T001. "Sociedades
*----------------------------------------------------------------------*
* Declaración de Estructuras
*----------------------------------------------------------------------*
* Tabla Archivo de Entrada
DATA: BEGIN OF T_OUTTAB OCCURS 0,
BOX TYPE C.
INCLUDE STRUCTURE T001.
DATA: WRBTR LIKE BSEG-WRBTR. "Importe en la moneda del documento
DATA: END OF T_OUTTAB.

*&---------------------------------------------------------------------*
*& Variables Glovales
*&---------------------------------------------------------------------*
DATA: W_USRID LIKE PA0105-USRID,
W_POSI(2) TYPE n,
W_SETT01(56) TYPE C,
W_TIPBUS TYPE C.

DATA: W_progname TYPE sy-repid,
W_dynnum TYPE sy-dynnr,
dynpro_values TYPE TABLE OF dynpread,
field_value LIKE LINE OF dynpro_values.

*&---------------------------------------------------------------------*
*& DEFINICION DE TABLAS Y ESTRUCTURAS NECESARIAS ALV
*&---------------------------------------------------------------------*
* Type Pool donde vienen definidas todas las estructuras y tablas
TYPE-POOLS: slis.

* Catálogo de campos: contiene la descripción de los campos de salida
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gt_sort type slis_t_sortinfo_alv with header line,

* Especificaciones de la disposición de la lista: descripción de la
* estructura de salida
gs_layout TYPE slis_layout_alv,
gt_list_top_of_page TYPE slis_t_listheader,
gt_events TYPE slis_t_event,
* gt_sort type slis_t_sortinfo_alv,
ls_vari TYPE disvariant,
*
g_repid LIKE sy-repid.

* Tabla de excluir funciones
DATA: GT_EXCLUDE TYPE SLIS_T_EXTAB WITH HEADER LINE.

*&---------------------------------------------------------------------*
*& INCLUDE
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Parámetros de Selección
*&---------------------------------------------------------------------*
* Parámetros
SELECTION-SCREEN BEGIN OF BLOCK BLOCK01 WITH FRAME TITLE TEXT-S01.
SELECT-OPTIONS: S_BUKRS FOR T001-BUKRS "Sociedad
DEFAULT 'CASA'.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK BLOCK01.
*&---------------------------------------------------------------------*
*& Validaciones de Pantalla
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.

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

*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM CARGA_DATOS.
PERFORM CARGAR_ALV.
END-OF-SELECTION.

*&---------------------------------------------------------------------*
*& Form CARGA_CAB_GASTOS
*&---------------------------------------------------------------------*
* Carga de Datos
*----------------------------------------------------------------------*
FORM CARGA_DATOS.

REFRESH: T_OUTTAB.

* Sociedades
SELECT * INTO CORRESPONDING FIELDS OF TABLE T_OUTTAB
FROM T001
WHERE BUKRS IN S_BUKRS.

ENDFORM. " CARGA_DATOS
*&---------------------------------------------------------------------*
*& Form CARGAR_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM CARGAR_ALV.
* Carga de Campos para ALV
PERFORM init_fieldcat.
* Atributos de ALV
PERFORM init_layout.
* Ordenar ALV
PERFORM INIT_SORT.
* Excluir Botones
PERFORM EXCLUDE.
* Carga de Eventos
Perform eventtab_build_01 changing gt_events.
* Cabecera de ALV
Perform comment_build_01 using gt_list_top_of_page.
* ALV
PERFORM MOSTRAR_ALV_01.
ENDFORM. " CARGAR_ALV
*&---------------------------------------------------------------------*
*& Form init_fieldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM init_fieldcat.

REFRESH: GT_FIELDCAT.
CLEAR W_POSI.

* nombre del Programa
g_repid = sy-repid.

* Mediante esta tabla vamos a definir los campos que queremos mostrar
* en el listado de salida.
* Sociedad
W_POSI = W_POSI + 1.
gt_fieldcat-tabname = 'T_OUTTAB'.
gt_fieldcat-fieldname = 'BUKRS'.
gt_fieldcat-ddictxt = 'L'.
gt_fieldcat-seltext_l = TEXT-C01.
gt_fieldcat-col_pos = W_POSI.
gt_fieldcat-ref_tabname = 'T001'. "Tabla de Referencia
gt_fieldcat-ref_fieldname = 'BUKRS'. "Campo Referencia en Tabla
gt_fieldcat-key = 'X'. "Tratarlo como Clave
* gt_fieldcat-down = 'X'. "Orden Descendente
gt_fieldcat-hotspot = 'X'. "Navegar al Doble Click
APPEND gt_fieldcat. CLEAR gt_fieldcat.

* Descripción de Sociedad
W_POSI = W_POSI + 1.
gt_fieldcat-tabname = 'T_OUTTAB'.
gt_fieldcat-fieldname = 'BUTXT'.
gt_fieldcat-ddictxt = 'L'.
gt_fieldcat-seltext_l = TEXT-C02.
gt_fieldcat-col_pos = W_POSI.
gt_fieldcat-ref_tabname = 'T001'. "Tabla de Referencia
gt_fieldcat-ref_fieldname = 'BUTXT'. "Campo Referencia en Tabla
* gt_fieldcat-key = 'X'. "Tratarlo como Clave
* gt_fieldcat-down = 'X'. "Orden Descendente
* gt_fieldcat-outputlen = 10. "Fijar Long de Salida
* gt_fieldcat-do_sum = 'X'. "Sumarizar (campo numerico)
* gt_fieldcat-no_out = 'X'. "No Mostrar
* gt_fieldcat-hotspot = 'X'. "Navegar al Doble Click
APPEND gt_fieldcat. CLEAR gt_fieldcat.

* Población
W_POSI = W_POSI + 1.
gt_fieldcat-tabname = 'T_OUTTAB'.
gt_fieldcat-fieldname = 'ORT01'.
gt_fieldcat-ddictxt = 'L'.
gt_fieldcat-seltext_l = TEXT-C03.
gt_fieldcat-col_pos = W_POSI.
gt_fieldcat-ref_tabname = 'T001'. "Tabla de Referencia
gt_fieldcat-ref_fieldname = 'ORT01'. "Campo Referencia en Tabla
APPEND gt_fieldcat. CLEAR gt_fieldcat.

* País
W_POSI = W_POSI + 1.
gt_fieldcat-tabname = 'T_OUTTAB'.
gt_fieldcat-fieldname = 'LAND1'.
gt_fieldcat-ddictxt = 'L'.
gt_fieldcat-seltext_l = TEXT-C04.
gt_fieldcat-col_pos = W_POSI.
gt_fieldcat-ref_tabname = 'T001'. "Tabla de Referencia
gt_fieldcat-ref_fieldname = 'LAND1'. "Campo Referencia en Tabla
gt_fieldcat-no_out = 'X'. "No Mostrar
APPEND gt_fieldcat. CLEAR gt_fieldcat.

* Desviación
W_POSI = W_POSI + 1.
gt_fieldcat-tabname = 'T_OUTTAB'.
gt_fieldcat-fieldname = 'WAABW'.
gt_fieldcat-ddictxt = 'L'.
gt_fieldcat-seltext_l = TEXT-C05.
gt_fieldcat-col_pos = W_POSI.
gt_fieldcat-ref_tabname = 'T001'. "Tabla de Referencia
gt_fieldcat-ref_fieldname = 'WAABW'. "Campo Referencia en Tabla
gt_fieldcat-do_sum = 'X'. "Sumarizar (campo numerico)
APPEND gt_fieldcat. CLEAR gt_fieldcat.

* Importe en la moneda del documento
W_POSI = W_POSI + 1.
gt_fieldcat-tabname = 'T_OUTTAB'.
gt_fieldcat-fieldname = 'WRBTR'.
gt_fieldcat-ddictxt = 'L'.
gt_fieldcat-seltext_l = TEXT-C06.
gt_fieldcat-col_pos = W_POSI.
gt_fieldcat-ref_tabname = 'BSEG'. "Tabla de Referencia
gt_fieldcat-ref_fieldname = 'WRBTR'. "Campo Referencia en Tabla
gt_fieldcat-do_sum = 'X'. "Sumarizar (campo numerico)
APPEND gt_fieldcat. CLEAR gt_fieldcat.

ENDFORM. " init_fieldcat
*&---------------------------------------------------------------------*
*& Form init_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM init_layout.
gs_layout-colwidth_optimize = 'X'.
gs_layout-zebra = 'X'.
* gs_layout-detail_popup = 'X'.
* gs_layout-info_fieldname = 'COLOR'.
* gs_layout-f2code = '&ETA'.
gs_layout-no_input = ' '.
gs_layout-box_fieldname = 'BOX'.
ENDFORM. " init_layout
*&---------------------------------------------------------------------*
*& Form MOSTRAR_ALV_01
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM MOSTRAR_ALV_01.

* Inicialización de Variante de Trabajo
ls_vari-report = sy-repid.
ls_vari-handle = space.
ls_vari-log_group = space.
ls_vari-username = space.
ls_vari-variant = space.
ls_vari-text = space.
ls_vari-dependvars = space.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND_01'
* i_callback_pf_status_set = 'SET_PF_STATUS_01'
i_structure_name = 'T_OUTTAB'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
IT_SORT = GT_SORT[]
IT_EXCLUDING = GT_EXCLUDE[]
* I_DEFAULT = 'X'
I_SAVE = ' ' "Grabar Variante
IS_VARIANT = ls_vari
IT_EVENTS = GT_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
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = T_OUTTAB
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. " MOSTRAR_ALV_01
*---------------------------------------------------------------------*
* FORM USER_COMMAND_01 Process Call Back Events (Begin) *
*---------------------------------------------------------------------*
form user_command_01 using ucomm like sy-ucomm
selfield type slis_selfield.
*FIELD-SYMBOLS: .

read table T_OUTTAB index selfield-tabindex.
check sy-subrc = 0.

case ucomm.
* Doble Click
when '&IC1'.
CASE SELFIELD-FIELDNAME.
* N° de Viaje
WHEN 'BUKRS'.
SET PARAMETER ID 'BUK' FIELD T_OUTTAB-BUKRS. "Sociedad
CALL TRANSACTION 'FB01'.
WHEN OTHERS.
ENDCASE.
* Refrescar
WHEN 'REFRESH'.
* PERFORM CARGA_CAB_GASTOS.
* Perform comment_build_01 using gt_list_top_of_page.
* PERFORM MOSTRAR_ALV_01.
* LEAVE PROGRAM.
WHEN 'ANTICIPO'.
*SET PARAMETER ID 'PER' FIELD T_OUTTAB-PERNR. "Número personal
*SET PARAMETER ID 'ZRW_REINR' FIELD T_OUTTAB-REINR. "Número de viaje
* CALL TRANSACTION 'ZFI055' AND SKIP FIRST SCREEN.
* Cambiar N° Personal
endcase.
endform.
*&---------------------------------------------------------------------*
*& Form INIT_SORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM INIT_SORT.
REFRESH: gt_sort.CLEAR gt_sort.
CLEAR W_POSI.

* Sortear por Código de Sociedad
W_POSI = W_POSI + 1.
gt_sort-spos = W_POSI.
gt_sort-tabname = 'T_OUTTAB'.
gt_sort-fieldname = 'BUKRS'.
gt_sort-down = 'X'. "Orden Descendente
APPEND gt_sort. CLEAR gt_sort.

ENDFORM. " INIT_SORT
*---------------------------------------------------------------------*
* FORM eventtab_build_01 *
*---------------------------------------------------------------------*
FORM eventtab_build_01 CHANGING PGT_EVENTS type slis_t_event.

CONSTANTS:
gc_formname_top_of_page type slis_formname value 'TOP_OF_PAGE_01'.

DATA: ls_event type slis_alv_event.

call function 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = PGT_EVENTS.

read table PGT_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 PGT_EVENTS.
endif.

ENDFORM. " eventtab_build_01
*---------------------------------------------------------------------*
* FORM COMMENT_BUILD_01 *
*---------------------------------------------------------------------*
FORM COMMENT_BUILD_01 USING LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA: LS_LINE TYPE SLIS_LISTHEADER.

REFRESH: LT_TOP_OF_PAGE.

* Title
* LIST HEADING LINE: TYPE H
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-KEY = 'El Titulo'.
LS_LINE-INFO = 'TITULO'.
APPEND LS_LINE TO LT_TOP_OF_PAGE.

CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = 'Nº persona :'.
Concatenate '007' 'Espia Ingles' into LS_LINE-INFO
separated by space.
APPEND LS_LINE TO LT_TOP_OF_PAGE.

CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
APPEND LS_LINE TO LT_TOP_OF_PAGE.

ENDFORM.

*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE_01 *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE_01.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.
*&---------------------------------------------------------------------*
* FORM SET_PF_STATUS_01
*&---------------------------------------------------------------------*
FORM set_pf_status_01 USING lt_cua_exclude TYPE slis_t_extab.
DATA: lf_gui_status TYPE gui_status.

* Permiso para Cambio de Usuario
* IF W_CAMBIO eq '1'.
* lf_gui_status = 'PAN02'.
* SET PF-STATUS lf_gui_status.
* ELSE.
* lf_gui_status = 'PAN02'.
* SET PF-STATUS lf_gui_status excluding 'CHGPER'.
* ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form EXCLUDE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM EXCLUDE.
* REFRESH GT_EXCLUDE.
* GT_EXCLUDE-FCODE = '&EB9'.
* APPEND GT_EXCLUDE. CLEAR GT_EXCLUDE.
ENDFORM. " EXCLUDE
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."

Actualizado ( Lunes, 07 de Julio de 2008 06:25 )
 
home search