Created
September 27, 2018 16:00
-
-
Save antelio/60bbc3c6c128b53a179b7a9d05f85785 to your computer and use it in GitHub Desktop.
ZPRAA_POST_DIFER
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*&---------------------------------------------------------------------* | |
*& Report ZPRAA_POST_DIFER | |
*& | |
*&---------------------------------------------------------------------* | |
*& | |
*& | |
*&---------------------------------------------------------------------* | |
REPORT zpraa_post_difer. | |
TABLES: anla, csks. | |
CONSTANTS: | |
c_controlling_area TYPE kokrs VALUE 'ACLW', | |
c_cost_center_group TYPE ksgru VALUE 'LW_COST'. | |
DATA: BEGIN OF t_ativo OCCURS 0, | |
anlkl LIKE anla-anlkl, | |
ktogr LIKE anla-ktogr, | |
bukrs LIKE anla-bukrs, | |
gjahr LIKE anlp-gjahr, | |
anln1 LIKE anla-anln1, | |
anln2 LIKE anla-anln2, | |
txt50 LIKE anla-txt50, | |
ord41 LIKE anla-ord41, | |
kostl LIKE anlp-kostl, | |
group LIKE tksr1-area, | |
source LIKE cskb-kstar, | |
dest LIKE cskb-kstar, | |
ktext LIKE csku-ktext, | |
lifnr LIKE anla-lifnr, | |
liefe LIKE anla-liefe, | |
nafap LIKE anlp-nafap, | |
nafag LIKE anlp-nafag, | |
nafaz LIKE anlp-nafaz, | |
END OF t_ativo. | |
DATA: w_ativo LIKE LINE OF t_ativo, | |
vg_ktopl TYPE ktopl, | |
t_acct_difer TYPE TABLE OF zco_acct_difer, | |
w_acct_difer LIKE LINE OF t_acct_difer. | |
DATA: BEGIN OF t_kostl OCCURS 0, | |
ksgru TYPE ksgru, | |
kostl TYPE kostl, | |
END OF t_kostl. | |
DATA: w_kostl LIKE LINE OF t_kostl. | |
"Dados para a criação da alv | |
TYPE-POOLS: slis, kkblo. | |
FIELD-SYMBOLS: <t_data> TYPE STANDARD TABLE, | |
<t_layout> TYPE slis_layout_alv, | |
<t_fcatalog> TYPE slis_t_fieldcat_alv. | |
DATA: t_layout TYPE slis_layout_alv, | |
t_sort TYPE slis_t_sortinfo_alv, | |
t_filter TYPE slis_t_filter_alv, | |
t_fieldcat TYPE slis_t_fieldcat_alv, | |
t_events TYPE slis_t_event, | |
t_list_comments TYPE slis_t_listheader, | |
w_list_comments LIKE LINE OF t_list_comments. | |
SELECTION-SCREEN BEGIN OF BLOCK bl0 WITH FRAME TITLE text-bl0. | |
PARAMETERS: p_bukrs TYPE anlp-bukrs OBLIGATORY MEMORY ID buk, | |
p_anlkl TYPE anla-anlkl OBLIGATORY DEFAULT 'DIFER', | |
p_gjahr TYPE anlp-gjahr OBLIGATORY MEMORY ID gjr, | |
p_peraf TYPE anlp-peraf OBLIGATORY MEMORY ID popr. | |
SELECTION-SCREEN SKIP 1. | |
PARAMETERS p_test DEFAULT 'X' AS CHECKBOX. | |
SELECT-OPTIONS s_anln1 FOR anla-anln1. | |
SELECTION-SCREEN END OF BLOCK bl0. | |
INITIALIZATION. | |
GET PARAMETER ID 'BUK' FIELD p_bukrs. | |
GET PARAMETER ID 'GJR' FIELD p_gjahr. | |
GET PARAMETER ID 'POPR' FIELD p_peraf. | |
PERFORM load_configuration. | |
START-OF-SELECTION. | |
PERFORM load_data. | |
PERFORM process_data. | |
END-OF-SELECTION. | |
PERFORM prepare_output. | |
PERFORM output_alv. | |
*&---------------------------------------------------------------------* | |
*& Form LOAD_DATA | |
*&---------------------------------------------------------------------* | |
* text | |
*----------------------------------------------------------------------* | |
* --> p1 text | |
* <-- p2 text | |
*----------------------------------------------------------------------* | |
FORM load_data . | |
* | |
* bukrs TYPE anla-bukrs, | |
* anlkl TYPE anla-anlkl, | |
* anln1 TYPE anla-anln1, | |
* anln2 TYPE anla-anln2, | |
* kostl TYPE anlp-kostl, | |
* nafap TYPE anlp-nafap, | |
* nafag TYPE anlp-nafag, | |
* nafaz TYPE anlp-nafaz, | |
SELECT SINGLE ktopl FROM t001 INTO vg_ktopl | |
WHERE bukrs = p_bukrs. | |
SELECT a~anlkl a~bukrs p~gjahr a~anln1 a~anln2 a~txt50 p~kostl | |
p~nafap p~nafag p~nafaz a~ord41 a~ktogr a~lifnr | |
INTO CORRESPONDING FIELDS OF TABLE t_ativo | |
FROM anla AS a INNER JOIN anlp AS p | |
ON a~mandt = p~mandt | |
AND a~bukrs = p~bukrs | |
AND a~anln1 = p~anln1 | |
AND a~anln2 = p~anln2 | |
WHERE a~bukrs = p_bukrs | |
AND a~anlkl = p_anlkl | |
AND p~gjahr = p_gjahr | |
AND p~peraf = p_peraf | |
AND p~afaber = '01'. | |
ENDFORM. " LOAD_DATA | |
*&---------------------------------------------------------------------* | |
*& Form PREPARE_OUTPUT | |
*&---------------------------------------------------------------------* | |
* text | |
*----------------------------------------------------------------------* | |
* --> p1 text | |
* <-- p2 text | |
*----------------------------------------------------------------------* | |
FORM prepare_output . | |
* so limpar o buffer em desenvolvimento | |
IF sy-sysid <> 'LWP'. | |
CALL FUNCTION 'SBUF_OBJ_RESET_OBJECT' | |
EXPORTING | |
buff_id = 0 | |
inv_code = 'DEL_WORLD_GENERIC ' | |
* Achtung: Das Literal muss 20 Character lang sein! | |
tabname = 'EUINFO' | |
key = '%F' | |
key_l = 2. | |
ENDIF. | |
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' | |
EXPORTING | |
i_program_name = sy-cprog | |
i_internal_tabname = 'T_ATIVO' | |
i_inclname = sy-cprog | |
i_bypassing_buffer = 'X' " i_internal_tabname = 'RESULTADO' | |
CHANGING | |
ct_fieldcat = t_fieldcat | |
EXCEPTIONS | |
inconsistent_interface = 1 | |
program_error = 2 | |
OTHERS = 3. | |
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. " PREPARE_OUTPUT | |
*&---------------------------------------------------------------------* | |
*& Form OUTPUT_ALV | |
*&---------------------------------------------------------------------* | |
* text | |
*----------------------------------------------------------------------* | |
* --> p1 text | |
* <-- p2 text | |
*----------------------------------------------------------------------* | |
FORM output_alv . | |
PERFORM zf_f_set_layout. | |
PERFORM zf_f_events_get. | |
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' | |
EXPORTING | |
i_callback_program = sy-cprog | |
i_callback_pf_status_set = 'ZF_F_SET_PFSTATUS' | |
i_callback_user_command = 'ZF_USER_COMMAND' | |
i_callback_top_of_page = 'ZF_TOP_OF_PAGE' | |
" i_structure_name = 'ZMMST_PGTO_SERVICOS' | |
is_layout = t_layout | |
it_fieldcat = t_fieldcat | |
it_sort = t_sort | |
it_filter = t_filter | |
i_save = 'A' | |
it_events = t_events | |
TABLES | |
* t_outtab = <t_data> | |
* t_outtab = resultado | |
t_outtab = t_ativo | |
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. " OUTPUT_ALV | |
*&---------------------------------------------------------------------* | |
*& Form zf_f_set_pfstatus | |
*&---------------------------------------------------------------------* | |
* text | |
*----------------------------------------------------------------------* | |
* -->RT_EXTAB text | |
*----------------------------------------------------------------------* | |
FORM zf_f_set_pfstatus USING rt_extab TYPE slis_t_extab. | |
SET PF-STATUS 'STANDARD'. | |
ENDFORM. " zf_f_pf_status | |
*&---------------------------------------------------------------------* | |
*& Form ZF_USER_COMMAND | |
*&---------------------------------------------------------------------* | |
* text | |
*----------------------------------------------------------------------* | |
* --> p1 text | |
* <-- p2 text | |
*----------------------------------------------------------------------* | |
FORM zf_user_command USING r_ucomm LIKE sy-ucomm | |
rs_selfield TYPE slis_selfield. | |
ENDFORM. " ZF_USER_COMMAND | |
*&---------------------------------------------------------------------* | |
*& Form ZF_TOP_OF_PAGE | |
*&---------------------------------------------------------------------* | |
* text | |
*----------------------------------------------------------------------* | |
* --> p1 text | |
* <-- p2 text | |
*----------------------------------------------------------------------* | |
FORM zf_top_of_page . | |
DATA: i_list_comments TYPE slis_t_listheader, | |
w_list_comments LIKE LINE OF i_list_comments. | |
ENDFORM. " ZF_TOP_OF_PAGE | |
*&---------------------------------------------------------------------* | |
*& Form zf_f_events_get | |
*&---------------------------------------------------------------------* | |
* text | |
*----------------------------------------------------------------------* | |
FORM zf_f_events_get . | |
DATA: l_events TYPE slis_alv_event. | |
CALL FUNCTION 'REUSE_ALV_EVENTS_GET' | |
EXPORTING | |
i_list_type = 0 | |
IMPORTING | |
et_events = t_events | |
EXCEPTIONS | |
list_type_wrong = 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. " ZF_F_EVENTS_GET | |
*&---------------------------------------------------------------------* | |
*& Form zf_f_set_layout | |
*&---------------------------------------------------------------------* | |
* text | |
*----------------------------------------------------------------------* | |
FORM zf_f_set_layout . | |
t_layout-zebra = 'X'. | |
* t_layout-info_fieldname = 'COLOR'. | |
t_layout-colwidth_optimize = 'X'. | |
ENDFORM. " ZF_F_SET_LAYOUT | |
*&---------------------------------------------------------------------* | |
*& Form LOAD_CONFIGURATION | |
*&---------------------------------------------------------------------* | |
* text | |
*----------------------------------------------------------------------* | |
* --> p1 text | |
* <-- p2 text | |
*----------------------------------------------------------------------* | |
FORM load_configuration . | |
TYPE-POOLS: gsetc. | |
DATA: t_csks TYPE TABLE OF csks. | |
RANGES: r_kostl FOR csks-kostl. | |
SELECT * FROM zco_acct_difer INTO TABLE t_acct_difer. | |
DATA: t_hier TYPE TABLE OF bapiset_hier, | |
w_hier LIKE LINE OF t_hier, | |
t2_hier TYPE TABLE OF bapiset_hier, | |
t_values TYPE TABLE OF bapi1112_values, | |
r_values LIKE LINE OF t_values, | |
w_return TYPE bapiret2. | |
CALL FUNCTION 'BAPI_COSTCENTERGROUP_GETDETAIL' | |
EXPORTING | |
controllingarea = c_controlling_area | |
groupname = c_cost_center_group | |
* LANGUAGE = | |
IMPORTING | |
return = w_return | |
TABLES | |
hierarchynodes = t_hier | |
hierarchyvalues = t_values. | |
. | |
REFRESH t_kostl. | |
LOOP AT t_hier INTO w_hier WHERE hierlevel = '1'. | |
CALL FUNCTION 'BAPI_COSTCENTERGROUP_GETDETAIL' | |
EXPORTING | |
controllingarea = c_controlling_area | |
groupname = w_hier-groupname | |
* LANGUAGE = | |
IMPORTING | |
return = w_return | |
TABLES | |
hierarchynodes = t2_hier | |
hierarchyvalues = t_values. | |
. | |
LOOP AT t_values INTO r_values. | |
IF r_values-valfrom EQ r_values-valto. | |
MOVE 'I' TO r_kostl-sign. | |
MOVE 'EQ' TO r_kostl-option. | |
MOVE r_values-valfrom TO r_kostl-low. | |
APPEND r_kostl TO r_kostl. | |
ELSE. | |
MOVE 'I' TO r_kostl-sign. | |
MOVE 'BT' TO r_kostl-option. | |
MOVE r_values-valfrom TO r_kostl-low. | |
MOVE r_values-valto TO r_kostl-high. | |
APPEND r_kostl TO r_kostl. | |
ENDIF. | |
ENDLOOP. | |
SELECT * FROM csks INTO TABLE t_csks | |
WHERE kostl IN r_kostl | |
AND datbi GE sy-datum | |
AND datab LE sy-datum. | |
DATA: w_csks LIKE LINE OF t_csks. | |
LOOP AT t_csks INTO w_csks. | |
CLEAR w_kostl. | |
w_kostl-ksgru = w_hier-groupname. | |
w_kostl-kostl = w_csks-kostl. | |
APPEND w_kostl TO t_kostl. | |
ENDLOOP. | |
ENDLOOP. | |
ENDFORM. " LOAD_CONFIGURATION | |
*&---------------------------------------------------------------------* | |
*& Form PROCESS_DATA | |
*&---------------------------------------------------------------------* | |
* text | |
*----------------------------------------------------------------------* | |
* --> p1 text | |
* <-- p2 text | |
*----------------------------------------------------------------------* | |
FORM process_data . | |
FIELD-SYMBOLS: <ativo> LIKE LINE OF t_ativo. | |
DATA: w_t095b TYPE t095b, | |
w_csku TYPE csku, | |
w_lfa1 TYPE lfa1, | |
w_acct_difer LIKE LINE OF t_acct_difer. | |
LOOP AT t_ativo ASSIGNING <ativo>. | |
SELECT SINGLE * FROM t095b INTO w_t095b | |
WHERE ktopl = vg_ktopl | |
AND ktogr = <ativo>-ktogr | |
AND afabe = '01'. | |
IF sy-subrc IS INITIAL. | |
<ativo>-source = w_t095b-ktnafg. | |
ENDIF. | |
SELECT SINGLE * FROM lfa1 INTO w_lfa1 | |
WHERE lifnr = <ativo>-lifnr. | |
IF sy-subrc IS INITIAL. | |
<ativo>-liefe = w_lfa1-name1. | |
ENDIF. | |
READ TABLE t_kostl INTO w_kostl WITH KEY kostl = <ativo>-kostl. | |
IF sy-subrc IS INITIAL. | |
<ativo>-group = w_kostl-ksgru. | |
ENDIF. | |
READ TABLE t_acct_difer INTO w_acct_difer | |
WITH KEY ord41 = <ativo>-ord41. | |
IF sy-subrc IS INITIAL. | |
CASE <ativo>-group(2). | |
WHEN '41'. | |
<ativo>-dest = w_acct_difer-kstar_41. | |
WHEN '51'. | |
<ativo>-dest = w_acct_difer-kstar_51. | |
WHEN '52'. | |
<ativo>-dest = w_acct_difer-kstar_52. | |
WHEN OTHERS. | |
ENDCASE. | |
ENDIF. | |
SELECT SINGLE * FROM csku INTO w_csku | |
WHERE spras = sy-langu | |
AND ktopl = vg_ktopl | |
AND kstar = <ativo>-dest. | |
IF sy-subrc IS INITIAL. | |
<ativo>-ktext = w_csku-ktext. | |
ENDIF. | |
ENDLOOP. | |
ENDFORM. " PROCESS_DATA |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment