Módulo: DRAWBACK
Funcionalidade: Forecast
Data/Hora da Publicação: 06/12/2006 00:00:00
Data/Hora Última Alteração: 17/02/2011 14:35:45
Descrição da Nota: AJUSTES PARA PREENCHIMENTO DOS CAMPOS AREA DE NEGÓCIO E CENTRO PRODUTIVO
Sintoma
O programa não estava preenchendo corretamente o campo Centro Produtivo ao preencher a area de
negócio.
Solução
Foi criado no programa tratamentos para preencher o Centro Produtivo correspondente as Areas de
Negócio selecionadas
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02602 Data: 06/12/2006 Hora: 09:49:11
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02602
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00026
Agrupamento : 00142
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02561 - 00001 - 6.0 - 00025 - AJUSTE NO FORECAST PARA COMTEMPLAR TAB. DE AREA DE NEGOCIO X CENT
----------------------------------------------------------------------------------------------------
AJUSTES PARA PREENCHIMENTO DOS CAMPOS AREA DE NEGÓCIO E CENTRO PRODUTIVO
----------------------------------------------------------------------------------------------------
Palavras Chave:
/PWS/ZYCIE238-CODAGRUP, /PWS/ZYCIE238-WERKS, ITAB_AREAS, ITAB_CENTROS
/PWS/ZYCIT250, /PWS/ZYCIT475
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI063 0101
DYNP /PWS/SAPMZYCI063 0110
REPS /PWS/MZYCI063F01
REPS /PWS/MZYCI063F03
REPS /PWS/MZYCI063I01
REPS /PWS/MZYCI063O01
REPS /PWS/MZYCI063TOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI063 0101
*Alterações layout:
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
* >> Início da inclusão:
BTN4
Push 7 32 9 4 1 CHAR Off
NEX AREA
C/ícone
* << Fim da inclusão.
* >> Início da exclusão:
BTN3
CtrlA 7 32 4 4 1
* << Fim da exclusão.
*Código fonte:
CHAIN.
FIELD /pws/zycie238-werks MODULE altera_werks ON CHAIN-REQUEST.
ENDCHAIN.
CHAIN.
FIELD /pws/zycie238-bukrs MODULE altera_bukrs ON CHAIN-REQUEST.
ENDCHAIN.
* >> Início da exclusão:
FIELD /pws/zycie238-codagrup MODULE altera_areas ON REQUEST.
* << Fim da exclusão.
* >> Início da inclusão:
CHAIN.
FIELD /pws/zycie238-codagrup MODULE altera_areas ON CHAIN-INPUT.
ENDCHAIN.
* << Fim da inclusão.
MODULE: user_command_0101.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI063F01
...
CALL METHOD btn1->set_button_info EXPORTING fcode = 'BTN1'
icon = v_icone
quickinfo = text-007.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM CARREGA_TOOLBARCONTROL
IF btn3 IS INITIAL.
REFRESH myevent_tab.
myevent-eventid = cl_gui_toolbar=>m_id_function_selected.
myevent-appl_event = 'X'.
APPEND myevent TO myevent_tab.
CREATE OBJECT evt_receiver3.
CREATE OBJECT toolbar_container3 EXPORTING
container_name = tool_container3.
CREATE OBJECT btn3 EXPORTING
parent = toolbar_container3.
CALL METHOD btn3->set_registered_events
EXPORTING events = myevent_tab.
SET HANDLER evt_receiver3->on_function_selected FOR btn3.
IF itab_areas[] IS INITIAL.
CLEAR v_icone.
PERFORM call_icon USING text-006 CHANGING v_icone.
ELSE.
CLEAR v_icone.
PERFORM call_icon USING text-008 CHANGING v_icone.
ENDIF.
CALL METHOD btn3->add_button
EXPORTING
fcode = 'BTN3'
icon = v_icone
butn_type = 0
is_disabled = ''
text = ''
quickinfo = text-293.
ELSE.
IF NOT itab_areas[] IS INITIAL.
CLEAR v_icone.
PERFORM call_icon USING text-008 CHANGING v_icone.
CALL METHOD btn3->set_button_info EXPORTING fcode = 'BTN3'
icon = v_icone
quickinfo = text-293.
ELSE.
CLEAR v_icone.
PERFORM call_icon USING text-006 CHANGING v_icone.
CALL METHOD btn3->set_button_info EXPORTING fcode = 'BTN3'
icon = v_icone
quickinfo = text-293.
ENDIF.
ENDIF.
* << Fim da exclusão
ENDFORM.
FORM call_icon USING value(p_name) CHANGING p_v_icone.
CALL FUNCTION 'ICON_CREATE'
EXPORTING
name = p_name
...
...
IF screen-group1 NE 'NEX'.
screen-input = v_status.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM CHECK_FIELDS_SCREEN_0101
IF itab_areas[] IS INITIAL.
btn4 = '@1F@'.
ELSE.
btn4 = '@1E@'.
ENDIF.
* << Fim da inclusão
ENDFORM.
FORM trata_saldo.
CLEAR: itab_sdocompi. REFRESH: itab_sdocompi.
LOOP AT itab_compi_final.
CLEAR: itab_sdocompi.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI063F03
...
ENDLOOP.
ENDFORM.
FORM execute_button_btn3.
MOVE /pws/zycie238-codagrup TO v_areas.
CALL SCREEN '0110' STARTING AT 33 5.
* >> Início da inclusão: FORM EXECUTE_BUTTON_BTN3
itab_areas_aux[] = itab_areas[].
* << Fim da inclusão
READ TABLE itab_areas INDEX 1.
IF sy-subrc EQ 0 AND v_areas IS INITIAL.
MOVE itab_areas-codagrup TO /pws/zycie238-codagrup.
ELSE.
MOVE v_areas TO /pws/zycie238-codagrup.
ENDIF.
DELETE itab_areas WHERE codagrup = /pws/zycie238-codagrup.
SET CURSOR FIELD /pws/zycie238-codagrup.
* >> Início da exclusão: FORM EXECUTE_BUTTON_BTN3
CLEAR v_areas.
* << Fim da exclusão
ENDFORM.
FORM altera_area.
IF NOT /pws/zycie238-codagrup IS INITIAL
AND itab_centros[] IS INITIAL.
SELECT *
...
...
SORT itab_centros.
DELETE ADJACENT DUPLICATES FROM itab_centros.
SORT itab_areas.
DELETE ADJACENT DUPLICATES FROM itab_areas.
ENDFORM.
* >> Início da inclusão:
FORM altera_area_cab.
IF NOT itab_areas[] IS INITIAL.
SELECT *
FROM /pws/zycit475
INTO TABLE itab_zycit475
FOR ALL ENTRIES IN itab_areas
WHERE codagrup = itab_areas-codagrup.
ENDIF.
IF NOT v_areas IS INITIAL.
SELECT *
FROM /pws/zycit475
APPENDING TABLE itab_zycit475
WHERE codagrup = v_areas.
ENDIF.
IF sy-subrc = 0.
LOOP AT itab_zycit475.
MOVE: itab_zycit475-werks TO itab_centros-werks,
/pws/zycie238-nrseqd TO itab_centros-nrseqd,
itab_zycit475-codagrup TO itab_areas-codagrup,
/pws/zycie238-nrseqd TO itab_areas-nrseqd.
APPEND itab_areas.
APPEND itab_centros.
ENDLOOP.
SORT itab_centros BY werks.
READ TABLE itab_centros INDEX 1.
IF sy-subrc EQ 0 AND v_werks IS INITIAL.
MOVE itab_centros-werks TO /pws/zycie238-werks.
ELSE.
MOVE v_werks TO /pws/zycie238-werks.
ENDIF.
DELETE itab_centros WHERE werks = /pws/zycie238-werks.
SET CURSOR FIELD /pws/zycie238-werks.
CLEAR v_werks.
LOOP AT itab_centros.
READ TABLE itab_zycit475 WITH KEY werks = itab_centros-werks.
IF sy-subrc <> 0.
DELETE itab_centros.
ENDIF.
ENDLOOP.
ENDIF.
SORT itab_centros.
DELETE ADJACENT DUPLICATES FROM itab_centros.
SORT itab_areas.
DELETE ADJACENT DUPLICATES FROM itab_areas.
ENDFORM.
FORM seleciona_correspondente.
IF /pws/zycie238-codagrup IS INITIAL
AND NOT itab_areas[] IS INITIAL.
CLEAR: itab_centros, itab_zycit475.
REFRESH: itab_centros, itab_zycit475.
READ TABLE itab_areas INDEX 1.
/pws/zycie238-codagrup = itab_areas-codagrup.
SELECT *
FROM /pws/zycit475
INTO TABLE itab_zycit475
FOR ALL ENTRIES IN itab_areas
WHERE codagrup = itab_areas-codagrup.
DELETE itab_areas WHERE codagrup = /pws/zycie238-codagrup.
LOOP AT itab_zycit475.
MOVE: itab_zycit475-werks TO itab_centros-werks,
/pws/zycie238-nrseqd TO itab_centros-nrseqd.
APPEND itab_centros.
ENDLOOP.
IF NOT itab_centros[] IS INITIAL.
READ TABLE itab_centros INDEX 1.
IF sy-subrc EQ 0 AND v_werks IS INITIAL.
MOVE itab_centros-werks TO /pws/zycie238-werks.
ELSE.
MOVE v_werks TO /pws/zycie238-werks.
ENDIF.
DELETE itab_centros WHERE werks = /pws/zycie238-werks.
SET CURSOR FIELD /pws/zycie238-werks.
CLEAR v_werks.
SORT itab_centros.
DELETE ADJACENT DUPLICATES FROM itab_centros.
SORT itab_areas.
DELETE ADJACENT DUPLICATES FROM itab_areas.
ENDIF.
ELSEIF /pws/zycie238-codagrup IS INITIAL
AND itab_areas[] IS INITIAL.
CLEAR: /pws/zycie238-werks,
itab_centros.
REFRESH itab_centros.
ELSEIF NOT /pws/zycie238-codagrup IS INITIAL
AND /pws/zycie238-werks IS INITIAL
AND NOT itab_centros[] IS INITIAL.
READ TABLE itab_centros INDEX 1.
/pws/zycie238-werks = itab_centros-werks.
DELETE itab_centros WHERE werks = /pws/zycie238-werks.
ELSEIF NOT /pws/zycie238-codagrup IS INITIAL
AND NOT /pws/zycie238-werks IS INITIAL
AND NOT itab_centros[] IS INITIAL.
SELECT *
FROM /pws/zycit475
INTO TABLE itab_zycit475
WHERE codagrup = /pws/zycie238-codagrup.
LOOP AT itab_zycit475.
READ TABLE itab_centros WITH KEY werks = itab_zycit475-werks.
IF sy-subrc NE 0.
MOVE: itab_zycit475-werks TO itab_centros-werks,
/pws/zycie238-nrseqd TO itab_centros-nrseqd.
APPEND itab_centros.
ENDIF.
LOOP AT itab_centros.
READ TABLE itab_zycit475 WITH KEY werks = itab_centros-werks.
IF sy-subrc <> 0.
DELETE itab_centros.
ENDIF.
ENDLOOP.
ENDLOOP.
READ TABLE itab_centros INDEX 1.
/pws/zycie238-werks = itab_centros-werks.
DELETE itab_centros WHERE werks = /pws/zycie238-werks.
ENDIF.
ENDFORM.
FORM altera_area2.
IF NOT /pws/zycie238-codagrup IS INITIAL.
SELECT *
FROM /pws/zycit475
INTO TABLE itab_zycit475
WHERE codagrup = /pws/zycie238-codagrup.
IF sy-subrc = 0.
LOOP AT itab_zycit475.
MOVE: itab_zycit475-werks TO itab_centros-werks,
/pws/zycie238-nrseqd TO itab_centros-nrseqd,
itab_zycit475-codagrup TO itab_areas-codagrup,
/pws/zycie238-nrseqd TO itab_areas-nrseqd.
APPEND itab_areas.
APPEND itab_centros.
ENDLOOP.
MOVE /pws/zycie238-werks TO v_werks.
READ TABLE itab_centros INDEX 1.
IF sy-subrc EQ 0 AND v_werks IS INITIAL.
MOVE itab_centros-werks TO /pws/zycie238-werks.
ELSE.
MOVE v_werks TO /pws/zycie238-werks.
ENDIF.
DELETE itab_centros WHERE werks = /pws/zycie238-werks.
SET CURSOR FIELD /pws/zycie238-werks.
CLEAR v_werks.
MOVE /pws/zycie238-codagrup TO v_areas.
READ TABLE itab_areas INDEX 1.
IF sy-subrc EQ 0 AND v_areas IS INITIAL.
MOVE itab_areas-codagrup TO /pws/zycie238-codagrup.
ELSE.
MOVE v_areas TO /pws/zycie238-codagrup.
ENDIF.
DELETE itab_areas WHERE codagrup = /pws/zycie238-codagrup.
SET CURSOR FIELD /pws/zycie238-codagrup.
CLEAR v_areas.
ENDIF.
ENDIF.
SORT itab_centros.
DELETE ADJACENT DUPLICATES FROM itab_centros.
SORT itab_areas.
DELETE ADJACENT DUPLICATES FROM itab_areas.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI063I01
...
PERFORM atualiza_qtde_insumo.
PERFORM atualiza_impostos.
MESSAGE s015 WITH text-046.
WHEN 'APROV'.
PERFORM trata_button_aprov.
* >> Início da inclusão: MODULE USER_COMMAND_0100
WHEN 'AREA'.
PERFORM execute_button_btn3.
* << Fim da inclusão
ENDCASE.
CLEAR: ok_code.
ENDMODULE.
MODULE user_command_0100_exit INPUT.
CASE ok_code.
...
...
ENDMODULE.
MODULE user_command_0101 INPUT.
CASE ok_code.
WHEN 'SELE'.
PERFORM trata_selecao.
* >> Início da inclusão: MODULE USER_COMMAND_0101
WHEN 'ENTE'.
PERFORM seleciona_correspondente.
* << Fim da inclusão
ENDCASE.
ENDMODULE.
MODULE altera_werks INPUT.
AUTHORITY-CHECK OBJECT 'C_PPBD'
ID 'WERKS' FIELD /pws/zycie238-werks.
...
...
ENDMODULE.
MODULE user_command_0110 INPUT.
DATA: v_exc_areas.
CASE ok_code.
WHEN 'CANCE' OR 'CANCEL'.
* >> Início da inclusão: MODULE USER_COMMAND_0110
IF /pws/zycie238-codagrup IS INITIAL
AND NOT itab_areas_aux[] IS INITIAL
AND itab_areas[] <> itab_areas_aux[].
PERFORM altera_area_cab.
LEAVE TO SCREEN 0.
ELSE.
* << Fim da inclusão
IF /pws/zycie238-werks IS INITIAL.
READ TABLE itab_centros INDEX 1.
/pws/zycie238-werks = itab_centros-werks.
DELETE itab_centros WHERE werks = /pws/zycie238-werks.
ENDIF.
IF /pws/zycie238-codagrup = itab_areas-codagrup.
READ TABLE itab_areas INDEX 1.
/pws/zycie238-codagrup = itab_areas-codagrup.
ENDIF.
LEAVE TO SCREEN 0.
* >> Início da inclusão: MODULE USER_COMMAND_0110
ENDIF.
* << Fim da inclusão
ENDCASE.
CLEAR ok_code2.
ENDMODULE.
MODULE altera_areas INPUT.
CASE ok_code.
WHEN 'ENTE'.
PERFORM altera_area.
* >> Início da inclusão: MODULE ALTERA_AREAS
WHEN 'AREA'.
PERFORM altera_area2.
* << Fim da inclusão
ENDCASE.
ENDMODULE.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI063TOP
...
INCLUDE STRUCTURE /pws/zycit250.
DATA: END OF itab_areas.
DATA: BEGIN OF itab_areas_save OCCURS 0.
INCLUDE STRUCTURE /pws/zycit250 .
DATA: END OF itab_areas_save .
* >> Início da inclusão:
DATA: BEGIN OF itab_areas_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycit250 .
DATA: END OF itab_areas_aux .
* << Fim da inclusão
DATA: BEGIN OF itab_exp OCCURS 0.
INCLUDE STRUCTURE /pws/zycie239.
DATA: mark(1) TYPE c .
DATA: END OF itab_exp .
DATA: BEGIN OF itab_exp_save OCCURS 0.
...
...
myevent_tab TYPE cntl_simple_events ,
myevent_tab3 TYPE cntl_simple_events ,
myevent TYPE cntl_simple_event ,
myevent3 TYPE cntl_simple_event ,
btn1 TYPE REF TO cl_gui_toolbar ,
* >> Início da exclusão:
btn3 TYPE REF TO cl_gui_toolbar .
* << Fim da exclusão
* >> Início da inclusão:
btn4 TYPE icon-id .
* << Fim da inclusão
CLASS lcl_my_event_handler1 DEFINITION.
PUBLIC SECTION.
METHODS on_function_selected
FOR EVENT function_selected OF cl_gui_toolbar
IMPORTING fcode.
...