SlideShare una empresa de Scribd logo
1 de 31
manualalv-150515212651-lva1-app6891.doc
MANUAL REPORTING ALV
Página 1 de 31
Manual Reporting ALV
Página / 2(31)
Fecha / 15/05/2015
1 INTRODUCCIÓN...........................................................................................................................................3
2 PASOS BÁSICOS PARA CREAR UNA ALV.............................................................................................4
3 FAMILIARIZARSE CON LAS ALV............................................................................................................6
3.1 REUSE_ALV_LIST_DISPLAY  REUSE_ALV_GRID_DISPLAY..............................................10
3.2 CAMPOS DEL CATALOGO...........................................................................................................................12
4 CASOS ESPECIALES EN LISTADOS ALV.............................................................................................13
4.1 SIN ESPECIFICACIÓN DE LOS CAMPOS DEL CATÁLOGO..............................................................................13
4.2 ALV CON EVENTOS..................................................................................................................................15
4.3 ALV CON LOGOTIPO.................................................................................................................................16
4.4 ALV CON BOTONES NO STANDARD..........................................................................................................17
4.5 ALV JERARQUICO.....................................................................................................................................18
4.6 ALV DRAG AND DROP.............................................................................................................................19
5 CARGA DEL LOGO EN EL SISTEMA....................................................................................................27
6 REFERENCIAS.............................................................................................................................................30
Manual Reporting ALV
Página / 3(31)
Fecha / 15/05/2015
1 Introducción.
El ALV Grid Control (ALV = SAP List Viewer) es una herramienta flexible
para mostrar listados. Esta herramienta, además de visualizar los datos, permite múltiples
permite operaciones con él (suma, agrupación ...) y además se puede adaptar según
requerimientos (visulización de determinadas columnas, ...).
La herramienta del ALV es una nueva funcionalidad que ya se puede utilizar desde
la versión 4.0. Es a partir de esta versión cuando empieza a cobrar importancia y se le van
añadiendo funcionalidades y nuevas posibilidades. En la versión 4.6 además de las
llamadas a las funciones, también se incluyen posibilidad de desarrollo a través de objetos.
(llamadas a métodos).
En general, estas son las posibilidades que ofrece el ALV:
Navegación
Posibilidad de navigación a través de la lista: visualización de la primera,
ultima columna, desplazamiento horizontal, fijación de columnas.
Detalle
Posibilidad de ver el detalle de una línea determinada en otra pantalla
Ordenación
Se puede ordenar el listado tanto descendente como ascendentemente por
una o varias columnas
Selección
Se puede marcar/desmarcar columnas
Algunas filas pueden indicar el status (semáforos, iconos). Si hay filas
subordinadas, pueden heredar este indicador.
Filtros
Se pueden indicar filtros que muestren aquellas filas que cumplan uno ó más
criterios.
Totalización de valores
Totalizar valores
Crear subtotales (a varios niveles)
Mostar sólo Totales /Subtotales
Visualización de estado
Información del estado de la lista: columnas a partir de las cuales se ha
realizado la ordenación, subtotales, filtros de selección, registros
seleccionados, registros ocultos por los filtros, totales mostrados.
Columnas
Optimización del ancho de la columna
Fijación de columnas
Variantes de visualización
Se permite grabar las opciones de visualización seleccionadas para un
posterior uso.
Manual Reporting ALV
Página / 4(31)
Fecha / 15/05/2015
Lista Básica
Posibilidad de volver a la lista inicial (si se han seleccionado variantes).
Búsqueda
Posibilidad de buscar en los datos mostrados
Imprimir
Posibilidad de imprimir la lista
2 Pasos básicos para crear una ALV
1. Llenar un catálogo con las columnas del listado:
(INITIALIZE_FIELDCAT)
2. Crear una tabla de eventos:
Eventos como TOP_OF_PAGE, AT USER COMMAND. Se indica el
evento y el perform que se ejecutará (llamadas dinámicas)
(BUILD_EVENTTAB)
3. Agregar textos adicionales al reporte - (Opcional):
(BUILD_COMMENT)
4. Inicializar las variantes de visualización del listado:
(INITIALIZE_VARIANT)
5. Extraer la información de la base de datos:
(GET_*)
6. Especificar las características del layout.
Formato de salida de pantalla
(BUILD_LAYOUT)
7. Especificar las características de impresión:
(BUILD_PRINT)
8. Mostrar el resultado:
Función REUSE_ALV_LIST_DISPLAY
Es conveniente, al igual que existe un include para Batch Inputs, que se tenga un
include para los reports de ALV ya que así se agiliza la codificación. (Ver fichero
ZINCLUDE_ALV.txt). Las ventajas de la utilización del include son la reutilización de
código; uniformidad en la codificación ....
Manual Reporting ALV
Página / 5(31)
Fecha / 15/05/2015
************************************************************************
* LOGICA DEL PROGRAMA
************************************************************************
*---------------------------------------------------------------------*
* FORM MAIN_STATEMENTS *
* Este código deberá ser insertado en el programa principal
*---------------------------------------------------------------------*
*form main_statements.
* Declarar el parámetro P_VARI. Si no se utiliza, ocultarlo con
* NO-DISPLAY, pero debe existir
* parameters: p_vari like disvariant-variant. " ALV Variant
** Se debe añadir la siguiente línea después de la declaración de datos
** y parámetros
** INCLUDE ZIMPU002.
** Incluir además después de la declaración de las variables/parámetros,
** las siguientes líneas en el evento INITIALIZATION.
* initialization.
* d_repname = sy-repid.
* Si se quiere cambiar la barra de herramientas
* perform f_pf_status_set using I_extab.
* Para cada columna de datos se deberá llamar a este Perform indicando
* las cualidades del campo.
* perform f_initialize_fieldcat using i_fieldtab[]
* r_fieldcat.
* Se construye la tabla de eventos con los performs que se ejecutarán en
* cada evento
* perform f_build_eventtab using i_events[].
* Se indican los textos del listado
* perform f_build_comment using i_heading[].
* Se inicializa la variante de visualización
* perform f_initialize_variant using p_vari.
* Si se usa el parámetro P_VARI (ALV Variant), se debe incluir las
* siguientes líneas
*at selection-screen on value-request for p_vari.
* perform f_f4_for_variant.
*at selection-screen.
* Se comprueba variante indicada en la pantalla de selección
* perform f_pai_of_selection_screen using p_vari.
Manual Reporting ALV
Página / 6(31)
Fecha / 15/05/2015
* En el evento "END-OF-SELECTION", añadir las siguientes líneas
*end-of-selection.
* perform f_build_layout using r_layout.
* perform f_build_print using r_prints.
* perform f_write_using_alv.
*** You also have to create the following forms: (you can find samples
*** in this program)
* INITIALIZE_FIELDCAT
* USER_COMMAND (only if you are creating a STATUS)
* WRITE_USING_ALV
*endform.
3 Familiarizarse con las ALV
En este ejemplo simple se muestra un listado de posiciones de pedidos de compras.
REPORT zalv_simple.
***********************************************
1. Definición estructuras y tablas necesaria.
***********************************************
• 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,
• Especificaciones de la disposición de la lista: descripción de la
estructura de salida
gs_layout TYPE slis_layout_alv,
• Nombre del programa
g_repid LIKE sy-repid.
Manual Reporting ALV
Página / 7(31)
Fecha / 15/05/2015
***************************************************
2. Definición de la tabla con los datos de salida
***************************************************
TYPES: BEGIN OF st_output.
INCLUDE STRUCTURE ekpo.
TYPES: END OF st_output.
DATA: gt_output TYPE STANDARD TABLE OF st_output WITH HEADER
LINE.
INITIALIZATION.
g_repid = sy-repid.
*****************************************************
3. Toma de datos
*****************************************************
START-OF-SELECTION.
PERFORM toma_datos.
FORM toma_datos.
Los datos deben guardarse
en la tabla interna de
salida
SELECT * FROM ekpo
UP TO 100 ROWS
INTO TABLE gt_output.
ENDFORM. " TOMA_DATOS
Manual Reporting ALV
Página / 8(31)
Fecha / 15/05/2015
*****************************************************
4. Definición estructura y formato de salida
*****************************************************
PERFORM init_fieldcat.
PERFORM init_layout.
FORM init_fieldcat.
* Mediante esta tabla vamos a definir los
campos que queremos mostrar
* en el listado de salida.
gt_fieldcat-fieldname = 'EBELN'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'EBELP'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'MATNR'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'WERKS'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'MENGE'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
gt_fieldcat-fieldname = 'MEINS'.
gt_fieldcat-ref_tabname = 'EKPO'.
APPEND gt_fieldcat. CLEAR gt_fieldcat.
ENDFORM.
FORM init_layout.
* Mediante esta estructura se
puede definir el formato de
salida
gs_layout-zebra = 'X'.
gs_layout-f2code = '&ETA'.
gs_layout-detail_popup = 'X'.
ENDFORM.
Manual Reporting ALV
Página / 9(31)
Fecha / 15/05/2015
*****************************************************
5. Mostrar listado
*****************************************************
PERFORM listado.
FORM listado.
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 =
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
* 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
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = gt_output
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. " LISTADO
Manual Reporting ALV
Página / 10(31)
Fecha / 15/05/2015
3.1 REUSE_ALV_LIST_DISPLAY 
REUSE_ALV_GRID_DISPLAY
Con la función REUSE_ALV_LIST_DISPLAY se muestran los datos como un listado.
(Programa Z_CURSOALV001)
Manual Reporting ALV
Página / 11(31)
Fecha / 15/05/2015
Con la función REUSE_ALV_GRID_DISPLAY se muestran los datos en una tabla (con su
campos), es decir, muestra una rejilla. (Programa Z_CURSOALV002)
Manual Reporting ALV
Página / 12(31)
Fecha / 15/05/2015
3.2 Campos del catalogo.
Los campos del catálogo indican propiedades de cada dato a mostrar, estas propiedades
varían de una versión a otra (la versión superior siempre tendrá las propiedades de
versiones anteriores).
 Nota: En esta caso se trata de la versión 4.6C (la más actual) por lo que alguna de
estas propiedades puede que no estén disponibles en versiones anteriores.
Nombre Campo Referencia Descripción
ROW_POS SY-CUROW output in row
COL_POS SY-CUCOL position of the column. Indica el número de columna
donde aparecerá él campo en el listado.
FIELDNAME SLIS_FIELDNAME Indica el nombre del campo de la tabla interna que hace
referencia.
TABNAME SLIS_TABNAME
CURRENCY(5) C Indica el tipo de moneda para el campo.
CFIELDNAME SLIS_FIELDNAME field with currency unit
CTABNAME SLIS_TABNAME and table
ifieldname slis_fieldname initial column
QUANTITY(3) C
QFIELDNAME SLIS_FIELDNAME field with quantity unit
QTABNAME SLIS_TABNAME and table
ROUND I round in write statement
EXPONENT(3) C exponent for floats
KEY(1) C Indica si este campo es clave. Aparecerá en azul y será
fija.
ICON(1) C Indica que se puede meter un icono en este campo.
SYMBOL(1) C as symbol
CHECKBOX(1) C Indica que el campo será de tipo checkbox.
JUST(1) C (R)ight (L)eft (C)ent.
LZERO(1) C leading zero
NO_SIGN(1) C Indica que no aparecerá signo.
NO_ZERO(1) C Indica que no aparecerán ceros
no_convext(1) C
EDIT_MASK SLIS_EDIT_MASK Indica que se formateará el campo con la mascara
introducida.
EMPHASIZE(4) C emphasize
FIX_COLUMN(1) C Indica que se quedara la columna fija.
DO_SUM(1) C Indica que se pude realizar sumas.
NO_OUT(1) C (O)blig.(X)no out
TECH(1) C technical field
OUTPUTLEN DD03P-OUTPUTLEN Indica la longitud de salida del campo
OFFSET DD03P-INTLEN offset
SELTEXT_L DD03P-SCRTEXT_L Texto largo campo.
SELTEXT_M DD03P-SCRTEXT_M Texto medio del campo.
Manual Reporting ALV
Página / 13(31)
Fecha / 15/05/2015
Nombre Campo Referencia Descripción
SELTEXT_S DD03P-SCRTEXT_S Texto corto del campo.
DDICTXT(1) C (S)hort (M)iddle (L)ong
ROLLNAME DD03P-ROLLNAME
DATATYPE DD03P-DATATYPE Indica el tipo de dato del campo.
INTTYPE DD03P-INTTYPE
INTLEN DD03P-INTLEN Indica la longitud de entrada del campo.
LOWERCASE DD03P-LOWERCASE Indica que el campo aparecerá en minúsculas.
REF_FIELDNAME DD03P-FIELDNAME
REF_TABNAME DD03P-TABNAME
ROUNDFIELDNAME SLIS_FIELDNAME
ROUNDTABNAME SLIS_TABNAME
DECIMALSFIELDNAME SLIS_FIELDNAME
DECIMALSTABNAME SLIS_TABNAME
DECIMALS_OUT(6) C decimals in write statement
TEXT_FIELDNAME SLIS_FIELDNAME
REPTEXT_DDIC DD03P-REPTEXT Indica el texto que aparecerá en la columna.
DDIC_OUTPUTLEN DD03P-OUTPUTLEN
KEY_SEL(1) C field not obligatory
NO_SUM(1) C Indica que no permite realizar sumas.
SP_GROUP(4) C group specification
REPREP(1) C selection for rep/rep
INPUT(1) C Indica que el campo es de salida.
edit(1) C internal use only
HOTSPOT(1) C Aparecerá el campo tipo hipervínculo(Icono mano).
4 Casos Especiales en Listados ALV.
4.1 Sin especificación de los campos del catálogo.
Primero cargaremos en la tabla interna los datos que vamos a visualizar.
Después cargaremos el catalogo con los campos necesarios para nosotros. Aquí
tenemos dos maneras diferentes de realizarlo.
Esto quiere decir, visualizar todos los campos de una tabla. Para ello existe una
función de SAP que nos carga el catalogo entero indicándole la tabla de B.D. que nosotros
deseamos. Esta función es REUSE_ALV_FIELDCATALOG_MERGE.
Una vez cargado el catalogo, llamaríamos a la función del ALV, que es la siguiente:
REUSE_ALV_GRID_DISPLAY.
Manual Reporting ALV
Página / 14(31)
Fecha / 15/05/2015
Ejemplo practico.
TYPE-POOLS slis.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
ls_fieldcat TYPE slis_fieldcat_alv,
gs_layout TYPE slis_layout_alv,
g_repid LIKE sy-repid.
Data: Begin of i_vbap occurs 0.
Include structure vbap.
Data: End of i_vbap.
Clear i_vbap. Refresh i_vbap.
* Cargamos la tabla interna
Select * from vbap into table i_vbap.
* Cargamos el catalogo
Call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_structure_name = 'VBAP'
i_bypassing_buffer = 'X'
changing
ct_fieldcat = gt_fieldcat
exceptions
inconsistent_interface = 1
program_error = 2
others = 3.
* Borramos el mandante del catalogo
Delete gt_fieldcat where fieldname = 'MANDT'.
* Llamamos a la función que muestra el listado en formato ALV
g_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = g_repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat
i_save = 'A'
tables
t_outtab = i_vbap
exceptions
program_error = 1
others = 2.
Manual Reporting ALV
Página / 15(31)
Fecha / 15/05/2015
4.2 ALV con Eventos.
Se puede indicar cuál es el código que se ejecutará en determinados eventos del
listado. Este código irá en performs que se indicarán en una tabla de eventos. La llamada a
estos performs se realiza en tiempo de ejecución.
Para definir la tabla de eventos es útil la función REUSE_ALV_EVENTS_GET, ya
que devuelve una tabla interna con los eventos que se pueden ejecutar según el tipo de
listado. El tipo de listado puede ser 0 (Lista sencilla), 1 (Jerarquía secuencial), 2 (Lista de
bloques sencilla) y 3 (Lista de bloques en jerarquía secuencial).
Por ejemplo para el tipo 0 (Lista sencilla), los eventos que devuelve son:
CALLER_EXIT
USER_COMMAND
TOP_OF_PAGE
TOP_OF_COVERPAGE
END_OF_COVERPAGE
FOREIGN_TOP_OF_PAGE
FOREIGN_END_OF_PAGE
PF_STATUS_SET
Manual Reporting ALV
Página / 16(31)
Fecha / 15/05/2015
LIST_MODIFY
TOP_OF_LIST
END_OF_PAGE
END_OF_LIST
AFTER_LINE_OUTPUT
BEFORE_LINE_OUTPUT
REPREP_SEL_MODIFY
SUBTOTAL_TEXT
Para indicar el código que se debe ejecutar simplemente hay que introducir en esta
tabla interna en la línea que le corresponda el nombre del perform (en el campo FORM).
Los eventos están definidos como constantes en el INCLUDE SLIS.
4.3 ALV con Logotipo.
Existe la posibilidad de incluir una cabecera al ALV, introduciendo en ella un titulo,
logo... .
Para ello a la hora de declarar la función del ALV, en el parámetro
i_callback_html_top_of_page, se introduce el nombre de la rutina que se ejecutará para
generar la cabecera, titulo, logo... .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_html_top_of_page = 'F_HTML_TOP_OF_PAGE'
is_layout = gs_layout
it_fieldcat = gt_fieldcat
i_save = 'A'
TABLES
t_outtab = i_vbap
EXCEPTIONS
program_error = 1
OTHERS = 2.
FORM f_html_top_of_page USING r_top TYPE REF TO cl_dd_document.
DATA: a_logo TYPE REF TO cl_dd_area.
DATA: text1 TYPE sdydo_text_element.
DATA: text2 TYPE sdydo_text_element.
CLEAR : text1, text2.
* Se reserva un 20 por ciento para el logo en la cabecera
CALL METHOD r_top->vertical_split
EXPORTING split_area = r_top
split_width = '80%'
IMPORTING right_area = a_logo.
Manual Reporting ALV
Página / 17(31)
Fecha / 15/05/2015
* Una linea en blanco
CALL METHOD r_top->new_line.
* Titulo que aparecera en la cabecera
CALL METHOD r_top->add_text EXPORTING text = text1
sap_style = cl_dd_area=>heading.
* Una linea en blanco
CALL METHOD r_top->new_line.
* Titulo que aparecera en la cabecera
CALL METHOD r_top->add_text EXPORTING text = text2
sap_style = cl_dd_area=>heading.
* Insertamos el logo (Ver punto 7)
CALL METHOD a_logo->add_picture
EXPORTING picture_id = 'LOGO_CROMION'.
ENDFORM.
4.4 ALV con botones no standard.
Entre las muchas posibilidades que tiene el ALV, existe una muy interesante y muy
utilizada, que es la introducción de botones nuevos al status del ALV.
Para ello se suele copiar el status standard, que se copia del programa demo
BCALV_FULLSCREEN_DEMO, y añadirle los botones deseados. Una vez realizado esto,
se crea la rutina para el status y otra para el user_command, para controlar las acciones a
realizar según el botón pulsado(los nuevos incluidos por nosotros).
De esta manera habría que generar el código:
FORM status_9000 USING p_tabla TYPE slis_t_extab..
SET PF-STATUS '9000_001'.
ENDFORM. " STATUS_9000
FORM user_command_9000 USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN 'EXIT'.
Manual Reporting ALV
Página / 18(31)
Fecha / 15/05/2015
WHEN 'CANC'.
WHEN 'BACK'.
WHEN 'OPT1'.
ENDCASE.
ENDFORM. " USER_COMMAND_9000
Y en la llamada a la función introduciríamos dos parámetros más a la función.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = g_repid
i_callback_pf_status_set = lv_callback_status_set
i_callback_user_command = lv_callback_user_command
i_callback_html_top_of_page = 'F_HTML_TOP_OF_PAGE'
is_layout = ls_layout
it_fieldcat = gt_fieldcat
i_save = 'A'
tables
t_outtab = i_vbap
exceptions
program_error = 1
others = 2.
Donde :
lv_callback_status_set = 'STATUS_9000' y
lv_callback_user_command = 'USER_COMMAND_9000'.
4.5 ALV jerarquico
Se utiliza la función REUSE_ALV_HIERSEQ_LIST_DISPLAY. A diferencia de los
listados simples, se deben definir 2 tablas de datos: los datos de cabecera y los datos de
posiciones, además se debe indicar cuál es la relación entre los datos de cabecera y los
datos de posiciones.
Ver programa Z_CURSOALV005
Manual Reporting ALV
Página / 19(31)
Fecha / 15/05/2015
4.6 ALV Drag and Drop
Para hacer un ALV Drag and Drop, tenemos q realizar una serie de pasos:
1.- Tenemos que crear una dynpro en nuestro programa, e insertar un
custom control:
Ese custom control sera el q contenga nuestro ALV Drag & Drop.
2.- A Continuacion, en nuestro programa creamos una clase aplicación que
tendra los eventos de drag y drop, y una clase drag and drop, donde
guardaremos la linea q vamos a mover.:
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Class APPLICATION
*&---------------------------------------------------------------------*
* Text
*----------------------------------------------------------------------*
CLASS application DEFINITION.
PUBLIC SECTION.
* methods for D&D handling
METHODS: handle_grid_drag FOR EVENT ondrag OF cl_gui_alv_grid
Manual Reporting ALV
Página / 20(31)
Fecha / 15/05/2015
IMPORTING es_row_no e_column e_dragdropobj,
handle_grid_drop FOR EVENT ondrop OF cl_gui_alv_grid
IMPORTING e_row e_column e_dragdropobj,
handle_grid_drop_complete FOR EVENT ondropcomplete OF
cl_gui_alv_grid
IMPORTING e_row e_column e_dragdropobj.
ENDCLASS. "APPLICATION
*---------------------------------------------------------------------*
* CLASS drag_drop_object DEFINITION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS drag_drop_object DEFINITION.
PUBLIC SECTION.
DATA: wa_test LIKE LINE OF gt_outtab,
index TYPE i.
ENDCLASS. "DRAG_DROP_OBJECT
*---------------------------------------------------------------------*
* CLASS application IMPLEMENTATION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS application IMPLEMENTATION.
* implement what should happen when sth. will be dragged
METHOD handle_grid_drag.
DATA: data_object TYPE REF TO drag_drop_object,
help_row LIKE LINE OF i_mcha.
READ TABLE i_mcha INTO help_row INDEX es_row_no-row_id.
CREATE OBJECT data_object.
MOVE es_row_no-row_id TO data_object->index.
READ TABLE i_mcha INTO data_object->wa_test INDEX
es_row_no-row_id.
e_dragdropobj->object = data_object.
ENDMETHOD. "handle_grid_drag
* implement what should happen when sth. will be dropped
METHOD handle_grid_drop.
DATA: data_object TYPE REF TO drag_drop_object,
drop_index TYPE i,
help_row_2 LIKE LINE OF gt_outtab.
CATCH SYSTEM-EXCEPTIONS move_cast_error = 1.
data_object ?= e_dragdropobj->object.
DELETE i_mcha INDEX data_object->index.
INSERT data_object->wa_test INTO i_mcha INDEX e_row-index.
IF e_dragdropobj->effect = cl_dragdrop=>move.
ELSEIF e_dragdropobj->effect = cl_dragdrop=>copy.
ENDIF.
Manual Reporting ALV
Página / 21(31)
Fecha / 15/05/2015
ENDCATCH.
ENDMETHOD. "handle_grid_drop
METHOD handle_grid_drop_complete.
CALL METHOD grid->refresh_table_display.
IF sy-subrc <> 0.
CALL METHOD e_dragdropobj->abort.
ENDIF.
ENDMETHOD. "handle_grid_drop_complete
ENDCLASS. "application
3.- Para obtener el catalogo utilizamos el siguiente codigo:
DATA : d_cat TYPE slis_t_fieldcat_alv.
DATA : r_cat TYPE LINE OF slis_t_fieldcat_alv.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
* I_PROGRAM_NAME =
* I_INTERNAL_TABNAME =
i_structure_name = 'MCHA'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_INCLNAME =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = d_cat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
LOOP AT d_cat INTO r_cat.
MOVE-CORRESPONDING r_cat TO ls_fieldcat.
ls_Fieldcat-hotspot = 'X'.
Ls_Fieldcat-reptext = r_cat-reptext_ddic
APPEND ls_fieldcat TO d_fieldcat.
ENDLOOP.
CALL SCREEN '9000'.
ENDFORM.
4.- Finalmente creamos los objetos applicacion, drag and drop y demas:
*&---------------------------------------------------------------------*
*& Form F_CREAR_OBJETOS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_crear_objetos.
DATA: effect TYPE i,
effect_move TYPE i,
effect_copy TYPE i,
Manual Reporting ALV
Página / 22(31)
Fecha / 15/05/2015
handle_grid TYPE i.
IF d_contenedor IS INITIAL.
CREATE OBJECT d_contenedor
EXPORTING container_name = 'CONTENEDOR1'.
CREATE OBJECT grid
EXPORTING i_parent = d_contenedor.
CREATE OBJECT application.
SET HANDLER application->handle_grid_drag FOR grid.
SET HANDLER application->handle_grid_drop FOR grid.
SET HANDLER application->handle_grid_drop_complete FOR grid.
CREATE OBJECT grid_behaviour.
effect_move = cl_dragdrop=>move.
CALL METHOD grid_behaviour->add
EXPORTING
flavor = 'LINE'
dragsrc = 'X'
droptarget = 'X'
effect_in_ctrl = effect_move.
CALL METHOD grid_behaviour->get_handle
IMPORTING
handle = handle_grid.
gs_layout-s_dragdrop-row_ddid = handle_grid.
is_variant-report = 'ZDAMDD'.
CALL METHOD grid->set_table_for_first_display
EXPORTING
i_structure_name = 'MCHA'
IS_VARIANT = is_variant
I_SAVE = 'A'
is_layout = gs_layout
CHANGING
it_fieldcatalog = d_fieldcat
it_outtab = i_mcha.
ENDIF.
ENDFORM. " F_CREAR_OBJETOS
5.- Al final ponego el codigo del programa completo, con las declaraciones,
variables y demas. El programa se llama ZDAMDD y esta en Sidenor
Desarrollo, es muy sencillito y se entiende bien:
REPORT zdamdd .
TYPE-POOLS : slis.
DATA : okcode LIKE sy-ucomm.
DATA : i_mcha LIKE mcha OCCURS 0 .
CLASS application DEFINITION DEFERRED.
* data declaration
DATA: BEGIN OF gt_outtab_3 OCCURS 0.
INCLUDE STRUCTURE sflight.
DATA: celltab TYPE lvc_t_drdr.
DATA: END OF gt_outtab_3.
Manual Reporting ALV
Página / 23(31)
Fecha / 15/05/2015
DATA: application TYPE REF TO application,
d_contenedor TYPE REF TO cl_gui_custom_container,
grid TYPE REF TO cl_gui_alv_grid,
grid_behaviour TYPE REF TO cl_dragdrop,
ok_code LIKE sy-ucomm,
save_ok_code LIKE ok_code,
m LIKE sy-tabix,
gt_outtab TYPE sflight OCCURS 0,
gt_outtab_2 TYPE sflight OCCURS 0,
gs_outtab LIKE LINE OF gt_outtab,
fieldcat TYPE lvc_t_fcat, " WITH HEADER LINE,
ls_fieldcat LIKE LINE OF fieldcat,
gs_layout TYPE lvc_s_layo,
it_sflight LIKE STANDARD TABLE OF sflight WITH HEADER LINE,
ls_celltab TYPE lvc_s_drdr,
index_gt_outtab_3 TYPE i,
index TYPE i,
gs_outtab_3 LIKE LINE OF gt_outtab_3,
is_variant type DISVARIANT.
DATA : d_fieldcat TYPE lvc_t_fcat.
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Class APPLICATION
*&---------------------------------------------------------------------*
* Text
*----------------------------------------------------------------------*
CLASS application DEFINITION.
PUBLIC SECTION.
* methods for D&D handling
METHODS: handle_grid_drag FOR EVENT ondrag OF cl_gui_alv_grid
IMPORTING es_row_no e_column e_dragdropobj,
handle_grid_drop FOR EVENT ondrop OF cl_gui_alv_grid
IMPORTING e_row e_column e_dragdropobj,
handle_grid_drop_complete FOR EVENT ondropcomplete OF
cl_gui_alv_grid
IMPORTING e_row e_column e_dragdropobj.
ENDCLASS. "APPLICATION
*---------------------------------------------------------------------*
* CLASS drag_drop_object DEFINITION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS drag_drop_object DEFINITION.
PUBLIC SECTION.
DATA: wa_test LIKE LINE OF gt_outtab,
index TYPE i.
ENDCLASS. "DRAG_DROP_OBJECT
*---------------------------------------------------------------------*
* CLASS application IMPLEMENTATION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS application IMPLEMENTATION.
* implement what should happen when sth. will be dragged
Manual Reporting ALV
Página / 24(31)
Fecha / 15/05/2015
METHOD handle_grid_drag.
DATA: data_object TYPE REF TO drag_drop_object,
help_row LIKE LINE OF i_mcha.
READ TABLE i_mcha INTO help_row INDEX es_row_no-row_id.
CREATE OBJECT data_object.
MOVE es_row_no-row_id TO data_object->index.
READ TABLE i_mcha INTO data_object->wa_test INDEX
es_row_no-row_id.
e_dragdropobj->object = data_object.
ENDMETHOD. "handle_grid_drag
* implement what should happen when sth. will be dropped
METHOD handle_grid_drop.
DATA: data_object TYPE REF TO drag_drop_object,
drop_index TYPE i,
help_row_2 LIKE LINE OF gt_outtab.
CATCH SYSTEM-EXCEPTIONS move_cast_error = 1.
data_object ?= e_dragdropobj->object.
DELETE i_mcha INDEX data_object->index.
INSERT data_object->wa_test INTO i_mcha INDEX e_row-index.
IF e_dragdropobj->effect = cl_dragdrop=>move.
ELSEIF e_dragdropobj->effect = cl_dragdrop=>copy.
ENDIF.
ENDCATCH.
ENDMETHOD. "handle_grid_drop
METHOD handle_grid_drop_complete.
CALL METHOD grid->refresh_table_display.
IF sy-subrc <> 0.
CALL METHOD e_dragdropobj->abort.
ENDIF.
ENDMETHOD. "handle_grid_drop_complete
ENDCLASS. "application
START-OF-SELECTION.
SELECT * FROM mcha INTO TABLE i_mcha UP TO 100 ROWS.
DATA : d_cat TYPE slis_t_fieldcat_alv.
DATA : r_cat TYPE LINE OF slis_t_fieldcat_alv.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
* I_PROGRAM_NAME =
* I_INTERNAL_TABNAME =
i_structure_name = 'MCHA'
* I_CLIENT_NEVER_DISPLAY = 'X'
Manual Reporting ALV
Página / 25(31)
Fecha / 15/05/2015
* I_INCLNAME =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = d_cat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
LOOP AT d_cat INTO r_cat.
MOVE-CORRESPONDING r_cat TO ls_fieldcat.
ls_Fieldcat-hotspot = 'X'.
APPEND ls_fieldcat TO d_fieldcat.
ENDLOOP.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL SCREEN '9000'.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_9000 OUTPUT.
SET PF-STATUS '9000_001'.
* SET TITLEBAR 'xxx'.
PERFORM f_crear_objetos.
ENDMODULE. " STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_9000 INPUT.
CASE okcode.
WHEN 'EXIT' OR 'CANC' OR 'BACK'.
IF NOT d_contenedor IS INITIAL.
CALL METHOD d_contenedor->free
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2.
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2.
ENDIF.
LEAVE to screen 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
*& Form F_CREAR_OBJETOS
Manual Reporting ALV
Página / 26(31)
Fecha / 15/05/2015
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_crear_objetos.
DATA: effect TYPE i,
effect_move TYPE i,
effect_copy TYPE i,
handle_grid TYPE i.
IF d_contenedor IS INITIAL.
CREATE OBJECT d_contenedor
EXPORTING container_name = 'CONTENEDOR1'.
CREATE OBJECT grid
EXPORTING i_parent = d_contenedor.
CREATE OBJECT application.
SET HANDLER application->handle_grid_drag FOR grid.
SET HANDLER application->handle_grid_drop FOR grid.
SET HANDLER application->handle_grid_drop_complete FOR grid.
CREATE OBJECT grid_behaviour.
effect_move = cl_dragdrop=>move.
CALL METHOD grid_behaviour->add
EXPORTING
flavor = 'LINE'
dragsrc = 'X'
droptarget = 'X'
effect_in_ctrl = effect_move.
CALL METHOD grid_behaviour->get_handle
IMPORTING
handle = handle_grid.
gs_layout-s_dragdrop-row_ddid = handle_grid.
is_variant-report = 'ZDAMDD'.
CALL METHOD grid->set_table_for_first_display
EXPORTING
i_structure_name = 'MCHA'
IS_VARIANT = is_variant
I_SAVE = 'A'
is_layout = gs_layout
CHANGING
* it_fieldcatalog = d_fieldcat
it_outtab = i_mcha.
ENDIF.
ENDFORM. " F_CREAR_OBJETOS
Manual Reporting ALV
Página / 27(31)
Fecha / 15/05/2015
El programa quedaria mas o menos asi:
5 CARGA DEL LOGO EN EL SISTEMA
Transacción OAOR.
Desde el customizing (Trans. SPRO), en Gestión de Personal - Gestión de
funciones – Control de dialogo – Ajustar superficie para reporting – Importar logo e imagen
de fondo para gestión de informes. (Trans. 0FPM002)
Manual Reporting ALV
Página / 28(31)
Fecha / 15/05/2015
Donde pone Seleccionar una clase de documento o una aplicación, se selecciona Imagen y
te aparece una ventana para seleccionar el archivo
Manual Reporting ALV
Página / 29(31)
Fecha / 15/05/2015
Una vez realizada la subida, se le indica la descripción y la palabra clave.
Para transportarlo al sistema productivo, se debe dar al icono del transporte (camión) para
seleccionar (ó crear) una orden de transporte. Se introducirán 2 líneas en la tarea de
transporte del tipo R3TR (Resumenes de objeto) SBDL (Objeto de información lógico para
BDS) y SBDP (Objeto de información físico)
Manual Reporting ALV
Página / 30(31)
Fecha / 15/05/2015
6 REFERENCIAS
 Ejemplos de ALV.
En la clase de desarrollo SLIS se pueden encontrar programas de ejemplos.
Programa Descripción
BALVBT01 Report de test ALV: lista de bloques
BALVBT02 Report de test ALV: Lista de bloques sin módulos de bloque
BALVBUFDEL Reinicializar mem.inter.ALV
BALVEX01
Programa de presentación ALV: salida vuelos (versión simplificada)
Con Extractos
BALVEX02 Programa de presentación ALV: salida vuelos (versión simplificada)
BALVEXTR Gestión de extractos
BALVHD01 Programa de presentación LVA: Lista modelo vuelo jerárquico secuencial
BALVHT01 Report de test LVA: Lista modelo de vuelo jerárquico secuencial
BALVSD01 Programa presentación LVA: Lista simple modelo de vuelo
BALVSD02 Programa de presentación ALV: salida vuelos (versión simplificada)
BALVSD02_GRID Llamada simple ALV GridCOntrol en modo full screen
BALVSD02_SAVE Llamada más simple ALV con opción de almacenar
BALVSD03 Lista simple
BALVSD04 Lista simple (merged)
BALVSD06 Progr.presentación LVA: Salida vuelos (versión simplif.+ almacenam.)
BALVSD11 Progr.presentación LVA: Lista simple con interacciones y variantes
BALVST01 Report de test LVA: Lista simple modelo de vuelo
BALVST02 Report de test LVA: Lista simple modelo de vuelo
BALVST02_GRID Report de test LVA: Lista simple modelo de vuelo
BALVST03_GRID Report de test LVA: Lista simple modelo de vuelo
BALV_POPUP_TO_SELECT Programa test REUSE_ALV_POPUP_TO_SELECT
BCALV_BUFFER_DELETE Borrar MI
BCALV_DND_01 Arrastrar líneas de control alv a carpetas de un tree control simple
BCALV_DND_02 Arrastrar iconos funcionales de un árbol simple a un control alv
BCALV_DND_03 Definir comportamiento arrastrar y dejar caer en celdas control LVA
BCALV_DND_04 Desplazar o copiar líneas dentro de ALV Grid Control
BCALV_FULLSCREEN_DEMO Presentación LVA: Modo full screen
BCALV_FULLSCREEN_DEMO_CLASSIC Presentación LVA: Modo full screen
BCALV_GRID_01 Eventos p.procesamiento impresión
BCALV_GRID_02 Utilización de un dialogbox container para una lista detallada
BCALV_GRID_03 Lista detallada en dynpro tipo diálogo
BCALV_GRID_04 Visualizar excepciones usando LEDs o luces
BCALV_GRID_05 Añadir pulsador propio en barra herr.
BCALV_GRID_06 Definir menú contextual propio
BCALV_GRID_07 Definiendo menú barra herr.
BCALV_GRID_08 Definiendo menú barra herr.con puls.por defecto
BCALV_GRID_09 Controlar opciones de grabar variantes
BCALV_GRID_10 Ejecutar variante antes visual.lista
BCALV_GRID_11 Test p.módulos funciones variante nueva
Manual Reporting ALV
Página / 31(31)
Fecha / 15/05/2015
Programa Descripción
BCALV_GRID_AND_POPUP ALV Grid en ventana diálogo
BCALV_GRID_DEMO Progr.demo llamada más simple control LVA
BCALV_GRID_DND_TREE ALV Grid: Arrastrar y dejar caer con árbol ALV
BCALV_GRID_DND_TREE_SIMPLE ALV-GRID: Arrastrar y dejar caer con árbol ALV (simple)
BCALV_GRID_VERIFY Programa test ALV Grid Control
BCALV_TABLE_CREATE Columnas creadas para llamada ALV
BCALV_TREE_DEMO Demostr.p.control árbol ALV
BCALV_TREE_SIMPLE_DEMO Programa BCALV_TREE_SIMPLE_DEMO
BCALV_XXL_TOGGLE_DATE Conversión visualización fecha de formato interno a externo
DTC_ALVTEST_0 Report de test ALV (generado)
DTC_BSP1 Programa DTC_BSP1
DTC_BSP2 Programa DTC_BSP1
 Ayuda SAP para versión 4.0B
http://help.sap.com/saphelp_40b/helpdata/es/51/055134de05a662e10000009b38f83b/frameset.htm
 Ayuda SAP para versión 4.6C
http://help.sap.com/saphelp_46c/helpdata/es/c5/3bd1369f2d280ee10000009b38f889/frameset.htm

Más contenido relacionado

La actualidad más candente

S4 HANA New GL Configuration
S4 HANA New GL Configuration S4 HANA New GL Configuration
S4 HANA New GL Configuration Pradeep Hota
 
sum2_abap_unix_hana.pdf
sum2_abap_unix_hana.pdfsum2_abap_unix_hana.pdf
sum2_abap_unix_hana.pdfssuser9f920a1
 
18 maintain split structure kks2
18 maintain split structure kks218 maintain split structure kks2
18 maintain split structure kks2Trinath Gujari
 
Cif monitoring-guideline-v3
Cif monitoring-guideline-v3Cif monitoring-guideline-v3
Cif monitoring-guideline-v3Alfredo Neto
 
Sap abap modularization interview questions
Sap abap modularization interview questionsSap abap modularization interview questions
Sap abap modularization interview questionsPradipta Mohanty
 
Giáo trình javascript
Giáo trình javascriptGiáo trình javascript
Giáo trình javascriptThuyet Nguyen
 
144946074 hr06-ejemplos-de-programacion-hr-doc (1)
144946074 hr06-ejemplos-de-programacion-hr-doc (1)144946074 hr06-ejemplos-de-programacion-hr-doc (1)
144946074 hr06-ejemplos-de-programacion-hr-doc (1)aalvarez2605
 
Kspi Execute Plan Price Calculation
Kspi Execute Plan Price CalculationKspi Execute Plan Price Calculation
Kspi Execute Plan Price Calculationwhocanbe1
 
Dip profiles-documentation
Dip profiles-documentationDip profiles-documentation
Dip profiles-documentationVineeth Kadam
 
ck40 n-edit-costing-run-instruction
ck40 n-edit-costing-run-instructionck40 n-edit-costing-run-instruction
ck40 n-edit-costing-run-instructionPepa Pencheva
 
Passing table to subroutine
Passing table to subroutinePassing table to subroutine
Passing table to subroutineRajee Chandru
 
ABAP Programming Overview
ABAP Programming OverviewABAP Programming Overview
ABAP Programming Overviewsapdocs. info
 
SAP PP End User Document - www.sapdocs.info
SAP PP End User Document - www.sapdocs.infoSAP PP End User Document - www.sapdocs.info
SAP PP End User Document - www.sapdocs.infosapdocs. info
 
Parametrizaciones basicas de Sap
Parametrizaciones basicas de SapParametrizaciones basicas de Sap
Parametrizaciones basicas de Sapgiancarlo
 
ABAP Message, Debugging, File Transfer and Type Group
ABAP Message, Debugging, File Transfer and Type GroupABAP Message, Debugging, File Transfer and Type Group
ABAP Message, Debugging, File Transfer and Type Groupsapdocs. info
 
CK40N-Automation of Standard Cost Estimate
CK40N-Automation of Standard Cost EstimateCK40N-Automation of Standard Cost Estimate
CK40N-Automation of Standard Cost EstimateJeff Lu
 

La actualidad más candente (20)

S4 HANA New GL Configuration
S4 HANA New GL Configuration S4 HANA New GL Configuration
S4 HANA New GL Configuration
 
KE27 - Parallel valuation
KE27 - Parallel valuationKE27 - Parallel valuation
KE27 - Parallel valuation
 
sum2_abap_unix_hana.pdf
sum2_abap_unix_hana.pdfsum2_abap_unix_hana.pdf
sum2_abap_unix_hana.pdf
 
18 maintain split structure kks2
18 maintain split structure kks218 maintain split structure kks2
18 maintain split structure kks2
 
Tablas de datos
Tablas de datosTablas de datos
Tablas de datos
 
Cif monitoring-guideline-v3
Cif monitoring-guideline-v3Cif monitoring-guideline-v3
Cif monitoring-guideline-v3
 
Sap abap modularization interview questions
Sap abap modularization interview questionsSap abap modularization interview questions
Sap abap modularization interview questions
 
Giáo trình javascript
Giáo trình javascriptGiáo trình javascript
Giáo trình javascript
 
144946074 hr06-ejemplos-de-programacion-hr-doc (1)
144946074 hr06-ejemplos-de-programacion-hr-doc (1)144946074 hr06-ejemplos-de-programacion-hr-doc (1)
144946074 hr06-ejemplos-de-programacion-hr-doc (1)
 
Kspi Execute Plan Price Calculation
Kspi Execute Plan Price CalculationKspi Execute Plan Price Calculation
Kspi Execute Plan Price Calculation
 
CURSO COBOL MAINFRAME
CURSO COBOL MAINFRAMECURSO COBOL MAINFRAME
CURSO COBOL MAINFRAME
 
Dip profiles-documentation
Dip profiles-documentationDip profiles-documentation
Dip profiles-documentation
 
ck40 n-edit-costing-run-instruction
ck40 n-edit-costing-run-instructionck40 n-edit-costing-run-instruction
ck40 n-edit-costing-run-instruction
 
Passing table to subroutine
Passing table to subroutinePassing table to subroutine
Passing table to subroutine
 
ABAP Programming Overview
ABAP Programming OverviewABAP Programming Overview
ABAP Programming Overview
 
SAP PP End User Document - www.sapdocs.info
SAP PP End User Document - www.sapdocs.infoSAP PP End User Document - www.sapdocs.info
SAP PP End User Document - www.sapdocs.info
 
Parametrizaciones basicas de Sap
Parametrizaciones basicas de SapParametrizaciones basicas de Sap
Parametrizaciones basicas de Sap
 
ABAP Message, Debugging, File Transfer and Type Group
ABAP Message, Debugging, File Transfer and Type GroupABAP Message, Debugging, File Transfer and Type Group
ABAP Message, Debugging, File Transfer and Type Group
 
CK40N-Automation of Standard Cost Estimate
CK40N-Automation of Standard Cost EstimateCK40N-Automation of Standard Cost Estimate
CK40N-Automation of Standard Cost Estimate
 
Querys sap SQVI
Querys sap SQVIQuerys sap SQVI
Querys sap SQVI
 

Similar a Crea ALV simple

Manual de alv
Manual de alvManual de alv
Manual de alvnaotoso
 
Manual de Sistema de Estadísticas e Indicadores UNAM a nievel POI
Manual de Sistema de  Estadísticas e Indicadores UNAM a nievel POIManual de Sistema de  Estadísticas e Indicadores UNAM a nievel POI
Manual de Sistema de Estadísticas e Indicadores UNAM a nievel POIujcmjhon
 
Modulo analogico 1769 if4
Modulo analogico 1769 if4Modulo analogico 1769 if4
Modulo analogico 1769 if4Juan Jose
 
Reporte u3 graficas de control por atributos
Reporte u3 graficas de control por atributosReporte u3 graficas de control por atributos
Reporte u3 graficas de control por atributosGabrielMercadoVilled1
 
INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA
INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA
INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA Luis Alberto Zapata Ojeda
 
Tutorial para las operaciones con datos
Tutorial para las operaciones con datosTutorial para las operaciones con datos
Tutorial para las operaciones con datosjuniorgo
 
Manual de servicio sistema de common rail (HP3) mazda
Manual de servicio sistema de common rail (HP3) mazdaManual de servicio sistema de common rail (HP3) mazda
Manual de servicio sistema de common rail (HP3) mazdaJordan Felipe Cabrera Nuñez
 
Control de procesos
Control de procesosControl de procesos
Control de procesosricrodriguez
 
Documento arquitectura de_software0.0
Documento arquitectura de_software0.0Documento arquitectura de_software0.0
Documento arquitectura de_software0.0Maria Duque
 
Fundamentos de programacion_piensa_en_c_osvaldo_cairo_battistutti-libre
Fundamentos de programacion_piensa_en_c_osvaldo_cairo_battistutti-libreFundamentos de programacion_piensa_en_c_osvaldo_cairo_battistutti-libre
Fundamentos de programacion_piensa_en_c_osvaldo_cairo_battistutti-libreFausto Torres
 
Fundamentos de programacion piensa en c
Fundamentos de programacion piensa en c Fundamentos de programacion piensa en c
Fundamentos de programacion piensa en c Nayla Mar
 
13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)
13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)
13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)Mary Pastrano
 
Informes en Acces Chio Lopez.
Informes en Acces Chio Lopez.Informes en Acces Chio Lopez.
Informes en Acces Chio Lopez.Chio López
 

Similar a Crea ALV simple (20)

Manual de alv
Manual de alvManual de alv
Manual de alv
 
Manual de Sistema de Estadísticas e Indicadores UNAM a nievel POI
Manual de Sistema de  Estadísticas e Indicadores UNAM a nievel POIManual de Sistema de  Estadísticas e Indicadores UNAM a nievel POI
Manual de Sistema de Estadísticas e Indicadores UNAM a nievel POI
 
Walter rico
Walter ricoWalter rico
Walter rico
 
Modulo analogico 1769 if4
Modulo analogico 1769 if4Modulo analogico 1769 if4
Modulo analogico 1769 if4
 
Manualde minitab
Manualde minitabManualde minitab
Manualde minitab
 
MANUAL DE PRODUCCION AS2 ERP- CICLO CORTO
MANUAL DE PRODUCCION  AS2 ERP- CICLO CORTOMANUAL DE PRODUCCION  AS2 ERP- CICLO CORTO
MANUAL DE PRODUCCION AS2 ERP- CICLO CORTO
 
Reporte u3 graficas de control por atributos
Reporte u3 graficas de control por atributosReporte u3 graficas de control por atributos
Reporte u3 graficas de control por atributos
 
INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA
INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA
INFORME DE CIM CENTRO INTEGRADO DE MANUFACTURA
 
Tutorial para las operaciones con datos
Tutorial para las operaciones con datosTutorial para las operaciones con datos
Tutorial para las operaciones con datos
 
Iy cnet guia_rapida_controllogix_5000
Iy cnet guia_rapida_controllogix_5000Iy cnet guia_rapida_controllogix_5000
Iy cnet guia_rapida_controllogix_5000
 
Manual de servicio sistema de common rail (HP3) mazda
Manual de servicio sistema de common rail (HP3) mazdaManual de servicio sistema de common rail (HP3) mazda
Manual de servicio sistema de common rail (HP3) mazda
 
Control de procesos
Control de procesosControl de procesos
Control de procesos
 
Documento arquitectura de_software0.0
Documento arquitectura de_software0.0Documento arquitectura de_software0.0
Documento arquitectura de_software0.0
 
Guia ssap
Guia ssapGuia ssap
Guia ssap
 
Manual r 1
Manual r 1Manual r 1
Manual r 1
 
Fundamentos de programacion_piensa_en_c_osvaldo_cairo_battistutti-libre
Fundamentos de programacion_piensa_en_c_osvaldo_cairo_battistutti-libreFundamentos de programacion_piensa_en_c_osvaldo_cairo_battistutti-libre
Fundamentos de programacion_piensa_en_c_osvaldo_cairo_battistutti-libre
 
Fundamentos de programacion piensa en c
Fundamentos de programacion piensa en c Fundamentos de programacion piensa en c
Fundamentos de programacion piensa en c
 
13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)
13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)
13052014 fundamentos de-programacion-piensa-en-c-1edi-cairo (1)
 
Fundamentos programacion c
Fundamentos programacion cFundamentos programacion c
Fundamentos programacion c
 
Informes en Acces Chio Lopez.
Informes en Acces Chio Lopez.Informes en Acces Chio Lopez.
Informes en Acces Chio Lopez.
 

Último

BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 

Último (7)

BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 

Crea ALV simple

  • 2. Manual Reporting ALV Página / 2(31) Fecha / 15/05/2015 1 INTRODUCCIÓN...........................................................................................................................................3 2 PASOS BÁSICOS PARA CREAR UNA ALV.............................................................................................4 3 FAMILIARIZARSE CON LAS ALV............................................................................................................6 3.1 REUSE_ALV_LIST_DISPLAY  REUSE_ALV_GRID_DISPLAY..............................................10 3.2 CAMPOS DEL CATALOGO...........................................................................................................................12 4 CASOS ESPECIALES EN LISTADOS ALV.............................................................................................13 4.1 SIN ESPECIFICACIÓN DE LOS CAMPOS DEL CATÁLOGO..............................................................................13 4.2 ALV CON EVENTOS..................................................................................................................................15 4.3 ALV CON LOGOTIPO.................................................................................................................................16 4.4 ALV CON BOTONES NO STANDARD..........................................................................................................17 4.5 ALV JERARQUICO.....................................................................................................................................18 4.6 ALV DRAG AND DROP.............................................................................................................................19 5 CARGA DEL LOGO EN EL SISTEMA....................................................................................................27 6 REFERENCIAS.............................................................................................................................................30
  • 3. Manual Reporting ALV Página / 3(31) Fecha / 15/05/2015 1 Introducción. El ALV Grid Control (ALV = SAP List Viewer) es una herramienta flexible para mostrar listados. Esta herramienta, además de visualizar los datos, permite múltiples permite operaciones con él (suma, agrupación ...) y además se puede adaptar según requerimientos (visulización de determinadas columnas, ...). La herramienta del ALV es una nueva funcionalidad que ya se puede utilizar desde la versión 4.0. Es a partir de esta versión cuando empieza a cobrar importancia y se le van añadiendo funcionalidades y nuevas posibilidades. En la versión 4.6 además de las llamadas a las funciones, también se incluyen posibilidad de desarrollo a través de objetos. (llamadas a métodos). En general, estas son las posibilidades que ofrece el ALV: Navegación Posibilidad de navigación a través de la lista: visualización de la primera, ultima columna, desplazamiento horizontal, fijación de columnas. Detalle Posibilidad de ver el detalle de una línea determinada en otra pantalla Ordenación Se puede ordenar el listado tanto descendente como ascendentemente por una o varias columnas Selección Se puede marcar/desmarcar columnas Algunas filas pueden indicar el status (semáforos, iconos). Si hay filas subordinadas, pueden heredar este indicador. Filtros Se pueden indicar filtros que muestren aquellas filas que cumplan uno ó más criterios. Totalización de valores Totalizar valores Crear subtotales (a varios niveles) Mostar sólo Totales /Subtotales Visualización de estado Información del estado de la lista: columnas a partir de las cuales se ha realizado la ordenación, subtotales, filtros de selección, registros seleccionados, registros ocultos por los filtros, totales mostrados. Columnas Optimización del ancho de la columna Fijación de columnas Variantes de visualización Se permite grabar las opciones de visualización seleccionadas para un posterior uso.
  • 4. Manual Reporting ALV Página / 4(31) Fecha / 15/05/2015 Lista Básica Posibilidad de volver a la lista inicial (si se han seleccionado variantes). Búsqueda Posibilidad de buscar en los datos mostrados Imprimir Posibilidad de imprimir la lista 2 Pasos básicos para crear una ALV 1. Llenar un catálogo con las columnas del listado: (INITIALIZE_FIELDCAT) 2. Crear una tabla de eventos: Eventos como TOP_OF_PAGE, AT USER COMMAND. Se indica el evento y el perform que se ejecutará (llamadas dinámicas) (BUILD_EVENTTAB) 3. Agregar textos adicionales al reporte - (Opcional): (BUILD_COMMENT) 4. Inicializar las variantes de visualización del listado: (INITIALIZE_VARIANT) 5. Extraer la información de la base de datos: (GET_*) 6. Especificar las características del layout. Formato de salida de pantalla (BUILD_LAYOUT) 7. Especificar las características de impresión: (BUILD_PRINT) 8. Mostrar el resultado: Función REUSE_ALV_LIST_DISPLAY Es conveniente, al igual que existe un include para Batch Inputs, que se tenga un include para los reports de ALV ya que así se agiliza la codificación. (Ver fichero ZINCLUDE_ALV.txt). Las ventajas de la utilización del include son la reutilización de código; uniformidad en la codificación ....
  • 5. Manual Reporting ALV Página / 5(31) Fecha / 15/05/2015 ************************************************************************ * LOGICA DEL PROGRAMA ************************************************************************ *---------------------------------------------------------------------* * FORM MAIN_STATEMENTS * * Este código deberá ser insertado en el programa principal *---------------------------------------------------------------------* *form main_statements. * Declarar el parámetro P_VARI. Si no se utiliza, ocultarlo con * NO-DISPLAY, pero debe existir * parameters: p_vari like disvariant-variant. " ALV Variant ** Se debe añadir la siguiente línea después de la declaración de datos ** y parámetros ** INCLUDE ZIMPU002. ** Incluir además después de la declaración de las variables/parámetros, ** las siguientes líneas en el evento INITIALIZATION. * initialization. * d_repname = sy-repid. * Si se quiere cambiar la barra de herramientas * perform f_pf_status_set using I_extab. * Para cada columna de datos se deberá llamar a este Perform indicando * las cualidades del campo. * perform f_initialize_fieldcat using i_fieldtab[] * r_fieldcat. * Se construye la tabla de eventos con los performs que se ejecutarán en * cada evento * perform f_build_eventtab using i_events[]. * Se indican los textos del listado * perform f_build_comment using i_heading[]. * Se inicializa la variante de visualización * perform f_initialize_variant using p_vari. * Si se usa el parámetro P_VARI (ALV Variant), se debe incluir las * siguientes líneas *at selection-screen on value-request for p_vari. * perform f_f4_for_variant. *at selection-screen. * Se comprueba variante indicada en la pantalla de selección * perform f_pai_of_selection_screen using p_vari.
  • 6. Manual Reporting ALV Página / 6(31) Fecha / 15/05/2015 * En el evento "END-OF-SELECTION", añadir las siguientes líneas *end-of-selection. * perform f_build_layout using r_layout. * perform f_build_print using r_prints. * perform f_write_using_alv. *** You also have to create the following forms: (you can find samples *** in this program) * INITIALIZE_FIELDCAT * USER_COMMAND (only if you are creating a STATUS) * WRITE_USING_ALV *endform. 3 Familiarizarse con las ALV En este ejemplo simple se muestra un listado de posiciones de pedidos de compras. REPORT zalv_simple. *********************************************** 1. Definición estructuras y tablas necesaria. *********************************************** • 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, • Especificaciones de la disposición de la lista: descripción de la estructura de salida gs_layout TYPE slis_layout_alv, • Nombre del programa g_repid LIKE sy-repid.
  • 7. Manual Reporting ALV Página / 7(31) Fecha / 15/05/2015 *************************************************** 2. Definición de la tabla con los datos de salida *************************************************** TYPES: BEGIN OF st_output. INCLUDE STRUCTURE ekpo. TYPES: END OF st_output. DATA: gt_output TYPE STANDARD TABLE OF st_output WITH HEADER LINE. INITIALIZATION. g_repid = sy-repid. ***************************************************** 3. Toma de datos ***************************************************** START-OF-SELECTION. PERFORM toma_datos. FORM toma_datos. Los datos deben guardarse en la tabla interna de salida SELECT * FROM ekpo UP TO 100 ROWS INTO TABLE gt_output. ENDFORM. " TOMA_DATOS
  • 8. Manual Reporting ALV Página / 8(31) Fecha / 15/05/2015 ***************************************************** 4. Definición estructura y formato de salida ***************************************************** PERFORM init_fieldcat. PERFORM init_layout. FORM init_fieldcat. * Mediante esta tabla vamos a definir los campos que queremos mostrar * en el listado de salida. gt_fieldcat-fieldname = 'EBELN'. gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'EBELP'. gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'MATNR'. gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'WERKS'. gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'MENGE'. gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat. gt_fieldcat-fieldname = 'MEINS'. gt_fieldcat-ref_tabname = 'EKPO'. APPEND gt_fieldcat. CLEAR gt_fieldcat. ENDFORM. FORM init_layout. * Mediante esta estructura se puede definir el formato de salida gs_layout-zebra = 'X'. gs_layout-f2code = '&amp;ETA'. gs_layout-detail_popup = 'X'. ENDFORM.
  • 9. Manual Reporting ALV Página / 9(31) Fecha / 15/05/2015 ***************************************************** 5. Mostrar listado ***************************************************** PERFORM listado. FORM listado. 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 = is_layout = gs_layout it_fieldcat = gt_fieldcat[] * 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 * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER = TABLES t_outtab = gt_output 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. " LISTADO
  • 10. Manual Reporting ALV Página / 10(31) Fecha / 15/05/2015 3.1 REUSE_ALV_LIST_DISPLAY  REUSE_ALV_GRID_DISPLAY Con la función REUSE_ALV_LIST_DISPLAY se muestran los datos como un listado. (Programa Z_CURSOALV001)
  • 11. Manual Reporting ALV Página / 11(31) Fecha / 15/05/2015 Con la función REUSE_ALV_GRID_DISPLAY se muestran los datos en una tabla (con su campos), es decir, muestra una rejilla. (Programa Z_CURSOALV002)
  • 12. Manual Reporting ALV Página / 12(31) Fecha / 15/05/2015 3.2 Campos del catalogo. Los campos del catálogo indican propiedades de cada dato a mostrar, estas propiedades varían de una versión a otra (la versión superior siempre tendrá las propiedades de versiones anteriores).  Nota: En esta caso se trata de la versión 4.6C (la más actual) por lo que alguna de estas propiedades puede que no estén disponibles en versiones anteriores. Nombre Campo Referencia Descripción ROW_POS SY-CUROW output in row COL_POS SY-CUCOL position of the column. Indica el número de columna donde aparecerá él campo en el listado. FIELDNAME SLIS_FIELDNAME Indica el nombre del campo de la tabla interna que hace referencia. TABNAME SLIS_TABNAME CURRENCY(5) C Indica el tipo de moneda para el campo. CFIELDNAME SLIS_FIELDNAME field with currency unit CTABNAME SLIS_TABNAME and table ifieldname slis_fieldname initial column QUANTITY(3) C QFIELDNAME SLIS_FIELDNAME field with quantity unit QTABNAME SLIS_TABNAME and table ROUND I round in write statement EXPONENT(3) C exponent for floats KEY(1) C Indica si este campo es clave. Aparecerá en azul y será fija. ICON(1) C Indica que se puede meter un icono en este campo. SYMBOL(1) C as symbol CHECKBOX(1) C Indica que el campo será de tipo checkbox. JUST(1) C (R)ight (L)eft (C)ent. LZERO(1) C leading zero NO_SIGN(1) C Indica que no aparecerá signo. NO_ZERO(1) C Indica que no aparecerán ceros no_convext(1) C EDIT_MASK SLIS_EDIT_MASK Indica que se formateará el campo con la mascara introducida. EMPHASIZE(4) C emphasize FIX_COLUMN(1) C Indica que se quedara la columna fija. DO_SUM(1) C Indica que se pude realizar sumas. NO_OUT(1) C (O)blig.(X)no out TECH(1) C technical field OUTPUTLEN DD03P-OUTPUTLEN Indica la longitud de salida del campo OFFSET DD03P-INTLEN offset SELTEXT_L DD03P-SCRTEXT_L Texto largo campo. SELTEXT_M DD03P-SCRTEXT_M Texto medio del campo.
  • 13. Manual Reporting ALV Página / 13(31) Fecha / 15/05/2015 Nombre Campo Referencia Descripción SELTEXT_S DD03P-SCRTEXT_S Texto corto del campo. DDICTXT(1) C (S)hort (M)iddle (L)ong ROLLNAME DD03P-ROLLNAME DATATYPE DD03P-DATATYPE Indica el tipo de dato del campo. INTTYPE DD03P-INTTYPE INTLEN DD03P-INTLEN Indica la longitud de entrada del campo. LOWERCASE DD03P-LOWERCASE Indica que el campo aparecerá en minúsculas. REF_FIELDNAME DD03P-FIELDNAME REF_TABNAME DD03P-TABNAME ROUNDFIELDNAME SLIS_FIELDNAME ROUNDTABNAME SLIS_TABNAME DECIMALSFIELDNAME SLIS_FIELDNAME DECIMALSTABNAME SLIS_TABNAME DECIMALS_OUT(6) C decimals in write statement TEXT_FIELDNAME SLIS_FIELDNAME REPTEXT_DDIC DD03P-REPTEXT Indica el texto que aparecerá en la columna. DDIC_OUTPUTLEN DD03P-OUTPUTLEN KEY_SEL(1) C field not obligatory NO_SUM(1) C Indica que no permite realizar sumas. SP_GROUP(4) C group specification REPREP(1) C selection for rep/rep INPUT(1) C Indica que el campo es de salida. edit(1) C internal use only HOTSPOT(1) C Aparecerá el campo tipo hipervínculo(Icono mano). 4 Casos Especiales en Listados ALV. 4.1 Sin especificación de los campos del catálogo. Primero cargaremos en la tabla interna los datos que vamos a visualizar. Después cargaremos el catalogo con los campos necesarios para nosotros. Aquí tenemos dos maneras diferentes de realizarlo. Esto quiere decir, visualizar todos los campos de una tabla. Para ello existe una función de SAP que nos carga el catalogo entero indicándole la tabla de B.D. que nosotros deseamos. Esta función es REUSE_ALV_FIELDCATALOG_MERGE. Una vez cargado el catalogo, llamaríamos a la función del ALV, que es la siguiente: REUSE_ALV_GRID_DISPLAY.
  • 14. Manual Reporting ALV Página / 14(31) Fecha / 15/05/2015 Ejemplo practico. TYPE-POOLS slis. DATA: gt_fieldcat TYPE slis_t_fieldcat_alv, ls_fieldcat TYPE slis_fieldcat_alv, gs_layout TYPE slis_layout_alv, g_repid LIKE sy-repid. Data: Begin of i_vbap occurs 0. Include structure vbap. Data: End of i_vbap. Clear i_vbap. Refresh i_vbap. * Cargamos la tabla interna Select * from vbap into table i_vbap. * Cargamos el catalogo Call function 'REUSE_ALV_FIELDCATALOG_MERGE' exporting i_structure_name = 'VBAP' i_bypassing_buffer = 'X' changing ct_fieldcat = gt_fieldcat exceptions inconsistent_interface = 1 program_error = 2 others = 3. * Borramos el mandante del catalogo Delete gt_fieldcat where fieldname = 'MANDT'. * Llamamos a la función que muestra el listado en formato ALV g_repid = sy-repid. call function 'REUSE_ALV_GRID_DISPLAY' exporting i_callback_program = g_repid is_layout = gs_layout it_fieldcat = gt_fieldcat i_save = 'A' tables t_outtab = i_vbap exceptions program_error = 1 others = 2.
  • 15. Manual Reporting ALV Página / 15(31) Fecha / 15/05/2015 4.2 ALV con Eventos. Se puede indicar cuál es el código que se ejecutará en determinados eventos del listado. Este código irá en performs que se indicarán en una tabla de eventos. La llamada a estos performs se realiza en tiempo de ejecución. Para definir la tabla de eventos es útil la función REUSE_ALV_EVENTS_GET, ya que devuelve una tabla interna con los eventos que se pueden ejecutar según el tipo de listado. El tipo de listado puede ser 0 (Lista sencilla), 1 (Jerarquía secuencial), 2 (Lista de bloques sencilla) y 3 (Lista de bloques en jerarquía secuencial). Por ejemplo para el tipo 0 (Lista sencilla), los eventos que devuelve son: CALLER_EXIT USER_COMMAND TOP_OF_PAGE TOP_OF_COVERPAGE END_OF_COVERPAGE FOREIGN_TOP_OF_PAGE FOREIGN_END_OF_PAGE PF_STATUS_SET
  • 16. Manual Reporting ALV Página / 16(31) Fecha / 15/05/2015 LIST_MODIFY TOP_OF_LIST END_OF_PAGE END_OF_LIST AFTER_LINE_OUTPUT BEFORE_LINE_OUTPUT REPREP_SEL_MODIFY SUBTOTAL_TEXT Para indicar el código que se debe ejecutar simplemente hay que introducir en esta tabla interna en la línea que le corresponda el nombre del perform (en el campo FORM). Los eventos están definidos como constantes en el INCLUDE SLIS. 4.3 ALV con Logotipo. Existe la posibilidad de incluir una cabecera al ALV, introduciendo en ella un titulo, logo... . Para ello a la hora de declarar la función del ALV, en el parámetro i_callback_html_top_of_page, se introduce el nombre de la rutina que se ejecutará para generar la cabecera, titulo, logo... . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = g_repid i_callback_html_top_of_page = 'F_HTML_TOP_OF_PAGE' is_layout = gs_layout it_fieldcat = gt_fieldcat i_save = 'A' TABLES t_outtab = i_vbap EXCEPTIONS program_error = 1 OTHERS = 2. FORM f_html_top_of_page USING r_top TYPE REF TO cl_dd_document. DATA: a_logo TYPE REF TO cl_dd_area. DATA: text1 TYPE sdydo_text_element. DATA: text2 TYPE sdydo_text_element. CLEAR : text1, text2. * Se reserva un 20 por ciento para el logo en la cabecera CALL METHOD r_top->vertical_split EXPORTING split_area = r_top split_width = '80%' IMPORTING right_area = a_logo.
  • 17. Manual Reporting ALV Página / 17(31) Fecha / 15/05/2015 * Una linea en blanco CALL METHOD r_top->new_line. * Titulo que aparecera en la cabecera CALL METHOD r_top->add_text EXPORTING text = text1 sap_style = cl_dd_area=>heading. * Una linea en blanco CALL METHOD r_top->new_line. * Titulo que aparecera en la cabecera CALL METHOD r_top->add_text EXPORTING text = text2 sap_style = cl_dd_area=>heading. * Insertamos el logo (Ver punto 7) CALL METHOD a_logo->add_picture EXPORTING picture_id = 'LOGO_CROMION'. ENDFORM. 4.4 ALV con botones no standard. Entre las muchas posibilidades que tiene el ALV, existe una muy interesante y muy utilizada, que es la introducción de botones nuevos al status del ALV. Para ello se suele copiar el status standard, que se copia del programa demo BCALV_FULLSCREEN_DEMO, y añadirle los botones deseados. Una vez realizado esto, se crea la rutina para el status y otra para el user_command, para controlar las acciones a realizar según el botón pulsado(los nuevos incluidos por nosotros). De esta manera habría que generar el código: FORM status_9000 USING p_tabla TYPE slis_t_extab.. SET PF-STATUS '9000_001'. ENDFORM. " STATUS_9000 FORM user_command_9000 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield. CASE r_ucomm. WHEN 'EXIT'.
  • 18. Manual Reporting ALV Página / 18(31) Fecha / 15/05/2015 WHEN 'CANC'. WHEN 'BACK'. WHEN 'OPT1'. ENDCASE. ENDFORM. " USER_COMMAND_9000 Y en la llamada a la función introduciríamos dos parámetros más a la función. call function 'REUSE_ALV_GRID_DISPLAY' exporting i_callback_program = g_repid i_callback_pf_status_set = lv_callback_status_set i_callback_user_command = lv_callback_user_command i_callback_html_top_of_page = 'F_HTML_TOP_OF_PAGE' is_layout = ls_layout it_fieldcat = gt_fieldcat i_save = 'A' tables t_outtab = i_vbap exceptions program_error = 1 others = 2. Donde : lv_callback_status_set = 'STATUS_9000' y lv_callback_user_command = 'USER_COMMAND_9000'. 4.5 ALV jerarquico Se utiliza la función REUSE_ALV_HIERSEQ_LIST_DISPLAY. A diferencia de los listados simples, se deben definir 2 tablas de datos: los datos de cabecera y los datos de posiciones, además se debe indicar cuál es la relación entre los datos de cabecera y los datos de posiciones. Ver programa Z_CURSOALV005
  • 19. Manual Reporting ALV Página / 19(31) Fecha / 15/05/2015 4.6 ALV Drag and Drop Para hacer un ALV Drag and Drop, tenemos q realizar una serie de pasos: 1.- Tenemos que crear una dynpro en nuestro programa, e insertar un custom control: Ese custom control sera el q contenga nuestro ALV Drag & Drop. 2.- A Continuacion, en nuestro programa creamos una clase aplicación que tendra los eventos de drag y drop, y una clase drag and drop, donde guardaremos la linea q vamos a mover.: *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Class APPLICATION *&---------------------------------------------------------------------* * Text *----------------------------------------------------------------------* CLASS application DEFINITION. PUBLIC SECTION. * methods for D&D handling METHODS: handle_grid_drag FOR EVENT ondrag OF cl_gui_alv_grid
  • 20. Manual Reporting ALV Página / 20(31) Fecha / 15/05/2015 IMPORTING es_row_no e_column e_dragdropobj, handle_grid_drop FOR EVENT ondrop OF cl_gui_alv_grid IMPORTING e_row e_column e_dragdropobj, handle_grid_drop_complete FOR EVENT ondropcomplete OF cl_gui_alv_grid IMPORTING e_row e_column e_dragdropobj. ENDCLASS. "APPLICATION *---------------------------------------------------------------------* * CLASS drag_drop_object DEFINITION *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* CLASS drag_drop_object DEFINITION. PUBLIC SECTION. DATA: wa_test LIKE LINE OF gt_outtab, index TYPE i. ENDCLASS. "DRAG_DROP_OBJECT *---------------------------------------------------------------------* * CLASS application IMPLEMENTATION *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* CLASS application IMPLEMENTATION. * implement what should happen when sth. will be dragged METHOD handle_grid_drag. DATA: data_object TYPE REF TO drag_drop_object, help_row LIKE LINE OF i_mcha. READ TABLE i_mcha INTO help_row INDEX es_row_no-row_id. CREATE OBJECT data_object. MOVE es_row_no-row_id TO data_object->index. READ TABLE i_mcha INTO data_object->wa_test INDEX es_row_no-row_id. e_dragdropobj->object = data_object. ENDMETHOD. "handle_grid_drag * implement what should happen when sth. will be dropped METHOD handle_grid_drop. DATA: data_object TYPE REF TO drag_drop_object, drop_index TYPE i, help_row_2 LIKE LINE OF gt_outtab. CATCH SYSTEM-EXCEPTIONS move_cast_error = 1. data_object ?= e_dragdropobj->object. DELETE i_mcha INDEX data_object->index. INSERT data_object->wa_test INTO i_mcha INDEX e_row-index. IF e_dragdropobj->effect = cl_dragdrop=>move. ELSEIF e_dragdropobj->effect = cl_dragdrop=>copy. ENDIF.
  • 21. Manual Reporting ALV Página / 21(31) Fecha / 15/05/2015 ENDCATCH. ENDMETHOD. "handle_grid_drop METHOD handle_grid_drop_complete. CALL METHOD grid->refresh_table_display. IF sy-subrc <> 0. CALL METHOD e_dragdropobj->abort. ENDIF. ENDMETHOD. "handle_grid_drop_complete ENDCLASS. "application 3.- Para obtener el catalogo utilizamos el siguiente codigo: DATA : d_cat TYPE slis_t_fieldcat_alv. DATA : r_cat TYPE LINE OF slis_t_fieldcat_alv. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING * I_PROGRAM_NAME = * I_INTERNAL_TABNAME = i_structure_name = 'MCHA' * I_CLIENT_NEVER_DISPLAY = 'X' * I_INCLNAME = * I_BYPASSING_BUFFER = * I_BUFFER_ACTIVE = CHANGING ct_fieldcat = d_cat EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. LOOP AT d_cat INTO r_cat. MOVE-CORRESPONDING r_cat TO ls_fieldcat. ls_Fieldcat-hotspot = 'X'. Ls_Fieldcat-reptext = r_cat-reptext_ddic APPEND ls_fieldcat TO d_fieldcat. ENDLOOP. CALL SCREEN '9000'. ENDFORM. 4.- Finalmente creamos los objetos applicacion, drag and drop y demas: *&---------------------------------------------------------------------* *& Form F_CREAR_OBJETOS *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM f_crear_objetos. DATA: effect TYPE i, effect_move TYPE i, effect_copy TYPE i,
  • 22. Manual Reporting ALV Página / 22(31) Fecha / 15/05/2015 handle_grid TYPE i. IF d_contenedor IS INITIAL. CREATE OBJECT d_contenedor EXPORTING container_name = 'CONTENEDOR1'. CREATE OBJECT grid EXPORTING i_parent = d_contenedor. CREATE OBJECT application. SET HANDLER application->handle_grid_drag FOR grid. SET HANDLER application->handle_grid_drop FOR grid. SET HANDLER application->handle_grid_drop_complete FOR grid. CREATE OBJECT grid_behaviour. effect_move = cl_dragdrop=>move. CALL METHOD grid_behaviour->add EXPORTING flavor = 'LINE' dragsrc = 'X' droptarget = 'X' effect_in_ctrl = effect_move. CALL METHOD grid_behaviour->get_handle IMPORTING handle = handle_grid. gs_layout-s_dragdrop-row_ddid = handle_grid. is_variant-report = 'ZDAMDD'. CALL METHOD grid->set_table_for_first_display EXPORTING i_structure_name = 'MCHA' IS_VARIANT = is_variant I_SAVE = 'A' is_layout = gs_layout CHANGING it_fieldcatalog = d_fieldcat it_outtab = i_mcha. ENDIF. ENDFORM. " F_CREAR_OBJETOS 5.- Al final ponego el codigo del programa completo, con las declaraciones, variables y demas. El programa se llama ZDAMDD y esta en Sidenor Desarrollo, es muy sencillito y se entiende bien: REPORT zdamdd . TYPE-POOLS : slis. DATA : okcode LIKE sy-ucomm. DATA : i_mcha LIKE mcha OCCURS 0 . CLASS application DEFINITION DEFERRED. * data declaration DATA: BEGIN OF gt_outtab_3 OCCURS 0. INCLUDE STRUCTURE sflight. DATA: celltab TYPE lvc_t_drdr. DATA: END OF gt_outtab_3.
  • 23. Manual Reporting ALV Página / 23(31) Fecha / 15/05/2015 DATA: application TYPE REF TO application, d_contenedor TYPE REF TO cl_gui_custom_container, grid TYPE REF TO cl_gui_alv_grid, grid_behaviour TYPE REF TO cl_dragdrop, ok_code LIKE sy-ucomm, save_ok_code LIKE ok_code, m LIKE sy-tabix, gt_outtab TYPE sflight OCCURS 0, gt_outtab_2 TYPE sflight OCCURS 0, gs_outtab LIKE LINE OF gt_outtab, fieldcat TYPE lvc_t_fcat, " WITH HEADER LINE, ls_fieldcat LIKE LINE OF fieldcat, gs_layout TYPE lvc_s_layo, it_sflight LIKE STANDARD TABLE OF sflight WITH HEADER LINE, ls_celltab TYPE lvc_s_drdr, index_gt_outtab_3 TYPE i, index TYPE i, gs_outtab_3 LIKE LINE OF gt_outtab_3, is_variant type DISVARIANT. DATA : d_fieldcat TYPE lvc_t_fcat. *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Class APPLICATION *&---------------------------------------------------------------------* * Text *----------------------------------------------------------------------* CLASS application DEFINITION. PUBLIC SECTION. * methods for D&D handling METHODS: handle_grid_drag FOR EVENT ondrag OF cl_gui_alv_grid IMPORTING es_row_no e_column e_dragdropobj, handle_grid_drop FOR EVENT ondrop OF cl_gui_alv_grid IMPORTING e_row e_column e_dragdropobj, handle_grid_drop_complete FOR EVENT ondropcomplete OF cl_gui_alv_grid IMPORTING e_row e_column e_dragdropobj. ENDCLASS. "APPLICATION *---------------------------------------------------------------------* * CLASS drag_drop_object DEFINITION *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* CLASS drag_drop_object DEFINITION. PUBLIC SECTION. DATA: wa_test LIKE LINE OF gt_outtab, index TYPE i. ENDCLASS. "DRAG_DROP_OBJECT *---------------------------------------------------------------------* * CLASS application IMPLEMENTATION *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* CLASS application IMPLEMENTATION. * implement what should happen when sth. will be dragged
  • 24. Manual Reporting ALV Página / 24(31) Fecha / 15/05/2015 METHOD handle_grid_drag. DATA: data_object TYPE REF TO drag_drop_object, help_row LIKE LINE OF i_mcha. READ TABLE i_mcha INTO help_row INDEX es_row_no-row_id. CREATE OBJECT data_object. MOVE es_row_no-row_id TO data_object->index. READ TABLE i_mcha INTO data_object->wa_test INDEX es_row_no-row_id. e_dragdropobj->object = data_object. ENDMETHOD. "handle_grid_drag * implement what should happen when sth. will be dropped METHOD handle_grid_drop. DATA: data_object TYPE REF TO drag_drop_object, drop_index TYPE i, help_row_2 LIKE LINE OF gt_outtab. CATCH SYSTEM-EXCEPTIONS move_cast_error = 1. data_object ?= e_dragdropobj->object. DELETE i_mcha INDEX data_object->index. INSERT data_object->wa_test INTO i_mcha INDEX e_row-index. IF e_dragdropobj->effect = cl_dragdrop=>move. ELSEIF e_dragdropobj->effect = cl_dragdrop=>copy. ENDIF. ENDCATCH. ENDMETHOD. "handle_grid_drop METHOD handle_grid_drop_complete. CALL METHOD grid->refresh_table_display. IF sy-subrc <> 0. CALL METHOD e_dragdropobj->abort. ENDIF. ENDMETHOD. "handle_grid_drop_complete ENDCLASS. "application START-OF-SELECTION. SELECT * FROM mcha INTO TABLE i_mcha UP TO 100 ROWS. DATA : d_cat TYPE slis_t_fieldcat_alv. DATA : r_cat TYPE LINE OF slis_t_fieldcat_alv. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING * I_PROGRAM_NAME = * I_INTERNAL_TABNAME = i_structure_name = 'MCHA' * I_CLIENT_NEVER_DISPLAY = 'X'
  • 25. Manual Reporting ALV Página / 25(31) Fecha / 15/05/2015 * I_INCLNAME = * I_BYPASSING_BUFFER = * I_BUFFER_ACTIVE = CHANGING ct_fieldcat = d_cat EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. LOOP AT d_cat INTO r_cat. MOVE-CORRESPONDING r_cat TO ls_fieldcat. ls_Fieldcat-hotspot = 'X'. APPEND ls_fieldcat TO d_fieldcat. ENDLOOP. IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL SCREEN '9000'. IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. *&---------------------------------------------------------------------* *& Module STATUS_9000 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE status_9000 OUTPUT. SET PF-STATUS '9000_001'. * SET TITLEBAR 'xxx'. PERFORM f_crear_objetos. ENDMODULE. " STATUS_9000 OUTPUT *&---------------------------------------------------------------------* *& Module USER_COMMAND_9000 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE user_command_9000 INPUT. CASE okcode. WHEN 'EXIT' OR 'CANC' OR 'BACK'. IF NOT d_contenedor IS INITIAL. CALL METHOD d_contenedor->free EXCEPTIONS cntl_system_error = 1 cntl_error = 2. CALL METHOD cl_gui_cfw=>flush EXCEPTIONS cntl_system_error = 1 cntl_error = 2. ENDIF. LEAVE to screen 0. ENDCASE. ENDMODULE. " USER_COMMAND_9000 INPUT *&---------------------------------------------------------------------* *& Form F_CREAR_OBJETOS
  • 26. Manual Reporting ALV Página / 26(31) Fecha / 15/05/2015 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM f_crear_objetos. DATA: effect TYPE i, effect_move TYPE i, effect_copy TYPE i, handle_grid TYPE i. IF d_contenedor IS INITIAL. CREATE OBJECT d_contenedor EXPORTING container_name = 'CONTENEDOR1'. CREATE OBJECT grid EXPORTING i_parent = d_contenedor. CREATE OBJECT application. SET HANDLER application->handle_grid_drag FOR grid. SET HANDLER application->handle_grid_drop FOR grid. SET HANDLER application->handle_grid_drop_complete FOR grid. CREATE OBJECT grid_behaviour. effect_move = cl_dragdrop=>move. CALL METHOD grid_behaviour->add EXPORTING flavor = 'LINE' dragsrc = 'X' droptarget = 'X' effect_in_ctrl = effect_move. CALL METHOD grid_behaviour->get_handle IMPORTING handle = handle_grid. gs_layout-s_dragdrop-row_ddid = handle_grid. is_variant-report = 'ZDAMDD'. CALL METHOD grid->set_table_for_first_display EXPORTING i_structure_name = 'MCHA' IS_VARIANT = is_variant I_SAVE = 'A' is_layout = gs_layout CHANGING * it_fieldcatalog = d_fieldcat it_outtab = i_mcha. ENDIF. ENDFORM. " F_CREAR_OBJETOS
  • 27. Manual Reporting ALV Página / 27(31) Fecha / 15/05/2015 El programa quedaria mas o menos asi: 5 CARGA DEL LOGO EN EL SISTEMA Transacción OAOR. Desde el customizing (Trans. SPRO), en Gestión de Personal - Gestión de funciones – Control de dialogo – Ajustar superficie para reporting – Importar logo e imagen de fondo para gestión de informes. (Trans. 0FPM002)
  • 28. Manual Reporting ALV Página / 28(31) Fecha / 15/05/2015 Donde pone Seleccionar una clase de documento o una aplicación, se selecciona Imagen y te aparece una ventana para seleccionar el archivo
  • 29. Manual Reporting ALV Página / 29(31) Fecha / 15/05/2015 Una vez realizada la subida, se le indica la descripción y la palabra clave. Para transportarlo al sistema productivo, se debe dar al icono del transporte (camión) para seleccionar (ó crear) una orden de transporte. Se introducirán 2 líneas en la tarea de transporte del tipo R3TR (Resumenes de objeto) SBDL (Objeto de información lógico para BDS) y SBDP (Objeto de información físico)
  • 30. Manual Reporting ALV Página / 30(31) Fecha / 15/05/2015 6 REFERENCIAS  Ejemplos de ALV. En la clase de desarrollo SLIS se pueden encontrar programas de ejemplos. Programa Descripción BALVBT01 Report de test ALV: lista de bloques BALVBT02 Report de test ALV: Lista de bloques sin módulos de bloque BALVBUFDEL Reinicializar mem.inter.ALV BALVEX01 Programa de presentación ALV: salida vuelos (versión simplificada) Con Extractos BALVEX02 Programa de presentación ALV: salida vuelos (versión simplificada) BALVEXTR Gestión de extractos BALVHD01 Programa de presentación LVA: Lista modelo vuelo jerárquico secuencial BALVHT01 Report de test LVA: Lista modelo de vuelo jerárquico secuencial BALVSD01 Programa presentación LVA: Lista simple modelo de vuelo BALVSD02 Programa de presentación ALV: salida vuelos (versión simplificada) BALVSD02_GRID Llamada simple ALV GridCOntrol en modo full screen BALVSD02_SAVE Llamada más simple ALV con opción de almacenar BALVSD03 Lista simple BALVSD04 Lista simple (merged) BALVSD06 Progr.presentación LVA: Salida vuelos (versión simplif.+ almacenam.) BALVSD11 Progr.presentación LVA: Lista simple con interacciones y variantes BALVST01 Report de test LVA: Lista simple modelo de vuelo BALVST02 Report de test LVA: Lista simple modelo de vuelo BALVST02_GRID Report de test LVA: Lista simple modelo de vuelo BALVST03_GRID Report de test LVA: Lista simple modelo de vuelo BALV_POPUP_TO_SELECT Programa test REUSE_ALV_POPUP_TO_SELECT BCALV_BUFFER_DELETE Borrar MI BCALV_DND_01 Arrastrar líneas de control alv a carpetas de un tree control simple BCALV_DND_02 Arrastrar iconos funcionales de un árbol simple a un control alv BCALV_DND_03 Definir comportamiento arrastrar y dejar caer en celdas control LVA BCALV_DND_04 Desplazar o copiar líneas dentro de ALV Grid Control BCALV_FULLSCREEN_DEMO Presentación LVA: Modo full screen BCALV_FULLSCREEN_DEMO_CLASSIC Presentación LVA: Modo full screen BCALV_GRID_01 Eventos p.procesamiento impresión BCALV_GRID_02 Utilización de un dialogbox container para una lista detallada BCALV_GRID_03 Lista detallada en dynpro tipo diálogo BCALV_GRID_04 Visualizar excepciones usando LEDs o luces BCALV_GRID_05 Añadir pulsador propio en barra herr. BCALV_GRID_06 Definir menú contextual propio BCALV_GRID_07 Definiendo menú barra herr. BCALV_GRID_08 Definiendo menú barra herr.con puls.por defecto BCALV_GRID_09 Controlar opciones de grabar variantes BCALV_GRID_10 Ejecutar variante antes visual.lista BCALV_GRID_11 Test p.módulos funciones variante nueva
  • 31. Manual Reporting ALV Página / 31(31) Fecha / 15/05/2015 Programa Descripción BCALV_GRID_AND_POPUP ALV Grid en ventana diálogo BCALV_GRID_DEMO Progr.demo llamada más simple control LVA BCALV_GRID_DND_TREE ALV Grid: Arrastrar y dejar caer con árbol ALV BCALV_GRID_DND_TREE_SIMPLE ALV-GRID: Arrastrar y dejar caer con árbol ALV (simple) BCALV_GRID_VERIFY Programa test ALV Grid Control BCALV_TABLE_CREATE Columnas creadas para llamada ALV BCALV_TREE_DEMO Demostr.p.control árbol ALV BCALV_TREE_SIMPLE_DEMO Programa BCALV_TREE_SIMPLE_DEMO BCALV_XXL_TOGGLE_DATE Conversión visualización fecha de formato interno a externo DTC_ALVTEST_0 Report de test ALV (generado) DTC_BSP1 Programa DTC_BSP1 DTC_BSP2 Programa DTC_BSP1  Ayuda SAP para versión 4.0B http://help.sap.com/saphelp_40b/helpdata/es/51/055134de05a662e10000009b38f83b/frameset.htm  Ayuda SAP para versión 4.6C http://help.sap.com/saphelp_46c/helpdata/es/c5/3bd1369f2d280ee10000009b38f889/frameset.htm