Checkbox antes de mostrar grid ALV

Hola!

Tengo un grid ALV en la cual voy a mezclar dos informaciones, uno son documentos procesados y otro son documentos procesados, pero los documentos no procesados por medio de un CHECKBOX lo quiero enviar a procesar por medio de un botón.

Para facilitar a los usuarios quiero que los documentos no procesados se muestren seleccionados con el CheckBox.

Este es el código que llevo por el momento, pero no he logrado que se activen los ChecBox.

Estructura de la tabla

TYPES: BEGIN OF ty_face_alv,
    chck    TYPE c,
    VBELN   TYPE VBRK-VBELN,  "No. Factura
    FKART   TYPE VBRK-FKART,  "Clase Factura
    WAERK   TYPE VBRK-WAERK,  "Moneda de documento
    FKDAT   TYPE VBRK-FKDAT,  "Fecha de Factura
    BUKRS   TYPE VBRK-BUKRS,  "Sociedad
    NETWR   TYPE VBRK-NETWR,  "Valor neto
    VKBUR   TYPE VBRP-VKBUR,  "Oficina de Venta
    KUNAG   TYPE VBRK-KUNAG,  "Solicitante
    NAME1   TYPE KNA1-NAME1,  "Nombre Solicitante
    END OF ty_face_alv.

FORM para layout

  wa_layout-ZEBRA       = 'X'.
  wa_layout-GRID_TITLE  = 'Monitor de facturación'.
  wa_layout-BOX_FNAME   = 'CHCK'.

Lleno fieldcatalog

CLEAR wa_fieldcat.
  wa_fieldcat-tabname   = 'it_face_alv'.
  wa_fieldcat-fieldname = 'chck'.
  wa_fieldcat-SCRTEXT_L = 'Procesar'.
  wa_fieldcat-EDIT      = 'X'.
  wa_fieldcat-CHECKBOX  = 'X'.
  wa_fieldcat-col_pos   = 8.
  wa_fieldcat-outputlen = 11.
  APPEND wa_fieldcat TO ti_fieldcat.

Ejecuto ALV

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
 EXPORTING
   I_BUFFER_ACTIVE                          = ' '
   I_CALLBACK_PROGRAM                = gc_program
   I_CALLBACK_PF_STATUS_SET     = 'PF_STATUS'
   I_CALLBACK_USER_COMMAND    = 'USER_COMMAND'
   I_CALLBACK_TOP_OF_PAGE         = 'TOP_OF_PAGE'
   I_GRID_TITLE                                   = gc_titulo
   IS_LAYOUT_LVC                               = wa_layout
   IT_FIELDCAT_LVC                            = ti_fieldcat
   I_DEFAULT                                        = 'X'
   I_SAVE                                               = 'X'
   IT_EVENTS                                        = ti_events
  TABLES
    T_OUTTAB                                        = it_face_alv
 EXCEPTIONS
   PROGRAM_ERROR                          = 1
   OTHERS                                             = 2

Hasta el momento lo único que he logrado es hacer que se seleccione la fila completa, pero no llena el CheckBox.

Alguien me pueda ayudar para saber que puede pasar?

El campo chck tiene el valor ‘X’ en tu tabla interna??

si, lo que realizo es evaluar cuales son los documentos procesados y marco los que aun no están procesados.

En el debug me muestra así:

En el wa_fieldcat puedes poner INPUT = ‘X’.

Hola Nickel,

he intentado ponerlo, pero entre el catálogo de campos de la estructura no hay input.

image

Estoy utilizando este tipo de estructura de catálogo.

DATA: 
  wa_fieldcat         TYPE lvc_s_fcat,

¿Y si al llenar el fieldcatalog no le pasas el tabname? inténtalo y nos comentas.

Utiliza este slis_fieldcat_alv y para la tabla slis_t_fieldcat_alv

Lo intenté Ponxo, pero no funcionó, no hizo nada, ni ayudó ni perjudicó.

Hice el cambio Nickel, pero al parecer tendría que cambiar toda la estructura del llamado de la función que construye el ALV, ya que me dio un dump pero es porque los formatos no son iguales a los que espera recibir.

Tienes otra idea que no implique hacer ese cambio? si no pues tocará para probar la solución que indicas.

Funcionó utilizando la función REUSE_ALV_GRID_DISPLAY y con lo que indicaste @nickel_seifer.

Ahora bien ya marca los CheckBox, pero me marca siempre la fila completa, como crees que pueda eliminar ese evento?

image

Creo que es quitando este valor de tu layout:

1 me gusta

Gracias Nickel, quedó todo nítido, sabes como cerrar el post? o se cierra solo?

Marca el último comentario de @nickel_seifer como respuesta.

1 me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.