Vous êtes sur la page 1sur 15

********************************************************************

*** Programa : ZGL_EQUIVALENCIA_PATRIMONIAL


*** Descrio : REPORT ALV & BATCH INPUT
*** Equivalencia patrimonial
*** Autor : GL Data: 11/04/2014
*** Transao :
***----------------------------------------------------------------***
*** ***
*** Histrico de Alteraes: ***
***----------------------------------------------------------------***
*** Data | Change # | Autor | Alterao
***----------------------------------------------------------------***
*** | |
*====================================================================*
REPORT zzgli008_equivalencia_patrimonial MESSAGE-ID zgl
NO STANDARD PAGE HEADING.

*====================================================================*
*** Tabelas
*====================================================================*
TABLES: " ZTBFI008_EQPATRI,
ztbfi008_eqptr_b,
faglflexa,
faglflext,
ska1.

TYPE-POOLS: icon, slis, truxs.

DATA: s_layout TYPE slis_layout_alv,


st_header TYPE kkblo_listheader,
it_header TYPE kkblo_t_listheader,
s_print TYPE slis_print_alv,
s_sort TYPE slis_t_sortinfo_alv WITH HEADER LINE,
s_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
st_repid LIKE sy-repid. " Estrutura ALV

*====================================================================*
*** Classes
*====================================================================*
*CLASS lcl_event_receiver DEFINITION DEFERRED.

*====================================================================*
*** Definio de constantes
*====================================================================*
CONSTANTS: c_ledger_principal(02) VALUE '0L',
cntl_true TYPE i VALUE 1,
cntl_false TYPE i VALUE 0,
c_relid(02) VALUE 'BB',
c_todas VALUE '*',
c_waers TYPE waers VALUE 'BRL' ,
c_credito TYPE newbs VALUE '50',
c_debito TYPE newbs VALUE '40',
c_blart TYPE blart VALUE 'SA',
c_ccequivalencia TYPE racct VALUE '3410100100'.
*====================================================================*
*** Definio de tipos globais
*====================================================================*
TYPES: BEGIN OF ty_f05a_tmp,
uname TYPE uname_f05a,
tempn TYPE tempn,
END OF ty_f05a_tmp,
*
BEGIN OF ty_bseg,
bukrs TYPE bukrs,
gjahr TYPE gjahr,
belnr TYPE belnr_d,
zuonr TYPE dzuonr,
buzei TYPE buzei,
altkt TYPE bilkt_ska1,
bschl TYPE bschl,
wrbtr TYPE wrbtr,
xreversal TYPE xreversal,
END OF ty_bseg,
*
BEGIN OF ty_bkpf,
bukrs TYPE bukrs,
gjahr TYPE gjahr,
monat TYPE monat,
belnr TYPE belnr_d,
xreversal TYPE xreversal,
END OF ty_bkpf,
*
BEGIN OF ty_lancamentos,
icon_light(04),
bukrs TYPE bukrs,
rbukrs TYPE bukrs,
poper TYPE poper,
bupla TYPE j_1bbranch,
rbetr TYPE vwcur12,
partic TYPE zde_bruno, "zde_bkk_pkond,
vllanc TYPE p LENGTH 16 DECIMALS 2,
racct TYPE saknr,
saknr TYPE saknr,
prctr TYPE prctr,
** Incio - Incluso do campo C.Custo na tabela ZTBFI008_EQTR_B - JPMJ - 17/04/2014
kostl TYPE kostl,
** Fim - Incluso do campo C.Custo na tabela ZTBFI008_EQTR_B - JPMJ - 17/04/2014
linha TYPE i,
total TYPE i,
END OF ty_lancamentos,
*
BEGIN OF ty_result_filial,
rbukrs TYPE bukrs,
poper TYPE poper,
hsl TYPE vwcur12,
END OF ty_result_filial,
*
BEGIN OF ty_faglflexa,
rclnt TYPE mandt,
ryear TYPE gjahr,
docnr TYPE belnr_d,
rldnr TYPE fagl_rldnr,
rbukrs TYPE bukrs,
docln TYPE docln6,
racct TYPE racct,
hsl TYPE vwcur12,
poper TYPE poper,
END OF ty_faglflexa.
*====================================================================*
*** Definio de tabelas internas
*====================================================================*
DATA: t_xapqi TYPE TABLE OF apqi,
t_ztbfi008 TYPE TABLE OF ztbfi008_eqptr_b,
t_ztbfi008_2 TYPE TABLE OF ztbfi008_eqptr_b,
t_result_filial TYPE TABLE OF ty_result_filial,
t_lancamentos TYPE TABLE OF ty_lancamentos,
t_bkpf TYPE TABLE OF ty_bkpf,
t_bseg TYPE TABLE OF ty_bseg,
t_popup_date TYPE TABLE OF sval,
t_faglflexa TYPE TABLE OF ty_faglflexa,
t_return TYPE TABLE OF bapiret2.
DATA: BEGIN OF t_log OCCURS 0,
message(80),
error(4),
lines TYPE i,
END OF t_log .

*====================================================================*
*** Definio de work area
*====================================================================*
DATA: wa_ztbfi008 TYPE ztbfi008_eqptr_b,
wa_ztbfi008_2 TYPE ztbfi008_eqptr_b,
wa_apqi TYPE apqi,
wa_return TYPE bapiret2,
wa_popup_date TYPE sval,
wa_bkpf TYPE ty_bkpf,
wa_bseg TYPE ty_bseg,
wa_lancamentos TYPE ty_lancamentos,
wa_result_filial TYPE ty_result_filial.

*====================================================================*
*** Definio de variveis
*====================================================================*
DATA: v_data LIKE sy-datum,
v_data_char(8),
v_xblnr TYPE xblnr,
v_bktxt TYPE bktxt,
v_sgtxt TYPE sgtxt,
v_tabix LIKE sy-tabix,
v_indx LIKE sy-tabix,
v_valor(15),
v_vlant(15),
v_vbund LIKE bseg-vbund,
v_bupla LIKE bseg-bupla,
v_zuonr LIKE bseg-zuonr,
v_tamanho TYPE i,
v_selected_rows TYPE i,
v_linha TYPE sy-tabix,
v_confirquesti(50), " Popup confirma lanamentos
v_confirmation, " Popup confirma lanamentos
v_titlebar(60) VALUE 'Confirmar memorizao documentos de equivalencia
patrimonial',
ok_code LIKE sy-ucomm.

FIELD-SYMBOLS: <fs_bseg> TYPE ty_bseg,


<fs_bkpf> TYPE ty_bkpf,
<fs_faglflex> TYPE ty_faglflexa,
<fs_ztbfi008_2> TYPE ztbfi008_eqptr_b,
<fs_result_filial> TYPE ty_result_filial.
*----------------------------------------------------------------------*
* data definition arquivos para BDC standard - CPIA DE STANDARD
*----------------------------------------------------------------------*
* Batchinputdata of single transaction
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
* messages of call transaction
DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
* error session opened (' ' or 'X')
DATA: e_group_opened.

*----------------------------------------------------------------------*
* Include BDC Standard para batch input FB01L - New Ledjer
*----------------------------------------------------------------------*
*INCLUDE zbdcrecx1.

*--------------------------------------------------------------------
* ALV STANDARD Data
*--------------------------------------------------------------------
DATA: alv_ep_grid TYPE REF TO cl_gui_alv_grid,
* alv_event_receiver TYPE REF TO lcl_event_receiver,
alv_custom_container TYPE REF TO cl_gui_custom_container,
alv_gs_layout TYPE lvc_s_layo,
alv_index_rows TYPE lvc_t_row,
alv_i_row TYPE lvc_s_row,
alv_i_col TYPE lvc_s_col,
alv_estr_refresh TYPE lvc_s_stbl,
alv_catalogo TYPE lvc_t_fcat,
alv_h_picture TYPE REF TO cl_gui_picture,
alv_pic_container TYPE REF TO cl_gui_custom_container.

** Incio - inserir LOGO da CARVALHO HOSKEN - JPMJ - 17/04/2014


DATA: it_sort TYPE slis_sortinfo_alv OCCURS 0 WITH HEADER LINE,
v_print TYPE slis_print_alv,
v_repid LIKE sy-repid,
v_layout TYPE slis_layout_alv,
v_variante LIKE disvariant.
** Fim - inserir LOGO da CARVALHO HOSKEN - JPMJ - 17/04/2014.

DATA: graphic_url(255),
graphic_size TYPE i,
graphic_refresh(1),
g_result LIKE cntl_true.

DATA: BEGIN OF graphic_table OCCURS 0,


line(255) TYPE x,
END OF graphic_table.

*====================================================================*
*** Definio dos Parmetros TELA DE SELEO
*====================================================================*
* Parmetros de Seleo
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-001.

SELECTION-SCREEN SKIP.
PARAMETER: p_ledger TYPE fagl_trgt_ldgrp.

SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(30) text2 FOR FIELD p_bukrs.
PARAMETER: p_bukrs TYPE bukrs OBLIGATORY. " Controladora, se * processa todas.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(30) text3 FOR FIELD p_poper.
PARAMETERS: p_poper TYPE poper. " Perodo Mes
PARAMETERS: p_gjahr TYPE gjahr. " Perodo Ano
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP.
PARAMETERS: p_test AS CHECKBOX DEFAULT 'X'. " Desabilita boto para memorizar.
authority
SELECTION-SCREEN END OF BLOCK b01.

*====================================================================*
*** Evento: INITIALIZATION.
*====================================================================*
INITIALIZATION.
WRITE: icon_plant TO text2,
text-008 TO text2+5.
WRITE: icon_date TO text3,
text-004 TO text3+5.
*====================================================================*
*** Evento: START-OF-SELECTION *
*====================================================================*
START-OF-SELECTION.
PERFORM f_selecao_dados_1.
PERFORM f_set_inputfile_1. " Apura lucro/prej controladas.
PERFORM f_show_proposta_1. " Exibir proposta de lanamento

*&---------------------------------------------------------------------*
*& Form F_SELECAO_DADOS
*&---------------------------------------------------------------------*
* Descrio: Seleo de dados
*----------------------------------------------------------------------*
FORM f_selecao_dados_1.

DATA : v_monat TYPE monat.


DATA : vl_answer.

DATA: BEGIN OF t_ska1 OCCURS 0,


ktopl TYPE ska1-ktopl,
saknr TYPE ska1-saknr,
END OF t_ska1.

DATA : r_ktopl TYPE RANGE OF ska1-ktopl, " Como se fosse um tabela Interna
rl_ktopl LIKE LINE OF r_ktopl. " Como se fosse uma estrutura

DATA : r_saknr TYPE RANGE OF ska1-saknr, " Como se fosse um tabela Interna
rl_saknr LIKE LINE OF r_saknr. " Como se fosse uma estrutura

rl_ktopl-sign = 'I'. " Inclui os valores do intervalo


rl_ktopl-option = 'EQ'. " Tipo como 'NE' 'BT' e por aih vai
rl_ktopl-low = 'CH00'. " Informao que esta sendo incluida
APPEND rl_ktopl TO r_ktopl. " Alimenta a tabela pela estrutura
CLEAR rl_ktopl-low. " Limpa o campo "LOW" da estrutura

SELECT ktopl saknr


FROM ska1
INTO TABLE t_ska1
WHERE ktopl IN r_ktopl.

LOOP AT t_ska1.
rl_saknr-sign = 'I'. " Inclui os valores do intervalo
rl_saknr-option = 'EQ'. " Tipo como 'NE' 'BT' e por aih vai
rl_saknr-low = t_ska1-saknr. " Informao que esta sendo incluida
APPEND rl_saknr TO r_saknr. " Alimenta a tabela pela estrutura
CLEAR rl_saknr-low. " Limpa o campo "LOW" da estrutura
ENDLOOP.

MOVE p_poper+1(2) TO v_monat.


IF p_bukrs <> c_todas.
SELECT * FROM ztbfi008_eqptr_b "ZTBFI008_EQPATRI
INTO TABLE t_ztbfi008_2 " t_ztbfi008
WHERE controladora = p_bukrs
AND monat = v_monat
AND gjahr = p_gjahr.

** Incio - Testa se selecionou alguma empresa controladora - JPMJ - 17/04/2014


IF sy-subrc <> 0.
MESSAGE i010(zfi) WITH text-003.
REFRESH t_ztbfi008_2[].
STOP.
ENDIF.
** Incio - Testa se selecionou alguma empresa controladora - JPMJ - 17/04/2014
ELSE.
SELECT * FROM ztbfi008_eqptr_b "ZTBFI008_EQPATRI
INTO TABLE t_ztbfi008_2 " t_ztbfi008
WHERE monat = v_monat
AND gjahr = p_gjahr.

IF sy-subrc <> 0.
MESSAGE i010(zfi) WITH text-004.
REFRESH t_ztbfi008_2[].
STOP.
ENDIF.

ENDIF.

CHECK NOT t_ztbfi008_2[] IS INITIAL.

SELECT rclnt ryear docnr rldnr rbukrs docln racct hsl poper
FROM faglflexa CLIENT SPECIFIED
INTO TABLE t_faglflexa
FOR ALL ENTRIES IN t_ztbfi008_2 " t_ztbfi008_b
WHERE rclnt = sy-mandt
AND rldnr = p_ledger " Ledger selecionado pelo usuario.
AND rbukrs = t_ztbfi008_2-bukrs " Coligada
AND racct IN r_saknr " todas as contas
AND ryear = p_gjahr
AND poper = p_poper.

IF t_faglflexa[] IS INITIAL.
MESSAGE e001(00) WITH text-010.
ENDIF.
*
DATA : vl_bstat TYPE bstat_d.
CHECK NOT t_ztbfi008_2 IS INITIAL.

IF p_ledger <> '0L'.


vl_bstat = 'L'.
ELSE.
CLEAR vl_bstat.
ENDIF.
SELECT bukrs gjahr monat belnr xreversal
INTO TABLE t_bkpf
FROM bkpf
FOR ALL ENTRIES IN t_ztbfi008_2 " t_ztbfi008
WHERE bukrs = t_ztbfi008_2-controladora " lanamentos nas controladoras.
AND bstat = vl_bstat " recupera documentos referente ao ledger
solicitado.
AND blart = c_blart
AND gjahr = p_gjahr
AND monat = p_poper+1(2).
DELETE t_bkpf WHERE NOT xreversal IS INITIAL.
*
CHECK NOT t_bkpf IS INITIAL.

IF p_ledger = '0L'.
SELECT bukrs gjahr belnr zuonr buzei altkt bschl wrbtr
INTO TABLE t_bseg
FROM bseg
FOR ALL ENTRIES IN t_bkpf
WHERE bukrs = t_bkpf-bukrs
AND belnr = t_bkpf-belnr
AND gjahr = t_bkpf-gjahr.
ELSE.
SELECT bukrs gjahr belnr zuonr buzei altkt bschl wrbtr
INTO TABLE t_bseg
FROM bseg_add
FOR ALL ENTRIES IN t_bkpf
WHERE bukrs = t_bkpf-bukrs
AND belnr = t_bkpf-belnr
AND gjahr = t_bkpf-gjahr.

ENDIF.

ENDFORM. " F_SELECAO_DADOS

*&---------------------------------------------------------------------*
*& Form f_set_inputfile.
*&---------------------------------------------------------------------*
* Descrio: Prepara arquivo carregado para montagem do bdc
*----------------------------------------------------------------------*
FORM f_set_inputfile_1.
REFRESH t_result_filial[].
CLEAR t_result_filial.
LOOP AT t_faglflexa ASSIGNING <fs_faglflex>.
IF <fs_faglflex>-racct(1) GE '3' AND <fs_faglflex>-racct(1) LE '4'.
* IF <fs_faglflex>-racct NE c_ccequivalencia. " excluir saldo 3400010002.
MOVE: <fs_faglflex>-rbukrs TO wa_result_filial-rbukrs,
<fs_faglflex>-poper TO wa_result_filial-poper,
<fs_faglflex>-hsl TO wa_result_filial-hsl.
COLLECT wa_result_filial INTO t_result_filial.
* ENDIF.
ENDIF.
ENDLOOP.
IF t_result_filial[] IS INITIAL.
MESSAGE e001(00) WITH text-010.
ENDIF.
ENDFORM. " F_SET_INPUTFILE
*&---------------------------------------------------------------------*
*& Form F_SHOW_PROPOSTA
*&---------------------------------------------------------------------*
* text Tela ALV com os lanamentos de equivalencia
*----------------------------------------------------------------------*
FORM f_show_proposta_1 .

* PERFORM monta_layout_1.

PERFORM f_fieldcat_1.
PERFORM f_select_data_1.
PERFORM f_load_data_into_grid_1.
*
ENDFORM. " F_SHOW_PROPOSTA
*&---------------------------------------------------------------------*
*& Form fieldcat
*&---------------------------------------------------------------------*
FORM f_fieldcat_1 .

REFRESH s_fieldcat.
s_fieldcat-fieldname = 'ICON_LIGHT'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = '| |'.
s_fieldcat-key = 'X'.
APPEND s_fieldcat.

CLEAR s_fieldcat.
s_fieldcat-fieldname = 'BUKRS'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Controladora'.
s_fieldcat-outputlen = 13.
APPEND s_fieldcat.

CLEAR s_fieldcat.
s_fieldcat-fieldname = 'RBUKRS'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Coligada'.
s_fieldcat-outputlen = 12.
APPEND s_fieldcat.

CLEAR s_fieldcat.
s_fieldcat-fieldname = 'POPER'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Periodo'.
s_fieldcat-outputlen = 13.
APPEND s_fieldcat.

CLEAR s_fieldcat.
s_fieldcat-fieldname = 'BUPLA'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Local'.
s_fieldcat-outputlen = 15.
APPEND s_fieldcat.

CLEAR s_fieldcat.
s_fieldcat-fieldname = 'RBETR'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Lucro/Prejuizo'.
s_fieldcat-outputlen = 16.
APPEND s_fieldcat.

CLEAR s_fieldcat.
s_fieldcat-fieldname = 'PARTIC'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Participao'.
s_fieldcat-outputlen = 13.
APPEND s_fieldcat.

CLEAR s_fieldcat.
s_fieldcat-fieldname = 'VLLANC'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Valor a contabilizar'.
s_fieldcat-outputlen = 20.
APPEND s_fieldcat.

CLEAR s_fieldcat.
s_fieldcat-fieldname = 'RACCT'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Debitando'.
s_fieldcat-outputlen = 13.
APPEND s_fieldcat.

CLEAR s_fieldcat.
s_fieldcat-fieldname = 'SAKNR'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Creditando'.
s_fieldcat-outputlen = 13.
APPEND s_fieldcat.

CLEAR s_fieldcat.
s_fieldcat-fieldname = 'PRCTR'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Centro de lucro'.
s_fieldcat-outputlen = 15.
APPEND s_fieldcat.

** Incio - Incluso do campo C.Custo na tabela ZTBFI008_EQTR_B - JPMJ - 17/04/2014


CLEAR s_fieldcat.
s_fieldcat-fieldname = 'KOSTL'.
s_fieldcat-tabname = 'T_LANCAMENTOS'.
s_fieldcat-reptext_ddic = 'Centro de Custo'.
s_fieldcat-outputlen = 15.
APPEND s_fieldcat.
** Fim - Incluso do campo C.Custo na tabela ZTBFI008_EQTR_B - JPMJ - 17/04/2014

ENDFORM. " fieldcat


*&---------------------------------------------------------------------*
*& Form f_select_data.
*&---------------------------------------------------------------------*
FORM f_select_data_1.
DATA: l_bseg_subrc LIKE sy-tabix,
l_bukrs TYPE bukrs,
l_linha TYPE i,
l_signy TYPE c,
l_hsl TYPE p DECIMALS 4,
l_wrbtr TYPE p DECIMALS 4,
l_aux(15).
*
SORT t_ztbfi008_2 BY controladora.
READ TABLE t_ztbfi008_2 INTO wa_ztbfi008_2 INDEX 1.
l_bukrs = wa_ztbfi008_2-controladora.
CLEAR: l_linha, l_signy.
LOOP AT t_ztbfi008_2 INTO wa_ztbfi008_2. " Tabela de controladoras X controladas.

IF l_bukrs <> wa_ztbfi008_2-controladora.


MOVE wa_lancamentos-linha TO wa_lancamentos-total.
MODIFY t_lancamentos FROM wa_lancamentos TRANSPORTING total WHERE bukrs EQ
l_bukrs.
CLEAR: l_linha, wa_lancamentos-total.
l_bukrs = wa_ztbfi008_2-controladora.
ENDIF.

LOOP AT t_result_filial ASSIGNING <fs_result_filial> WHERE rbukrs =


wa_ztbfi008_2-bukrs.
ADD 1 TO l_linha.
l_hsl = <fs_result_filial>-hsl * wa_ztbfi008_2-participacao.
l_hsl = l_hsl / 100. " Valor efetivo apurado relativo a participao a ser
lanado.

MOVE: wa_ztbfi008_2-controladora TO wa_lancamentos-bukrs, " Controladora


wa_ztbfi008_2-participacao TO wa_lancamentos-partic, " Percentual
participao
wa_ztbfi008_2-cod_filial TO wa_lancamentos-bupla, " Local de
negocios
wa_ztbfi008_2-centro_lucro TO wa_lancamentos-prctr, " Centro de lucro
** Incio - Incluso do campo C.Custo na tabela ZTBFI008_EQTR_B - JPMJ - 17/04/2014
wa_ztbfi008_2-centro_custo TO wa_lancamentos-kostl, " Centro de Custo
** Fim - Incluso do campo C.Custo na tabela ZTBFI008_EQTR_B - JPMJ - 17/04/2014
<fs_result_filial>-poper TO wa_lancamentos-poper, " Perodo
<fs_result_filial>-rbukrs TO wa_lancamentos-rbukrs, " Controlada
<fs_result_filial>-hsl TO wa_lancamentos-rbetr. " Lucro/prejuizo da
controlada

CLEAR l_wrbtr.

LOOP AT t_bseg INTO wa_bseg WHERE bukrs = wa_lancamentos-bukrs "


controladora
AND gjahr = p_gjahr " periodo
AND zuonr = wa_lancamentos-rbukrs " controlada
armazenada nesse campo.
AND bschl = c_credito. " '50'

READ TABLE t_bkpf INTO wa_bkpf WITH KEY belnr = wa_bseg-belnr


gjahr = wa_bseg-gjahr .

IF l_bseg_subrc = 0 AND wa_bkpf-xreversal IS INITIAL.


* Se equivalencia j est apurada e no foi estornada.

IF wa_bseg-altkt(1) = '3'. " Se teve ganho.


l_wrbtr = l_wrbtr + wa_bseg-wrbtr. " calcula diferena ganho lanado
menos perda re-apurada.

ELSE. " Se teve perda.

l_wrbtr = l_wrbtr - wa_bseg-wrbtr. " calcula diferena perda lanada


menos ganho re-apurado.

ENDIF.

ENDIF.
ENDLOOP.

IF sy-subrc = 0.
l_wrbtr = l_wrbtr * 100.
l_hsl = l_hsl + l_wrbtr.
ELSE.
* No localizou lanamento de equivalencia no periodo .
MOVE icon_green_light TO wa_lancamentos-icon_light.
ENDIF.

WRITE l_hsl TO l_aux DECIMALS 2.


DO.
REPLACE '.' WITH '' INTO l_aux.
IF sy-subrc <> 0.
REPLACE ',' WITH '.' INTO l_aux.
EXIT.
ENDIF.
ENDDO.
CONDENSE l_aux NO-GAPS.
*
IF l_aux = 0.
SUBTRACT 1 FROM l_linha.
MOVE: icon_red_light TO wa_lancamentos-icon_light,
'X' TO l_signy.
ELSE.
MOVE: icon_yellow_light TO wa_lancamentos-icon_light,
'X' TO l_signy.
ENDIF.
*
*
***********************************************************************************
**
MOVE l_aux TO wa_lancamentos-vllanc. " Valor efetivo a ser lanado
IF l_hsl > 0.
* PERDA
MOVE: wa_ztbfi008_2-contabil_1 TO wa_lancamentos-racct, " Conta chave 40
wa_ztbfi008_2-contabil_2 TO wa_lancamentos-saknr. " Conta chave 50
ELSE.
* GANHO
MOVE: wa_ztbfi008_2-contabil_2 TO wa_lancamentos-racct, " Conta chave 40
wa_ztbfi008_2-contabil_3 TO wa_lancamentos-saknr. " Conta chave 50
ENDIF.
*
***********************************************************************************
**

MOVE l_linha TO wa_lancamentos-linha.


APPEND wa_lancamentos TO t_lancamentos.
ENDLOOP.
ENDLOOP.

MOVE wa_lancamentos-linha TO wa_lancamentos-total.


MODIFY t_lancamentos FROM wa_lancamentos TRANSPORTING total WHERE bukrs EQ
l_bukrs.

SORT t_lancamentos BY bukrs rbukrs poper.

* IF NOT l_signy IS INITIAL.


* CALL FUNCTION 'POPUP_TO_INFORM'
* EXPORTING
* TITEL = 'Equivalencia Patrimonial'
* TXT1 = 'LANAMENTOS REF. A EQUIVALENCIA PATRIMONIAL'
** INICIO - Jos Cludio - IBM
* TXT2 = 'SINALIZADOS EM VERMELHO NO SERO EXIBIDOS NO RELATRIO!'.
** FIM - Jos Cludio - IBM
** TXT3 = ' '
** TXT4 = ' '.
*
* ENDIF.
ENDFORM. "f_select_data

*&---------------------------------------------------------------------*
*& Form f_load_data_into_grid
*&---------------------------------------------------------------------*
FORM f_load_data_into_grid_1.

DATA: st_repid LIKE sy-repid. " Estrutura ALV

st_repid = sy-repid. "Bruno Santos

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
i_callback_program = st_repid
* i_callback_pf_status_set = 'STANDARD'
* i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'ZS_TOP_OF_PAGE' "Bruno Santos
is_layout = s_layout
it_fieldcat = s_fieldcat[]
it_sort = it_sort[]
i_save = 'A'
i_default = 'X'
TABLES
t_outtab = t_lancamentos
EXCEPTIONS
program_error = 1
OTHERS = 2.

** Incio - Inserir LOGO da CARVALHO HOSKEN - JPMJ - 17/04/2014


* st_repid = sy-repid.
*
* v_layout-colwidth_optimize = 'X'. "Largura melhor possvel da coluna
* v_layout-edit = ' '. "Permitir a edio
* v_layout-zebra = 'X'.
*
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* EXPORTING
* i_callback_program = v_repid
* i_callback_top_of_page = 'ZF_TOP_OF_PAGE'
** i_callback_pf_status_set = 'ZF_SET_PFSTATUS'
** i_callback_user_command = 'ZF_USER_COMMAND'
** i_background_id = 'ALV_BACKGROUND'
** i_background_id = 'LOGO'
* it_fieldcat = s_fieldcat[]
* is_layout = s_layout
* it_sort = it_sort[]
* i_default = 'X'
* i_save = 'A'
* is_variant = v_variante
* is_print = v_print
* TABLES
* t_outtab = t_lancamentos.

** Fim - Inserir LOGO da CARVALHO HOSKEN - JPMJ - 17/04/2014

IF NOT sy-subrc IS INITIAL.


MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ENDFORM. " load_data_into_grid


*&---------------------------------------------------------------------*
*& Form MONTA_LAYOUT
*&---------------------------------------------------------------------*
FORM monta_layout_1 .

DATA: v_titulo(255) TYPE c.

CONCATENATE 'Lanamento de equivalencia patrimonial ref. perodo:' p_poper '/'


p_gjahr INTO v_titulo SEPARATED BY space.

s_layout-zebra = 'X'.
s_layout-box_tabname = 'T_LANCAMENTOS'.
s_layout-box_tabname = 'T_LANCAMENTOS'.
s_layout-window_titlebar = v_titulo .

ENDFORM. " MONTA_LAYOUT


*----------------------------------------------------------------------*
* Form : f_status *
* Descrio: Carregar barra de botes em ALV *
*----------------------------------------------------------------------*
FORM standard USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD' EXCLUDING rt_extab.
ENDFORM. "standard
*&---------------------------------------------------------------------*
*& Form user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&F03'.
*< YOUR LOGIC>
ENDCASE .
ENDFORM. "user_command
*&--------------------------------------------------------------------*
*& Form zs_top_of_page
*&--------------------------------------------------------------------*
* Imprime o cabealho
*---------------------------------------------------------------------*
FORM zs_top_of_page. "Bruno Santos
* Para criar um logotipo, deve-se entrar na transao 0FPM002 e
* preencher:
* - Classe = PICTURES
* - Objeto = OT
* - Item = Nome do ID da figura

DATA: vi_linno LIKE sy-linno.

*ALV Header declarations


DATA: t_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader,
t_line LIKE wa_header-info,
ld_lines TYPE i,
v_titulo(255) TYPE c,
i_logo(10) TYPE c,
ld_linesc(10) TYPE c.
**********************************************************************
* Cabealho bsico para todas as solicitaes de tela
**********************************************************************

* Title
wa_header-typ = 'H'.
wa_header-info = 'LANAMENTO DE EQUIVALNCIA SALARIAL'.
APPEND wa_header TO t_header.
CLEAR wa_header.

CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Lanamento de equivalencia patrimonial ref. perodo: '.
CONCATENATE p_poper '/' p_gjahr INTO wa_header-info SEPARATED BY space.
APPEND wa_header TO t_header.
CLEAR: wa_header.

** Incio - Inserir LOGO da CARVALHO HOSKEN - JPMJ - 17/04/2014


** Monta cabalho do ALV buscando LOGO da empresa
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header "Bruno Santos
i_logo = 'LOGO'.
** Fim - Inserir LOGO da CARVALHO HOSKEN - JPMJ - 17/04/2014

* CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'


* EXPORTING
* it_list_commentary = it_header
* i_logo = 'TELA'.

* vi_linno = sy-linno.
* SKIP TO LINE 1.
* WRITE: AT 70 'Pgina:', sy-pagno.
*
* SKIP TO LINE vi_linno.
ENDFORM. "zs_top_of_page

Vous aimerez peut-être aussi