2007 Apr 24 3:51 PM
Hi,
I have to get the Year-to-date amount on an ALV output for a GL account. Is there any FM to do it?... Currently Iam just getting the output for the period that I put in selection screen.
Thank you,
SB.
Hi,
I have to get the Year-to-date amount on an ALV output for a GL account. Is there any FM to do it?... Currently Iam just getting the output for the period that I put in selection screen.
Thank you,
SB.
2007 Apr 24 4:04 PM
2007 Apr 24 4:13 PM
Hi
You have to use the filed symbols for this purpose.
see the sample code
report zfgldr0010
line-size 122
line-count 60
no standard page heading
message-id zndc.
***********************************************************************
Database Tables
***********************************************************************
tables: bsis, " Accounting: Secondary Index for G/L Accounts
ska1, " GL Account Master
t001, " Company Codes
csks, " Cost Centers Master
setnode, " Cost Center Group Hierarchy
setleaf. " Cost Center Group Hierarchy
***********************************************************************
Declaration of Internal Tables
***********************************************************************
Internal Table to fetch the Opex Budget & Capex Actual Data
data: begin of it_bud_tab occurs 0,
lednr like cosp-lednr, " Ledger No
objnr like cosp-objnr, " Object No
gjahr like cosp-gjahr, " Fiscal Year
wrttp like cosp-wrttp, " Actuals
versn like cosp-versn, " Version
twaer like cosp-twaer, " Currency
perbl like cosp-perbl, " Period Block
kstar like cosp-kstar, " Cost Element/GL A/C No
wog001 like cosp-wog001, " Total Value
wog002 like cosp-wog002, " Total Value
wog003 like cosp-wog001, " Total Value
wog004 like cosp-wog002, " Total Value
wog005 like cosp-wog001, " Total Value
wog006 like cosp-wog002, " Total Value
wog007 like cosp-wog001, " Total Value
wog008 like cosp-wog002, " Total Value
wog009 like cosp-wog001, " Total Value
wog010 like cosp-wog002, " Total Value
wog011 like cosp-wog001, " Total Value
wog012 like cosp-wog002, " Total Value
end of it_bud_tab.
Internal Table to fetch the Settlement Costs(Opex-Actual)
data: begin of it_set_tab occurs 0,
kokrs like coep-kokrs, " Controlling Area
belnr like coep-belnr, " Acc Document
buzei like coep-buzei, " Line Item
perio like coep-perio, " Period Block
wkgbtr like coep-wkgbtr, " Value in CO Curr
lednr like coep-lednr, " Ledger No
objnr like coep-objnr, " Object No
gjahr like coep-gjahr, " Fiscal Year
wrttp like coep-wrttp, " Actuals
versn like coep-versn, " Version
kstar like coep-kstar, " Cost Element
beknz like coep-beknz, " Dr/Cr Indicator
parob1 like coep-parob1, " Partner Object
end of it_set_tab.
Internal Table to fetch the COBRB data(Settlement rules)
data: begin of cobrb_tab occurs 0,
objnr like cobrb-objnr, " Object No
rec_objnr1 like cobrb-rec_objnr1, " Ref Object No
bureg like cobrb-bureg, " Dostribution Rule
lfdnr like cobrb-lfdnr, " Sequence No
perbz like cobrb-perbz, " Settlement Rule
konty like cobrb-konty, " Acct Assign Category
bukrs like bsis-bukrs, " Company Code
kostl like bsis-kostl, " Cost Center
end of cobrb_tab.
Internal Table to Settlement Actual Costs for Cost center & GL
data: begin of set_act_tab occurs 0,
kostl like csks-kostl, " Cost Center
hkont like bsis-hkont, " GL Account No
amt_atd like bsis-dmbtr, " YTD Actual
end of set_act_tab.
Internal Table to Settlement Actual Costs for Cost center
data: begin of set1_act_tab occurs 0,
kostl like csks-kostl, " Cost Center
hkont like bsis-hkont, " GL Account No
amt_atd like bsis-dmbtr, " YTD Actual
end of set1_act_tab.
Internal Table to Capex Budget Figures
data: begin of cap_tab occurs 0,
belnr like coej-belnr, " Accounting Doc No
buzei like coej-buzei, " Line Item No
objnr like coej-objnr, " Object No
wrttp like bpej-wrttp, " Value Type
gjahr like coej-gjahr, " Fiscal Year
wtjhr like bpej-wtjhr, " budget Value
end of cap_tab.
Internal Table to Segragate the Budget Figures(Full Year and YTD)
data: begin of cap1_tab occurs 0,
gjahr like coej-gjahr, " Fiscal Year
kostl(10) type n, " Cost Center
hkont(10) type n, " GL Account No
amt_fy like coej-wkf001, " Full Year Amount
amt_ytd like coej-wkf001, " Ytd Amount
end of cap1_tab.
Internal Table to Sum up the Budget Figures(Full Year and YTD)
data: begin of cap2_tab occurs 0,
gjahr like coej-gjahr, " Fiscal Year
kostl(10) type n, " Cost Center
amt_fy like coej-wkf001, " Full Year Amount
amt_ytd like coej-wkf001, " Ytd Amount
end of cap2_tab.
Internal Table to Segragate the CAPEX YTD data(GL Wise)
data: begin of cap_ytd_tab occurs 0,
gjahr like coej-gjahr, " Fiscal Year
kostl(10) type n, " Cost Center
kstar like coej-kstar, " Cost Element
amt_ytd like coej-wkf001, " Ytd Amount
end of cap_ytd_tab.
Internal Table to Segragate the CAPEX YTD data(CC Wise)
data: begin of cap1_ytd_tab occurs 0,
gjahr like coej-gjahr, " Fiscal Year
kostl(10) type n, " Cost Center
amt_ytd like coej-wkf001, " Ytd Amount
end of cap1_ytd_tab.
Internal Table to Segragate the Budget Figures(Full Year and YTD)
data: begin of it_ytd_tab occurs 0,
gjahr like cosp-gjahr, " Fiscal Year
kostl like bsis-kostl, " Cost Center
kstar like cosp-kstar, " Cost Element
amt_fy like cosp-wkf001, " Full Year Amount
amt_ytd like coej-wkf001, " Ytd Amount
end of it_ytd_tab.
Internal Table to Segragate the Budget Figures(Full Year and YTD)
data: begin of it_ytd1_tab occurs 0,
gjahr like cosp-gjahr, " Fiscal Year
kostl like bsis-kostl, " Cost Center
amt_fy like cosp-wkf001, " Full Year Amount
amt_ytd like coej-wkf001, " Ytd Amount
end of it_ytd1_tab.
Internal Table to fetch the Actual YTD Figures
data: begin of it_act_tab occurs 0,
bukrs like bsis-bukrs, " Company Code
hkont like bsis-hkont, " GL Account No
gjahr like bsis-gjahr, " Fiscal Year
belnr like bsis-belnr, " Accounting Doc No
budat like bsis-budat, " Posting Date
waers like bsis-waers, " Currency
kostl like bsis-kostl, " Cost Center
shkzg like bsis-shkzg, " Dr/Cr Indicator
dmbtr like bsis-dmbtr, " Doc Amount
end of it_act_tab.
Internal Table to fetch the Actual YTD Figures( GL-SUM)
data: begin of act1_tab occurs 0,
bukrs like bsis-bukrs, " Company Code
kostl like bsis-kostl, " Cost Center
hkont like bsis-hkont, " GL Account No
gjahr like bsis-gjahr, " Fiscal Year
dmbtr like bsis-dmbtr, " Doc Amount
end of act1_tab.
Internal Table to fetch the Actual YTD Figures( CC-SUM)
data: begin of act2_tab occurs 0,
bukrs like bsis-bukrs, " Company Code
kostl like bsis-kostl, " Cost Center
gjahr like bsis-gjahr, " Fiscal Year
dmbtr like bsis-dmbtr, " Doc Amount
end of act2_tab.
Internal Table to fetch the WBS Data
data: begin of wbs_tab occurs 0,
pspnr like prps-pspnr, " WBS Element
posid like prps-posid, " WBS Structure Element
objnr like prps-objnr, " Object No
psphi like prps-psphi, " Project ID
pbukr like prps-pbukr, " Company Code
pkokr like prps-pkokr, " Controlling Area
fkstl like prps-fkstl, " Cost center
end of wbs_tab.
Internal Table to get Capex Actual from Networks
data: begin of net_tab occurs 0,
aufnr like afko-aufnr, " Order No
ftrmi like afko-ftrmi, " Release Date
pronr like afko-pronr, " Project No
aufpl like afvc-aufpl, " Routing No
aplzl like afvc-aplzl, " Counter No
objnr like afvc-objnr, " Object No
projn like afvc-projn, " WBS Element
end of net_tab.
Internal Table to get Capex Actual from Orders
data: begin of ord_tab occurs 0,
aufnr like aufk-aufnr, " Order No
aedat like aufk-aedat, " Order Date
kostl like aufk-kostl, " Cost center
objnr like aufk-objnr, " Object No
pspel like aufk-pspel, " WBS Element
end of ord_tab.
Internal Table to fetch the Capex Actual Data
data: it_cap_tab like kv02s occurs 0 with header line.
Internal Table to store the output of function-G_SET_TREE_IMPORT.
data : ccenter_group_tab like sethier occurs 0 with header line.
Internal Table to store the output of function-G_SET_TREE_IMPORT.
data : cost_center_tab like setvalues occurs 0 with header line.
***********************************************************************
Declaration of Variables
***********************************************************************
data: v_f_oper_amnt like bsis-wrbtr, " Operations F Year Budget
v_f_depr_amnt like bsis-wrbtr, " Depreciation F Year Budget
v_f_main_amnt like bsis-wrbtr, " Maintenance F Year Budget
v_f_capx_amnt like bsis-wrbtr, " Capex F Year Budget
v_b_oper_amnt like bsis-wrbtr, " Operations Budget YTD
v_b_depr_amnt like bsis-wrbtr, " Depreciation Budget YTD
v_b_main_amnt like bsis-wrbtr, " Maintenance Budget YTD
v_b_capx_amnt like bsis-wrbtr, " Capex Budget YTD
v_a_oper_amnt like bsis-wrbtr, " Operations Actual YTD
v_a_depr_amnt like bsis-wrbtr, " Depreciation Actual YTD
v_a_main_amnt like bsis-wrbtr, " Maintenance Actual YTD
v_a_capx_amnt like bsis-wrbtr, " Capex Actual YTD
v_v_oper_amnt type i, " Operations Variance
v_v_depr_amnt type i, " Depreciation Variance
v_v_main_amnt type i, " Maintenance Variance
v_v_capx_amnt type i, " Capex Variance
v_t_f_amnt type i, " Total F Year Budget
v_t_b_amnt type i, " Total Budget YTD
v_t_a_amnt type i, " Total Actual YTD
v_t_v_amnt type i, " Total Variance
v_gt_f_amnt type i, " GTotal F Year Budget
v_gt_b_amnt type i, " GTotal Budget YTD
v_gt_a_amnt type i, " GTotal Actual YTD
v_gt_v_amnt type i, " GTotal Variance
v_per_oper type i, " % YTD Operations
v_per_depr type i, " % YTD Depreciation
v_per_main type i, " % YTD Maintenance
v_per_capx type i, " % YTD Capex
v_per_tot type i, " % YTD Total
v_per_gtot type i, " % YTD G Total
v_kstar(4) type n, " Cost element
v_yr(2) type c, " Year
v_year(4) type c, " Year
v_lines type i, " Number
v_str(10) type c, " String
v_gl(4) type n, " GL element
v_gl1(10) type n, " GL Account Code
v_mon(2) type n, " Month
v_month(2) type n, " Month
v_day(2) type n, " Day
v_date like sy-datum, " Start Date in Year
v_setid like sethier-setid, " To store Identification of a set
v_subrc like sy-subrc, " Return code
v_settid like rgsbs-setnr. " Identification of a set
data: v_f_oper_amnt1 type i, " Operations F Year Budget
v_f_depr_amnt1 type i, " Depreciation F Year Budget
v_f_main_amnt1 type i, " Maintenance F Year Budget
v_f_capx_amnt1 type i, " Capex F Year Budget
v_b_oper_amnt1 type i, " Operations Budget YTD
v_b_depr_amnt1 type i, " Depreciation Budget YTD
v_b_main_amnt1 type i, " Maintenance Budget YTD
v_b_capx_amnt1 type i, " Capex Budget YTD
v_a_oper_amnt1 type i, " Operations Actual YTD
v_a_depr_amnt1 type i, " Depreciation Actual YTD
v_a_main_amnt1 type i, " Maintenance Actual YTD
v_a_capx_amnt1 type i. " Capex Actual YTD
***********************************************************************
Declaration of Constants
***********************************************************************
constants : c_i type c value 'I', " Sign
c_x type c value 'X', " Sign
c_d type c value 'D', " Type
c_h type c value 'H', " Credit Ind
c_s type c value 'S', " Type
c_o type c value 'O', " Type
c_a type c value 'A', " Type
c_01(2) type n value '01', " Month
c_opt1(2) type c value 'EQ', " Option
c_opt2(2) type c value 'BT', " Option
c_dot(3) type c value '...', " Dots
c_or(2) type c value 'OR', " Type
c_ks(2) type c value 'KS', " Type
c_mon(2) type n value '01', " Month
c_ndc like setnode-setname value 'NDC', " CC Group
c_glno like coej-versn value '000', " For GL No
c_versn1 like coej-versn value '100', " Value
c_kokrs like coej-kokrs value '1000', " Controlling Area
c_wrttp like coej-wrttp value '01', " Value Type
c_wrttp1 like coej-wrttp value '41', " Value Type
c_wrttp2 like coej-wrttp value '04', " Value Type
c_versn like coej-versn value '000', " Version
c_kbud like bpej-vorga value 'KBUD', " Activity
c_kbfr like bpej-vorga value 'KBFR', " Activity
c_kbn0 like bpej-vorga value 'KBN0', " Activity
c_it_bud_tab_wog0(15) value 'IT_BUD_TAB-WOG0',
c_prart like prps-prart value 'CA', " Project Type
c_psin like afvc-steus value 'PSIN', " Control Key
c_lednr like cosp-lednr value '00', " Ledger
c_lednr1 like bpej-lednr value '0002', " Ledger
c_class1 like setnode-setclass value '0101', " Class
c_class2 like setnode-subclass value '1000', " Subclass
c_thous type i value '1000', " Number
c_settab like rgsbs-table value 'CCSS', " Table for set
c_cctfld like t800s-feld value 'KOSTL'. " Field name
***********************************************************************
Declaration of Ranges
***********************************************************************
ranges: rn_kostl for csks-kostl. " Cost Centers
***********************************************************************
Selection Screen
***********************************************************************
selection-screen begin of block b1 with frame title text-001.
parameters : p_bukrs like t001-bukrs
default '1000'," Company Code
p_gjahr like bsis-gjahr
default sy-datum+0(4), " Fiscal Year
p_date like bsis-budat obligatory. " Date
selection-screen end of block b1.
selection-screen begin of block b2 with frame title text-021.
parameters : p_cgrup like setnode-setname. " Cost Center Group
select-options: s_kostl for csks-kostl. " Cost Center
selection-screen end of block b2.
selection-screen begin of block b3 with frame title text-029.
select-options :
s_opers for ska1-saknr obligatory, " Operns & Support GL A/C
s_deprc for ska1-saknr obligatory, " Depreciation GL A/C
s_mmain for ska1-saknr obligatory, " Major Maintenance GL A/C
s_capex for ska1-saknr obligatory. " Capital Expenditure GL A/C
selection-screen end of block b3.
***********************************************************************
Initialization
***********************************************************************
initialization.
***********************************************************************
At selection-screen
***********************************************************************
at selection-screen.
Validate the Selection Screen fields
perform validate_screen.
Value request for Cost Center Group.
at selection-screen on value-request for p_cgrup .
Get the F4 Help for Cost center Group
perform set_auswaehlen(sapfk00b) using c_settab c_cctfld
changing p_cgrup v_subrc
v_settid.
***********************************************************************
Start-of-Selection
***********************************************************************
start-of-selection.
Clear all the Variables in the Program
perform clear_var.
Get the Cost Centers from Cost Center Group.
perform get_cc_values.
Get the Budget data from database Table COSP
perform get_budget_data.
Get the Settlement Costs data from database Tables COBRB,COSP
perform get_cobrb_data.
Get the Actual YTD data from database Table BSIS
perform get_act_ytd_data.
Get the WBS Element Data
perform get_wbs_data.
Get the Networks and Activities for the WBS
perform get_net_ord_data.
Get the WBS Budget data from database Tables BPEJ
perform get_cap_budget_data.
Get the WBS Actual YTD data for WBS
perform get_cap_act_ytd_data.
***********************************************************************
Top-of-page
***********************************************************************
top-of-page.
Write the Report and Column Headings
perform top_of_page.
***********************************************************************
End-of-Selection
***********************************************************************
end-of-selection.
D-splay the Output Report.
perform display_report.
***********************************************************************
Form-Routines
***********************************************************************
&----
*& Form validate_screen
&----
Validation of selection Screen fields
----
form validate_screen.
Validation of Company Code
clear t001.
if not p_bukrs is initial.
select single bukrs
into t001-bukrs
from t001
where bukrs eq p_bukrs.
if sy-subrc <> 0.
message e999 with 'Incorrect Company Code'(033).
endif.
endif.
Validation of GL Account Code( P & L Operations )
clear ska1.
if not s_opers[] is initial.
select saknr up to 1 rows
into ska1-saknr
from ska1
where saknr in s_opers
and ktopl = c_kokrs
and xbilk = ' '.
endselect.
if sy-subrc <> 0.
message e999 with
'Incorrect GL Account for Operations and Support Cost'(034).
endif.
endif.
Validation of GL Account Code( P & L Depreciation)
clear ska1.
if not s_deprc[] is initial.
select saknr up to 1 rows
into ska1-saknr
from ska1
where saknr in s_deprc
and ktopl = c_kokrs
and xbilk = ' '.
endselect.
if sy-subrc <> 0.
message e999 with
'Incorrect GL Account for Depreciation'(035).
endif.
endif.
Validation of GL Account Code( P & L Maintenance)
clear ska1.
if not s_mmain[] is initial.
select saknr up to 1 rows
into ska1-saknr
from ska1
where saknr in s_mmain
and ktopl = c_kokrs
and xbilk = ' '.
endselect.
if sy-subrc <> 0.
message e999 with
'Incorrect GL Account for Major Maintenance'(036).
endif.
endif.
Validation of GL Account Code (Balance Sheet-Capex)
clear ska1.
if not s_capex[] is initial.
select saknr up to 1 rows
into ska1-saknr
from ska1
where saknr in s_capex
and ktopl = c_kokrs
and xbilk = c_x.
endselect.
if sy-subrc <> 0.
message e999 with
'Incorrect GL Account for Capital Expenditures'(037).
endif.
endif.
Validation of Cost Center Group
if not p_cgrup is initial .
clear setleaf-setname.
select setname up to 1 rows
from setleaf
into setleaf-setname
where setname eq p_cgrup and
setclass = c_class1 and
subclass = c_class2.
endselect.
if sy-subrc <> 0.
clear setnode-setname.
select setname up to 1 rows
from setnode
into setnode-setname
where setname eq p_cgrup and
setclass = c_class1 and
subclass = c_class2.
endselect.
if sy-subrc <> 0.
message e999 with
'Enter Correct Cost Center Group'(038).
endif.
endif.
endif.
Validation of Cost Center
clear csks.
if not s_kostl[] is initial.
select kostl up to 1 rows
into csks-kostl
from csks
where kostl in s_kostl
and kokrs = c_kokrs.
endselect.
if sy-subrc <> 0.
message e999 with
'Enter Correct Cost Center Code'(039).
endif.
endif.
Enter either Cost Center Group or Values
if not p_cgrup is initial and not s_kostl[] is initial.
message e999 with
'Enter either Cost Center Group or Values'(040).
endif.
Validation of Date
if p_date+0(4) ne p_gjahr.
message e999(zndc) with
'Please Enter the date in same Fiscal Year'(020).
endif.
To enter only last day of the month
clear: v_month, v_day, v_year.
v_month = p_date+4(2).
v_day = p_date+6(2).
v_year = p_date+0(4).
if ( v_month = '01' or v_month = '03' or v_month = '05' or
v_month = '07' or v_month = '08' or v_month = '10' or
v_month = '12' ).
if v_day ne '31'.
message e999(zndc) with
'Enter Last date of the Month'(022).
endif.
elseif ( v_month = '04' or v_month = '06' or v_month = '09' or
v_month = '11' ).
if v_day ne '30'.
message e999(zndc) with
'Enter Last date of the Month'(022).
endif.
elseif v_month = '02'.
if v_year eq '2004' or v_year eq '2008'.
if v_day ne '29'.
message e999(zndc) with
'Enter Last date of the Month'(022).
endif.
else.
if v_day ne '28'.
message e999(zndc) with
'Enter Last date of the Month'(022).
endif.
endif.
endif.
endform. " validate_screen
&----
*& Form get_cc_values
&----
Get the Cost Centers from Cost Center Group
----
form get_cc_values.
Populate the Cost Centers from Cost Center Group
if s_kostl[] is initial.
if p_cgrup is initial.
p_cgrup = c_ndc.
else.
p_cgrup = p_cgrup.
endif.
Concatenating Setnode table setclass,subclass fields and
Cost Center Group
concatenate c_class1 c_class2 p_cgrup
into v_setid.
Calling function module to get SET_HIERARCHY & SET_VALUES
perform frm_g_set_tree_import tables ccenter_group_tab[]
cost_center_tab[]
using v_setid.
loop at cost_center_tab.
rn_kostl-low = cost_center_tab-from.
rn_kostl-high = cost_center_tab-to.
rn_kostl-sign = c_i.
if rn_kostl-low = rn_kostl-high.
rn_kostl-option = c_opt1.
else.
rn_kostl-option = c_opt2.
endif.
append rn_kostl.
endloop.
clear v_setid.
endif.
else.
rn_kostl[] = s_kostl[].
endif.
endform. "get_cc_values
&----
*& FORM FRM_G_SET_TREE_IMPORT
&----
Subroutine to call the function G_SET_TREE_IMPORT.
----
form frm_g_set_tree_import
tables ccenter_group_tab structure sethier
cost_center_tab structure setvalues
using p_v_setid.
call function 'G_SET_TREE_IMPORT'
exporting
CLIENT = SY-MANDT
FIELDNAME = ' '
LANGU = SY-LANGU
NO_DESCRIPTIONS = ' '
NO_RW_INFO = ' '
setid = p_v_setid
TABNAME = ' '
NO_VARIABLE_REPLACEMENT = ' '
ROOT_HEADER_ONLY = ' '
NO_TABLE_BUFFERING = ' '
MAX_HIER_LEVEL = 99
DATE_FROM =
DATE_TO =
IMPORTING
SET_NOT_TRANSPARENT =
tables
set_hierarchy = ccenter_group_tab
set_values = cost_center_tab
EXCEPTIONS
SET_NOT_FOUND = 1
ILLEGAL_FIELD_REPLACEMENT = 2
ILLEGAL_TABLE_REPLACEMENT = 3
OTHERS = 4
.
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. "frm_g_set_tree_import
&----
*& Form clear_var
&----
Clear all the Variables in the program
----
form clear_var.
Clear/Initialize all the Variables
clear: v_f_oper_amnt1, v_f_depr_amnt1, v_f_main_amnt1,
v_f_capx_amnt1, v_b_oper_amnt1, v_b_depr_amnt1,
v_b_main_amnt1, v_b_capx_amnt1, v_a_oper_amnt1,
v_a_depr_amnt1, v_a_main_amnt1, v_a_capx_amnt1,
v_f_oper_amnt, v_f_depr_amnt, v_f_main_amnt,
v_f_capx_amnt, v_b_oper_amnt, v_b_depr_amnt,
v_b_main_amnt, v_b_capx_amnt, v_a_oper_amnt,
v_a_depr_amnt, v_a_main_amnt, v_a_capx_amnt,
v_v_oper_amnt, v_v_depr_amnt, v_v_main_amnt,
v_v_capx_amnt, v_t_f_amnt, v_t_b_amnt,
v_t_a_amnt, v_t_v_amnt, v_gt_f_amnt,
v_gt_b_amnt,v_gt_a_amnt,v_gt_v_amnt,
v_per_oper, v_per_depr, v_per_main,
v_per_capx, v_per_tot, v_per_gtot.
endform. "clear_var
&----
*& Form get_budget_data
&----
Get the Budget Data from Database Table COSP
----
form get_budget_data.
Form Local data
data: l_period(2) type n,
l_name(35) type c,
l_monat type i .
l_monat = p_date+4(2).
Field Symbols
field-symbols <fs>.
clear it_bud_tab.
refresh it_bud_tab.
select lednr " Ledger No
objnr " Object No
gjahr " Fiscal Year
wrttp " Actuals
versn " Version
twaer " Currency
perbl " Period Block
kstar " Cost Element/GL A/C No
wog001 " Total Value
wog002 " Total Value
wog003 " Total Value
wog004 " Total Value
wog005 " Total Value
wog006 " Total Value
wog007 " Total Value
wog008 " Total Value
wog009 " Total Value
wog010 " Total Value
wog011 " Total Value
wog012 " Total Value
into table it_bud_tab
from cosp
where lednr = c_lednr and
gjahr = p_gjahr and
wrttp = c_wrttp and
versn = c_versn and
beknz in (c_d,c_s).
if sy-subrc = 0.
Segragate the Budget Figures(Full Year and YTD)
loop at it_bud_tab.
if it_bud_tab-objnr+0(2) eq c_ks.
move-corresponding it_bud_tab to it_ytd_tab.
it_ytd_tab-kostl = it_bud_tab-objnr+6(10).
it_ytd_tab-amt_fy = it_bud_tab-wog001 + it_bud_tab-wog002 +
it_bud_tab-wog003 + it_bud_tab-wog004 +
it_bud_tab-wog005 + it_bud_tab-wog006 +
it_bud_tab-wog007 + it_bud_tab-wog008 +
it_bud_tab-wog009 + it_bud_tab-wog010 +
it_bud_tab-wog011 + it_bud_tab-wog012.
Get the YTD Budget using Field Symbols
do l_monat times.
l_period = sy-index.
concatenate c_it_bud_tab_wog0 l_period
into l_name.
assign (l_name) to <fs>.
it_ytd_tab-amt_ytd = it_ytd_tab-amt_ytd +
<fs>.
enddo.
collect it_ytd_tab.
clear it_ytd_tab.
endif.
endloop.
sort it_ytd_tab by gjahr kostl kstar.
Cost Center wise Sum Up of Costs
loop at it_ytd_tab.
at end of kostl.
sum.
move-corresponding it_ytd_tab to it_ytd1_tab.
append it_ytd1_tab.
endat.
clear it_ytd1_tab.
endloop.
sort it_ytd1_tab by gjahr kostl.
Segragate the Budget Figures into different Accounts/Cost elements
loop at it_ytd_tab.
if it_ytd_tab-kostl in rn_kostl.
Budget Full Year and YTD (Operations & Support Cost)
if not s_opers[] is initial.
if it_ytd_tab-kstar in s_opers.
v_f_oper_amnt = v_f_oper_amnt + it_ytd_tab-amt_fy.
v_b_oper_amnt = v_b_oper_amnt + it_ytd_tab-amt_ytd.
endif.
endif.
Budget Full Year and YTD (Depreciation)
if not s_deprc[] is initial.
if it_ytd_tab-kstar in s_deprc.
v_f_depr_amnt = v_f_depr_amnt + it_ytd_tab-amt_fy.
v_b_depr_amnt = v_b_depr_amnt + it_ytd_tab-amt_ytd.
endif.
endif.
Budget Full Year and YTD (Major Maintainance)
if not s_mmain[] is initial.
if it_ytd_tab-kstar in s_mmain.
v_f_main_amnt = v_f_main_amnt + it_ytd_tab-amt_fy.
v_b_main_amnt = v_b_main_amnt + it_ytd_tab-amt_ytd.
endif.
endif.
endif.
endloop.
Convert the Amount fields to nearest Thousand
v_f_oper_amnt1 = v_f_oper_amnt / c_thous .
v_f_depr_amnt1 = v_f_depr_amnt / c_thous .
v_f_main_amnt1 = v_f_main_amnt / c_thous .
v_b_oper_amnt1 = v_b_oper_amnt / c_thous .
v_b_depr_amnt1 = v_b_depr_amnt / c_thous .
v_b_main_amnt1 = v_b_main_amnt / c_thous .
endif.
endform. "get_budget_data
&----
*& Form get_cobrb_data
&----
Get the Settlement Data from Database Table COBRB
----
form get_cobrb_data.
clear cobrb_tab.
refresh cobrb_tab.
select objnr " Object No
rec_objnr1 " Ref Object No
bureg " Dostribution Rule
lfdnr " Sequence No
perbz " Settlement Rule
konty " Acct Assign Category
bukrs " Company Code
kostl " Cost Center
into table cobrb_tab
from cobrb
where kostl in rn_kostl.
sort cobrb_tab by objnr rec_objnr1.
delete adjacent duplicates from cobrb_tab comparing objnr.
Get the Settlement Costs from COEP Table
clear it_set_tab.
refresh it_set_tab.
if not cobrb_tab[] is initial.
select kokrs " Controlling Area
belnr " Acc Document
buzei " Line Item
perio " Period Block
wkgbtr " Value in CO Curr
lednr " Ledger No
objnr " Object No
gjahr " Fiscal Year
wrttp " Actuals
versn " Version
kstar " Cost Element
beknz " Dr/Cr Indicator
parob1 " Partner Object
into table it_set_tab
from coep
for all entries in cobrb_tab
where lednr = c_lednr and
wrttp = c_wrttp2 and
versn = c_versn and
gjahr = p_gjahr and
objnr = cobrb_tab-objnr and
parob1 = cobrb_tab-rec_objnr1 and
beknz in (c_o, c_a).
endif.
Settlement Actual Costs
loop at cobrb_tab.
if cobrb_tab-objnr+0(2) eq c_or.
loop at it_set_tab where objnr = cobrb_tab-objnr
and parob1 = cobrb_tab-rec_objnr1.
set_act_tab-kostl = cobrb_tab-kostl.
set_act_tab-hkont = it_set_tab-kstar.
Get the Actual Settlement Costs YTD Amount
if it_set_tab-perio between c_mon and v_month.
set_act_tab-amt_atd = set_act_tab-amt_atd +
abs( it_set_tab-wkgbtr ).
endif.
collect set_act_tab.
clear set_act_tab.
endloop.
endif.
endloop.
sort set_act_tab by kostl hkont.
Sum Up the Settlement Costs-CC wise
loop at set_act_tab.
at end of kostl.
read table set_act_tab index sy-tabix.
sum.
move-corresponding set_act_tab to set1_act_tab.
append set1_act_tab.
endat.
clear set1_act_tab.
endloop.
sort set1_act_tab by kostl.
delete set1_act_tab where amt_atd = 0.
endform. "get_cobrb_data
&----
*& Form get_act_ytd_data
&----
Get the Actual YTD Data from Database Table BSIS
----
form get_act_ytd_data.
clear it_act_tab.
refresh it_act_tab.
select
bukrs " Company Code
hkont " GL Account No
gjahr " Fiscal Year
belnr " Accounting Doc No
budat " Posting Date
waers " Currency
kostl " Cost Center
shkzg " Dr/Cr Indicator
dmbtr " Doc Amount
into table it_act_tab
from bsis
where bukrs eq p_bukrs and
gjahr eq p_gjahr and
budat le p_date and
kostl in rn_kostl.
if sy-subrc = 0.
sort it_act_tab by bukrs hkont.
loop at it_act_tab.
if it_act_tab-shkzg = c_h.
it_act_tab-dmbtr = it_act_tab-dmbtr * -1.
endif.
move-corresponding it_act_tab to act1_tab.
collect act1_tab.
clear act1_tab.
endloop.
sort act1_tab by bukrs kostl hkont.
endif.
Cost Center wise Sum Up of Costs
loop at act1_tab.
at end of kostl.
sum.
move-corresponding act1_tab to act2_tab.
append act2_tab.
endat.
clear act2_tab.
endloop.
sort act2_tab by gjahr kostl.
Seperate the different Actual YTD Expenditures
loop at act1_tab.
Actual YTD (Operations & Support Cost)
if not s_opers[] is initial.
if act1_tab-hkont in s_opers.
v_a_oper_amnt = v_a_oper_amnt + act1_tab-dmbtr.
endif.
endif.
Actual YTD (Depreciation)
if not s_deprc[] is initial.
if act1_tab-hkont in s_deprc.
v_a_depr_amnt = v_a_depr_amnt + act1_tab-dmbtr.
endif.
endif.
Actual YTD (Major Maintainance)
if not s_mmain[] is initial.
if act1_tab-hkont in s_mmain.
v_a_main_amnt = v_a_main_amnt + act1_tab-dmbtr.
endif.
endif.
endloop.
Opex Settlement Actual Costs
loop at set_act_tab.
Actual YTD (Operations & Support Cost)
if not s_opers[] is initial.
if set_act_tab-hkont in s_opers.
v_a_oper_amnt = v_a_oper_amnt + set_act_tab-amt_atd.
endif.
endif.
Actual YTD (Depreciation)
if not s_deprc[] is initial.
if set_act_tab-hkont in s_deprc.
v_a_depr_amnt = v_a_depr_amnt + set_act_tab-amt_atd.
endif.
endif.
Actual YTD (Major Maintainance)
if not s_mmain[] is initial.
if set_act_tab-hkont in s_mmain.
v_a_main_amnt = v_a_main_amnt + set_act_tab-amt_atd.
endif.
endif.
endloop.
Convert Amount Fields to nearest thousands
v_a_oper_amnt1 = v_a_oper_amnt / c_thous .
v_a_depr_amnt1 = v_a_depr_amnt / c_thous .
v_a_main_amnt1 = v_a_main_amnt / c_thous .
endform. " get_act_ytd_data
&----
*& Form get_wbs_data
&----
Get the WBS Element Data
----
form get_wbs_data.
clear wbs_tab.
refresh wbs_tab.
select pspnr " WBS Element
posid " WBS Structure Element
objnr " Object No
psphi " Project ID
pbukr " Company Code
pkokr " Controlling Area
fkstl " Cost Center
into table wbs_tab
from prps
where pbukr = p_bukrs and
pkokr = c_kokrs and
fkstl in rn_kostl and
prart = c_prart.
Consider only the Same Year WBS Elements Data
loop at wbs_tab.
v_yr = wbs_tab-posid+5(2).
if v_yr <> p_gjahr+2(2) .
delete wbs_tab index sy-tabix.
endif.
clear: v_yr, v_gl.
endloop.
sort wbs_tab by pspnr posid.
endform. "get_wbs_data
&----
*& Form get_net_ord_data
&----
Get the Network, Orders Data for the WBS
----
form get_net_ord_data.
Get the Network data
clear: net_tab, ord_tab.
refresh: net_tab, ord_tab.
if not wbs_tab[] is initial.
select a~aufnr " Order No
a~ftrmi " Release Date
a~pronr " Project No
b~aufpl " Routing No
b~aplzl " Counter No
b~objnr " Object No
b~projn " WBS Element
into table net_tab
from afko as a join afvc as b
on aaufpl eq baufpl
for all entries in wbs_tab
where a~pronr eq wbs_tab-psphi and
b~projn eq wbs_tab-pspnr and
b~steus eq c_psin.
Get the Orders data
select aufnr " Order No
aedat " Order Date
kostl " Cost center
objnr " Object No
pspel " WBS Element
into table ord_tab
from aufk
for all entries in wbs_tab
where pspel eq wbs_tab-pspnr.
endif.
endform. "get_net_ord_data
&----
*& Form get_cap_budget_data
&----
Get the Budget Data from Database Table BPEJ
----
form get_cap_budget_data.
Get the Full Year budget from BPEJ Table
clear cap_tab.
refresh cap_tab.
select belnr " Accounting Doc No
buzei " Line Item No
objnr " Object No
wrttp " Value type
gjahr " Fiscal Year
wtjhr " budget Value
into table cap_tab
from bpej
where lednr = c_lednr1 and
wrttp = c_wrttp1 and
gjahr = p_gjahr and
versn = c_versn and
vorga in (c_kbud,c_kbfr,c_kbn0).
sort cap_tab by belnr buzei objnr wrttp.
Separate the Full Year and YTD Budgets
loop at wbs_tab.
v_gl = wbs_tab-posid+7(4).
v_mon = wbs_tab-posid+11(2).
concatenate v_gl c_glno c_versn1 into v_gl1.
loop at cap_tab where gjahr = p_gjahr and
objnr = wbs_tab-objnr.
cap1_tab-gjahr = cap_tab-gjahr.
cap1_tab-kostl = wbs_tab-posid+2(3).
if cap_tab-wrttp = c_wrttp1.
if v_gl = v_kstar.
cap1_tab-amt_fy = cap1_tab-amt_fy + cap_tab-wtjhr.
endif.
if v_mon between c_wrttp and v_month.
if v_gl <> v_kstar or v_gl1 in s_capex.
cap1_tab-hkont = v_gl1.
cap1_tab-amt_ytd = cap1_tab-amt_ytd + cap_tab-wtjhr.
endif.
endif.
endif.
endloop.
append cap1_tab.
clear:v_gl, v_gl1, cap1_tab.
endloop.
sort cap1_tab by gjahr kostl hkont.
Cost Center wise totals
loop at cap1_tab.
at end of kostl.
sum.
move-corresponding cap1_tab to cap2_tab.
append cap2_tab.
endat.
clear cap2_tab.
endloop.
sort cap2_tab by gjahr kostl.
delete cap2_tab where amt_fy = 0 and amt_ytd = 0.
Segregate the Budget,YTD Budget and Actual YTD Amounts
loop at cap2_tab.
v_f_capx_amnt = v_f_capx_amnt + cap2_tab-amt_fy.
v_b_capx_amnt = v_b_capx_amnt + cap2_tab-amt_ytd.
endloop.
v_f_capx_amnt1 = v_f_capx_amnt / c_thous.
v_b_capx_amnt1 = v_b_capx_amnt / c_thous.
endform. "get_cap_budget_data
&----
*& Form get_cap_act_ytd_data
&----
Get the Actual YTD Data from Database Table COSP
----
form get_cap_act_ytd_data.
Get the Actual Costs for CAPEX
call function 'K_CO_OBJECT_BALANCE_GET'
exporting
par_gjah1 = p_gjahr
PAR_POPE1 =
PAR_GJAH2 =
PAR_POPE2 =
par_kokrs = c_kokrs
FLG_DBCRD =
flg_settl = c_x
FLG_FYEAR =
FLG_POPER =
FLG_DINFO =
FLG_NOALV = 'X'
tables
PTA_WRTTP =
PTA_AWVRS =
PTA_VALTY =
PTA_OBJNR =
tab_kv02s = it_cap_tab
exceptions
system_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.
Segregate the YTD Actual figures
loop at wbs_tab.
v_gl = wbs_tab-posid+7(4).
concatenate v_gl c_glno into v_gl1.
if v_gl1 in s_capex.
cap_ytd_tab-kostl = wbs_tab-posid+2(3).
cap_ytd_tab-gjahr = p_gjahr.
cap_ytd_tab-kstar = v_gl1.
read table it_cap_tab with key objnr = wbs_tab-objnr
wrttp = c_wrttp2
beknz = ' '.
if sy-subrc = 0.
cap_ytd_tab-amt_ytd = it_cap_tab-wogxx.
endif.
Read the Networks data to get the actual costs
loop at net_tab where pronr = wbs_tab-psphi and
projn = wbs_tab-pspnr.
read table it_cap_tab with key objnr = net_tab-objnr
wrttp = c_wrttp2
beknz = ' '.
if sy-subrc = 0.
cap_ytd_tab-amt_ytd = cap_ytd_tab-amt_ytd + it_cap_tab-wogxx.
endif.
endloop.
Read the Orders data to get the actual costs
loop at ord_tab where pspel = wbs_tab-pspnr.
read table it_cap_tab with key objnr = ord_tab-objnr
wrttp = c_wrttp2
beknz = ' '.
if sy-subrc = 0.
cap_ytd_tab-amt_ytd = cap_ytd_tab-amt_ytd + it_cap_tab-wogxx.
endif.
endloop.
collect cap_ytd_tab.
clear cap_ytd_tab.
endif.
endloop.
sort cap_ytd_tab by gjahr kostl.
Cost center wise totals(Capex YTD Actual)
loop at cap_ytd_tab.
at end of kostl.
read table act1_tab index sy-tabix.
sum.
move-corresponding cap_ytd_tab to cap1_ytd_tab.
append cap1_ytd_tab.
endat.
clear cap1_ytd_tab.
endloop.
sort cap1_ytd_tab by gjahr kostl.
delete cap1_ytd_tab where amt_ytd = 0.
Segregate the Budget,YTD Budget and Actual YTD Amounts
loop at cap1_ytd_tab.
if cap1_ytd_tab-kostl in rn_kostl.
v_a_capx_amnt = v_a_capx_amnt + cap1_ytd_tab-amt_ytd.
endif.
endloop.
v_a_capx_amnt1 = v_a_capx_amnt / c_thous.
endform. " get_cap_act_ytd_data
&----
*& Form top_of_page
&----
Write the Report and Column Headings
----
form top_of_page.
skip.
format color col_heading on.
write: /1(122) 'NATIONAL DRILLING COMPANY'(002) centered,
/1(122) 'Total Expenditures Report'(003) centered.
format color off.
concatenate p_date+0(4) c_01 c_01 into v_date.
write: /2 'Company Code :'(024), p_bukrs,
90 'Report Run Date:'(032), sy-datum,
/2 'Fiscal Year :'(025), p_gjahr,
90 'Time :'(030), sy-uzeit,
/2 'Year to Date From :'(026), v_date ,
'To'(028), p_date,
90 'User :'(031), sy-uname.
if not p_cgrup is initial.
write: /2 'Cost Center Group :'(019), p_cgrup.
endif.
if not s_kostl[] is initial.
if s_kostl-high is initial.
write: /2 'Cost Center :'(023),
s_kostl-low.
else.
write: /2 'Cost Center From :'(027),
s_kostl-low+7(3),'To'(028), s_kostl-high.
endif.
endif.
if not s_opers[] is initial.
if s_opers-high is initial.
clear: v_str, v_lines.
describe table s_opers lines v_lines.
if v_lines gt 1.
concatenate s_opers-low+3(7) c_dot into v_str.
write: /2 'Operations & Support Costs GL A/C :'(041),
v_str.
else.
write: /2 'Operations & Support Costs GL A/C :'(041),
s_opers-low.
endif.
else.
clear: v_str, v_lines.
describe table s_opers lines v_lines.
if v_lines gt 1.
concatenate s_opers-high+3(7) c_dot into v_str.
write: /2 'Operations & Support Costs GL A/C From :'(042),
s_opers-low+3(7), 'To'(028), v_str.
else.
write: /2 'Operations & Support Costs GL A/C From :'(042),
s_opers-low+3(7), 'To'(028), s_opers-high.
endif.
endif.
endif.
if not s_deprc[] is initial.
if s_deprc-high is initial.
write: /2 'Depreciation GL A/C Code :'(043),
s_deprc-low.
else.
write: /2 'Depreciation GL A/C Code From :'(044),
s_deprc-low+3(7), 'To'(028), s_deprc-high.
endif.
endif.
if not s_mmain[] is initial.
if s_mmain-high is initial.
write: /2 'Major Maintenance GL A/C Code :'(045),
s_mmain-low.
else.
write: /2 'Major Maintenance GL A/C Code From :'(046),
s_mmain-low+3(7), 'To'(028), s_mmain-high.
endif.
endif.
if not s_capex[] is initial.
if s_capex-high is initial.
write: /2 'Capital Expenditure GL A/C Code :'(047),
s_capex-low.
else.
write: /2 'Capital Expenditure GL A/C Code From :'(048),
s_capex-low+3(7),'To'(028), s_capex-high.
endif.
endif.
write /97 text-004.
write /1(122) sy-uline.
format color col_heading on.
write: /1 sy-vline,
42 sy-vline, 43(31) 'BUDGET'(005) centered,
74 sy-vline, 90 sy-vline,
106 sy-vline,122 sy-vline.
write: /1 sy-vline,2(40) 'Description'(006) centered,
42 sy-vline, 43(31) sy-uline,
74 sy-vline, 75(15) 'Actual'(007) centered,
90 sy-vline, 91(15) 'Variance'(008) centered,
106 sy-vline,107(15) 'Percentage'(009) centered,
122 sy-vline.
write: /1 sy-vline,
42 sy-vline, 43(15) 'Full Year'(010) centered,
58 sy-vline, 59(15) 'Y.T.D'(011) centered,
74 sy-vline, 75(15) 'Y.T.D'(011) centered,
90 sy-vline, 91(15) 'Y.T.D'(011) centered,
106 sy-vline,107(15) 'Y.T.D'(011) centered,
122 sy-vline.
write /1(122) sy-uline.
format color off.
endform. " top_of_page
&----
*& Form Display_report
&----
Write the Report Output
----
form display_report.
format color col_normal.
write: /1 sy-vline, 2(40) 'Expenditures'(012),
42 sy-vline, 58 sy-vline,
74 sy-vline, 90 sy-vline,
106 sy-vline,122 sy-vline.
write: /1 sy-vline, 2(12) sy-uline,
42 sy-vline, 58 sy-vline,
74 sy-vline, 90 sy-vline,
106 sy-vline,122 sy-vline.
write: /1 sy-vline, 2(40) 'Operations & Support Cost'(013),
42 sy-vline, 43(15) v_f_oper_amnt1,
58 sy-vline, 59(15) v_b_oper_amnt1,
74 sy-vline, 75(15) v_a_oper_amnt1.
v_v_oper_amnt = v_b_oper_amnt1 - v_a_oper_amnt1.
if v_b_oper_amnt1 ne 0.
v_per_oper = v_v_oper_amnt * 100 / v_b_oper_amnt1.
endif.
write: 90 sy-vline, 91(15) v_v_oper_amnt,
106 sy-vline,107(10) v_per_oper,
122 sy-vline.
write: /1 sy-vline, 2(40) 'Depreciation'(014),
42 sy-vline, 43(15) v_f_depr_amnt1,
58 sy-vline, 59(15) v_b_depr_amnt1,
74 sy-vline, 75(15) v_a_depr_amnt1.
v_v_depr_amnt = v_b_depr_amnt1 - v_a_depr_amnt1.
if v_b_depr_amnt1 ne 0.
v_per_depr = v_v_depr_amnt * 100 / v_b_depr_amnt1.
endif.
write: 90 sy-vline, 91(15) v_v_depr_amnt,
106 sy-vline,107(10) v_per_depr,
122 sy-vline.
write: /1 sy-vline, 2(40) 'Major Maintenance'(015),
42 sy-vline, 43(15) v_f_main_amnt1,
58 sy-vline, 59(15) v_b_main_amnt1,
74 sy-vline, 75(15) v_a_main_amnt1 .
v_v_main_amnt = v_b_main_amnt1 - v_a_main_amnt1.
if v_b_main_amnt1 ne 0.
v_per_main = v_v_main_amnt * 100 / v_b_main_amnt1.
endif.
write: 90 sy-vline, 91(15) v_v_main_amnt,
106 sy-vline,107(10) v_per_main,
122 sy-vline.
write /1(122) sy-uline.
v_t_f_amnt = v_f_oper_amnt1 + v_f_depr_amnt1 + v_f_main_amnt1.
v_t_b_amnt = v_b_oper_amnt1 + v_b_depr_amnt1 + v_b_main_amnt1.
v_t_a_amnt = v_a_oper_amnt1 + v_a_depr_amnt1 + v_a_main_amnt1.
v_t_v_amnt = v_v_oper_amnt + v_v_depr_amnt + v_v_main_amnt.
if v_t_b_amnt ne 0.
v_per_tot = v_t_v_amnt * 100 / v_t_b_amnt.
endif.
format color off.
write: /1 sy-vline, 2(40) 'Total Operating Expenditures'(016),
42 sy-vline, 43(15) v_t_f_amnt,
58 sy-vline, 59(15) v_t_b_amnt,
74 sy-vline, 75(15) v_t_a_amnt,
90 sy-vline, 91(15) v_t_v_amnt,
106 sy-vline,107(10) v_per_tot,
122 sy-vline.
format color col_normal.
write: /1 sy-vline, 2(40) 'Capital Expenditures'(017),
42 sy-vline, 43(15) v_f_capx_amnt1,
58 sy-vline, 59(15) v_b_capx_amnt1,
74 sy-vline, 75(15) v_a_capx_amnt1.
v_v_capx_amnt = v_b_capx_amnt1 - v_a_capx_amnt1.
if v_b_capx_amnt1 ne 0.
v_per_capx = v_v_capx_amnt * 100 / v_b_capx_amnt1.
endif.
write: 90 sy-vline, 91(15) v_v_capx_amnt,
106 sy-vline,107(10) v_per_capx,
122 sy-vline.
format color off.
v_gt_f_amnt = v_t_f_amnt + v_f_capx_amnt1.
v_gt_b_amnt = v_t_b_amnt + v_b_capx_amnt1.
v_gt_a_amnt = v_t_a_amnt + v_a_capx_amnt1.
v_gt_v_amnt = v_t_v_amnt + v_v_capx_amnt.
write /1(122) sy-uline.
format color 3.
write: /1 sy-vline, 2(40) 'Total'(018),
42 sy-vline, 43(15) v_gt_f_amnt,
58 sy-vline, 59(15) v_gt_b_amnt,
74 sy-vline, 75(15) v_gt_a_amnt.
if v_gt_b_amnt ne 0.
v_per_gtot = v_gt_v_amnt * 100 / v_gt_b_amnt.
endif.
write: 90 sy-vline, 91(15) v_gt_v_amnt,
106 sy-vline,107(10) v_per_gtot,
122 sy-vline.
format color off.
write /1(122) sy-uline.
endform. " Display_report
reward points if useful
regards
Anji
2011 Mar 16 3:15 AM