MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 04/09/08, 10:44:24
Avatar de Marc Espinosa
Marc Espinosa Marc Espinosa is offline
Member
 
Fecha de Ingreso: ago 2007
Localización: Madrid, Spain
Mensajes: 73
Alv Jerarquio

Wenos dias forer@s!!
estoy haciendo un ALV JERARQUIO, però solo me salen las cabeceras, no me salen los datos de dentro. He exo ALV's, xo es el primer jerarquico .

No hagais caso del form completa_datos, esta a medias.

Os pego el codigo:



TABLES: proj, prps.


*----------------------------------------------------------------------*
* Definición de Parámetros y Select-Options
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_prart TYPE prps-prart, "Clase de proyecto
p_vernr TYPE proj-vernr, "Responsable
p_astnr TYPE proj-astnr. "Solicitante

SELECT-OPTIONS:
s_pspid FOR proj-pspid, "Proyecto
s_posid FOR prps-posid. "Elemento PEP
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-004.
PARAMETERS: p_versn LIKE rpsco_x-versn. "Versión
SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN END OF BLOCK b1.


*-----------------------------------------------------------------------------*
* Definicion estructuras y tablas necesarias
*-----------------------------------------------------------------------------*
* Type Pool donde vienen definidas todas las estructuras y tablas
TYPE-POOLS: slis.
* Catálogo de campos: contiene la descripción de los campos de salida
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
* Especificaciones de la disposición de la lista: descripción de la
* estructura de salida
gs_layout TYPE slis_layout_alv,
* Relacion entre los datos de cabecera y posicion
gs_key TYPE slis_keyinfo_alv,
* Nombre del programa
g_repid LIKE sy-repid.


*Definimos las tablas con los datos de salida
TYPES: BEGIN OF st_header.
INCLUDE STRUCTURE proj.
TYPES: END OF st_header.

TYPES: BEGIN OF st_item,
l_objeto LIKE PRPS-PSPNR, "objeto
l_NomObj LIKE PRPS-PSPNR, "nombre objeto
l_WLJHR_PL LIKE BPJA-WLJHR, "valor planificado
l_WLJHR_PR LIKE BPJA-WLJHR, "valor presupuesto
l_WLJHR_CM LIKE BPJA-WLJHR, "valor Comprometido
l_WLJHR_RE LIKE BPJA-WLJHR, "valor real
l_WLJHR_PA LIKE BPJA-WLJHR, "valor pagado
l_WLJHR_EJ LIKE BPJA-WLJHR, "valor ejecutado
l_WLJHR_PD LIKE BPJA-WLJHR, "valor presupuesto disponible
l_WLJHR_DE LIKE BPJA-WLJHR. "valor desviación
INCLUDE STRUCTURE prps.
TYPES: END OF st_item.


DATA: gt_header TYPE STANDARD TABLE OF st_header WITH HEADER LINE, "primer nivel jerarquico ALV
gt_item TYPE STANDARD TABLE OF st_item WITH HEADER LINE. "segundo nivel jerarquico ALV

DATA: wa_item TYPE st_item,
wa_header TYPE st_header.

DATA: l_WTG001 TYPE WTGXXX,
l_WTG002 TYPE WTGXXX,
l_WTG003 TYPE WTGXXX,
l_WTG004 TYPE WTGXXX,
l_WTG005 TYPE WTGXXX,
l_WTG006 TYPE WTGXXX.


INITIALIZATION.

g_repid = sy-repid.

START-OF-SELECTION.

* Toma de datos
PERFORM toma_datos.

*Estructura y formato de salida
PERFORM init_fieldcat.
PERFORM init_layout.
PERFORM init_key.

* Mostrar listado
PERFORM listado.

**---------------------------------------------------------------------*
* FORM INIT_FIELDCAT
**---------------------------------------------------------------------*
FORM init_fieldcat.
* Mediante esta tabla vamos a definir los campos que queremos mostrar
* en el listado de salida.

gt_fieldcat-fieldname = 'PSPNR'.
gt_fieldcat-tabname = 'GT_HEADER'.
gt_fieldcat-ref_tabname = 'PROJ'.
APPEND gt_fieldcat.
CLEAR gt_fieldcat.

gt_fieldcat-fieldname = 'PSPHI'.
gt_fieldcat-tabname = 'GT_ITEM'.
gt_fieldcat-ref_tabname = 'PRPS'.
APPEND gt_fieldcat.
CLEAR gt_fieldcat.

gt_fieldcat-fieldname = 'POSID'.
gt_fieldcat-tabname = 'GT_ITEM'.
gt_fieldcat-ref_tabname = 'PRPS'.
APPEND gt_fieldcat.
CLEAR gt_fieldcat.

* gt_fieldcat-fieldname = 'l_WLJHR_PL'.
* gt_fieldcat-tabname = 'GT_ITEM'.
* gt_fieldcat-ref_tabname = 'PRPS'.
* APPEND gt_fieldcat.
* CLEAR gt_fieldcat.
*
* gt_fieldcat-fieldname = 'l_WLJHR_PR'.
* gt_fieldcat-tabname = 'GT_ITEM'.
* gt_fieldcat-ref_tabname = 'PRPS'.
* APPEND gt_fieldcat.
* CLEAR gt_fieldcat.
*
* gt_fieldcat-fieldname = ' l_WLJHR_CM'.
* gt_fieldcat-tabname = 'GT_ITEM'.
* gt_fieldcat-ref_tabname = 'PRPS'.
* APPEND gt_fieldcat.
* CLEAR gt_fieldcat.
*
* gt_fieldcat-fieldname = 'l_WLJHR_RE'.
* gt_fieldcat-tabname = 'GT_ITEM'.
* gt_fieldcat-ref_tabname = 'PRPS'.
* gt_fieldcat-no_out = 'X'.
* APPEND gt_fieldcat.
* CLEAR gt_fieldcat.
*
* gt_fieldcat-fieldname = 'l_WLJHR_PA'.
* gt_fieldcat-tabname = 'GT_ITEM'.
* gt_fieldcat-ref_tabname = 'PRPS'.
* APPEND gt_fieldcat.
* CLEAR gt_fieldcat.
*
* gt_fieldcat-fieldname = 'l_WLJHR_EJ'.
* gt_fieldcat-tabname = 'GT_ITEM'.
* gt_fieldcat-ref_tabname = 'PRPS'.
* APPEND gt_fieldcat.
* CLEAR gt_fieldcat.
*
* gt_fieldcat-fieldname = ' l_WLJHR_PD'.
* gt_fieldcat-tabname = 'GT_ITEM'.
* gt_fieldcat-ref_tabname = 'PRPS'.
* APPEND gt_fieldcat.
* CLEAR gt_fieldcat.
*
* gt_fieldcat-fieldname = ' l_WLJHR_DE'.
* gt_fieldcat-tabname = 'GT_ITEM'.
* gt_fieldcat-ref_tabname = 'PRPS'.
* APPEND gt_fieldcat.
* CLEAR gt_fieldcat.

ENDFORM.


*---------------------------------------------------------------------*
* FORM INIT_LAYOUT
**---------------------------------------------------------------------*
FORM init_layout.
* Mediante esta estructura podemos definir el formato de salida
gs_layout-zebra = 'X'.
gs_layout-f2code = '&ETA'.
gs_layout-detail_popup ='X'.
ENDFORM.


*---------------------------------------------------------------------*
* FORM TOMA_DATOS *
*---------------------------------------------------------------------*
FORM toma_datos.

*-------------------------------------------------------------------
* Toma de datos de las tablas de Proyectos y PEPS
*-------------------------------------------------------------------
* Si existe PEP y no proyecto
* IF s_pspid IS INITIAL AND s_posid IS NOT INITIAL.
* busco proyectos
* SELECT * FROM proj
* INTO table gt_header
* WHERE SCOPE = p_prart AND "Clase de proyecto
* ERNAM = p_vernr AND "Responsable
* ASTNR = p_astnr AND "Solicitante
* STSPR IN s_posid . "Elemento PEP
* rpsco_x-versn = p_versn. "Versión

* busco PEPS
* SELECT * FROM prps
* INTO CORRESPONDING FIELDS OF TABLE gt_item
* FOR ALL ENTRIES IN gt_header
* WHERE PSPHI = gt_header-PSPNR. "Elemento PEP
* ENDIF.





** Si existe proyecto
* IF s_pspid IS NOT INITIAL.
** busco proyectos
* SELECT * FROM proj
* INTO table gt_header
* WHERE SCOPE = p_prart AND "Clase de proyecto
* ERNAM = p_vernr AND "Responsable
* ASTNR = p_astnr AND "Solicitante
* PSPNR IN s_pspid . "Proyecto
** rpsco_x-versn = p_versn. "Versión
*
** busco PEPS
* SELECT * FROM prps
* INTO CORRESPONDING FIELDS OF TABLE gt_item
* FOR ALL ENTRIES IN gt_header
* WHERE PSPHI = gt_header-PSPNR. "Elemento PEP
* ENDIF.
*
*
** Si no existe proyecto ni PEP
IF s_pspid IS INITIAL AND s_posid IS INITIAL.
* busco proyectos
SELECT * INTO TABLE gt_header
FROM proj
WHERE vernr = p_vernr AND "Responsable
ASTNR = p_astnr. "Solicitante
* rpsco_x-versn = p_versn. "Versión

* busco PEPS
* SELECT * FROM prps
* INTO CORRESPONDING FIELDS OF TABLE gt_item
* FOR ALL ENTRIES IN gt_header
* WHERE PSPHI = gt_header-PSPNR. "Elemento PEP
clear wa_item.
LOOP AT gt_header INTO wa_header.
SELECT SINGLE PSPHI into wa_item-l_objeto
FROM prps
WHERE PSPHI = wa_header-PSPNR AND "Elemento PEP
prart = p_prart. "Clase de proyecto
PERFORM completa_datos.
ENDLOOP.

ENDIF.
ENDFORM. "TOMA_DATOS



*---------------------------------------------------------------------*
* FORM COMPLETA_DATOS *
*---------------------------------------------------------------------*
FORM completa_datos.

*-----------------------------------------------
* Valores Planificado y Presupuesto
*-----------------------------------------------
SELECT SINGLE WLJHR into wa_item-l_WLJHR_PL FROM BPJA
WHERE WRTTP = '01' AND
OBJNR = wa_item-l_objeto.

SELECT SINGLE WLJHR into wa_item-l_WLJHR_PR FROM BPJA
WHERE WRTTP = '41' AND
OBJNR = wa_item-l_objeto.


*-----------------------------------------------
* Valores Comprometido y Real
*-----------------------------------------------
* SELECT SINGLE WTG001 into wa_item-l_WLJHR_CM FROM COSP
SELECT SINGLE WTG001 WTG002 WTG003 WTG004 WTG005 WTG006 into (l_WTG001 ,l_WTG002 ,l_WTG003, l_WTG004, l_WTG005, l_WTG006) FROM COSP
WHERE WRTTP = '21' OR
WRTTP = '22' OR
WRTTP = '23' OR
WRTTP = '24' AND
OBJNR = wa_item-l_objeto.
wa_item-l_WLJHR_CM = l_WTG001 + l_WTG002 + l_WTG003 + l_WTG004 + l_WTG005 + l_WTG006.

SELECT SINGLE WTG001 WTG002 WTG003 WTG004 WTG005 WTG006 into (l_WTG001 ,l_WTG002 ,l_WTG003, l_WTG004, l_WTG005, l_WTG006) FROM COSP
WHERE WRTTP = '04' OR
WRTTP = '11' AND
OBJNR = wa_item-l_objeto.
wa_item-l_WLJHR_RE = l_WTG001 + l_WTG002 + l_WTG003 + l_WTG004 + l_WTG005 + l_WTG006.


*-----------------------------------------------
* Valores Pagados
**-----------------------------------------------
data: l_ebeln type EBELN,
l_bel type CO_BELNR,
l_REFBN type REFBN,
l_belnr type CO_BELNR,
L_DMBTR type DMBTR.

SELECT single EBELN BELNR INTO (l_ebeln, l_belnr) FROM COEP "a,b
WHERE WRTTP = '04' OR WRTTP = '11'.

IF l_ebeln IS INITIAL. "c
SELECT SINGLE REFBN into l_REFBN FROM COBK
WHERE BELNR = l_BELNR.

SELECT SINGLE belnr into l_bel FROM BSEG "e
WHERE BELNR = l_REFBN AND
VORGN = 'RMRP'.

* miro si esta pagado "f
SELECT single belnr DMBTR into (l_bel ,L_DMBTR) FROM BSAK
WHERE BELNR = l_bel.
IF sy-subrc = 0. "ESTA PAGADO
wa_item-l_WLJHR_PA = L_DMBTR.
ENDIF.

ELSE. "d,e
SELECT single belnr DMBTR into (l_bel ,L_DMBTR) FROM BSEG
WHERE EBELN = l_ebeln AND
VORGN = 'RMRP'.

* miro si esta pagado "f
SELECT single belnr into l_bel FROM BSAK
WHERE BELNR = l_bel.
IF sy-subrc = 0. "ESTA PAGADO
wa_item-l_WLJHR_PA = L_DMBTR.
ENDIF.
ENDIF.


wa_item-l_WLJHR_PA = wa_item-l_WLJHR_RE - wa_item-l_WLJHR_PA.


*----------------------------------------------------------
* Valores ejecutado = valor comprometido + real + pagado
*----------------------------------------------------------
wa_item-l_WLJHR_EJ = wa_item-l_WLJHR_CM + wa_item-l_WLJHR_RE + wa_item-l_WLJHR_PA.

*-----------------------------------------------------------
* Valores presupuesto disponible = presupuesto - ejecutado
*-----------------------------------------------------------
wa_item-l_WLJHR_PD = wa_item-l_WLJHR_PR - wa_item-l_WLJHR_EJ.

*-----------------------------------------------
* Valores desviación = planificado - ejecutado
*-----------------------------------------------
wa_item-l_WLJHR_DE = wa_item-l_WLJHR_PL - wa_item-l_WLJHR_EJ.


* Finalmente añadimos a nuestra tabla.
APPEND wa_item to gt_item.


ENDFORM. "completa_datos.


*---------------------------------------------------------------------*
* FORM LISTADO *
*---------------------------------------------------------------------*
FORM listado.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
*I_INTERFACE_CHECK = ' '
i_callback_program = g_repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
i_tabname_header = 'GT_HEADER'
i_tabname_item = 'GT_ITEM'
* I_STRUCTURE_NAME_HEADER =
* I_STRUCTURE_NAME_ITEM =
is_keyinfo = gs_key
* IS_PRINT =
* IS_REPREP_ID =
* I_BUFFER_ACTIVE =
*I_BYPASSING_BUFFER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab_header = gt_header[]
t_outtab_item = gt_item[]
* 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.

ENDFORM. " LISTADO


*---------------------------------------------------------------------*
* FORM INIT_KEY
**---------------------------------------------------------------------*
FORM init_key.
* Relacion entre los campos de cabecera y los de posicion
gs_key-header01 = 'PSPNR'.
gs_key-item01 = 'PSPHI'.
ENDFORM. " INIT_KEY





Gracias!!
__________________
Saludos
Marc Espinosa
Responder Con Cita
  #2  
Viejo 04/09/08, 20:02:08
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Hola, tal vez t sirva este programa, puede q estes colocando mal los datos dentro de la funcion

BCALV_TEST_HIERSEQ_LIST
__________________
David Carballido Córdova
Responder Con Cita
  #3  
Viejo 05/09/08, 09:01:50
Avatar de Marc Espinosa
Marc Espinosa Marc Espinosa is offline
Member
 
Fecha de Ingreso: ago 2007
Localización: Madrid, Spain
Mensajes: 73
solucionado , tenia unas cosillas mal, eso de volver de vacaciones es mu malo

SAaludos y Gracias!!
__________________
Saludos
Marc Espinosa
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 21:06:52.


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