Report ALV NO MUESTRA LA DATA_2

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • dayanareyes
    Member
    • jul
    • 36

    #1

    Report ALV NO MUESTRA LA DATA_2

    viene de Report ALV NO MUESTRA LA DATA
    *----------------------------------------------------------------------*
    ***INCLUDE ZPS_LIST_ENTREGA_FOR .
    *----------------------------------------------------------------------*
    *&---------------------------------------------------------------------*
    *& Form datos_proyecto
    *&---------------------------------------------------------------------*
    FORM datos_proyecto .

    project_definition = p_proy.
    with_activities = 'X'.
    with_milestones = 'X'.

    ENDFORM. " datos_proyecto
    *&---------------------------------------------------------------------*
    *& Form obtener_proyecto
    *&---------------------------------------------------------------------*
    FORM obtener_proyecto .

    CALL FUNCTION 'BAPI_PROJECT_GETINFO'
    EXPORTING
    project_definition = project_definition
    with_activities = with_activities
    with_milestones = with_milestones
    with_subtree = with_subtree
    IMPORTING
    e_project_definition = e_project_definition
    return = return
    TABLES
    i_wbs_element_table = i_wbs_element_table
    e_wbs_element_table = e_wbs_element_table
    e_wbs_milestone_table = e_wbs_milestone_tabl
    e_wbs_hierarchie_table = e_wbs_hierarchie_tab
    e_activity_table = e_activity_table
    e_message_table = e_message_table.

    LOOP AT e_activity_table.
    AT NEW network.
    CALL FUNCTION 'BAPI_NETWORK_GETDETAIL'
    EXPORTING
    number = e_activity_table-network
    IMPORTING
    return = return2
    TABLES
    e_network = e_network2
    e_activity = e_activity2
    e_relation = e_relation
    e_message_table = e_message_table2
    e_activity_element = e_activity_element
    e_activity_milestone = e_activity_milestone
    e_component = e_component2.

    APPEND LINES OF e_activity2 TO e_activity.
    APPEND LINES OF e_component2 TO e_component.
    APPEND LINES OF e_network2 TO e_network.

    ENDAT.
    ENDLOOP.

    IF NOT s_pep IS INITIAL.
    * Los Elementos PEP en SAP tienen dos formatos interno y externos.
    * Asaciados cada uno de ellos a dos rutinas de conversión diferentes.
    * Hemos tenido que usar las dos para poder filtar las opciones de
    * selección.
    LOOP AT s_pep.
    CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'
    EXPORTING
    input = s_pep-low
    IMPORTING
    output = s_pep-low.
    MODIFY s_pep.
    ENDLOOP.

    DELETE e_activity WHERE NOT wbs_element IN s_pep.
    DELETE e_network WHERE NOT wbs_element IN s_pep.


    LOOP AT s_pep.
    CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'
    EXPORTING
    input = s_pep-low
    IMPORTING
    output = s_pep-low.
    MODIFY s_pep.
    ENDLOOP.
    DELETE e_component WHERE NOT wbs_element IN s_pep.
    ENDIF.
    IF NOT s_gra IS INITIAL.
    DELETE e_activity WHERE NOT network IN s_gra.
    DELETE e_component WHERE NOT network IN s_gra.
    DELETE e_network WHERE NOT network IN s_gra.
    ENDIF.
    IF NOT s_ope IS INITIAL.
    DELETE e_activity WHERE NOT activity IN s_ope.
    DELETE e_component WHERE NOT activity IN s_ope.
    ENDIF.
    IF NOT s_mat IS INITIAL.
    DELETE e_component WHERE NOT material IN s_mat.
    ENDIF.
    ENDFORM. " obtener_proyecto
    *&---------------------------------------------------------------------*
    *& Form entregas_proyecto
    *&---------------------------------------------------------------------*
    FORM entregas_proyecto .

    *CALL FUNCTION 'CONVERSION_EXIT_KONPD_INPUT'
    * EXPORTING
    * input = p_proy
    * IMPORTING
    * output = p_proy.
    *
    * SELECT * FROM psli INTO TABLE t_entregas WHERE pspnr = p_proy
    * AND vbeln IN s_vbeln.
    *
    *
    *CALL FUNCTION 'CONVERSION_EXIT_KONPD_OUTPUT'
    * EXPORTING
    * input = p_proy
    * IMPORTING
    * output = p_proy.

    SELECT * FROM lips INTO CORRESPONDING FIELDS OF TABLE t_entregas
    WHERE vbeln IN s_vbeln.



    ENDFORM. " entregas_proyecto
    *&---------------------------------------------------------------------*
    *& 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
    *&---------------------------------------------------------------------*
    *& Form entrega_componente
    *&---------------------------------------------------------------------*
    FORM entrega_componente .

    REFRESH t_entregas_comp. CLEAR t_entregas_comp.

    CHECK NOT t_entregas[] IS INITIAL.

    SELECT vbeln posnr lfimg
    INTO (t_entregas_comp-vbeln, t_entregas_comp-posnr,
    t_entregas_comp-lfimg)
    FROM lips
    FOR ALL ENTRIES IN t_entregas WHERE vbeln = t_entregas-vbeln
    AND rsnum = e_component(10)
    AND rspos = e_component+10(5).
    APPEND t_entregas_comp. CLEAR t_entregas_comp.
    ENDSELECT.

    *para controlar el salto de linea en los componetes con mas de una UMA.
    CLEAR contador.

    LOOP AT t_entregas_comp.
    * Obtenemos las UMA's asociadas a ese componente de entrega.
    PERFORM obtener_uma USING t_entregas_comp-vbeln
    t_entregas_comp-posnr
    t_entregas_comp-lfimg.
    ENDLOOP.


    ENDFORM. " entrega_componente
    *&---------------------------------------------------------------------*
    *& Form obtener_uma
    *&---------------------------------------------------------------------*
    * text
    *----------------------------------------------------------------------*
    * -->P_T_ENTREGAS_COMP_VBELN text
    * -->P_T_ENTREGAS_COMP_POSNR text
    * -->P_T_ENTREGAS_COMP_LFIMG text
    *----------------------------------------------------------------------*
    FORM obtener_uma USING vbeln LIKE lips-vbeln
    posnr LIKE lips-posnr
    lfimg LIKE lips-lfimg.
    DATA: num_pos TYPE i. "Número de posiciones de la UMA.
    DATA: pos_uma(5) TYPE c.
    DATA: vbplk_tab_aux LIKE vbplk_tab OCCURS 0 WITH HEADER LINE.
    DATA: num(4) TYPE c.


    * REFRESH: vbplk_tab, vbplp_tab, vbpls_tab.
    * CLEAR: comwa, vbplk_tab, vbplp_tab, vbpls_tab.
    *
    ** Recuperamos las UMA asociadas a la entrega.
    * comwa-vbeln = vbeln.
    *
    * CALL FUNCTION 'SD_PACKING_PRINT_VIEW'
    * EXPORTING
    * comwa = comwa
    * TABLES
    * vbplk_tab = vbplk_tab
    * vbplp_tab = vbplp_tab
    * vbpls_tab = vbpls_tab.
    * Clear: vbplk_tab, vbplp_tab, vbpls_tab.


    * Obtenemos la UMA en la que se encuentra el componente que estamos
    * tratando.
    SELECT * FROM zuma
    FOR ALL ENTRIES IN vbplk_tab WHERE exidv2 = vbplk_tab-exidv
    * and PEP = e_wbs_element_table-wbs_element
    AND grafo = e_component-network
    AND operacion = e_component-activity
    AND item = e_component-item_number
    AND material = e_component-material.

    READ TABLE vbplk_tab WITH KEY exidv = zuma-exidv2.
    CHECK sy-subrc = 0.

    IF contador NE 1.
    contador = contador + 1.

    * PASAMOS LOS DATOS A LA TABLA.
    * PASAMOS LOS DATOS A LA TABLA.
    PERFORM descripcion_larga USING e_component-material.

    t_tabla-vemng = zuma-cantidad.
    t_tabla-ntgew = vbplk_tab-ntgew.
    t_tabla-brgew = vbplk_tab-brgew.
    t_tabla-laeng = vbplk_tab-laeng.
    t_tabla-breit = vbplk_tab-breit.
    t_tabla-hoehe = vbplk_tab-hoehe.
    t_tabla-tavol = vbplk_tab-tavol.
    t_tabla-exidv = zuma-exidv2.
    t_tabla-num_bultos = 1.
    t_tabla-pos_uma = zuma-nbulto.
    t_tabla-num_bultos = 1.
    t_tabla-ntgew_sup = vbplk_tab-ntgew.
    t_tabla-brdew_sup = vbplk_tab-brgew.
    t_tabla-tavol_sup = vbplk_tab-tavol.
    * MODIFICACION - ANM - 24/09/2007 - rellenar contenedor
    * t_tabla-exidv_sup = vbplk_tab_aux-exidv.
    t_tabla-exidv_sup = zuma-exidv.
    * FIN MODIFICACION - ANM

    * MODIFICACION - VMSM - 31/03/2006 - Asignacion de valores Campos de
    * unidades.
    t_tabla-meabm = vbplk_tab-meabm. " medida
    t_tabla-gewei = vbplk_tab-gewei. " peso
    t_tabla-voleh = vbplk_tab-voleh. " volumen
    t_tabla-geweit = vbplk_tab-gewei. " peso total
    t_tabla-voleht = vbplk_tab-voleh. " volument total
    * FIN MODIFICACION - VMSM

    APPEND t_tabla. CLEAR t_tabla.

    * Tabla auxiliar para agrupar UMA.
    READ TABLE t_uma WITH KEY exidv = zuma-exidv2.
    IF sy-subrc NE 0.
    t_tabla2-num_bultos = 1.
    t_tabla2-pos_uma = zuma-nbulto.
    t_tabla2-num_bultos = 1.
    COLLECT t_tabla2.CLEAR t_tabla2.
    ELSE.
    * t_tabla2-pos_uma = t_uma-item_number.
    t_tabla2-inclu = t_uma-inclu.
    COLLECT t_tabla2. CLEAR t_tabla2.
    ENDIF.

    CONCATENATE zuma-item zuma-nbulto INTO t_uma-inclu
    SEPARATED BY space.
    t_uma-network = e_activity-network .
    t_uma-activity = e_activity-activity.
    t_uma-exidv = zuma-exidv2.
    t_uma-item_number = zuma-item.
    APPEND t_uma. CLEAR t_uma.


    ELSE.
    * PASAMOS LOS DATOS A LA TABLA.
    PERFORM descripcion_larga USING e_component-material.
    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.
    t_tabla-ordensap = e_component-sort_string.
    t_tabla-vemng = zuma-cantidad.
    t_tabla-ntgew = vbplk_tab-ntgew.
    t_tabla-brgew = vbplk_tab-brgew.
    t_tabla-laeng = vbplk_tab-laeng.
    t_tabla-breit = vbplk_tab-breit.
    t_tabla-hoehe = vbplk_tab-hoehe.
    t_tabla-tavol = vbplk_tab-tavol.
    t_tabla-exidv = zuma-exidv2.
    t_tabla-num_bultos = 1.
    t_tabla-pos_uma = zuma-nbulto.
    t_tabla-num_bultos = 1.
    t_tabla-ntgew_sup = vbplk_tab-ntgew.
    t_tabla-brdew_sup = vbplk_tab-brgew.
    t_tabla-tavol_sup = vbplk_tab-tavol.
    t_tabla-exidv_sup = vbplk_tab_aux-exidv.

    * MODIFICACION - VMSM - 31/03/2006 - Asignacion de valores Campos de
    * unidades.
    t_tabla-meabm = vbplk_tab-meabm. " medida
    t_tabla-gewei = vbplk_tab-gewei. " peso
    t_tabla-voleh = vbplk_tab-voleh. " volumen
    t_tabla-geweit = vbplk_tab-gewei. " peso total
    t_tabla-voleht = vbplk_tab-voleh. " volument total
    * FIN MODIFICACION - VMSM

    APPEND t_tabla. CLEAR t_tabla.


    * Tabla auxiliar.
    READ TABLE t_uma WITH KEY exidv = zuma-exidv2.
    IF sy-subrc NE 0.
    t_tabla2-wbs_element = e_wbs_element_table-wbs_element.
    t_tabla2-network = e_activity-network .
    t_tabla2-activity = e_activity-activity.
    t_tabla2-description = e_activity-description.
    t_tabla2-item_number = e_component-item_number .
    t_tabla2-matl_desc = e_component-matl_desc.
    t_tabla2-ordensap = e_component-sort_string.
    t_tabla2-num_bultos = 1.
    t_tabla2-pos_uma = zuma-nbulto.
    t_tabla2-num_bultos = 1.
    COLLECT t_tabla2. CLEAR t_tabla2.
    ELSE.
    t_tabla2-wbs_element = e_wbs_element_table-wbs_element.
    t_tabla2-network = e_activity-network .
    t_tabla2-activity = e_activity-activity.
    t_tabla2-description = e_activity-description.
    t_tabla2-item_number = e_component-item_number .
    t_tabla2-matl_desc = e_component-matl_desc.
    t_tabla2-ordensap = e_component-sort_string.
    t_tabla2-inclu = t_uma-inclu.
    * t_tabla2-pos_uma = t_uma-item_number.
    COLLECT t_tabla2. CLEAR t_tabla2.
    ENDIF.

    CONCATENATE zuma-item zuma-nbulto INTO t_uma-inclu
    SEPARATED BY space.
    t_uma-exidv = zuma-exidv2.
    t_uma-network = e_activity-network .
    t_uma-activity = e_activity-activity.
    t_uma-item_number = zuma-item.
    APPEND t_uma. CLEAR t_uma.

    ENDIF.


    ENDSELECT.






    ENDFORM. " obtener_uma
    *&---------------------------------------------------------------------*
    *& Form print
    *&---------------------------------------------------------------------*
    FORM print .
    ls_print-print = ' '. "PRINT IMMEDIATE
    ls_print-no_print_selinfos = 'X'. "NO SELECTION INFO
    ls_print-no_coverpage = ' '. "NO COVER PAGE
    ls_print-no_new_page = ' '.
    ls_print-no_print_listinfos = 'X'. "NO PRINT LIST INFO
    ls_print-reserve_lines = 0 .
    ENDFORM. " print
    *&---------------------------------------------------------------------*
    *& Form catalogo
    *&---------------------------------------------------------------------*
    FORM catalogo .
    REFRESH gt_fieldcat.

    * Tratamiento del catálogo de campos.
    PERFORM tratar_catalogo.

    * Clasificación y orden de los campos a mostrar.
    PERFORM sort.


    ENDFORM. " catalogo
    *&---------------------------------------------------------------------*
    *& Form tratar_catalogo
    *&---------------------------------------------------------------------*
    FORM tratar_catalogo .

    DATA: fieldcat_ln LIKE LINE OF gt_fieldcat.
    DATA: pos TYPE i VALUE 1.
    * Plantilla para añadir nuevos campos. Posicionarla entre los campos
    * que queramos que aparezca la nueva columna.
    * CLEAR fieldcat_ln.
    * fieldcat_ln-fieldname = ''.
    * fieldcat_ln-tabname = 'T_TABLA'.
    * fieldcat_ln-seltext_m = ' '.
    * fieldcat_ln-no_convext = ' '.
    * fieldcat_ln-no_out = ' '.
    * fieldcat_ln-decimals_out = 0.
    * FIELDCAT_LN-REF_FIELDNAME = ' '.
    * FIELDCAT_LN-REF_TABNAME = ' '.
    * fieldcat_ln-col_pos = pos.
    * APPEND fieldcat_ln TO gt_fieldcat.
    * pos = pos + 1.

    CLEAR fieldcat_ln.
    fieldcat_ln-fieldname = 'WBS_ELEMENT'.
    fieldcat_ln-tabname = 'T_TABLA'.
    fieldcat_ln-seltext_m = 'PEP'.
    fieldcat_ln-no_convext = ' '.
    fieldcat_ln-no_out = ' '.
    fieldcat_ln-decimals_out = 0.
    fieldcat_ln-ref_fieldname = ' '.
    fieldcat_ln-ref_tabname = ' '.
    fieldcat_ln-col_pos = pos.
    APPEND fieldcat_ln TO gt_fieldcat.
    pos = pos + 1.

    CLEAR fieldcat_ln.
    fieldcat_ln-fieldname = 'NETWORK'.
    fieldcat_ln-tabname = 'T_TABLA'.
    fieldcat_ln-seltext_m = 'Grafo'.
    fieldcat_ln-no_convext = ' '.
    fieldcat_ln-no_out = ' '.
    fieldcat_ln-decimals_out = 0.
    fieldcat_ln-ref_fieldname = ' '.
    fieldcat_ln-ref_tabname = ' '.
    fieldcat_ln-col_pos = pos.
    APPEND fieldcat_ln TO gt_fieldcat.
    pos = pos + 1.

    CLEAR fieldcat_ln.
    fieldcat_ln-fieldname = 'ACTIVITY'.
    fieldcat_ln-tabname = 'T_TABLA'.
    fieldcat_ln-seltext_m = 'Operación'.
    fieldcat_ln-no_convext = ' '.
    fieldcat_ln-no_out = ' '.
    fieldcat_ln-decimals_out = 0.
    fieldcat_ln-ref_fieldname = ' '.
    fieldcat_ln-ref_tabname = ' '.
    fieldcat_ln-col_pos = pos.
    APPEND fieldcat_ln TO gt_fieldcat.
    pos = pos + 1.

    CLEAR fieldcat_ln.
    fieldcat_ln-fieldname = 'ITEM_NUMBER'.
    fieldcat_ln-tabname = 'T_TABLA'.
    fieldcat_ln-seltext_m = 'Número de item'.
    fieldcat_ln-no_convext = ' '.
    fieldcat_ln-no_out = ' '.
    fieldcat_ln-decimals_out = 0.
    fieldcat_ln-ref_fieldname = ' '.
    fieldcat_ln-ref_tabname = ' '.
    fieldcat_ln-col_pos = pos.
    APPEND fieldcat_ln TO gt_fieldcat.
    pos = pos + 1.


    CLEAR fieldcat_ln.
    fieldcat_ln-fieldname = 'DESCRIPTION'.
    fieldcat_ln-tabname = 'T_TABLA'.
    fieldcat_ln-seltext_m = 'Descripción '.
    fieldcat_ln-no_convext = ' '.
    fieldcat_ln-no_out = ' '.
    fieldcat_ln-decimals_out = 0.
    fieldcat_ln-ref_fieldname = ' '.
    fieldcat_ln-ref_tabname = ' '.
    fieldcat_ln-col_pos = pos.
    APPEND fieldcat_ln TO gt_fieldcat.
    pos = pos + 1.

    CLEAR fieldcat_ln.
    fieldcat_ln-fieldname = 'VEMNG'.
    fieldcat_ln-tabname = 'T_TABLA'.
    fieldcat_ln-seltext_m = 'Cantidad ITEM'.
    fieldcat_ln-no_convext = ' '.
    fieldcat_ln-no_out = ' '.
    fieldcat_ln-decimals_out = 0.
    fieldcat_ln-ref_fieldname = ' '.
    fieldcat_ln-ref_tabname = ' '.
    fieldcat_ln-col_pos = pos.
    APPEND fieldcat_ln TO gt_fieldcat.
    pos = pos + 1.

    CLEAR fieldcat_ln.
    fieldcat_ln-fieldname = 'MATL_DESC'.
    fieldcat_ln-tabname = 'T_TABLA'.
    fieldcat_ln-seltext_m = 'Descripción'.
    fieldcat_ln-no_convext = ' '.
    fieldcat_ln-no_out = 'X'.
    fieldcat_ln-decimals_out = 0.
    fieldcat_ln-ref_fieldname = ' '.
    fieldcat_ln-ref_tabname = ' '.
    fieldcat_ln-col_pos = pos.
    APPEND fieldcat_ln TO gt_fieldcat.
    pos = pos + 1.

    CLEAR fieldcat_ln.
    fieldcat_ln-fieldname = 'DESC_LARGA'.
    fieldcat_ln-tabname = 'T_TABLA'.
    fieldcat_ln-seltext_m = 'Descripción'.
    fieldcat_ln-no_convext = ' '.
    fieldcat_ln-no_out = ' '.
    fieldcat_ln-decimals_out = 0.
    fieldcat_ln-ref_fieldname = ' '.
    fieldcat_ln-ref_tabname = ' '.
    fieldcat_ln-col_pos = pos.
    APPEND fieldcat_ln TO gt_fieldcat.
    pos = pos + 1.

    continua en ALV NO MUESTRA LA DATA_3
Trabajando...