#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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|