Anda di halaman 1dari 20

*----------------------------------------------------------------------* ***INCLUDE ZQMP0018FMAI . *----------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form get_data *&---------------------------------------------------------------------* FORM get_data . FIELD-SYMBOLS:<fs> LIKE LINE OF gti_carac.

FIELD-SYMBOLS:<fs1> LIKE LINE OF gti_alv1. REFRESH:gti_s903, gti_carac,gti_alv1. SELECT werks zind mkmnr INTO CORRESPONDING FIELDS OF TABLE gti_carac FROM zqmcaract4 WHERE werks EQ p_werks ORDER BY zind. LOOP AT gti_carac ASSIGNING <fs>. CONCATENATE <fs>-werks <fs>-mkmnr INTO <fs>-werkstprue. SELECT SINGLE b~kurztext INTO <fs>-kurztext FROM qpmk AS a INNER JOIN qpmt AS b ON a~zaehler = b~zaehler AND a~mkmnr = b~mkmnr AND a~version = b~version WHERE a~mkmnr EQ <fs>-mkmnr. ENDLOOP. SELECT werkstprue summw masseinhsw zhln INTO CORRESPONDING FIELDS OF TABLE gti_s903 FROM s903 WHERE sptag EQ p_fecha AND matnr IN s_matnr AND werk EQ p_werks AND verid EQ p_verid. DATA: cont TYPE i. CLEAR cont. *adicion de campos manuales *Cantidad a procesar ADD 1 TO cont. gti_alv1-kurztext = 'Cantidad a procesar'. gti_alv1-manual = 'X'. gti_alv1-posnr = 1. gti_alv1-masseinhsw = 'TO'. APPEND gti_alv1. CLEAR: gti_alv1. *Humedad en MP ADD 1 TO cont. gti_alv1-kurztext = 'Humedad en M.P.'. gti_alv1-manual = 'X'. gti_alv1-posnr = 2. gti_alv1-masseinhsw = '%'. APPEND gti_alv1. CLEAR: gti_alv1. *Grasa en MP

ADD 1 TO cont. gti_alv1-kurztext = 'Grasa en M.P.'. gti_alv1-manual = 'X'. gti_alv1-posnr = 3. gti_alv1-masseinhsw = '%'. APPEND gti_alv1. CLEAR: gti_alv1. *Solidos en MP ADD 1 TO cont. gti_alv1-kurztext = 'Slidos en M.P.'. gti_alv1-posnr = 4. gti_alv1-masseinhsw = '%'. APPEND gti_alv1. CLEAR: gti_alv1. *adicin de caracteristicas LOOP AT gti_carac. ADD 1 TO cont. IF cont EQ '14'. cont = 16. ENDIF. IF cont EQ '20'. cont = 21. ENDIF. IF cont EQ '19'. READ TABLE gti_alv1 WITH KEY posnr = 17. IF sy-subrc EQ 0. gti_alv1-summw = '0.99' * gti_alv1-summw . ENDIF. ELSE. READ TABLE gti_s903 WITH KEY werkstprue = gti_carac-werkstprue. IF sy-subrc EQ 0. gti_alv1-summw = gti_s903-summw / gti_s903-zhln. ENDIF. ENDIF. gti_alv1-posnr = cont. gti_alv1-kurztext = gti_carac-kurztext. gti_alv1-zind = gti_carac-zind. gti_alv1-masseinhsw = '%'. APPEND gti_alv1. CLEAR gti_alv1. ENDLOOP. gti_alv1-kurztext = 'Solidos en Concentrado'. gti_alv1-posnr = 14. gti_alv1-summw = 100. gti_alv1-masseinhsw = '%'. APPEND gti_alv1.

CLEAR: gti_alv1. gti_alv1-kurztext = 'Humedad en Concentrado'. gti_alv1-posnr = 15. gti_alv1-masseinhsw = '%'. gti_alv1-manual = 'X'. APPEND gti_alv1. CLEAR: gti_alv1. gti_alv1-kurztext = 'Adicin Conc a S. Vapor'. gti_alv1-posnr = 20. gti_alv1-masseinhsw = '%'. gti_alv1-manual = 'X'. gti_alv1-summw = '100'. APPEND gti_alv1. CLEAR: gti_alv1. SORT gti_alv1 BY posnr. LOOP AT gti_alv1 ASSIGNING <fs1>. IF <fs1>-manual EQ 'X'. PERFORM fill_celltab USING 'RW' CHANGING <fs1>-celltab. ELSE. PERFORM fill_celltab USING 'RO' CHANGING <fs1>-celltab. ENDIF. ENDLOOP. ENDFORM. " get_data *&---------------------------------------------------------------------* *& Module STATUS_0100 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE status_0100 OUTPUT. SET PF-STATUS 'M0100'. SET TITLEBAR 'T01'. IF g_custom_container IS INITIAL. CREATE OBJECT g_custom_container EXPORTING container_name = g_container. CREATE OBJECT grid1 EXPORTING i_parent = g_custom_container. CALL METHOD grid1->get_variant IMPORTING es_variant = ls_vari. ls_vari-report = sy-repid.

ls_vari-handle = space. ls_vari-log_group = space. ls_vari-username = space. * ls_vari-variant = p_vari. ls_vari-text = space. ls_vari-dependvars = space. * -------------------------------------------------------* *-FIELDCAT PERFORM lt_fcat CHANGING lt_fcat. *-layout DATA:lv_title TYPE lvc_title. DATA:lv_fecha(10) TYPE c. CONCATENATE p_fecha+6(2) '.' p_fecha+4(2) '.' p_fecha+0(4) INTO lv_fecha. CONCATENATE 'Centro: ' p_werks gv_name1 'Fecha: ' lv_fecha 'Turno: ' p_veri d INTO lv_title SEPARATED BY space . cp_layo-grid_title = cp_layo-smalltitle = cp_layo-cwidth_opt cp_layo-zebra cp_layo-stylefname = lv_title. 'X'. = 'X'. = 'X'. 'CELLTAB'.

* *

* * *

cp_layo-sel_mode = 'B'. cp_layo-excp_fname = 'LIGHT'. cp_layo-excp_led = 'X'. cp_layo-excp_conds = 'X'.

*1 editable, 0 no editable CALL METHOD grid1->set_ready_for_input EXPORTING i_ready_for_input = 1. CLEAR:gs_test. CLEAR:gs_test. APPEND '&DETAIL' TO gs_test-excl_func. APPEND '&&SEP00' TO gs_test-excl_func. APPEND '&&SEP01' TO gs_test-excl_func. APPEND '&&SEP02' TO gs_test-excl_func. APPEND '&&SEP03' TO gs_test-excl_func. APPEND '&SORT_ASC' TO gs_test-excl_func. APPEND '&SORT_DSC' TO gs_test-excl_func. APPEND '&FIND' TO gs_test-excl_func. APPEND '&FIND_MORE' TO gs_test-excl_func. APPEND '&MB_FILTER' TO gs_test-excl_func. APPEND '&&SEP04' TO gs_test-excl_func. APPEND '&MB_SUM' TO gs_test-excl_func. APPEND '&MB_SUBTOT' TO gs_test-excl_func. APPEND '&&SEP05' TO gs_test-excl_func. APPEND '&PRINT_BACK' TO gs_test-excl_func. APPEND '&MB_VIEW' TO gs_test-excl_func. APPEND '&MB_EXPORT' TO gs_test-excl_func. APPEND '&MB_VARIANT' TO gs_test-excl_func. APPEND '&&SEP06' TO gs_test-excl_func.

* * *

APPEND '&GRAPH ' TO gs_test-excl_func. APPEND '&&SEP07' TO gs_test-excl_func. APPEND '&INFO' TO gs_test-excl_func. APPEND APPEND APPEND APPEND APPEND APPEND APPEND APPEND APPEND APPEND APPEND APPEND '&CHECK' TO gs_test-excl_func. '&REFRESH' TO gs_test-excl_func. '&LOCAL&CUT' TO gs_test-excl_func. '&LOCAL&COPY' TO gs_test-excl_func. '&MB_PASTE' TO gs_test-excl_func. '&LOCAL&PASTE' TO gs_test-excl_func. '&LOCAL&PASTE_NEW_ROW' TO gs_test-excl_func. '&LOCAL&UNDO' TO gs_test-excl_func. '&LOCAL&APPEND' TO gs_test-excl_func. '&LOCAL&INSERT_ROW' TO gs_test-excl_func. '&LOCAL&DELETE_ROW' TO gs_test-excl_func. '&LOCAL&COPY_ROW' TO gs_test-excl_func.

APPEND LINES OF gs_test-excl_func TO lt_excl_func. CALL METHOD grid1->set_table_for_first_display EXPORTING is_layout = cp_layo i_save = 'A' is_variant = ls_vari i_default = 'X' it_toolbar_excluding = lt_excl_func CHANGING it_outtab = gti_alv1[] it_fieldcatalog = lt_fcat. *activa ENTER CALL METHOD grid1->register_edit_event EXPORTING i_event_id = 18. CREATE OBJECT cp_even_rcv. SET HANDLER cp_even_rcv->handle_data_changed FOR grid1. SET HANDLER cp_even_rcv->handle_user_command FOR grid1. SET HANDLER cp_even_rcv->handle_toolbar FOR grid1. SET HANDLER cp_even_rcv->handle_double_click FOR grid1. SET HANDLER cp_even_rcv->handle_button_click FOR grid1. CALL METHOD grid1->set_toolbar_interactive. ENDIF. * CALL METHOD: grid1->refresh_table_display. ENDMODULE. " STATUS_0100 OUTPUT *&---------------------------------------------------------------------* *& Module back_0100 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE back_0100 INPUT. CASE ok_code1.

* *

WHEN 'BACK'. SET SCREEN 0. LEAVE SCREEN. ENDCASE. ENDMODULE. " back_0100 INPUT *&---------------------------------------------------------------------* *& Form lt_fcat *&---------------------------------------------------------------------* FORM lt_fcat CHANGING p_fieldtab TYPE lvc_t_fcat. DATA: l_fieldcat TYPE lvc_s_fcat. REFRESH:p_fieldtab. l_fieldcat-fieldname = 'KURZTEXT'. l_fieldcat-just = 'L'. l_fieldcat-outputlen = 30. l_fieldcat-scrtext_s = text-900. l_fieldcat-scrtext_l = text-900. l_fieldcat-scrtext_m = text-900. l_fieldcat-datatype = 'CHAR'. l_fieldcat-tabname = 'GTI_ALV1'. APPEND l_fieldcat TO p_fieldtab. CLEAR: l_fieldcat. l_fieldcat-fieldname = 'SUMMW'. l_fieldcat-just = 'R'. l_fieldcat-outputlen = 15. l_fieldcat-scrtext_s = text-902. l_fieldcat-scrtext_l = text-902. l_fieldcat-scrtext_m = text-902. l_fieldcat-datatype = 'QUAN'. l_fieldcat-ref_table = 'EKPO'. l_fieldcat-ref_field = 'MENGE'. l_fieldcat-coltext = text-902. l_fieldcat-qfieldname = 'MASSEINHSW'. l_fieldcat-tabname = 'GTI_ALV1'. APPEND l_fieldcat TO p_fieldtab. CLEAR: l_fieldcat. l_fieldcat-fieldname = 'MASSEINHSW'. l_fieldcat-just = 'C'. l_fieldcat-outputlen = 5. l_fieldcat-scrtext_s = text-903. l_fieldcat-scrtext_l = text-903. l_fieldcat-scrtext_m = text-903. l_fieldcat-ref_table = 'EKPO'. l_fieldcat-ref_field = 'MEINS'. l_fieldcat-datatype = 'UNIT'. l_fieldcat-tabname = 'GTI_ALV1'. APPEND l_fieldcat TO p_fieldtab. CLEAR: l_fieldcat. ENDFORM. " lt_fcat

*&---------------------------------------------------------------------* *& Form fill_celltab *&---------------------------------------------------------------------*

FORM fill_celltab USING value(p_mode) CHANGING pt_celltab TYPE lvc_t_styl. DATA: ls_celltab TYPE lvc_s_styl, l_mode TYPE raw4. IF p_mode EQ 'RW'. *Use attribute CL_GUI_ALV_GRID=>MC_STYLE_ENABLED to set a cell * to status "editable". l_mode = cl_gui_alv_grid=>mc_style_enabled. ELSE. "p_mode eq 'RO' *Use attribute CL_GUI_ALV_GRID=>MC_STYLE_DISABLED to set a cell * to status "non-editable". l_mode = cl_gui_alv_grid=>mc_style_disabled. ENDIF. ls_celltab-fieldname = 'SUMMW'. ls_celltab-style = l_mode. INSERT ls_celltab INTO TABLE pt_celltab. * ls_celltab-fieldname = 'BELNR'. * ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled. * INSERT ls_celltab INTO TABLE pt_celltab. ENDFORM. "fill_celltab *&---------------------------------------------------------------------* *& Module STATUS_0200 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE status_0200 OUTPUT. SET PF-STATUS 'M0200'. SET TITLEBAR 'T02'. IF g_custom_container2 IS INITIAL. CREATE OBJECT g_custom_container2 EXPORTING container_name = g_container2. CREATE OBJECT grid2 EXPORTING i_parent = g_custom_container2. CALL METHOD grid2->get_variant IMPORTING es_variant = ls_vari2. ls_vari2-report = sy-repid. ls_vari2-handle = space. ls_vari2-log_group = space. ls_vari2-username = space. * ls_vari-variant = p_vari. ls_vari2-text = space. ls_vari2-dependvars = space. * -------------------------------------------------------* *-FIELDCAT PERFORM lt_fcat2 CHANGING lt_fcat2. *-layout DATA:lv_title2 TYPE lvc_title. DATA:lv_fecha0(10) TYPE c. CONCATENATE p_fecha+6(2) '.' p_fecha+4(2) '.'

p_fecha+0(4) INTO lv_fecha0. CONCATENATE 'Centro: ' p_werks gv_name1 'Fecha: ' lv_fecha0 'Turno: ' p_ver id INTO lv_title2 SEPARATED BY space . cp_layo2-grid_title cp_layo2-smalltitle cp_layo-cwidth_opt cp_layo-zebra cp_layo2-ctab_fname = lv_title2. = 'X'. = 'X'. = 'X'. = 'CELLCOLORS'.

* *

cp_layo2-stylefname = 'CELLTAB'. * * * cp_layo2-sel_mode = cp_layo-excp_fname cp_layo-excp_led = cp_layo-excp_conds 'B'. = 'LIGHT'. 'X'. = 'X'.

*1 editable, 0 no editable * CALL METHOD grid2->set_ready_for_input * EXPORTING * i_ready_for_input = 1. CLEAR:gs_test. CLEAR:gs_test. APPEND '&DETAIL' TO gs_test-excl_func. APPEND '&&SEP00' TO gs_test-excl_func. APPEND '&&SEP01' TO gs_test-excl_func. APPEND '&&SEP02' TO gs_test-excl_func. APPEND '&&SEP03' TO gs_test-excl_func. APPEND '&SORT_ASC' TO gs_test-excl_func. APPEND '&SORT_DSC' TO gs_test-excl_func. APPEND '&FIND' TO gs_test-excl_func. APPEND '&FIND_MORE' TO gs_test-excl_func. APPEND '&MB_FILTER' TO gs_test-excl_func. APPEND '&&SEP04' TO gs_test-excl_func. APPEND '&MB_SUM' TO gs_test-excl_func. APPEND '&MB_SUBTOT' TO gs_test-excl_func. APPEND '&&SEP05' TO gs_test-excl_func. APPEND '&PRINT_BACK' TO gs_test-excl_func. APPEND '&MB_VIEW' TO gs_test-excl_func. APPEND '&MB_EXPORT' TO gs_test-excl_func. APPEND '&MB_VARIANT' TO gs_test-excl_func. APPEND '&&SEP06' TO gs_test-excl_func. APPEND '&GRAPH ' TO gs_test-excl_func. APPEND '&&SEP07' TO gs_test-excl_func. APPEND '&INFO' TO gs_test-excl_func. APPEND APPEND APPEND APPEND APPEND APPEND APPEND APPEND APPEND '&CHECK' TO gs_test-excl_func. '&REFRESH' TO gs_test-excl_func. '&LOCAL&CUT' TO gs_test-excl_func. '&LOCAL&COPY' TO gs_test-excl_func. '&MB_PASTE' TO gs_test-excl_func. '&LOCAL&PASTE' TO gs_test-excl_func. '&LOCAL&PASTE_NEW_ROW' TO gs_test-excl_func. '&LOCAL&UNDO' TO gs_test-excl_func. '&LOCAL&APPEND' TO gs_test-excl_func.

* * *

APPEND '&LOCAL&INSERT_ROW' TO gs_test-excl_func. APPEND '&LOCAL&DELETE_ROW' TO gs_test-excl_func. APPEND '&LOCAL&COPY_ROW' TO gs_test-excl_func. APPEND LINES OF gs_test-excl_func TO lt_excl_func2. CALL METHOD grid2->set_table_for_first_display EXPORTING is_layout = cp_layo2 i_save = 'A' is_variant = ls_vari2 i_default = 'X' it_toolbar_excluding = lt_excl_func2 CHANGING it_outtab = gti_alv2[] it_fieldcatalog = lt_fcat2. *activa ENTER * CALL METHOD grid2->register_edit_event * EXPORTING * i_event_id = 18. * * CREATE OBJECT cp_even_rcv. * SET HANDLER cp_even_rcv->handle_data_changed FOR grid1. * SET HANDLER cp_even_rcv->handle_user_command FOR grid1. * SET HANDLER cp_even_rcv->handle_toolbar FOR grid1. ** SET HANDLER cp_even_rcv->handle_double_click FOR grid1. ** SET HANDLER cp_even_rcv->handle_button_click FOR grid1. * CALL METHOD grid2->set_toolbar_interactive. ENDIF. CALL METHOD: grid2->refresh_table_display. ENDMODULE. " STATUS_0200 OUTPUT *&---------------------------------------------------------------------* *& Module back_0200 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE back_0200 INPUT. CASE ok_code2. WHEN 'BACK'. SET SCREEN 0. LEAVE SCREEN. ENDCASE. ENDMODULE. " back_0200 INPUT *&---------------------------------------------------------------------* *& Form lt_fcat2 *&---------------------------------------------------------------------* FORM lt_fcat2 CHANGING p_fieldtab TYPE lvc_t_fcat. DATA: l_fieldcat TYPE lvc_s_fcat.

REFRESH:p_fieldtab. l_fieldcat-fieldname = 'KURZTEXT'. l_fieldcat-just = 'L'. l_fieldcat-outputlen = 30. l_fieldcat-scrtext_s = text-900. l_fieldcat-scrtext_l = text-900. l_fieldcat-scrtext_m = text-900. l_fieldcat-datatype = 'CHAR'. l_fieldcat-tabname = 'GTI_ALV2'. APPEND l_fieldcat TO p_fieldtab. CLEAR: l_fieldcat. l_fieldcat-fieldname = 'SUMMW'. l_fieldcat-just = 'R'. l_fieldcat-outputlen = 15. l_fieldcat-scrtext_s = text-902. l_fieldcat-scrtext_l = text-902. l_fieldcat-scrtext_m = text-902. l_fieldcat-datatype = 'QUAN'. l_fieldcat-ref_table = 'EKPO'. l_fieldcat-ref_field = 'MENGE'. l_fieldcat-coltext = text-902. l_fieldcat-qfieldname = 'MASSEINHSW'. l_fieldcat-tabname = 'GTI_ALV2'. APPEND l_fieldcat TO p_fieldtab. CLEAR: l_fieldcat. l_fieldcat-fieldname = 'MASSEINHSW'. l_fieldcat-just = 'C'. l_fieldcat-outputlen = 5. l_fieldcat-scrtext_s = text-903. l_fieldcat-scrtext_l = text-903. l_fieldcat-scrtext_m = text-903. l_fieldcat-ref_table = 'EKPO'. l_fieldcat-ref_field = 'MEINS'. l_fieldcat-datatype = 'UNIT'. l_fieldcat-tabname = 'GTI_ALV2'. APPEND l_fieldcat TO p_fieldtab. CLEAR: l_fieldcat. ENDFORM. " lt_fcat2 *&---------------------------------------------------------------------* *& Form balance_masa *&---------------------------------------------------------------------* FORM balance_masa. DATA: valor1 LIKE ekpo-menge,valor2 LIKE ekpo-menge,valor3 LIKE ekpo-menge, va lor4 LIKE ekpo-menge, valor5 LIKE ekpo-menge,valor6 LIKE ekpo-menge,valor7 LIKE ekpo-menge,val or8 LIKE ekpo-menge, valor9 LIKE ekpo-menge,valor10 LIKE ekpo-menge,valor11 LIKE ekpo-menge,v alor12 LIKE ekpo-menge, valor13 LIKE ekpo-menge,valor14 LIKE ekpo-menge,valor15 LIKE ekpo-menge, valor16 LIKE ekpo-menge, valor17 LIKE ekpo-menge,valor18 LIKE ekpo-menge,valor19 LIKE ekpo-menge, valor20 LIKE ekpo-menge,

valor21 LIKE ekpo-menge,valor22 LIKE ekpo-menge,valor23 valor24 LIKE ekpo-menge, valor25 LIKE ekpo-menge,valor26 LIKE ekpo-menge,valor27 valor28 LIKE ekpo-menge, valor29 LIKE ekpo-menge,valor30 LIKE ekpo-menge,valor31 valor32 LIKE ekpo-menge, valor33 LIKE ekpo-menge,valor34 LIKE ekpo-menge,valor35 valor36 LIKE ekpo-menge, valor37 LIKE ekpo-menge,valor38 LIKE ekpo-menge,valor39 valor40 LIKE ekpo-menge, valor41 LIKE ekpo-menge,valor42 LIKE ekpo-menge,valor43 valor44 LIKE ekpo-menge, valor45 LIKE ekpo-menge,valor46 LIKE ekpo-menge,valor47 valor48 LIKE ekpo-menge, valor49 LIKE ekpo-menge,valor50 LIKE ekpo-menge,valor51 valor52 LIKE ekpo-menge, valor53 LIKE ekpo-menge,valor54 LIKE ekpo-menge,valor55 valor56 LIKE ekpo-menge, valor57 LIKE ekpo-menge,valor58 LIKE ekpo-menge,valor59 valor60 LIKE ekpo-menge, valor61 LIKE ekpo-menge,valor62 LIKE ekpo-menge,valor63 p19 LIKE ekpo-menge, p16 LIKE ekpo-menge, cant LIKE ekpo-menge,p20 LIKE ekpo-menge. REFRESH gti_alv2. *posicion 1 PERFORM posiciones USING 'MATERIA PRIMA (Ton.):' '1' '1' 'X' 'TO' CHANGING valor1. *posicion 2 PERFORM posiciones USING 'HUMEDAD' '2' '2' '' '%' CHANGING valor2. *posicion 3 PERFORM posiciones USING 'GRASA' '3' '3' '' '%' CHANGING valor3. *posicion 4 PERFORM posiciones USING 'SOLIDOS' '4' '4' '' '%' CHANGING valor4. *posicion 6 PERFORM posiciones USING 'HUMEDAD' '5' '6' '' '%' CHANGING valor6. *posicion 7 PERFORM posiciones USING 'GRASA' '6' '7' '' '%' CHANGING valor7. *posicion 8 valor8 = 100 - valor6 - valor7. PERFORM posic_calc USING 'SOLIDOS'

LIKE ekpo-menge, LIKE ekpo-menge, LIKE ekpo-menge, LIKE ekpo-menge, LIKE ekpo-menge, LIKE ekpo-menge, LIKE ekpo-menge, LIKE ekpo-menge, LIKE ekpo-menge, LIKE ekpo-menge, LIKE ekpo-menge,

'8' valor8 '' '%'. *posicion 12 PERFORM posiciones USING 'SOLIDOS' '7' '12' '' '%' CHANGING valor12. *posicion 9 cant = valor12 - valor8. IF cant EQ 0. valor9 = 0. ELSE. valor9 = ( valor1 * ( valor4 - valor8 ) ) / ( valor12 - valor8 ). ENDIF. PERFORM posic_calc USING 'LICOR PRENSA (Ton.):' '9' valor9 'X' 'TO'. *posicion 5 valor5 = valor1 - valor9. PERFORM posic_calc USING 'TORTA DE PRENSA (Ton.):' '5' valor5 'X' 'TO'. *posicion 11 IF valor9 EQ 0. valor11 = 0. ELSE. valor11 = ( ( valor1 * valor3 ) - ( valor5 * valor7 ) ) / valor9 . ENDIF. PERFORM posic_calc USING 'GRASA' '11' valor11 '' '%'. *posicion 10 valor10 = 100 - valor11 - valor12. PERFORM posic_calc USING 'HUMEDAD' '10' valor10 '' '%'. *posicion 18 PERFORM posiciones USING 'HUMEDAD' '8' '18' '' '%' CHANGING valor18. *posicion 19 PERFORM posiciones USING 'GRASA' '9' '19' '' '%' CHANGING valor19. *posicion 20 valor20 = 100 - valor18 - valor19. PERFORM posic_calc USING 'SOLIDOS' '20' valor20 '' '%'. *posicion 22 PERFORM posiciones USING 'HUMEDAD' '10' '22' '' '%' CHANGING valor22. *posicion 27 PERFORM posiciones USING 'GRASA' '12' '27' '' '%' CHANGING valor27.

*posicion 28 PERFORM posiciones USING 'SOLIDOS' '13' '28' '' '%' CHANGING valor28. *posicion 26 valor26 = 100 - valor27 - valor28. PERFORM posic_calc USING 'HUMEDAD' '26' valor26 '' '%'. *posicion 24 PERFORM posiciones USING 'SOLIDOS' '11' '24' '' '%' CHANGING valor24. *posicion 23 valor23 = 100 - valor22 - valor24. PERFORM posic_calc USING 'GRASA' '23' valor23 '' '%'. *posicion 25 IF valor24 EQ 0 OR valor23 EQ 0. valor25 = 0. ELSE. valor25 = ( valor9 * ( ( 1 - valor12 / valor24 ) * ( 1 - valor19 / valor23 ) ( 1 - valor11 / valor23 ) * ( 1 - valor20 / valor24 ) ) / ( ( 1 valor28 / valor24 ) * ( 1 - valor19 / valor23 ) - ( 1 - valor27 / valor23 ) * ( 1 valor20 / valor24 ) ) ). PERFORM posic_calc USING 'AGUA DE COLA (Ton.):' '25' valor25 'X' 'TO'. ENDIF. *posicion 17 IF valor24 EQ 0. valor17 = 0. ELSE. valor17 = ( ( valor9 * ( 1 - valor12 / valor24 ) valor25 * ( 1 - valor28 / valor24 ) ) / ( 1 - valor20 / valor24 ) ). ENDIF. PERFORM posic_calc USING 'Torta de separadora(Ton.):' '17' valor17 'X' 'TO'. *posicion 21 valor21 = valor9 - valor17 - valor25. PERFORM posic_calc USING 'ACEITE(Ton.):' '21' valor21 'X' 'TO'. *posicion 13 valor13 = valor21 + valor25. PERFORM posic_calc USING 'LICOR SEPARADORA(Ton.):' '13' valor13 'X' 'TO'. *posicion 14 IF valor13 EQ 0.

valor14 = 0. ELSE. valor14 = ( ( valor25 * valor26 + valor21 * valor22 ) / valor13 ). ENDIF. PERFORM posic_calc USING 'HUMEDAD' '14' valor14 ' ' '%'. *posicion 15 IF valor13 EQ 0. valor15 = 0. ELSE. valor15 = ( valor25 * valor27 + valor21 * valor23 ) / valor13 . ENDIF. PERFORM posic_calc USING 'GRASA' '15' valor15 ' ' '%'. *posicion 16 IF valor13 EQ 0. valor16 = 0. ELSE. valor16 = ( valor25 * valor28 + valor21 * valor24 ) / valor13 . ENDIF. PERFORM posic_calc USING 'SOLIDOS' '16' valor16 ' ' '%'. *posicion 30 PERFORM posiciones USING 'HUMEDAD' '15' '30' '' '%' CHANGING valor30. *posicion 29 cant = 1 - valor30. IF cant EQ 0. valor29 = 0 . ELSE. valor29 = valor25 * ( valor27 / 100 + valor28 / 100 ) / ( 1 - valor30 / 100 ). ENDIF. PERFORM posic_calc USING 'Concentrado (Ton.):' '29' valor29 'X' 'TO'. *posicion 31 IF valor29 EQ 0. valor31 = 0. ELSE. valor31 = valor25 * valor27 / valor29. ENDIF. PERFORM posic_calc USING 'GRASA' '31' valor31 ' ' '%'. *posicion 32 valor32 = 100 - valor30 - valor31. PERFORM posic_calc USING 'SOLIDOS' '32' valor32 ' ' '%'. *posicion 33 *p16 READ TABLE gti_alv1 INTO gs_alv1 INDEX 16. p16 = gs_alv1-summw. *P19 READ TABLE gti_alv1 INTO gs_alv1 INDEX 19.

p19 = gs_alv1-summw. *P20 READ TABLE gti_alv1 INTO gs_alv1 INDEX 20. p20 = gs_alv1-summw. valor33 = ( valor17 + ( valor29 * p20 / 100 ) + valor5 ). PERFORM posic_calc USING 'Cake integral (Ton.):' '33' valor33 'X' 'TO'. *posicion 34 IF valor33 EQ 0. valor34 = 0. ELSE. valor34 = ( ( ( valor29 * p20 / 100 * valor30 / 100 ) + / 100 ) + ( valor5 * valor6 / 100 ) ) / valor33 ) * 100. ENDIF. PERFORM posic_calc USING 'HUMEDAD' '34' valor34 ' ' '%'. *posicion 35 IF valor33 EQ 0. valor35 = 0. ELSE. valor35 = ( ( ( valor29 * p20 / 100 * valor31 / 100 ) + / 100 ) + ( valor5 * valor7 / 100 ) ) / valor33 ) * 100. ENDIF. PERFORM posic_calc USING 'GRASA' '35' valor35 ' ' '%'. *posicion 36 IF valor33 EQ 0. valor36 = 0. ELSE. valor36 = ( ( ( valor29 * p20 / 100 * valor32 / 100 ) + / 100 ) + ( valor5 * valor8 / 100 ) ) / valor33 ) * 100. ENDIF. PERFORM posic_calc USING 'SOLIDOS' '36' valor36 ' ' '%'. *posicion 38 PERFORM posiciones USING 'HUMEDAD' '16' '38' '' '%' CHANGING valor38. *posicion 37 cant = 1 - valor38. IF cant EQ 0. valor37 = 0. ELSE. valor37 = ( valor33 * ( valor35 / 100 + valor36 / 100 0 ) . ENDIF. PERFORM posic_calc USING 'SALIDA SEC. 1 Etapa (Ton.):' '37' valor37 'X' 'TO'. *posicion 39 IF valor37 EQ 0. valor39 = 0. ELSE. ( valor17 * valor18

( valor17 * valor19

( valor17 * valor20

) ) / ( 1 - p16 / 10

valor39 = ( ( valor33 * valor35 / 100 ) / valor37 ) * 100. ENDIF. PERFORM posic_calc USING 'GRASA' '39' valor39 ' ' '%'. *posicion 40 IF valor37 EQ 0. valor40 = 0. ELSE. valor40 = ( ( valor33 * valor36 / 100 ) / valor37 ) * 100. ENDIF. PERFORM posic_calc USING 'SOLIDOS' '40' valor40 ' ' '%'. *posicion 41 valor41 = valor37. PERFORM posic_calc USING 'ENTRADA SEC. 2 Etapa (Ton.):' '41' valor41 'X' 'TO'. *posicion 42 valor42 = valor38. PERFORM posic_calc USING 'HUMEDAD' '42' valor42 ' ' '%'. *posicion 43 valor43 = valor39. PERFORM posic_calc USING 'GRASA' '43' valor43 ' ' '%'. *posicion 44 valor44 = valor40. PERFORM posic_calc USING 'SOLIDOS' '44' valor44 ' ' '%'. *posicion 46 PERFORM posiciones USING 'HUMEDAD' '17' '46' '' '%' CHANGING valor46. *posicion 45 cant = 1 - valor46. IF cant EQ 0. valor45 = 0. ELSE. valor45 = ( valor41 * ( valor43 / 100 + valor44 / 100 ) ) / ( 1 - valor46 / 100 ). ENDIF. PERFORM posic_calc USING 'SALIDA SEC. 2 Etapa (Ton.):' '45' valor45 'X' 'TO'. *posicion 47 IF valor45 EQ 0. valor47 = 0. ELSE. valor47 = ( ( valor41 * valor43 / 100 ) / valor45 ) * 100. ENDIF. PERFORM posic_calc USING 'GRASA' '47' valor47 ' ' '%'. *posicion 48 valor48 = 100 - valor46 - valor47. PERFORM posic_calc USING 'SOLIDOS' '48' valor48 ' ' '%'. *posicion 50 PERFORM posiciones USING 'HUMEDAD' '19' '50' '' '%' CHANGING valor50.

*posicion 51 PERFORM posiciones USING 'GRASA' '18' '51' '' '%' CHANGING valor51. *posicion 52 valor52 = 100 - valor50 - valor51. cant = valor51 + valor52. IF cant EQ 0. valor52 = 0. valor53 = 0. ELSE. *valor53 valor53 = ( valor45 * ( valor47 / 100 + valor48 / 100 ) ) / ( valor51 / 100 + valor52 / 100 ). ENDIF. PERFORM posic_calc USING 'SOLIDOS' '52' valor52 ' ' '%'. *posicion 49 valor49 = ( valor45 * valor47 / 100 ) + ( valor53 * valor50 / 100 ) + ( valor53 * valor52 / 100 ). PERFORM posic_calc USING 'SALIDA DE CICLONES (Ton.):' '49' valor49 'X' 'TO'. *posicion 54 valor54 = valor33 - valor37. PERFORM posic_calc USING 'AGUA EVAP SEC. '54' valor54 *posicion 55 valor55 = valor41 - valor45. PERFORM posic_calc USING 'AGUA EVAP SEC. '55' valor55

1 Etapa (Ton.) :' 'X' 'TO'. 2 Etapa (Ton.) :' 'X' 'TO'.

*posicion 56 valor56 = ( valor25 * valor26 / 100 ) - ( valor29 * valor30 / 100 ). PERFORM posic_calc USING 'AGUA EVAP. P.A.C. (Ton.):' '56' valor56 'X' 'TO'. *posicion 57 valor57 = valor54 + valor55 + valor56. PERFORM posic_calc USING 'AGUA EVAP. TOTAL (Ton.):' '57' valor57 'X' 'TO'. *posicion 58 PERFORM posic_calc USING 'INDICADORES DE PRODUCCION' '58' '' 'T' ''. *posicion 59 IF valor49 LE 0. valor59 = 0. ELSE. valor59 = valor1 / valor49. ENDIF. PERFORM posic_calc USING 'Conversin Harina / Pesca' '59' valor59 'G' 'TO'. *posicion 60 IF valor1 LE 0.

valor60 = 0. ELSE. valor60 = ( valor49 / valor1 ) * 100. ENDIF. PERFORM posic_calc USING '% HARINA:' '60' valor60 'G' '%'. *posicion 61 IF valor1 LE 0. valor61 = 0. ELSE. valor61 = ( valor21 / valor1 ) * 100. ENDIF. PERFORM posic_calc USING '% ACEITE:' '61' valor61 'G' '%'. *posicion 62 cant = valor4 * valor1. IF cant EQ 0. valor62 = 0. ELSE. valor62 = ( ( valor52 / 100 * valor49 ) / ( valor4 / 100 * valor1 ) ) * 100. ENDIF. PERFORM posic_calc USING '% Recup.Slidos' '62' valor62 'G' '%'.

SORT gti_alv2 BY posnr. CALL SCREEN 0200. ENDFORM. " balance_masa *&---------------------------------------------------------------------* *& Form POSICIONES *&---------------------------------------------------------------------* FORM posiciones USING texto ord1 ord2 color unid CHANGING valor. CLEAR:gs_alv1,gs_alv2. READ TABLE gti_alv1 INTO gs_alv1 INDEX ord1. gs_alv2 = gs_alv1. gs_alv2-kurztext = texto. gs_alv2-posnr = ord2. gs_alv2-masseinhsw = unid. valor = gs_alv2-summw. IF color EQ 'X'.

CLEAR : ls_cellcolor. ls_cellcolor-color-col = '3' . ls_cellcolor-fname = 'KURZTEXT' . APPEND ls_cellcolor TO gs_alv2-cellcolors. ls_cellcolor-fname = 'SUMMW' . APPEND ls_cellcolor TO gs_alv2-cellcolors. ls_cellcolor-fname = 'MASSEINHSW' . APPEND ls_cellcolor TO gs_alv2-cellcolors. ENDIF. APPEND gs_alv2 TO gti_alv2. ENDFORM. " POSICIONES *&---------------------------------------------------------------------* *& Form posic_calc *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM posic_calc USING texto ord2 valor color unid. CLEAR: ls_cellcolor,gs_alv2. gs_alv2-kurztext = texto. gs_alv2-posnr = ord2. gs_alv2-masseinhsw = unid. gs_alv2-summw = valor. IF color EQ 'X' OR color EQ 'T' OR color EQ 'G'. CASE color. WHEN 'X'. ls_cellcolor-color-col = '3' . WHEN 'T'. ls_cellcolor-color-col = '1' . WHEN 'G'. ls_cellcolor-color-col = '5' . ENDCASE. ls_cellcolor-fname = 'KURZTEXT' . APPEND ls_cellcolor TO gs_alv2-cellcolors. ls_cellcolor-fname = 'SUMMW' . APPEND ls_cellcolor TO gs_alv2-cellcolors. ls_cellcolor-fname = 'MASSEINHSW' . APPEND ls_cellcolor TO gs_alv2-cellcolors. ENDIF. APPEND gs_alv2 TO gti_alv2.

ENDFORM.

" posic_calc

--------------------------------------------------------------------------------Extracted by Direct Download Enterprise version 1.3.1 - E.G.Mellodew. 1998-2005 UK. Sap Release 640

Anda mungkin juga menyukai