PDA

Ver la Versión Completa : ALV GRID OO agrega y elimina celdas.


Luis Armando Valdez R.
25/05/11, 21:48:51
Hola Amigos, ando algo atorado con un tema en un ALV grid, les platico, ojalá puedan ayudarme.

Tengo un ALV que elimina y agrega nuevas celdas.

Cuando agrego una nueva celda, la linea es la siguiente:

documento, referencia, fecha, folio etc, etc..

Entonces cuando estoy agregando un nuevo registro, el usuario captura el documento, pero pretendo que al dar enter, el sistema en automatico traiga los valores de referencia, fecha, folio a través de un query a la BD.

Ya traigo en memoria los campos del query, pero no se como pasarselos a la estructura para que el ALV los pinte.

He usado lo siguiente:

LOOP AT er_data_changed->mt_good_cells INTO ls_good.
CASE ls_good-fieldname.
when 'FACTURA'.
PERFORM F_OBTEN_DOC_FI USING LS_GOOD-VALUE CHANGING VL_BSTKD.

WHEN 'REFERENCIA'.

READ TABLE er_data_changed->mt_good_cells INTO ls_good
WITH KEY row_id = ls_good-row_id
fieldname = ls_good-fieldname
VALUE = VL_BSTKD.

CALL METHOD er_data_changed->GET_cell_value
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = ls_good-fieldname
IMPORTING
e_value = VALOR.

** Leímos tabla interna
* READ TABLE gt_outtab INTO wa_outtab INDEX ls_good-row_id.
wa_outtab-FACTURA = '0090000007'. " Codigo duro para pruebas
wa_outtab-REFERENCIA = VL_BSTKD.

* Modificamos
* MODIFY TABLE gt_outtab FROM wa_outtab .
APPEND WA_OUTTAB TO GT_OUTTAB.
CALL METHOD g_grid->refresh_table_display.

ENDCASE.
ENDLOOP.

Les agradeceré mucho si me echan la mano con esto..

Saludos!

ballan
26/05/11, 11:27:36
Prueba a poner al final del todo

cl_gui_cfw=>flush( ).

Luis Armando Valdez R.
27/05/11, 18:22:02
Ya probé y no se actualiza el grid.

Estoy revisando que el valor ya lo asigno en LS_GOOD pero no lo pinta en el ALV

Sigo debuggeando para saber como agregarselo y si hay un metodo para actualizar el LS_GOOD a la gt_outtab

Gracias por tu apoyo amigo!

DCErick
27/05/11, 20:21:38
Y si lo haces desde el evento handle_data_changed_finished