ZSD Cust Open Item-S4D
ZSD Cust Open Item-S4D
ZSD Cust Open Item-S4D
*&---------------------------------------------------------------------*
*& Report ZSD_CUST_OPEN_ITEM
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
* Program Name : ZSD_CUST_OPEN_ITEM
*
* Author (userid) : Rahul Kalra (DTT_ABAP3) *
* Functional : Raja Rahul/Hashita Jain *
* Module Name : FICO-R2R
*
* Creation Date : 22.07.2023
*
* Transaction : ZS4_AGEING
*
* Title : Customer Ageing Report
*
* Transport No : S4DK917053
*
*----------------------------------------------------------------------*
* Function: Customer Ageing Analytical Report for Distribution & Non- *
* Distribution Business in Company Code , Transaction & Hard Currency *
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& MODIFICATION LOG
*
*&---------------------------------------------------------------------*
*& Log# Date User ID Transport Ref Description *
*&---------------------------------------------------------------------*
*& 0001 14.09.2023 DTT_ABAP3 S4DK919080 Additional chg *
*& Fix for Below Incident :
*
*& SUBINC0023791 : PAN JV Backdated Reversal *
*&---------------------------------------------------------------------*
*& 0002 15.09.2023 DTT_ABAP3 S4DK919080 OnAccount/Advance *
*& Fix for Below Incident :
*
*& SUBINC0023791 : PAN JV Backdated Reversal *
*&---------------------------------------------------------------------*
*& 0003 20.09.2023 DTT_ABAP3 S4DK919080 Performance Improvement *
*& Fix for Below Incident :
*
*& Code for backdated reversal has been transferred to ABAP managed *
*& Database procedure to improve performance *
*&---------------------------------------------------------------------*
REPORT zsd_cust_open_item.
INCLUDE zsd_cust_open_item_top.
INCLUDE zsd_cust_open_item_sel.
INCLUDE zsd_cust_open_item_pbo.
INCLUDE zsd_cust_open_item_pai.
INCLUDE zsd_cust_open_item_subr.
AT SELECTION-SCREEN OUTPUT.
IF p_vendor = abap_true.
CLEAR:s_cust[].
LOOP AT SCREEN.
IF screen-group1 = 'CU' .
screen-active = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
IF p_adsale = abap_true OR
p_dist = abap_true.
CLEAR:s_vend[].
LOOP AT SCREEN.
IF screen-group1 = 'VE' .
screen-active = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
START-OF-SELECTION.
BEGIN OF lts_named_dref,
name TYPE string,
dref TYPE REF TO data,
END OF lts_named_dref ,
BEGIN OF lty_cust_latest,
customer TYPE kunnr,
amount TYPE fins_vhcur12,
END OF lty_cust_latest,
SELECT valsign,
valoption,
valfrom,
valto FROM setleaf WHERE setname = 'CUSTOMR01'
INTO TABLE @DATA(lt_cust_set).
IF sy-subrc = 0.
DATA(lr_cust) = VALUE trgr_kunnr( FOR ls_cust IN lt_cust_set ( sign = ls
_cust-valsign
option = ls
_cust-valoption
low = ls
_cust-valfrom
high = ls
_cust-valto ) ).
TRY.
DATA(lv_cust) = cl_shdb_seltab=>combine_seltabs(
EXPORTING
it_named_seltabs = VALUE #( ( name = 'CUSTOMER' dref = REF #( lr_c
ust[] ) ) ) ).
CATCH cx_shdb_exception.
ENDTRY.
ENDIF.
IF p_dist = abap_true OR
p_adsale = abap_true.
DATA(lr_acct) = VALUE fdp_corr_koart_rt( ( sign = 'I'
option = 'EQ'
low = 'D' ) ).
lv_acct = 'D'.
ELSE.
lr_acct = VALUE fdp_corr_koart_rt( ( sign = 'I'
option = 'EQ'
low = 'K' ) ).
lv_acct = 'K'.
ENDIF.
( sign = 'E'
option = 'EQ'
low = 'ZC' )
( sign = 'E'
option = 'EQ'
low = 'AB' )
( sign = 'E'
option = 'EQ'
low = 'PJ' )
( sign = 'E'
option = 'EQ'
low = 'DY' ) ).
*** End of Insertion S4DK919080 DTT_ABAP3
( sign = 'I'
option = 'EQ'
low = 'UC' )
( sign = 'I'
option = 'EQ'
low = 'UD' ) ).
( sign = 'I'
option = 'EQ'
low = 'AB' )
( sign = 'I'
option = 'EQ'
low = 'DY' )
( sign = 'I'
option = 'EQ'
low = 'PJ' )
).
IF p_adsale = abap_true.
( sign = 'E'
option = 'EQ'
low = 'ZC' )
( sign = 'E'
option = 'EQ'
low = 'AB' )
( sign = 'E'
option = 'EQ'
low = 'PJ' )
( sign = 'E'
option = 'EQ'
low = 'DY' )
( sign = 'E'
option = 'EQ'
low = 'UC' )
( sign = 'E'
option = 'EQ'
low = 'UE' )
( sign = 'E'
option = 'EQ'
low = 'UD' ) ).
( sign = 'I'
option = 'EQ'
low = 'ZC' )
( sign = 'I'
option = 'EQ'
low = 'AB' ) ).
( sign = 'I'
option = 'EQ'
low = 'ZC' )
( sign = 'I'
option = 'EQ'
low = 'AB' ) ).
lr_blart = VALUE #( ( sign = 'E'
option = 'EQ'
low = 'ZB' )
( sign = 'E'
option = 'EQ'
low = 'ZC' )
( sign = 'E'
option = 'EQ'
low = 'AB' )
( sign = 'E'
option = 'EQ'
low = 'PJ' )
( sign = 'E'
option = 'EQ'
low = 'DY' )
( sign = 'E'
option = 'EQ'
low = 'UC' )
( sign = 'E'
option = 'EQ'
low = 'UE' )
( sign = 'E'
option = 'EQ'
low = 'UD' )
).
ELSEIF p_vendor = abap_true.
TRY.
DATA(lv_where) = cl_shdb_seltab=>combine_seltabs(
EXPORTING
it_named_seltabs =
VALUE #( ( name = 'RCLNT' dref = REF #( lr_c
lient[] ) )
( name = 'RLDNR' dref = REF #( lr_r
ldnr[] ) )
( name = 'KOART' dref = REF #( lr_a
cct[] ) )
( name = 'RBUKRS' dref = REF #( s_cc
ode[] ) )
( name = 'KUNNR' dref = REF #( s_cu
st[] ) )
( name = 'LIFNR' dref = REF #( s_ve
nd[] ) )
( name = 'SEGMENT' dref = REF #( s_se
g[] ) )
( name = 'PRCTR' dref = REF #( s_pr
ctr[] ) )
( name = 'RBUSA' dref = REF #( s_ba
rea[] ) )
( name = 'BLART' dref = REF #( lr_b
lart[] ) )
( name = 'XREVERSED' dref = REF #( lr_r
ev[] ) )
( name = 'XREVERSING' dref = REF #( lr_r
evw[] ) )
) ).
CATCH cx_shdb_exception.
ENDTRY.
TRY.
DATA(lv_where_rev_p) = cl_shdb_seltab=>combine_seltabs(
EXPORTING
it_named_seltabs =
VALUE #( ( name = 'RCLNT' dref = REF #( lr_c
lient[] ) )
( name = 'RLDNR' dref = REF #( lr_r
ldnr[] ) )
( name = 'KOART' dref = REF #( lr_a
cct[] ) )
( name = 'RBUKRS' dref = REF #( s_cc
ode[] ) )
( name = 'KUNNR' dref = REF #( s_cu
st[] ) )
( name = 'LIFNR' dref = REF #( s_ve
nd[] ) )
( name = 'SEGMENT' dref = REF #( s_se
g[] ) )
( name = 'PRCTR' dref = REF #( s_pr
ctr[] ) )
( name = 'RBUSA' dref = REF #( s_ba
rea[] ) )
( name = 'BLART' dref = REF #( lr_b
lart_mig[] ) )
( name = 'XREVERSED' dref = REF #( lr_r
evp[] ) )
"( name = 'XREVERSING' dref = REF #( l
r_revw[] ) )
) ).
CATCH cx_shdb_exception.
ENDTRY.
TRY.
DATA(lv_where_wrev) = cl_shdb_seltab=>combine_seltabs(
EXPORTING
it_named_seltabs =
VALUE #( ( name = 'RCLNT' dref = REF #( lr_c
lient[] ) )
( name = 'RLDNR' dref = REF #( lr_r
ldnr[] ) )
( name = 'KOART' dref = REF #( lr_a
cct[] ) )
( name = 'RBUKRS' dref = REF #( s_cc
ode[] ) )
( name = 'KUNNR' dref = REF #( s_cu
st[] ) )
( name = 'LIFNR' dref = REF #( s_ve
nd[] ) )
( name = 'SEGMENT' dref = REF #( s_se
g[] ) )
( name = 'PRCTR' dref = REF #( s_pr
ctr[] ) )
( name = 'RBUSA' dref = REF #( s_ba
rea[] ) )
( name = 'BLART' dref = REF #( lr_b
lart_rev[] ) )
"( name = 'XREVERSED' dref = REF #( l
r_revp[] ) )
* ( name = 'XREVERSING' dref = REF
#( lr_revw[] ) )
) ).
CATCH cx_shdb_exception.
ENDTRY.
TRY.
DATA(lv_where_m) = cl_shdb_seltab=>combine_seltabs(
EXPORTING
it_named_seltabs =
VALUE #( ( name = 'RCLNT' dref = REF #( lr_c
lient[] ) )
( name = 'RLDNR' dref = REF #( lr_r
ldnr[] ) )
( name = 'KOART' dref = REF #( lr_a
cct[] ) )
( name = 'RBUKRS' dref = REF #( s_cc
ode[] ) )
( name = 'KUNNR' dref = REF #( s_cu
st[] ) )
( name = 'REBZG' dref = REF #( lr_i
nvref[] ) )
( name = 'SEGMENT' dref = REF #( s_se
g[] ) )
( name = 'PRCTR' dref = REF #( s_pr
ctr[] ) )
( name = 'RBUSA' dref = REF #( s_ba
rea[] ) )
( name = 'BLART' dref = REF #( lr_b
lart_m[] ) )
( name = 'XREVERSED' dref = REF #( lr_r
ev[] ) )
( name = 'XREVERSING' dref = REF #( lr_r
evw[] ) )
) ).
CATCH cx_shdb_exception.
ENDTRY.
TRY.
DATA(lv_where_seg) = cl_shdb_seltab=>combine_seltabs(
EXPORTING
it_named_seltabs = VALUE #( ( name = 'SEGMENT' dref = REF #( s_seg[]
) ) ) ).
CATCH cx_shdb_exception.
ENDTRY.
TRY.
DATA(lv_where_h) = cl_shdb_seltab=>combine_seltabs(
EXPORTING
it_named_seltabs =
VALUE #( ( name = 'RCLNT' dref = REF #( lr_c
lient[] ) )
( name = 'RLDNR' dref = REF #( lr_r
ldnr[] ) )
( name = 'KOART' dref = REF #( lr_a
cct[] ) )
( name = 'RBUKRS' dref = REF #( s_cc
ode[] ) )
( name = 'KUNNR' dref = REF #( s_cu
st[] ) )
( name = 'LIFNR' dref = REF #( s_ve
nd[] ) )
( name = 'SEGMENT' dref = REF #( s_se
g[] ) )
( name = 'PRCTR' dref = REF #( s_pr
ctr[] ) )
( name = 'RBUSA' dref = REF #( s_ba
rea[] ) )
( name = 'BLART' dref = REF #( lr_b
lart_h[] ) )
( name = 'REBZG' dref = REF #( lr_i
nvref[] ) )
( name = 'AUGBL' dref = REF #( lr_c
lrdoc[] ) )
( name = 'UMSKZ' dref = REF #( lr_s
pgl[] ) )
( name = 'XREVERSED' dref = REF #( lr_r
ev[] ) )
( name = 'XREVERSING' dref = REF #( lr_r
evw[] ) )
) ).
CATCH cx_shdb_exception.
ENDTRY.
IF p_vendor = abap_true.
TRY.
DATA(lv_where_noted) = cl_shdb_seltab=>combine_seltabs(
EXPORTING
it_named_seltabs =
VALUE #( ( name = 'MANDT' dref = REF #( lr_cl
ient[] ) )
( name = 'BUKRS' dref = REF #( s_cco
de[] ) )
( name = 'LIFNR' dref = REF #( s_ven
d[] ) )
( name = 'PRCTR' dref = REF #( s_prc
tr[] ) )
( name = 'GSBER' dref = REF #( s_bar
ea[] ) )
( name = 'BSTAT' dref = REF #( lr_st
atus[] ) )
( name = 'XSTOV' dref = REF #( lr_xs
tov[] ) )
) ).
CATCH cx_shdb_exception.
ENDTRY.
ELSE.
TRY.
lv_where_noted = cl_shdb_seltab=>combine_seltabs(
EXPORTING
it_named_seltabs =
VALUE #( ( name = 'MANDT' dref = REF #( lr_cl
ient[] ) )
( name = 'BUKRS' dref = REF #( s_cco
de[] ) )
( name = 'KUNNR' dref = REF #( s_cus
t[] ) )
( name = 'PRCTR' dref = REF #( s_prc
tr[] ) )
( name = 'GSBER' dref = REF #( s_bar
ea[] ) )
( name = 'BSTAT' dref = REF #( lr_st
atus[] ) )
( name = 'XSTOV' dref = REF #( lr_xs
tov[] ) )
) ).
CATCH cx_shdb_exception.
ENDTRY.
TRY.
DATA(lv_where_pdd) = cl_shdb_seltab=>combine_seltabs(
EXPORTING
it_named_seltabs =
VALUE #( ( name = 'RCLNT' dref = REF #( l
r_client[] ) )
( name = 'RLDNR' dref = REF #( l
r_rldnr[] ) )
( name = 'BSCHL' dref = REF #( l
r_postingkey[] ) )
( name = 'RACCT' dref = REF #( l
r_gl[] ) )
( name = 'DRCRK' dref = REF #( l
r_ind[] ) )
( name = 'XREVERSED' dref = REF #( l
r_rev[] ) )
( name = 'XREVERSING' dref = REF #( l
r_revw[] ) )
) ).
CATCH cx_shdb_exception.
ENDTRY.
ENDIF.
CLEAR:gv_highest.
gv_highest = p_buck01.
DATA(lv_highest) = VALUE int2( ).
DATA:lv_count TYPE n LENGTH 2 VALUE 2.
DATA:lv_count_cr TYPE n LENGTH 2 VALUE 2.
lv_count = lv_count + 1.
ENDWHILE.
IF p_adsale = abap_true OR
p_dist = abap_true.
IF p_ccurr = abap_true.
IF sy-subrc = 0.
IF p_adsale = abap_true.
CLEAR:<lfs_final>-bucket01,
<lfs_final>-bucket02,
<lfs_final>-bucket03,
<lfs_final>-bucket04,
<lfs_final>-bucket05,
<lfs_final>-bucket06,
<lfs_final>-bucket07,
<lfs_final>-bucket08,
<lfs_final>-bucket09,
<lfs_final>-bucket10,
<lfs_final>-bucket11,
<lfs_final>-bucket12,
<lfs_final>-bucket13,
<lfs_final>-bucket14,
<lfs_final>-bucket15,
<lfs_final>-bucket16.
ENDLOOP.
ENDIF.
DATA(lt_final_db) = lt_final.
IF p_summ = abap_true.
lv_count = 16.
lv_count_cr = 16.
IF lv_count = 0.
lv_count = 16.
lv_count_cr = 16.
EXIT.
ENDIF.
lv_onacc = lwa_final_cr-onaccount * -1.
lv_db = 'BUCKET' && lv_count.
lv_cr = 'ONBUCKET' && lv_count_cr.
ENDIF.
IF <lfs_summ> <= 0 .
WHILE lv_count >= 1.
lv_db = 'BUCKET' && lv_count.
IF lv_count = 0.
lv_count = 16.
lv_count_cr = 16.
EXIT.
ENDIF.
IF <lfs_summ> <= 0 .
lv_count = lv_count - 1.
lv_count_cr = lv_count_cr - 1.
ENDIF.
ENDIF.
ENDWHILE.
ENDIF.
ENDLOOP.
ENDIF.
lv_count = 16.
lv_count_cr = 16.
UNASSIGN:<lfs_summ>,<lfs_cr>.
ENDLOOP.
IF sy-subrc = 0.
IF p_adsale = abap_true.
CLEAR:<lfs_final_tc>-tbucket01,
<lfs_final_tc>-tbucket02,
<lfs_final_tc>-tbucket03,
<lfs_final_tc>-tbucket04,
<lfs_final_tc>-tbucket05,
<lfs_final_tc>-tbucket06,
<lfs_final_tc>-tbucket07,
<lfs_final_tc>-tbucket08,
<lfs_final_tc>-tbucket09,
<lfs_final_tc>-tbucket10,
<lfs_final_tc>-tbucket11,
<lfs_final_tc>-tbucket12,
<lfs_final_tc>-tbucket13,
<lfs_final_tc>-tbucket14,
<lfs_final_tc>-tbucket15,
<lfs_final_tc>-tbucket16.
ENDLOOP.
ENDIF.
DATA(lt_final_tc_db) = lt_final_tc.
IF p_summ = abap_true.
lv_count = 16.
lv_count_cr = 16.
IF lv_count = 0.
lv_count = 16.
lv_count_cr = 16.
EXIT.
ENDIF.
ENDIF.
IF <lfs_summ_tc> <= 0 .
WHILE lv_count >= 1.
lv_db = 'TBUCKET' && lv_count.
IF lv_count = 0.
lv_count = 16.
lv_count_cr = 16.
EXIT.
ENDIF.
IF <lfs_summ_tc> <= 0 .
lv_count = lv_count - 1.
lv_count_cr = lv_count_cr - 1.
ENDIF.
ENDIF.
ENDWHILE.
ENDIF.
ENDLOOP.
ENDIF.
APPEND lwa_ageing_onacc_tc TO lt_ageing_onacc_tc.
CLEAR:lwa_ageing_onacc_tc,
lv_tonacc.
UNASSIGN:<lfs_summ_tc>,
<lfs_cr_tc>.
lv_count = 16.
lv_count_cr = 16.
ENDLOOP.
IF sy-subrc = 0.
IF p_adsale = abap_true.
CLEAR:<lfs_final_hc>-hbucket01,
<lfs_final_hc>-hbucket02,
<lfs_final_hc>-hbucket03,
<lfs_final_hc>-hbucket04,
<lfs_final_hc>-hbucket05,
<lfs_final_hc>-hbucket06,
<lfs_final_hc>-hbucket07,
<lfs_final_hc>-hbucket08,
<lfs_final_hc>-hbucket09,
<lfs_final_hc>-hbucket10,
<lfs_final_hc>-hbucket11,
<lfs_final_hc>-hbucket12,
<lfs_final_hc>-hbucket13,
<lfs_final_hc>-hbucket14,
<lfs_final_hc>-hbucket15,
<lfs_final_hc>-hbucket16.
ENDLOOP.
ENDIF.
IF p_summ = abap_true.
lv_count = 16.
lv_count_cr = 16.
lv_count = 16.
lv_count_cr = 16.
EXIT.
ENDIF.
ENDIF.
IF <lfs_summ_hc> <= 0 .
WHILE lv_count >= 1.
lv_db = 'HBUCKET' && lv_count.
IF lv_count = 0 .
lv_count = 16.
lv_count_cr = 16.
EXIT.
ENDIF.
IF <lfs_summ_hc> <= 0.
lv_count = lv_count - 1.
lv_count_cr = lv_count_cr - 1.
ENDIF.
ENDIF.
ENDWHILE.
ENDIF.
ENDLOOP.
lv_count = 16.
lv_count_cr = 16.
UNASSIGN:<lfs_summ_hc>,<lfs_cr_hc>.
ENDLOOP.
SELECT companycode,
fiscalyear,
accountingdocument,
segment,
specialglind,
gstinvoiceno,
invoicedate,
postingdate,
netduedate ,
fiscyearper ,
docstatus ,
postingkey,
baselinedate,
vendor,
vendorname,
amount,
outstanding,
partial,
currency,
bucket01,
bucket02,
bucket03,
bucket04,
bucket05,
bucket06,
bucket07,
bucket08,
bucket09,
bucket10,
bucket11,
bucket12,
bucket13,
bucket14,
bucket15,
bucket16,
profitcenter,
profitcentername,
businessplace,
branchname,
doctype,
industry,
chequeno,
reconaccount,
itemtext,
paymentterms,
paymenttermstxt,
billfrom,
taxcode FROM zfi_vendor_out_tf( p_input = @lv_where,
p_out = @lv_where_outside,
p_noted = @lv_where_noted,
p_pdd = @lv_where_pdd,
p_postd = @p_postd,
p_docd = @p_docd,
p_netd = @p_netd,
p_summ = @p_summ,
p_det = @p_det,
p_wipdd = @p_wipdd,
p_normal = @p_normal,
p_note = @p_noted,
p_keyd = @p_keyd,
p_buck1 = @p_buck01,
p_buck2 = @p_buck02,
p_buck3 = @p_buck03,
p_buck4 = @p_buck04,
p_buck5 = @p_buck05,
p_buck6 = @p_buck06,
p_buck7 = @p_buck07,
p_buck8 = @p_buck08,
p_buck9 = @p_buck09,
p_buck10 = @p_buck10,
p_buck11 = @p_buck11,
p_buck12 = @p_buck12,
p_buck13 = @p_buck13,
p_buck14 = @p_buck14,
p_buck15 = @p_buck15,
p_acct = @lv_acct,
p_ledg = @p_rldnr,
p_high = @gv_highest ) INTO TABLE @DATA(lt_final_vendor).
IF sy-subrc = 0.
gt_final_vend = CORRESPONDING #( lt_final_vendor ).
IF p_summ = abap_true.
DATA(lt_summary_vend) = VALUE ltt_sum_vend( ).
DATA(lwa_summ_vend) = VALUE zo2c_vend_ageing_out_summary( ).
LOOP AT gt_final_vend INTO DATA(lwa_final_vend).
lwa_summ_vend = CORRESPONDING #( lwa_final_vend ).
COLLECT lwa_summ_vend INTO gt_final_s_vend.
ENDLOOP.
ENDIF.
CALL SCREEN 9000.
ELSE.
MESSAGE TEXT-002 TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*& Include ZSD_CUST_OPEN_ITEM_TOP
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
***INCLUDE ZSD_CUST_OPEN_ITEM_PBO.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_9000 OUTPUT.
IF p_adsale = abap_true.
SET TITLEBAR 'ZTITLE_NONDIS'.
ELSEIF p_dist = abap_true.
SET TITLEBAR 'ZTITLE_DIS'.
ELSEif p_vendor = abap_true.
SET TITLEBAR 'ZTITLE_VENDOR'.
ENDIF.
IF go_container IS INITIAL.
* Creating Docking Container
PERFORM create_objects.
* Filling the fieldcatalog table
PERFORM alv_build_fieldcat.
* Building Alv Layout
PERFORM alv_build_layout.
* Displaying the output
PERFORM output_display.
ENDIF.
ENDMODULE.
*----------------------------------------------------------------------*
***INCLUDE ZSD_CUST_OPEN_ITEM_PAI.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_9000 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'DWNLD'.
PERFORM download.
ENDCASE.
ENDMODULE.
*----------------------------------------------------------------------*
***INCLUDE ZSD_CUST_OPEN_ITEM_SUBR.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form create_objects
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM create_objects .
ENDIF.
* Creating grid for ALV display
CREATE OBJECT go_grid
EXPORTING
i_parent = go_container.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form alv_build_fieldcat
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM alv_build_fieldcat .
IF p_adsale = abap_true OR
p_dist = abap_true.
IF p_det = abap_true.
IF p_ccurr = abap_true.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZO2C_CUST_AGEING_OUT_BUCKET_TC'
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ELSEIF p_tcurr = abap_true.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZO2C_CUST_AGEING_OUT_BUCKET'
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ELSEIF p_hcurr = abap_true.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZO2C_CUST_AGEING_OUT_BUCKET_HC'
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
ELSE.
IF p_ccurr = abap_true.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZO2C_CUST_AGEING_OUT_SUMMARY'
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ELSEIF p_tcurr = abap_true.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZO2C_CUST_AGEING_OUT_SUMM_TC'
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ELSEIF p_hcurr = abap_true.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZO2C_CUST_AGEING_OUT_SUMM_HC'
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
ENDIF.
ELSE.
IF p_det = abap_true.
IF p_ccurr = abap_true.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZO2C_VEND_AGEING_OUT_BUCKET_TC'
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
ELSE.
IF p_ccurr = abap_true.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZO2C_VEND_AGEING_OUT_SUMMARY'
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF p_ccurr = abap_true.
READ TABLE gt_fieldcat ASSIGNING FIELD-SYMBOL(<lfs_fieldcat>)
WITH KEY fieldname = 'BUCKET01'.
IF <lfs_fieldcat> IS ASSIGNED.
IF p_buck01 IS INITIAL.
<lfs_fieldcat>-no_out = abap_true.
ELSE.
DATA(lv_buck1) = VALUE string( ).
lv_buck1 = p_buck01.
CONCATENATE '0-' lv_buck1 INTO <lfs_fieldcat>-scrtext_l.
CONCATENATE '0-' lv_buck1 INTO <lfs_fieldcat>-scrtext_m.
CONCATENATE '0-' lv_buck1 INTO <lfs_fieldcat>-scrtext_s.
ENDIF.
ENDIF.
CASE <lfs_fieldcat>-fieldname.
WHEN 'CUSTOMER'.
IF p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'AGENCYNAME'.
IF p_vendor = abap_true .
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'CLIENTNAME'.
IF p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'PDDIND'.
IF p_wopdd = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'PDDAMOUNT'.
IF p_wopdd = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'REGIONCODE'.
IF p_dist = abap_true .
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'COUNTRY'.
IF p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ITEMTEXT'.
IF p_adsale = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TAXCODE'.
IF p_adsale = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'BILLFROM'.
IF p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'RECONACCOUNT'.
IF p_adsale = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'CREDITS'.
IF p_dist = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'XBLCK'.
IF p_dist = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'BKTXT'.
IF p_dist = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'DCHNAME'.
IF p_dist = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'DIVISIONNAME'.
IF p_dist = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'USNAM'.
IF p_dist = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ZUONR'.
IF p_dist = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'KIDNO'.
IF p_dist = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONACCOUNT'.
IF p_dist = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ADVANCE'.
IF p_dist = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TCREDITS'.
IF p_dist = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONACCOUNT'.
IF p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TADVANCE'.
IF p_dist = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'PARTIAL'.
IF p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
<lfs_fieldcat>-do_sum = abap_true.
WHEN 'TPARTIAL'.
<lfs_fieldcat>-do_sum = abap_true.
WHEN 'HPARTIAL'.
<lfs_fieldcat>-do_sum = abap_true.
WHEN 'CHEQUENO'.
IF p_adsale = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'VENDOR'.
IF p_adsale = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'VENDORNAME'.
IF p_adsale = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'BASELINEDATE' .
IF p_adsale = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'POSTINGKEY'.
IF p_adsale = abap_true OR
p_dist = abap_true .
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TAMOUNT'.
IF p_ccurr = abap_true OR
p_hcurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
<lfs_fieldcat>-do_sum = abap_true.
WHEN 'TOUTSTANDING'.
IF p_ccurr = abap_true OR
p_hcurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
<lfs_fieldcat>-do_sum = abap_true.
WHEN 'FISCYEARPER'.
IF p_adsale = abap_true OR
p_dist = abap_true .
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TCURRENCY'.
IF p_ccurr = abap_true OR
p_hcurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'HAMOUNT'.
IF p_tcurr = abap_true OR
p_ccurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
<lfs_fieldcat>-do_sum = abap_true.
WHEN 'HOUTSTANDING'.
IF p_ccurr = abap_true OR
p_tcurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
<lfs_fieldcat>-do_sum = abap_true.
WHEN 'HCURRENCY'.
IF p_ccurr = abap_true OR
p_tcurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TBUCKET01'.
IF p_ccurr = abap_true OR
p_hcurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TBUCKET16'.
IF p_ccurr = abap_true OR
p_hcurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'AMOUNT'.
IF p_tcurr = abap_true OR
p_hcurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
<lfs_fieldcat>-do_sum = abap_true.
WHEN 'OUTSTANDING'.
IF p_tcurr = abap_true OR
p_hcurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
<lfs_fieldcat>-do_sum = abap_true.
WHEN 'CURRENCY'.
IF p_tcurr = abap_true OR
p_hcurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'USAGE'.
IF p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'BUCKET01'.
IF p_tcurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'BUCKET16'.
IF p_tcurr = abap_true OR
p_hcurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'HBUCKET16'.
IF p_tcurr = abap_true OR
p_ccurr = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'PROFITCENTER'.
IF p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'PROFITCENTERNAME'.
IF p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'AGENCYUMBRELLA'.
IF p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'INDUSTRY'.
IF p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'MSOTAG'.
IF p_adsale = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'RELSTATUS'.
IF p_adsale = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'SUPERGROUP'.
IF p_adsale = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'BUSINESSAREA'.
IF p_adsale = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'CUSTOMERGROUPNAME'.
IF p_adsale = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'SALESPERSON'.
IF p_adsale = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ZSABE'.
IF p_adsale = abap_true OR
p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
* WHEN 'IONUMBER'.
* IF p_vendor = abap_true OR
* p_dist = abap_true OR
* p_adsale = abap_true.
* <lfs_fieldcat>-no_out = abap_true.
* ENDIF.
WHEN 'C1AGENCY'.
IF p_vendor = abap_true OR
p_adsale = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'IDSMCODE'.
IF p_vendor = abap_true OR
p_adsale = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'C2AGENCY'.
IF p_vendor = abap_true OR
p_adsale = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
* WHEN 'RONUMBER' .
* IF p_vendor = abap_true OR
* p_dist = abap_true OR
* p_adsale = abap_true.
* <lfs_fieldcat>-no_out = abap_true.
* ENDIF.
WHEN 'CLIENTPAN'.
IF p_vendor = abap_true OR
p_dist = abap_true OR
p_adsale = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'CUSTOMERGSTIN'.
IF p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'AGENCYPAN'.
IF p_vendor = abap_true OR
p_dist = abap_true OR
p_adsale = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
* WHEN 'CHREFNUMBER'.
* IF p_vendor = abap_true.
* <lfs_fieldcat>-no_out = abap_true.
* ENDIF.
WHEN 'IRNNUMBER'.
IF p_vendor = abap_true OR
p_dist = abap_true OR
p_adsale = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'DISPUTEID'.
IF p_vendor = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'DISPUTEDAMT' .
IF p_vendor = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'DISPUTECURR'.
IF p_vendor = abap_true OR
p_dist = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET01'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET02'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET03'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET04'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET05'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET06'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET07'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET08'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET09'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET10'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET11'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET12'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET13'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET14'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET15'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'ONBUCKET16'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET01'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET02'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET03'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET04'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET05'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET06'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET07'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET08'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET09'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET10'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET11'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET12'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET13'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET14'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET15'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
WHEN 'TONBUCKET16'.
IF p_dist = abap_true OR p_vendor = abap_true.
<lfs_fieldcat>-no_out = abap_true.
ENDIF.
ENDCASE.
ENDLOOP.
IF <lfs_name_f> IS INITIAL.
<lfs_fieldcat>-no_out = abap_true.
ELSE.
DATA(lv_buck2) = VALUE string( ).
lv_buck2 = <lfs_name_f>.
lv_count_f = lv_count - 1.
DATA(lv_name_t) = 'p_buck' && lv_count_f.
ASSIGN (lv_name_t) TO FIELD-SYMBOL(<lfs_name_t>).
IF <lfs_name_t> IS ASSIGNED.
lv_buck1 = <lfs_name_t> + 1.
ENDIF.
IF <lfs_name_f> IS INITIAL.
<lfs_fieldcat>-no_out = abap_true.
ELSE.
lv_buck2 = <lfs_name_f>.
lv_count_f = lv_count - 1.
lv_name_t = 'p_buck' && lv_count_f.
ASSIGN (lv_name_t) TO <lfs_name_t>.
IF <lfs_name_t> IS ASSIGNED.
lv_buck1 = <lfs_name_t> + 1.
ENDIF.
IF <lfs_name_f> IS INITIAL.
<lfs_fieldcat>-no_out = abap_true.
ELSE.
lv_buck2 = <lfs_name_f>.
lv_count_f = lv_count - 1.
lv_name_t = 'p_buck' && lv_count_f.
ASSIGN (lv_name_t) TO <lfs_name_t>.
IF <lfs_name_t> IS ASSIGNED.
lv_buck1 = <lfs_name_t> + 1.
ENDIF.
IF <lfs_name_f> IS INITIAL.
<lfs_fieldcat>-no_out = abap_true.
ELSE.
lv_buck2 = <lfs_name_f>.
lv_count_f = lv_count - 1.
lv_name_t = 'p_buck' && lv_count_f.
ASSIGN (lv_name_t) TO <lfs_name_t>.
IF <lfs_name_t> IS ASSIGNED.
lv_buck1 = <lfs_name_t> + 1.
ENDIF.
IF <lfs_name_f> IS INITIAL.
<lfs_fieldcat>-no_out = abap_true.
ELSE.
lv_buck2 = <lfs_name_f>.
lv_count_f = lv_count - 1.
lv_name_t = 'p_buck' && lv_count_f.
ASSIGN (lv_name_t) TO <lfs_name_t>.
IF <lfs_name_t> IS ASSIGNED.
lv_buck1 = <lfs_name_t> + 1.
ENDIF.
IF <lfs_name_f> IS INITIAL.
<lfs_fieldcat>-no_out = abap_true.
ELSE.
lv_buck2 = <lfs_name_f>.
lv_count_f = lv_count - 1.
lv_name_t = 'p_buck' && lv_count_f.
ASSIGN (lv_name_t) TO <lfs_name_t>.
IF <lfs_name_t> IS ASSIGNED.
lv_buck1 = <lfs_name_t> + 1.
ENDIF.
lv_count = lv_count + 1.
CLEAR:lv_buck1,
lv_buck2.
ENDWHILE.
IF gv_highest > 0.
IF p_ccurr = abap_true.
READ TABLE gt_fieldcat ASSIGNING <lfs_fieldcat>
WITH KEY fieldname = 'BUCKET16'.
IF <lfs_fieldcat> IS ASSIGNED.
lv_buck1 = gv_highest + 1.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_l.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_m.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_s.
ENDIF.
lv_buck1 = gv_highest + 1.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_l.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_m.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_s.
ENDIF.
lv_buck1 = gv_highest + 1.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_l.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_m.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_s.
ENDIF.
lv_buck1 = gv_highest + 1.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_l.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_m.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_s.
ENDIF.
lv_buck1 = gv_highest + 1.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_l.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_m.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_s.
ENDIF.
lv_buck1 = gv_highest + 1.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_l.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_m.
CONCATENATE '>' lv_buck1 INTO <lfs_fieldcat>-scrtext_s.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form alv_build_layout
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM alv_build_layout .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form output_display
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM output_display .
* Local Declaration
DATA : lwa_variant TYPE disvariant.
CONSTANTS : lc_a TYPE char1 VALUE 'A'.
IF p_adsale = abap_true OR
p_dist = abap_true.
IF p_det = abap_true.
IF p_ccurr = abap_true.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
is_variant = lwa_variant
i_save = lc_a
is_layout = gs_layout
CHANGING
it_outtab = gt_final
it_fieldcatalog = gt_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc IS NOT INITIAL.
ENDIF.
ELSEIF p_tcurr = abap_true.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
is_variant = lwa_variant
i_save = lc_a
is_layout = gs_layout
CHANGING
it_outtab = gt_final_tc
it_fieldcatalog = gt_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc IS NOT INITIAL.
ENDIF.
ELSEIF p_hcurr = abap_true.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
is_variant = lwa_variant
i_save = lc_a
is_layout = gs_layout
CHANGING
it_outtab = gt_final_hc
it_fieldcatalog = gt_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc IS NOT INITIAL.
ENDIF.
ENDIF.
ELSE.
IF p_ccurr = abap_true.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
is_variant = lwa_variant
i_save = lc_a
is_layout = gs_layout
CHANGING
it_outtab = gt_final_s
it_fieldcatalog = gt_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc IS NOT INITIAL.
ENDIF.
ELSEIF p_tcurr = abap_true.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
is_variant = lwa_variant
i_save = lc_a
is_layout = gs_layout
CHANGING
it_outtab = gt_final_s_tc
it_fieldcatalog = gt_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc IS NOT INITIAL.
ENDIF.
ELSEIF p_hcurr = abap_true.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
is_variant = lwa_variant
i_save = lc_a
is_layout = gs_layout
CHANGING
it_outtab = gt_final_s_hc
it_fieldcatalog = gt_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc IS NOT INITIAL.
ENDIF.
ENDIF.
ENDIF.
ELSE.
IF p_det = abap_true.
IF p_ccurr = abap_true.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
is_variant = lwa_variant
i_save = lc_a
is_layout = gs_layout
CHANGING
it_outtab = gt_final_vend
it_fieldcatalog = gt_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc IS NOT INITIAL.
ENDIF.
ENDIF.
ELSE.
IF p_ccurr = abap_true.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
is_variant = lwa_variant
i_save = lc_a
is_layout = gs_layout
CHANGING
it_outtab = gt_final_s_vend
it_fieldcatalog = gt_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc IS NOT INITIAL.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form download
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM download .
"for excel functionality
DATA : lr_excel_structure TYPE REF TO data,
lr_source_table_descr TYPE REF TO cl_abap_tabledescr,
lr_table_row_descriptor TYPE REF TO cl_abap_structdescr,
lv_content TYPE xstring,
lt_binary_tab TYPE TABLE OF sdokcntasc,
lv_length TYPE i,
lv_filename1 TYPE string,
lv_path TYPE string,
lv_fullpath TYPE string.
IF p_ccurr = abap_true.
IF p_det = abap_true.
lr_table_row_descriptor ?= lr_source_table_descr->get_table_line_type( )
.
"excel instantiate
DATA(lr_tool_xls) = cl_salv_export_tool_ats_xls=>create_for_excel(
EXPORTING
r_data = lr_excel_structure ).
lr_config->add_column(
EXPORTING
header_text = lv_heading
field_name = lv_fieldname
display_type = if_salv_bs_model_column=>uie_text_view ).
ENDIF.
ENDLOOP.
IF sy-subrc <> 0.
* Implement suitable error handling here
ELSE.
ENDIF.
ENDIF.
ELSE.
GET REFERENCE OF gt_final_s INTO lr_excel_structure.
lr_itab_services = cl_salv_itab_services=>create_for_table_ref( lr_excel
_structure ).
lr_source_table_descr ?= cl_abap_tabledescr=>describe_by_data_ref( lr_ex
cel_structure ).
lr_table_row_descriptor ?= lr_source_table_descr->get_table_line_type( )
.
"excel instantiate
lr_tool_xls = cl_salv_export_tool_ats_xls=>create_for_excel(
EXPORTING
r_data = lr_excel_structure ).
lv_heading = ls_fcat-scrtext_l.
lv_fieldname = ls_fcat-fieldname.
lr_config->add_column(
EXPORTING
header_text = lv_heading
field_name = lv_fieldname
display_type = if_salv_bs_model_column=>uie_text_view ).
ENDIF.
ENDLOOP.
IF sy-subrc <> 0.
* Implement suitable error handling here
ELSE.
ENDIF.
ENDIF.
ENDIF.
ELSEIF p_tcurr = abap_true.
IF p_det = abap_true.
lr_table_row_descriptor ?= lr_source_table_descr->get_table_line_type( )
.
"excel instantiate
lr_tool_xls = cl_salv_export_tool_ats_xls=>create_for_excel(
EXPORTING
r_data = lr_excel_structure ).
lr_config->add_column(
EXPORTING
header_text = lv_heading
field_name = lv_fieldname
display_type = if_salv_bs_model_column=>uie_text_view ).
ENDIF.
ENDLOOP.
IF sy-subrc <> 0.
* Implement suitable error handling here
ELSE.
ENDIF.
ENDIF.
ELSE.
GET REFERENCE OF gt_final_s_tc INTO lr_excel_structure.
lr_itab_services = cl_salv_itab_services=>create_for_table_ref( lr_excel
_structure ).
lr_source_table_descr ?= cl_abap_tabledescr=>describe_by_data_ref( lr_ex
cel_structure ).
lr_table_row_descriptor ?= lr_source_table_descr->get_table_line_type( )
.
"excel instantiate
lr_tool_xls = cl_salv_export_tool_ats_xls=>create_for_excel(
EXPORTING
r_data = lr_excel_structure ).
lr_config->add_column(
EXPORTING
header_text = lv_heading
field_name = lv_fieldname
display_type = if_salv_bs_model_column=>uie_text_view ).
ENDIF.
ENDLOOP.
"get excel in xstring
TRY.
lr_tool_xls->read_result( IMPORTING content = lv_content ).
CATCH cx_root.
ENDTRY.
IF sy-subrc <> 0.
* Implement suitable error handling here
ELSE.
ENDIF.
ENDIF.
ENDIF.
ELSEIF p_hcurr = abap_true.
IF p_det = abap_true.
lr_table_row_descriptor ?= lr_source_table_descr->get_table_line_type( )
.
"excel instantiate
lr_tool_xls = cl_salv_export_tool_ats_xls=>create_for_excel(
EXPORTING
r_data = lr_excel_structure ).
IF ls_fcat-scrtext_l CP 'Amount*'
OR ( p_adsale = abap_true AND
( ls_fcat-fieldname = 'SUPERGROUP' OR
ls_fcat-fieldname = 'MSOTAG' OR
ls_fcat-fieldname = 'IRNNUMBER' OR
ls_fcat-fieldname = 'C1AGENCY' OR
ls_fcat-fieldname = 'C2AGENCY' OR
ls_fcat-fieldname = 'ZSABE' OR
ls_fcat-fieldname = 'AGENCYPAN' OR
ls_fcat-fieldname = 'CLIENTPAN') ).
CONTINUE.
ELSE.
lv_heading = ls_fcat-scrtext_l.
lv_fieldname = ls_fcat-fieldname.
lr_config->add_column(
EXPORTING
header_text = lv_heading
field_name = lv_fieldname
display_type = if_salv_bs_model_column=>uie_text_view ).
ENDIF.
ENDLOOP.
IF sy-subrc <> 0.
* Implement suitable error handling here
ELSE.
ENDIF.
ENDIF.
ELSE.
GET REFERENCE OF gt_final_s_hc INTO lr_excel_structure.
lr_itab_services = cl_salv_itab_services=>create_for_table_ref( lr_excel
_structure ).
lr_source_table_descr ?= cl_abap_tabledescr=>describe_by_data_ref( lr_ex
cel_structure ).
lr_table_row_descriptor ?= lr_source_table_descr->get_table_line_type( )
.
"excel instantiate
lr_tool_xls = cl_salv_export_tool_ats_xls=>create_for_excel(
EXPORTING
r_data = lr_excel_structure ).
lr_config->add_column(
EXPORTING
header_text = lv_heading
field_name = lv_fieldname
display_type = if_salv_bs_model_column=>uie_text_view ).
ENDIF.
ENDLOOP.
IF sy-subrc <> 0.
* Implement suitable error handling here
ELSE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: