Professional Documents
Culture Documents
ZF Check Xopvw
ZF Check Xopvw
ZF Check Xopvw
include icons.
type-pools: slis.
data: lt_listheader type slis_t_listheader.
data: ls_listheader type slis_listheader.
data: lt_fcat type slis_t_fieldcat_alv with header line.
data: ls_layout type slis_layout_alv.
data: begin of lt_display occurs 0,
bukrs like skb1-bukrs,
saknr like skb1-saknr,
gjahr like bkpf-gjahr,
belnr like bkpf-belnr,
buzei like bseg-buzei,
xopvw like skb1-xopvw,
xarch like bsis-xarch,
comment like bseg-sgtxt,
icon(5).
data: end of lt_display.
selection-screen skip.
selection-screen begin of line.
selection-screen comment 1(18) text_002 for field s_bukrs.
selection-screen position 20.
select-options: s_bukrs for bkpf-bukrs.
selection-screen end of line.
initialization.
at selection-screen.
perform check_input.
start-of-selection.
*get bukrs master
perform get_bukrs.
*get GL master data
perform get_skb1.
*process accounts
perform process_accounts.
*output results.
perform output_alv.
*&---------------------------------------------------------------------*
*& Form GET_SKB1
*&---------------------------------------------------------------------*
form get_skb1 .
loop at gt_bukrstab.
select * from skb1 into gs_skb1
where bukrs eq gt_bukrstab-bukrs
and saknr in s_saknr
*exclude recon accounts
and mitkz eq space.
select single xbilk from ska1 into gs_xbilk
where ktopl = gt_bukrstab-ktopl
and saknr = gs_skb1-saknr.
*only balance sheet accounts
check gs_xbilk = 'X'.
*only accounts with line item display
check gs_skb1-xkres = 'X'.
clear gt_account.
move-corresponding gs_skb1 to gt_account.
append gt_account.
endselect.
endloop.
*&---------------------------------------------------------------------*
*& Form PROCESS_ACCOUNTS
*&---------------------------------------------------------------------*
form process_accounts .
loop at gt_account.
read table gt_bukrstab with key
bukrs = gt_account-bukrs.
*************************************************************UD020920
*** determine lowest year directly from BSIS per account "UD020920
select min( gjahr ) from bsis into gt_bukrstab-yearfrom "UD020920
where bukrs = gt_account-bukrs "UD020920
and hkont = gt_account-saknr. "UD020920
*************************************************************UD020920
ls_gjahr = gt_bukrstab-yearto.
do.
if gt_account-xopvw = 'X'.
*search BSIS with XOPVW = space
select single * from bsis into ls_bsis
where bukrs = gt_account-bukrs
and hkont = gt_account-saknr
and gjahr = ls_gjahr
and xopvw = space
and xarch = space. "DB240914
if sy-subrc = 0.
clear gt_error.
move-corresponding gt_account to gt_error.
gt_error-gjahr = ls_gjahr.
gt_error-belnr = ls_bsis-belnr.
gt_error-buzei = ls_bsis-buzei.
insert gt_error into table gt_error.
*save key
clear gt_key.
move-corresponding gt_account to gt_key.
insert gt_key into table gt_key.
endif.
*search BSIS with XARCH = 'X' "DB240914
select single * from bsis into ls_bsis "DB240914
where bukrs = gt_account-bukrs "DB240914
and hkont = gt_account-saknr "DB240914
and gjahr = ls_gjahr "DB240914
and xarch = 'X'. "DB240914
if sy-subrc = 0. "DB240914
clear gt_error. "DB240914
move-corresponding gt_account to gt_error. "DB240914
gt_error-gjahr = ls_gjahr. "DB240914
gt_error-belnr = ls_bsis-belnr. "DB240914
gt_error-buzei = ls_bsis-buzei. "DB240914
gt_error-xarch = 'X'. "DB240914
insert gt_error into table gt_error. "DB240914
*save key
clear gt_key. "DB240914
move-corresponding gt_account to gt_key. "DB240914
insert gt_key into table gt_key. "DB240914
endif. "DB240914
else.
*search BSIS with XOPVW = X
select single * from bsis into ls_bsis
where bukrs = gt_account-bukrs
and hkont = gt_account-saknr
and gjahr = ls_gjahr
and xopvw = 'X'.
if sy-subrc = 0.
clear gt_error.
move-corresponding gt_account to gt_error.
gt_error-gjahr = ls_gjahr.
gt_error-belnr = ls_bsis-belnr.
gt_error-buzei = ls_bsis-buzei.
insert gt_error into table gt_error.
*save key
clear gt_key.
move-corresponding gt_account to gt_key.
insert gt_key into table gt_key.
endif.
endif.
ls_gjahr = ls_gjahr - 1.
if ls_gjahr < gt_bukrstab-yearfrom.
exit.
endif.
enddo.
endloop.
*&---------------------------------------------------------------------*
*& Form GET_BUKRS
*&---------------------------------------------------------------------*
form get_bukrs .
data: ls_bkpf type bkpf.
data: ls_gjahr type bkpf-gjahr.
*&---------------------------------------------------------------------*
*& Form CHECK_INPUT
*&---------------------------------------------------------------------*
form check_input .
*---------------------------------------------------------------------*
* Form OUTPUT_ALV
*---------------------------------------------------------------------*
form output_alv .
* Built fieldcatalog
refresh lt_fcat.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = sy-repid
i_internal_tabname = 'LT_DISPLAY'
i_inclname = sy-repid
changing
ct_fieldcat = lt_fcat[]
exceptions
others = 1.
* Layout settings
ls_layout-colwidth_optimize = 'X'.
*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*---------------------------------------------------------------------*
form top_of_page.
refresh lt_listheader.
clear ls_listheader.
ls_listheader-typ = 'H'.
ls_listheader-info = 'ZF_CHECK_XOPVW'.
append ls_listheader to lt_listheader.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = lt_listheader.
endform. "top_of_page