PDA

Ver la Versión Completa : Report ALV NO MUESTRA LA DATA


dayanareyes
19/02/08, 09:12:38
hola, tengo un programa elaborado por otra persona que no me muestra los materiales de un proyecto.

los parametros obligatorios de entrada son proyecto y entrega, pero no los muestra, pero si me voy a otra transaccion si muestra materiales para esa combinacion (proyecto-entrega).

Si me pueden ayudar.... tengo solo un par de semanas en el mundo de SAP y este codigo lo veo bien complicado.... gracias,

saludos


INCLUDE zps_lista_entrega_top_03.
INCLUDE zps_lista_entrega_for_03.

INITIALIZATION.
g_repid = sy-repid.
PERFORM print.
g_save = 'A'.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR variant.
PERFORM f4_for_variant.


START-OF-SELECTION.

* Obtenemos las unidades de manipulación de la entrega.
PERFORM unidades_manipulacion.

PERFORM datos_proyecto.
PERFORM obtener_proyecto.
PERFORM entregas_proyecto.

PERFORM mostrar_datos.

PERFORM agrupar.


*********** MOSTRAR DATOS **********************
* Catalogo de campos para ALV.
PERFORM catalogo.
PERFORM layout.

* Cabecera del informe para ALV
PERFORM eventtab_build CHANGING gt_events.
PERFORM comment_build CHANGING gt_list_top_of_page.

* Mostramos el informe en ALV.
PERFORM mostrar_alv.

*&---------------------------------------------------------------------*
*& Include ZPS_LIST_ENTREGA_001 *
*&---------------------------------------------------------------------*

REPORT zps_lista_entrega_001 .

TABLES: zuma, vbplk, mara.

TYPE-POOLS: slis.


* Variables y tablas para BAPI de obtención de proyecto y sus
* componentes.
DATA: project_definition LIKE bapipr-project_definition,
with_activities LIKE bapipr-with_activities,
with_milestones LIKE bapipr-with_milestones,
with_subtree LIKE bapipr-with_subtree.

DATA: e_project_definition LIKE bapi_project_definition_ex,
return LIKE bapireturn1.

DATA: i_wbs_element_table LIKE bapi_wbs_elements
OCCURS 0 WITH HEADER LINE,
e_wbs_element_table LIKE bapi_wbs_element_exp
OCCURS 0 WITH HEADER LINE,
e_wbs_milestone_tabl LIKE bapi_wbs_milestone_exp
OCCURS 0 WITH HEADER LINE,
e_wbs_hierarchie_tab LIKE bapi_wbs_hierarchie
OCCURS 0 WITH HEADER LINE,
e_activity_table LIKE bapi_network_activity_exp
OCCURS 0 WITH HEADER LINE,
e_message_table LIKE bapi_meth_message
OCCURS 0 WITH HEADER LINE.

DATA: e_network LIKE bapi_network_exp
OCCURS 0 WITH HEADER LINE,
e_network2 LIKE bapi_network_exp
OCCURS 0 WITH HEADER LINE,
e_activity LIKE bapi_network_activity_exp
OCCURS 0 WITH HEADER LINE,
e_activity2 LIKE bapi_network_activity_exp
OCCURS 0 WITH HEADER LINE,
e_relation LIKE bapi_network_relation_exp
OCCURS 0 WITH HEADER LINE,
e_message_table2 LIKE bapi_meth_message
OCCURS 0 WITH HEADER LINE,
e_activity_element LIKE bapi_act_element_exp
OCCURS 0 WITH HEADER LINE,
e_activity_milestone LIKE bapi_act_milestone_exp
OCCURS 0 WITH HEADER LINE,
e_component2 LIKE bapi_component_exp
OCCURS 0 WITH HEADER LINE,
e_component LIKE bapi_component_exp
OCCURS 0 WITH HEADER LINE,
return2 LIKE bapireturn1.

DATA: t_entregas LIKE psli OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF t_entregas_comp OCCURS 0,
vbeln LIKE lips-vbeln,
posnr LIKE lips-posnr,
lfimg LIKE lips-lfimg,
END OF t_entregas_comp.

* Variables y tablas para UMA en entregas.
DATA: comwa LIKE vbco3,
vbplk_tab LIKE vbplk OCCURS 0 WITH HEADER LINE,
vbplp_tab LIKE vbplp OCCURS 0 WITH HEADER LINE,
vbpls_tab LIKE vbpls OCCURS 0 WITH HEADER LINE.

DATA: contador. "variable para controlar el primer salto de linea.

DATA: BEGIN OF t_uma_sup OCCURS 0 ,
exidv LIKE vbplk_tab-exidv,
venum_inf LIKE vbplk_tab-venum,
finalsite LIKE e_activity-description,
seal_mc(10) TYPE c,
seal_ed(10) TYPE c,
num_caj LIKE zuma-bultos,
ntgew LIKE vbplk_tab-ntgew,
brgew LIKE vbplk_tab-brgew,
tavol LIKE vbplk_tab-tavol,
vhilm LIKE vbplk_tab-vhilm,
vebez LIKE vbplk_tab-vebez,
END OF t_uma_sup.


DATA: BEGIN OF t_tabla OCCURS 0,
wbs_element LIKE e_wbs_element_table-wbs_element ,
network LIKE e_activity-network ,
activity LIKE e_activity-activity ,
description LIKE e_activity-description,
item_number LIKE e_component-item_number ,
matl_desc LIKE e_component-matl_desc ,
desc_larga(120) TYPE c,
vemng LIKE vbplp_tab-vemng ,
ntgew LIKE vekp-ntgew ,
brgew LIKE vekp-brgew ,
laeng LIKE vekp-laeng ,
breit LIKE vekp-breit ,
hoehe LIKE vekp-hoehe ,
tavol LIKE vekp-tavol ,
exidv LIKE vekp-exidv ,
pos_uma(5) TYPE c,
inclu(15) TYPE c,
num_bultos LIKE zuma-bultos,
ntgew_sup LIKE vekp-ntgew ,
brdew_sup LIKE vekp-brgew ,
tavol_sup LIKE vekp-tavol ,
exidv_sup LIKE vekp-exidv ,
* VMSM - añadidos para la visualizacion de unidades.
meabm LIKE vbplk_tab-meabm ,
gewei LIKE vbplk_tab-gewei ,
voleh LIKE vbplk_tab-voleh ,
geweit LIKE vbplk_tab-gewei ,
voleht LIKE vbplk_tab-voleh ,
* Modificaicón ETB 19/05/2006. Añadimos el campo orden SAP.
ordensap LIKE resbd-sortf,
* Fin Modificación ETB 19/05/2006.

END OF t_tabla.

DATA: BEGIN OF temporal,
wbs_element LIKE e_wbs_element_table-wbs_element ,
network LIKE e_activity-network ,
activity LIKE e_activity-activity ,
description LIKE e_activity-description,
item_number LIKE e_component-item_number ,
matl_desc LIKE e_component-matl_desc ,
desc_larga(120) TYPE c,
vemng LIKE vbplp_tab-vemng ,
ntgew LIKE vekp-ntgew ,
brgew LIKE vekp-brgew ,
laeng LIKE vekp-laeng ,
breit LIKE vekp-breit ,
hoehe LIKE vekp-hoehe ,
tavol LIKE vekp-tavol ,
exidv LIKE vekp-exidv ,
pos_uma(5) TYPE c,
inclu(15) TYPE c,
num_bultos LIKE zuma-bultos,
ntgew_sup LIKE vekp-ntgew ,
brdew_sup LIKE vekp-brgew ,
tavol_sup LIKE vekp-tavol ,
exidv_sup LIKE vekp-exidv ,
* VMSM - añadidos para la visualizacion de unidades.
meabm LIKE vbplk_tab-meabm ,
gewei LIKE vbplk_tab-gewei ,
voleh LIKE vbplk_tab-voleh ,
geweit LIKE vbplk_tab-gewei ,
voleht LIKE vbplk_tab-voleh ,
* Modificaicón ETB 19/05/2006. Añadimos el campo orden SAP.
ordensap LIKE resbd-sortf,
* Fin Modificación ETB 19/05/2006.

END OF temporal.

* Tabla auxiliar para agrupar Lista de entrega.
DATA: BEGIN OF t_tabla2 OCCURS 0,
wbs_element LIKE e_wbs_element_table-wbs_element ,
network LIKE e_activity-network ,
activity LIKE e_activity-activity ,
description LIKE e_activity-description,
item_number LIKE e_component-item_number ,
matl_desc LIKE e_component-matl_desc ,
desc_larga(120) TYPE c,
vemng LIKE vbplp_tab-vemng ,
ntgew LIKE vbplk_tab-ntgew ,
brgew LIKE vbplk_tab-brgew ,
laeng LIKE vbplk_tab-laeng ,
breit LIKE vbplk_tab-breit ,
hoehe LIKE vbplk_tab-hoehe ,
tavol LIKE vbplk_tab-tavol ,
exidv LIKE vbplk_tab-exidv ,
pos_uma(5) TYPE c,
inclu(15) TYPE c,
num_bultos LIKE zuma-bultos,
ntgew_sup LIKE vbplk_tab-ntgew ,
brdew_sup LIKE vbplk_tab-brgew ,
tavol_sup LIKE vbplk_tab-tavol ,
exidv_sup LIKE vbplk_tab-exidv ,
* VMSM - añadidos para la visualizacion de unidades.
meabm LIKE vbplk_tab-meabm ,
gewei LIKE vbplk_tab-gewei ,
voleh LIKE vbplk_tab-voleh ,
geweit LIKE vbplk_tab-gewei ,
voleht LIKE vbplk_tab-voleh ,
* Modificaicón ETB 19/05/2006. Añadimos el campo orden SAP.
ordensap LIKE resbd-sortf,
* Fin Modificación ETB 19/05/2006.
END OF t_tabla2.

* Tabla auxiliar para agrupar Lista de entrega.
DATA: BEGIN OF t_tabla3 OCCURS 0,
wbs_element LIKE e_wbs_element_table-wbs_element ,
network LIKE e_activity-network ,
activity LIKE e_activity-activity ,
description LIKE e_activity-description,
item_number LIKE e_component-item_number ,
matl_desc LIKE e_component-matl_desc ,
desc_larga(120) TYPE c,
vemng LIKE vbplp_tab-vemng ,
ntgew LIKE vbplk_tab-ntgew ,
brgew LIKE vbplk_tab-brgew ,
laeng LIKE vbplk_tab-laeng ,
breit LIKE vbplk_tab-breit ,
hoehe LIKE vbplk_tab-hoehe ,
tavol LIKE vbplk_tab-tavol ,
exidv LIKE vbplk_tab-exidv ,
pos_uma(5) TYPE c,
inclu(15) TYPE c,
num_bultos LIKE zuma-bultos,
ntgew_sup LIKE vbplk_tab-ntgew ,
brdew_sup LIKE vbplk_tab-brgew ,
tavol_sup LIKE vbplk_tab-tavol ,
exidv_sup LIKE vbplk_tab-exidv ,
* VMSM - añadidos para la visualizacion de unidades.
meabm LIKE vbplk_tab-meabm ,
gewei LIKE vbplk_tab-gewei ,
voleh LIKE vbplk_tab-voleh ,
geweit LIKE vbplk_tab-gewei ,
voleht LIKE vbplk_tab-voleh ,
* Modificaicón ETB 19/05/2006. Añadimos el campo orden SAP.
ordensap LIKE resbd-sortf,
* Fin Modificación ETB 19/05/2006.
END OF t_tabla3.

* Las Uma ya tratadas no las repetimos.
DATA: BEGIN OF t_uma OCCURS 0,
exidv LIKE zuma-exidv,
network LIKE e_activity-network ,
activity LIKE e_activity-activity ,
item_number LIKE e_component-item_number,
inclu(15) TYPE c,
END OF t_uma.

* Tabla para contenedores
DATA: t_conte LIKE vbplk OCCURS 0 WITH HEADER LINE,
wa_conte LIKE vbplk.
* Tabla relacion contenedores-uma.
DATA: BEGIN OF t_contuma OCCURS 0,
uma LIKE zuma-exidv,
conte LIKE zuma-exidv,
END OF t_contuma.

*Patalla de selección.
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE text-001.
PARAMETER: p_proy LIKE bapipr-project_definition OBLIGATORY.
SELECT-OPTIONS: s_pep FOR e_activity-wbs_element,
s_gra FOR e_network-network,
s_ope FOR e_activity-activity,
s_mat FOR e_component-material.
SELECT-OPTIONS: s_vbeln FOR t_entregas-vbeln OBLIGATORY
NO-EXTENSION NO INTERVALS MATCHCODE OBJECT zentregas.

SELECTION-SCREEN END OF BLOCK 1.

***Variante de visualización
SELECTION-SCREEN BEGIN OF BLOCK 2 .
PARAMETER: variant LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK 2.

* Variables para formato ALV.
DATA: g_repid LIKE sy-repid,
gs_layout TYPE slis_layout_alv,
gt_sort TYPE slis_t_sortinfo_alv,
ls_print TYPE slis_print_alv,
gt_events TYPE slis_t_event,
g_save(1) TYPE c,
gx_variant LIKE disvariant,
g_variant LIKE disvariant,
g_tabname_header TYPE slis_tabname,
g_tabname_item TYPE slis_tabname,
g_exit(1) TYPE c,
gt_list_top_of_page TYPE slis_t_listheader,
gt_fieldcat TYPE slis_t_fieldcat_alv.

*******************
el otro include en otro tema porque no cabe...

gracias, Report ALV NO MUESTRA LA DATA_2

mcarrasco
19/02/08, 11:20:25
Hola, esteee ese codigo esta muy largo como para verlo y probarlo! tiene demasiado! yo t puedo dar un ejemplo sencillo de como hacer un ALV... de echo ya tngo un programa que esta explicado usando ALV. Si lo quieres enviame correo a bc.marcos03@gmail.com

vickxo
19/02/08, 11:24:03
Hola he intentado activar el programa que pones en los post, peor me falta la defincion de la tabla z ZUMA me la puedes mandar asi como los datos z que hayas generado (no se si haya o no). Hasta pronto.

dayanareyes
19/02/08, 11:59:23
MANDT MANDT CLNT 3 0 Mandante
EXIDV2 EXIDV CHAR 20 0 Identificación externa de la unidad de manipulación
EXIDV EXIDV CHAR 20 0 Identificación externa de la unidad de manipulación
CONTADOR NUMC 10 0 Contador de relación Jaula Bulto
PEP PS_POSID CHAR 24 0 Elemento del plan de estructura de proyecto (elemento PEP)
GRAFO NW_AUFNR CHAR 12 0 Número de grafo
OPERACION CN_VORNR CHAR 4 0 Número de operación del grafo y grafo estándar
ITEM APOSN CHAR 4 0 Número de posición de lista de materiales
MATERIAL MATNR CHAR 18 0 Número de material
CANTIDAD VEMNG QUAN 15 3 Cantidad base embalada en posición de unidad manipulación
NBULTO CHAR 10 0 Número de bulto
RESPONSABLE CHAR 30 0 Responsble de la creación de la JAULA
TOTAL CHAR 10 0 Total o Parcial
TEXTO CHAR 40 0 Identificador de texto (TEXT/TDID/códUMA)
BULTOS INT4 10 0 Bultos en la Jaula
MATRICULA CHAR 18 0 Matrícula del contenedor
PRECINTO1 CHAR 18 0 Precinto 1
PRECINTO2 CHAR 18 0 Precinto 2








lo que me dices de datos no lo entiendo :S

dayanareyes
20/02/08, 07:19:54
porfa alguien ha podido ver esto

dayanareyes
20/02/08, 10:54:19
holaaaa
perdona, has podido ver algooo.... no entiendo este codigoooo :S:S:S creo q los datos se pierden en esta parte

*&---------------------------------------------------------------------*
*& Form mostrar_datos
*&---------------------------------------------------------------------*
FORM mostrar_datos .
PERFORM elementos.
ENDFORM. " mostrar_datos
*&---------------------------------------------------------------------*
*& Form elementos
*&---------------------------------------------------------------------*
FORM elementos .
LOOP AT e_wbs_element_table.
PERFORM grafos.
ENDLOOP.
ENDFORM. " elementos
*&---------------------------------------------------------------------*
*& Form grafos
*&---------------------------------------------------------------------*
FORM grafos .
LOOP AT e_activity
WHERE wbs_element = e_wbs_element_table-wbs_element.
* Componentes.
PERFORM componentes .
ENDLOOP.
ENDFORM. " grafos
*&---------------------------------------------------------------------*
*& Form componentes
*&---------------------------------------------------------------------*
FORM componentes .

LOOP AT e_component WHERE network = e_activity-network AND
activity = e_activity-activity
AND deletion_flag = ' '.

* PASAMOS LOS DATOS A LA TABLA INTERNA.
t_tabla-wbs_element = e_wbs_element_table-wbs_element.
t_tabla-network = e_activity-network .
t_tabla-activity = e_activity-activity.
t_tabla-description = e_activity-description.
t_tabla-item_number = e_component-item_number .
t_tabla-matl_desc = e_component-matl_desc.
* ETB 19/05/2006. Añadimos el campo orden de SAP.
t_tabla-ordensap = e_component-sort_string.
* Fin ETB 19/05/2006.

* Tala auxliliar.
MOVE-CORRESPONDING t_tabla TO t_tabla2.

* Buscamos las entregas asociadas a ese componente. Pposteriormente
* busacaremos las UMA asociadas a la posición de la entrega
* correspondiente al componente que estamos tratando.
PERFORM entrega_componente.

ENDLOOP.


ENDFORM. " componentes




ya que cuando hago el debbuger y me posiciono en MOVE-CORRESPONDING t_tabla TO t_tabla2.
t_tabla esta aparece con un solo registro........

graciasssssssss

pirri
20/02/08, 11:18:20
A mi me falta algún append, para rellenar t_tabla. No sé si dentro de entrega_componente exista. Sino se está usando t_tabla como un registro, pero nunca rellegará la tabla. t_tabla2 también le falta alguna sentencia que rellene la tabla. Ahora sólo parece que rellena el registro de cabecera de la tabla pero no lo añade con un append a la tabla.

Un saludo.

dayanareyes
20/02/08, 11:23:13
A mi me falta algún append, para rellenar t_tabla. No sé si dentro de entrega_componente exista. Sino se está usando t_tabla como un registro, pero nunca rellegará la tabla. t_tabla2 también le falta alguna sentencia que rellene la tabla. Ahora sólo parece que rellena el registro de cabecera de la tabla pero no lo añade con un append a la tabla.

Un saludo.


UMMM VALE... PERO NO TENGO CONOCIMEINTOS DE ABAP... APENAS TENGO 2 SEMANAS CON ESTE LENGUAJE... SI ME EXPLICAS UN POCO MEJOR....:confused:

pirri
20/02/08, 12:20:07
Una ayuda bastante buena es la tecla F1 cuando estas visualizando un programa o escribiendo. Te colocas sobre la sentencia y pulsas F1. te mostrará la ayuda con todas las variantes y algunos ejemplos. Mira append.

Sobre las tablas internas t_tabla y t_tabla2. Te puedo decir que están declaradas como tablas internas.


En el form componentes, veo que hay un recorrido a la tabla interna e_component.

Cuando declaras una tabla interna es como declarar un registro que puede tener multiples instancias, con el occurs.

Si relleno los campos de t_tabla como se hace es ese form. lo que hago es rellenar un registro de cabecera de la tabla, pero no estoy añadiendo a la tabla. Es necesario usar una sentencia como append para añadir esa información dentro de la tabla.

Lo mismo pasa al hacer el move-corresponding a t_tabla2. Lo que haces es mover los campos iguales del registro de cabecera de ambas tablas internas. Pero nunca veo que añadas el registro a la tabla. Es en palabras coloquiales como si llamas a una casa a la puerta te presentas pero nunca entras. Cuando haces debuging estas viendo ese registro con contenido pero la tabla vacía.

Los pasos básicos para añadir registros a una tabla son:

1.- definir la tabla (si no hay que rellenar vamos mal)
2.- rellenar el registro de cabecera
3.- añadir este registro a la tabla.

Puedes hacerlo en tres pasos o en dos si usas un registro distinto al de la tabla. usando "append reg_1 to tabla_1".

hay muchas formas de jugar con tablas internas.

Espero que esto te aclare algo, en descargar seguramente tengas algún manual que te lo explique.