MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   alv grid vacio (foro/showthread.php?t=6381)

jucho 04/07/07 21:29:49

alv grid vacio
 
Buenas tardes.
Mi problema es que estoy creando un alv que me cargue una tabla, luego de seleccionarla por medio de
SELECTION-SCREEN BEGIN OF BLOCK parametros WITH FRAME TITLE text-001.
PARAMETERS: contri RADIOBUTTON GROUP gr1,
impor RADIOBUTTON GROUP gr1,
imp RADIOBUTTON GROUP gr1,
incons RADIOBUTTON GROUP gr1.

SELECTION-SCREEN END OF BLOCK parametros.

Luego lleno las tablas dependiendo de la que me interese, luego creo el catalogo de campos, y por ultimo muestro el alv con:
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_user_command = 'USER_COMMAND'
i_structure_name = 'itab_contri'
is_layout = etiqueta
it_fieldcat = camposalv[]
it_events = gt_xevents
TABLES
t_outtab = itab_contri


EXCEPTIONS
program_error = 1
OTHERS = 2.
El problema es que la tabla interna para mostrar contiene datos, pero el mostrarla solo aparecen las cabeceras de los campos y el resto esta vació.

Muchas gracias.

nenuke 10/07/07 12:10:34

Hola Jucho,

¿cómo defines el catálogo de campos?
Usas la funcion REUSE_ALV_FIELDCATALOG_MERGE
o lo defines campo a campo 'a mano' con algo parecido a esto...
PERFORM fieldcatalog USING 'SOCIEDAD' 'Sociedad' 'M' ' ' ' ' ' '.
PERFORM fieldcatalog USING 'NOMBRE' 'Proveedor' 'M' ' ' ' ' ' '.
PERFORM fieldcatalog USING 'DOCUMEN' 'Nº Documento' 'M' ' ' ' ' ' '.

Si es de esta ultima forma un fallo habitual es no escribir bien el nombre del campo (fieldcatalog USING 'SOCIEDAD' ) que debe ser igual al nombre de nuestra tabla de salida en el ALV y escrito en mayúsculas.

Un saludo.

Krystian 10/07/07 15:19:53

Re: Alv Vacio
 
Hola que tal, te voy a enviar como los defino yo en un reporte de sd que tengo aca espero te guien para solucionar.

FORM print_list .

* Se imprime ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
is_layout = w_layout
it_fieldcat = w_field[]
i_save = 'X'
is_variant = w_es_variant
it_events = i_events
is_print = w_print
i_callback_user_command = 'USER_COMMAND'
TABLES
t_outtab = t_print
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.

y para el catalogo esto:

FORM fill_catalog .

* Area de trabajo de catálogo
DATA: wa_field LIKE w_field WITH HEADER LINE.

* Se llena catálogo

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = w_repid
i_internal_tabname = 'T_PRINT'
i_inclname = w_repid
CHANGING
ct_fieldcat = w_field
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

* se eliminan los campos key para que el reporte se emita según lo
* especificado.
CLEAR wa_field-key.
MODIFY w_field FROM wa_field TRANSPORTING key WHERE NOT key IS
INITIAL.

LOOP AT w_field INTO wa_field.

CASE wa_field-fieldname.

WHEN 'MBLNR'.
wa_field-seltext_l = 'Doc. Mat. '. "Titulo large
wa_field-ddictxt = 'L'.
MODIFY w_field FROM wa_field.

WHEN 'SMBLN'.
wa_field-seltext_l = 'Doc. Mat. Anulado'. "Titulo large
wa_field-ddictxt = 'L'.
MODIFY w_field FROM wa_field.

WHEN 'ZEILE'.
wa_field-seltext_l = 'Posición'. "Titulo large
wa_field-ddictxt = 'L'.
wa_field-do_sum = 'X'.
MODIFY w_field FROM wa_field.

WHEN 'MATNR'.
wa_field-seltext_l = 'Material'. "Titulo large
wa_field-ddictxt = 'L'.
wa_field-do_sum = 'X'.
MODIFY w_field FROM wa_field.

WHEN 'MENGE'.
wa_field-seltext_l = 'Cantidad'. "Titulo large
wa_field-ddictxt = 'L'.
MODIFY w_field FROM wa_field.

WHEN 'MEINS'.
wa_field-seltext_l = 'Unidad Medida Base'. "Titulo large
wa_field-ddictxt = 'L'.
MODIFY w_field FROM wa_field.

WHEN 'CHARG'.
wa_field-seltext_l = 'Lote'. "Titulo large
wa_field-ddictxt = 'L'.
wa_field-do_sum = 'X'.
MODIFY w_field FROM wa_field.

WHEN 'SGTXT'.
wa_field-seltext_l = 'Texto'. "Titulo large
wa_field-ddictxt = 'L'.
wa_field-do_sum = 'X'.
MODIFY w_field FROM wa_field.


WHEN 'WERKS'.
wa_field-seltext_l = 'Centro'. "Titulo large
wa_field-ddictxt = 'L'.
MODIFY w_field FROM wa_field.

WHEN 'LGORT'.
wa_field-seltext_l = 'Almacén'. "Titulo large
wa_field-ddictxt = 'L'.
MODIFY w_field FROM wa_field.

WHEN 'BWART'.
wa_field-seltext_l = 'Clase de Movimiento'. "Titulo large
wa_field-ddictxt = 'L'.
wa_field-do_sum = 'X'.
MODIFY w_field FROM wa_field.

WHEN 'KUNNR'.
wa_field-seltext_l = 'Cliente'. "Titulo large
wa_field-ddictxt = 'L'.
wa_field-do_sum = 'X'.
MODIFY w_field FROM wa_field.

WHEN 'KDAUF'.
wa_field-seltext_l = 'Pedido Cliente'. "Titulo large
wa_field-ddictxt = 'L'.
MODIFY w_field FROM wa_field.


WHEN 'KDPOS'.
wa_field-seltext_l = 'Pos.pedido Cliente'. "Titulo large
wa_field-ddictxt = 'L'.
MODIFY w_field FROM wa_field.

WHEN 'NAME1'.
wa_field-seltext_l = 'Nombre ClientE'. "Titulo large
wa_field-ddictxt = 'L'.
MODIFY w_field FROM wa_field.

WHEN 'MBLNR2'.
wa_field-seltext_l = 'Documento Material'. "Titulo large
wa_field-ddictxt = 'L'.
wa_field-do_sum = 'X'.
wa_field-no_out = 'X'.
MODIFY w_field FROM wa_field.

WHEN 'USNAM'.
wa_field-seltext_l = 'Nombre del Usuario'. "Titulo large
wa_field-ddictxt = 'L'.
wa_field-do_sum = 'X'.
MODIFY w_field FROM wa_field.


WHEN 'XBLNR'.
wa_field-seltext_l = 'Nº Entrega'. "Titulo large
wa_field-ddictxt = 'L'.
wa_field-do_sum = 'X'.
MODIFY w_field FROM wa_field.

EXIT.

ENDCASE.


ENDLOOP.

Espero te sirva para algo.


Husos Horarios son GMT. La hora en este momento es 04:28:33.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web