ABAP - ALV con boton que genere un form. Sapscript

 
Vista:

ALV con boton que genere un form. Sapscript

Publicado por Marto (1 intervención) el 15/12/2010 15:37:02
Buenos dias a todos, estoy iniciandome en la programaciona ABAP y necesitaria me orienten un poco en como puedo direccionarme para conseguir hacer un reporte ALV con el agregado de algun boton que genere un formulario sapscript o un archivo de salida. Muchas Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

ALV con boton que genere un form. Sapscript

Publicado por Alejandro (226 intervenciones) el 13/04/2023 18:37:16
Para crear un reporte ALV con un botón que genere un formulario SAPscript o un archivo de salida, puedes seguir estos pasos:

1. Crea una función de módulo en SE37 para generar el formulario SAPscript o el archivo de salida.

2. Crea un reporte ALV utilizando la función REUSE_ALV_GRID_DISPLAY.

3. Agrega un campo a la estructura de salida para el botón.

4. En la función que se llama cuando se hace clic en el botón, llama a la función de módulo que creaste en el primer paso.

5. Utiliza la función REUSE_ALV_EVENT_GET para capturar el evento AT USER COMMAND. En este evento, verifica si se ha hecho clic en el botón y llama a la función que se ha definido para manejar el evento.

Aquí hay un ejemplo de código para agregar un botón a un reporte ALV:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
TYPES: BEGIN OF ty_output,
         matnr TYPE matnr,
         werks TYPE werks,
         button TYPE c LENGTH 1,
       END OF ty_output.
 
DATA: it_output TYPE STANDARD TABLE OF ty_output.
 
* Define el catálogo de campos para el ALV
DATA: it_fieldcat TYPE lvc_t_fcat,
      wa_fieldcat TYPE lvc_s_fcat.
 
* Configurar el campo para el botón
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BUTTON'.
wa_fieldcat-icon     = icon_upload.
wa_fieldcat-emphasize = abap_true.
APPEND wa_fieldcat TO it_fieldcat.
 
* Recupera los datos que se mostrarán en el ALV
SELECT matnr werks
       FROM mara
       INTO CORRESPONDING FIELDS OF TABLE it_output.
 
* Agrega el botón a cada fila
LOOP AT it_output ASSIGNING FIELD-SYMBOL(<fs_output>).
  <fs_output>-button = 'X'.
ENDLOOP.
 
* Muestra el ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    i_callback_program = sy-repid
  TABLES
    t_outtab           = it_output
    t_fieldcat         = it_fieldcat
  EXCEPTIONS
    program_error      = 1
    OTHERS             = 2.
 
* Captura el evento AT USER COMMAND para manejar el clic del botón
CALL FUNCTION 'REUSE_ALV_EVENT_GET'
  EXPORTING
    i_list_type = 0
  IMPORTING
    e_exit     = l_exit
  TABLES
    t_events   = it_events.
 
LOOP AT it_events WHERE name = 'AT_USER_COMMAND'.
  ASSIGN it_events TO <fs_events>.
  CASE <fs_events>-ucomm.
    WHEN 'BUTTON'.
      PERFORM generate_form.
  ENDCASE.
ENDLOOP.

En el ejemplo, el botón se agrega a cada fila en la columna BUTTON y se configura para mostrar un icono de carga. Cuando se hace clic en el botón, se llama a la función generate_form para generar el formulario SAPscript o el archivo de salida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar