Debit,credit ,opening balance,closing balance..doubt.
Dear friends,
I am working in FI report (vendor balance for date ranges) .Its a ALV report. I want to fetch the datas for debit ,
credit,opening balance,closing balance,for the paticular vendor or all vendors for date ranges.the table for this iam using is BSIK AND LFC1.
all the datas stored in the table is for month wise,but my programe (my user needs even for day wise) how to calculate this,
or is there any function modules avaliable or can u konw any other table storing day wise balances...this report is urgent ..
any one pls suggest me .advance thanks..
regards
veera
if user wants day wise then make use of BSAK+BSIK, here u will get all line items daywise , i mean to say Posting daywise.
BUDAT 31.03.2003---->posting date
BLDAT 31.03.2003
CPUDT 31.03.2003
WAERS INR
XBLNR T&E-29-30.3-PNPT
BLART PA
MONAT 3
BSCHL 31
ZUMSK
SHKZG H------------>D/C
GSBER--------------------->Business Area
MWSKZ-------------------->tax Code.
DMBTR 1,507.00
WRBTR 1,507.00
regards
Prabhu
Similar Messages
-
Performance Issue For Opening And Closing Balance In FBL1N/3N/5N
Dear experts,
I Am Having Requirement to Bring Opening And Closing Balance In FBL1N, FBL3N, FBL5N.
For This requirement I Used BADI : FI_ITEMS_CH_DATA~CHANGE_ITEMS, below is my Code For FBL1N, And I've Done the same For 3N/5N...With Related BAPI
* IF SY-TCODE = 'FBL1N'.
* LOOP AT ct_items INTO gs_items.
* CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
* EXPORTING
* date = gs_items-budat
* days = '01'
* months = '00'
* signum = '-'
* years = '00'
* IMPORTING
* calc_date = lv_date.
* CALL FUNCTION 'BAPI_AP_ACC_GETKEYDATEBALANCE'
* EXPORTING
* companycode = gs_items-bukrs
* vendor = gs_items-konto
* keydate = lv_date
** BALANCESPGLI = ' '
** NOTEDITEMS = ' '
** IMPORTING
** RETURN =
* TABLES
* keybalance = lv_obal.
* CALL FUNCTION 'BAPI_AP_ACC_GETKEYDATEBALANCE'
* EXPORTING
* companycode = gs_items-bukrs
* vendor = gs_items-konto
* keydate = gs_items-budat
** BALANCESPGLI = ' '
** NOTEDITEMS = ' '
** IMPORTING
** RETURN =
* TABLES
* keybalance = lv_cbal
* READ TABLE lv_cbal INTO gs_cbal INDEX 1.
* gs_items-cbal = gs_cbal-lc_bal.
* READ TABLE lv_obal INTO gs_obal INDEX 1.
* gs_items-obal = gs_obal-lc_bal.
* MODIFY ct_items FROM gs_items TRANSPORTING obal cbal.
* CLEAR: gs_items,gs_obal,gs_cbal.
* ENDLOOP.
* ENDIF.
So, Above Code Causing Me the Performance Issue, Kindly Suggest Me the Solution..
Regards,
uday.Hi Uday,
I am sending you the code i used for the creation a Zreport based on FBL5N. Please check if it can of any help.
*& Report ZFBL5N *
REPORT zfbl5n_new .
TABLES : bsid,knc1,lfc1.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_bsid,
bukrs TYPE bsid-bukrs,
kunnr TYPE bsid-kunnr,
belnr TYPE bsid-belnr,
buzei TYPE bsid-buzei,
bldat TYPE bsid-bldat,
blart TYPE bsid-blart,
bschl TYPE bsid-bschl,
shkzg TYPE bsid-shkzg,
dmbtr TYPE bsid-dmbtr,
augdt TYPE bsid-augdt,
augbl TYPE bsid-augbl,
zuonr TYPE bsid-zuonr,
sgtxt TYPE bsid-sgtxt,
zfbdt TYPE bsid-zfbdt,
zterm TYPE bsid-zterm,
zbd1t TYPE bsid-zbd1t,
zbd2t TYPE bsid-zbd2t,
zbd3t TYPE bsid-zbd3t,
kkber TYPE bsid-kkber,
bstat TYPE bsid-bstat,
umskz TYPE bsid-umskz,
END OF ty_bsid.
TYPES: BEGIN OF ty_bsik,
bukrs TYPE bsik-bukrs,
lifnr TYPE bsik-lifnr,
belnr TYPE bsik-belnr,
buzei TYPE bsik-buzei,
bldat TYPE bsik-bldat,
blart TYPE bsik-blart,
bschl TYPE bsik-bschl,
shkzg TYPE bsik-shkzg,
dmbtr TYPE bsik-dmbtr,
augdt TYPE bsik-augdt,
augbl TYPE bsik-augbl,
zuonr TYPE bsik-zuonr,
sgtxt TYPE bsik-sgtxt,
zfbdt TYPE bsik-zfbdt,
* KKBER TYPE bsik-kkber,
zterm TYPE bsik-zterm,
zbd1t TYPE bsik-zbd1t,
zbd2t TYPE bsik-zbd2t,
zbd3t TYPE bsik-zbd3t,
bstat TYPE bsid-bstat,
umskz TYPE bsid-umskz,
END OF ty_bsik.
TYPES: BEGIN OF ty_final,
belnr TYPE bsid-belnr,
* buzei TYPE bsak-buzei,
bldat TYPE bsid-bldat,
blart TYPE bsid-blart,
chq TYPE bsid-zuonr,
debit TYPE bsid-dmbtr,
credit TYPE bsid-dmbtr,
txt TYPE bsid-sgtxt,
date TYPE bsid-zfbdt,
kkber TYPE bsid-kkber,
zterm TYPE bsid-zterm,
augbl TYPE bsid-augbl,
augdt TYPE bsid-augdt,
flag TYPE c,
END OF ty_final.
TYPES : BEGIN OF gs_openbal,
bukrs TYPE bapi3007_2-comp_code,
kunnr TYPE bapi3007_2-customer,
dmbtr TYPE bapi3007_2-lc_amount,
END OF gs_openbal.
DATA: it_bsid TYPE STANDARD TABLE OF ty_bsid,
it_bsik TYPE STANDARD TABLE OF ty_bsik,
it_final TYPE STANDARD TABLE OF ty_final.
DATA: wa_bsid TYPE ty_bsid,
wa_bsik TYPE ty_bsik,
wa_final TYPE ty_final.
DATA: w_days TYPE t5a4a-dlydy,
w_month TYPE t5a4a-dlymo,
w_year TYPE t5a4a-dlyyr,
w_date TYPE p0001-begda,
w_name1 TYPE kna1-name1,
w_ort01 TYPE kna1-ort01,
w_lifnr TYPE kna1-lifnr,
w_dmbtr1 TYPE bsid-dmbtr,
w_dmbtr2 TYPE bsid-dmbtr,
w_dmbtr3 TYPE bsad-dmbtr,
w_dmbtr4 TYPE bsad-dmbtr,
w_opbal TYPE bsid-dmbtr,
w_credit TYPE bsik-dmbtr,
w_debit TYPE bsik-dmbtr,
w_clobal TYPE bsik-dmbtr,
w_credit1 TYPE bsik-dmbtr,
w_debit1 TYPE bsik-dmbtr,
w_clobal1 TYPE bsik-dmbtr.
DATA: ld_yrper LIKE rwcoom-fiscper,
kunnr LIKE kna1-kunnr,
x_norm TYPE c,
x_park,
x_apar,
x_merk,
ok_code(4),
wa_x001 LIKE x001,
return LIKE bapireturn,
line_count LIKE sy-loopc,
number_of_records TYPE i,
xindex LIKE sy-tabix,
open LIKE knc1-um01s,
temp(20),
close LIKE knc1-um01s,
gjahr LIKE bsid-gjahr,
period LIKE bkpf-monat,
f(1),
v_char(2),
closec(20),
openc(20),
debit LIKE bapi3007_2-lc_amount,
credit LIKE debit.
DATA : v_dmbtr LIKE bsid-dmbtr.
*DATA : tot_debit LIKE t_ar-debit,
* tot_credit LIKE t_ar-credit.
DATA : t_kna1 LIKE kna1 OCCURS 1 WITH HEADER LINE,
t_knb1 LIKE knb1 OCCURS 10 WITH HEADER LINE.
DATA ibsid LIKE bsid OCCURS 0 WITH HEADER LINE.
DATA ibsad LIKE bsad OCCURS 0 WITH HEADER LINE.
DATA ibsik LIKE bsik OCCURS 0 WITH HEADER LINE.
DATA ibsak LIKE bsak OCCURS 0 WITH HEADER LINE.
DATA : it_fieldcat_alv TYPE slis_t_fieldcat_alv,
wa_fieldcat_alv TYPE slis_fieldcat_alv,
is_layout_alv TYPE slis_layout_alv,
wa_layout_alv TYPE slis_layout_alv,
it_list_top_of_page TYPE slis_t_listheader,
it_events TYPE slis_t_event,
wa_events TYPE LINE OF slis_t_event.
DATA : BEGIN OF ibukrs OCCURS 0,
bukrs LIKE t001-bukrs,
END OF ibukrs.
DATA : BEGIN OF ikunnr1 OCCURS 0,
kunnr LIKE knc1-kunnr,
END OF ikunnr1.
DATA : BEGIN OF ikunnr OCCURS 0,
kunnr LIKE knc1-kunnr,
bukrs LIKE t001-bukrs,
lifnr LIKE lfc1-lifnr,
END OF ikunnr.
DATA: it_sort TYPE slis_t_sortinfo_alv,
wa_sort TYPE slis_sortinfo_alv.
DATA: r_bschl TYPE RANGE OF bschl,
wa_bschl LIKE LINE OF r_bschl.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_kunnr TYPE bsid-kunnr OBLIGATORY,
p_bukrs TYPE bsid-bukrs OBLIGATORY.
SELECT-OPTIONS: so_budat FOR bsid-budat .
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS : p_normal AS CHECKBOX,
p_spl AS CHECKBOX,
p_vendor AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK b2.
PERFORM get_data.
PERFORM process_data.
*PERFORM calculate_openbal. " Commented by anish
PERFORM calculate_open_bal.
PERFORM calculate_closing_bal.
PERFORM build_catalog_sort USING it_sort.
PERFORM reuse_alv_events_get .
PERFORM display_data.
*& Form GET_DATA
* text
* --> p1 text
* <-- p2 text
FORM get_data .
SELECT bukrs kunnr belnr buzei bldat blart bschl shkzg dmbtr augdt augbl zuonr sgtxt zfbdt zterm zbd1t zbd2t zbd3t kkber
bstat umskz FROM bsid
INTO TABLE it_bsid
WHERE bukrs = p_bukrs
AND kunnr = p_kunnr
AND budat IN so_budat.
SELECT bukrs kunnr belnr buzei bldat blart bschl shkzg dmbtr augdt augbl zuonr sgtxt zfbdt zterm zbd1t zbd2t zbd3t kkber
bstat umskz FROM bsad
APPENDING TABLE it_bsid
WHERE bukrs = p_bukrs
AND kunnr = p_kunnr
AND budat IN so_budat.
SELECT SINGLE name1 ort01 lifnr FROM kna1
INTO (w_name1 , w_ort01 , w_lifnr)
WHERE kunnr = p_kunnr.
IF p_vendor IS NOT INITIAL.
SELECT bukrs lifnr belnr buzei bldat blart bschl shkzg dmbtr augdt augbl zuonr sgtxt zfbdt zterm zbd1t zbd2t zbd3t
bstat umskz FROM bsik
APPENDING TABLE it_bsik
WHERE bukrs = p_bukrs
AND lifnr = w_lifnr
AND budat IN so_budat.
SELECT bukrs lifnr belnr buzei bldat blart bschl shkzg dmbtr augdt augbl zuonr sgtxt zfbdt zterm zbd1t zbd2t zbd3t
bstat umskz FROM bsak
APPENDING TABLE it_bsik
WHERE bukrs = p_bukrs
AND lifnr = w_lifnr
AND budat IN so_budat.
ENDIF.
SORT it_bsid BY bschl.
DELETE it_bsid WHERE bschl = '04'.
DELETE it_bsid WHERE bschl = '07'.
DELETE it_bsid WHERE bschl = '17'.
DELETE it_bsid WHERE bschl = '34'.
DELETE it_bsid WHERE bschl = '27'.
DELETE it_bsid WHERE bschl = '37'.
SORT it_bsik BY bschl.
DELETE it_bsik WHERE bschl = '04'.
DELETE it_bsik WHERE bschl = '07'.
DELETE it_bsik WHERE bschl = '17'.
DELETE it_bsik WHERE bschl = '34'.
DELETE it_bsik WHERE bschl = '27'.
DELETE it_bsik WHERE bschl = '37'.
ENDFORM. " GET_DATA
*& Form PROCESS_DATA
* text
* --> p1 text
* <-- p2 text
FORM process_data .
DATA:okay TYPE c VALUE space.
w_month = '00'.
w_year = '00'.
SORT it_bsid BY bldat .
LOOP AT it_bsid INTO wa_bsid.
PERFORM check_item_ok USING p_normal
p_spl
p_vendor
* x_park
wa_bsid
CHANGING okay.
CHECK okay = 'X'.
wa_final-belnr = wa_bsid-belnr.
wa_final-bldat = wa_bsid-bldat.
wa_final-blart = wa_bsid-blart.
wa_final-txt = wa_bsid-sgtxt.
wa_final-kkber = wa_bsid-kkber.
wa_final-zterm = wa_bsid-zterm.
wa_final-augbl = wa_bsid-augbl.
wa_final-augdt = wa_bsid-augdt.
wa_final-flag = 'C'.
IF wa_bsid-blart = 'DZ'.
wa_final-chq = wa_bsid-zuonr.
ENDIF.
IF wa_bsid-shkzg = 'S'.
wa_final-debit = wa_bsid-dmbtr.
ELSEIF wa_bsid-shkzg = 'H'.
wa_final-credit = wa_bsid-dmbtr.
ENDIF.
w_credit = w_credit + wa_final-credit.
w_debit = w_debit + wa_final-debit.
****** Net due date
IF wa_bsid-zbd1t IS NOT INITIAL.
w_days = wa_bsid-zbd1t.
ELSEIF wa_bsid-zbd2t IS NOT INITIAL.
w_days = wa_bsid-zbd2t.
ELSEIF wa_bsid-zbd3t IS NOT INITIAL.
w_days = wa_bsid-zbd3t.
ENDIF.
IF w_days IS INITIAL.
wa_final-date = wa_bsid-zfbdt.
ELSE.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = wa_bsid-zfbdt
days = w_days
months = w_month
signum = '+'
years = w_year
IMPORTING
calc_date = w_date.
wa_final-date = w_date.
ENDIF.
APPEND wa_final TO it_final.
CLEAR: w_days , w_date , wa_final .
ENDLOOP.
IF it_bsik IS NOT INITIAL.
CLEAR: w_days , w_date.
SORT it_bsik BY bldat.
LOOP AT it_bsik INTO wa_bsik.
wa_final-belnr = wa_bsik-belnr.
wa_final-bldat = wa_bsik-bldat.
wa_final-blart = wa_bsik-blart.
wa_final-txt = wa_bsik-sgtxt.
* wa_final-kkber = wa_bsik-kkber.
wa_final-zterm = wa_bsik-zterm.
wa_final-augbl = wa_bsik-augbl.
wa_final-augdt = wa_bsik-augdt.
wa_final-flag = 'V'.
IF wa_bsik-blart = 'DZ'.
wa_final-chq = wa_bsik-zuonr.
ENDIF.
IF wa_bsik-shkzg = 'S'.
wa_final-debit = wa_bsik-dmbtr.
ELSEIF wa_bsik-shkzg = 'H'.
wa_final-credit = wa_bsik-dmbtr.
ENDIF.
w_credit1 = w_credit1 + wa_final-credit.
w_debit1 = w_debit1 + wa_final-debit.
******* Net Due date
IF wa_bsik-zbd1t IS NOT INITIAL.
w_days = wa_bsik-zbd1t.
ELSEIF wa_bsik-zbd2t IS NOT INITIAL.
w_days = wa_bsik-zbd2t.
ELSEIF wa_bsik-zbd3t IS NOT INITIAL.
w_days = wa_bsik-zbd3t.
ENDIF.
IF w_days IS INITIAL.
wa_final-date = wa_bsik-zfbdt.
ELSE.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = wa_bsik-zfbdt
days = w_days
months = w_month
signum = '+'
years = w_year
IMPORTING
calc_date = w_date.
ENDIF.
wa_final-date = w_date.
APPEND wa_final TO it_final.
CLEAR: wa_final.
ENDLOOP.
ENDIF.
ENDFORM. " PROCESS_DATA
*& Form DISPLAY_DATA
* text
* --> p1 text
* <-- p2 text
FORM display_data .
wa_fieldcat_alv-fieldname = 'BELNR'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-003.
wa_fieldcat_alv-outputlen = '11'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'BLDAT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-004.
wa_fieldcat_alv-outputlen = '13'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'BLART'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-005.
wa_fieldcat_alv-outputlen = '02'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'CHQ'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-006.
wa_fieldcat_alv-outputlen = '09'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'DEBIT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-007.
wa_fieldcat_alv-outputlen = '15'.
wa_fieldcat_alv-do_sum = 'X'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'CREDIT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-008.
wa_fieldcat_alv-outputlen = '15'.
wa_fieldcat_alv-do_sum = 'X'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'TXT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-009.
wa_fieldcat_alv-outputlen = '50'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'DATE'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-010.
wa_fieldcat_alv-outputlen = '12'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'KKBER'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-011.
wa_fieldcat_alv-outputlen = '04'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'ZTERM'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-012.
wa_fieldcat_alv-outputlen = '13'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'AUGBL'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-013.
wa_fieldcat_alv-outputlen = '15'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'AUGDT'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-seltext_l = text-014.
wa_fieldcat_alv-outputlen = '17'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
wa_fieldcat_alv-fieldname = 'FLAG'.
wa_fieldcat_alv-tabname = 'IT_FINAL'.
wa_fieldcat_alv-tech = 'X'.
APPEND wa_fieldcat_alv TO it_fieldcat_alv.
CLEAR wa_fieldcat_alv.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = wa_layout_alv
it_fieldcat = it_fieldcat_alv
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
it_sort = it_sort
it_events = it_events
i_save = 'A'
TABLES
t_outtab = it_final
EXCEPTIONS
program_error = 1
OTHERS = 2
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* EXPORTING
* i_callback_program = sy-repid
* i_callback_top_of_page = 'TOP_OF_PAGE'
* is_layout = wa_layout_alv
* it_fieldcat = it_fieldcat_alv
* it_sort = it_sort
*** I_DEFAULT = 'X'
** i_save = 'A'
*** IT_EVENTS =
* TABLES
* t_outtab = it_final
* EXCEPTIONS
* program_error = 1
* OTHERS = 2
* IF sy-subrc <> 0.
*** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*** WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* ENDIF.
ENDFORM. " DISPLAY_DATA
*& Form TOP_OF_PAGE
* Header at top of page.
FORM top_of_page.
SKIP 1.
WRITE: AT 35 'Account Statement from' , so_budat-low , 'to' , so_budat-high.
SKIP 2.
WRITE: AT /5 'CUSTOMER:' , p_kunnr.
WRITE: AT 35 'Name:' , w_name1.
WRITE: AT /5 'Company:' , p_bukrs.
WRITE: AT 35 'City:' , w_ort01.
SKIP 1.
WRITE: AT /5 'Opening Balance as on' , so_budat-low , ' ' , w_opbal LEFT-JUSTIFIED.
SKIP 2.
ENDFORM. "TOP_OF_PAGE
*& Form END_OF_PAGE
* Footer at End of page.
FORM end_of_page.
SKIP 2.
IF so_budat-high IS NOT INITIAL.
WRITE: AT 5 'Closing Balance as on' , so_budat-high , ' ' , w_clobal LEFT-JUSTIFIED.
ELSE.
WRITE: AT 5 'Closing Balance ' , w_clobal LEFT-JUSTIFIED.
ENDIF.
ENDFORM. "end_of_page
*& Form CALCULATE_OPENBAL
* text
* --> p1 text
* <-- p2 text
FORM calculate_openbal .
DATA:v_gjahr TYPE bsid-gjahr.
DATA: v_period LIKE t009b-poper,v_monat LIKE t001-periv.
CALL FUNCTION 'FI_PERIOD_DETERMINE'
EXPORTING
i_budat = so_budat-low
i_bukrs = p_bukrs
* I_PERIV = ' '
* I_GJAHR = 0000
* I_MONAT = 00
* X_XMO16 = ' '
IMPORTING
e_gjahr = v_gjahr
* e_monat = v_monat
e_poper = v_period.
IF sy-subrc NE 0.
ENDIF.
DATA: f_date LIKE sy-datum.
CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET'
EXPORTING
i_gjahr = v_gjahr
i_monmit = 00
i_periv = 'V3'
i_poper = v_period
IMPORTING
e_date = f_date.
period = v_period - 1.
gjahr = v_gjahr.
DATA wa_kna1 LIKE kna1.
CALL FUNCTION 'READ_KNA1'
EXPORTING
xkunnr = p_kunnr
IMPORTING
xkna1 = wa_kna1
EXCEPTIONS
key_incomplete = 1
not_authorized = 2
not_found = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE w023(zwww).
CALL SCREEN 0010.
ENDIF.
MOVE-CORRESPONDING wa_kna1 TO t_kna1.
APPEND t_kna1.
SELECT kunnr FROM kna1 INTO TABLE ikunnr1
WHERE kunnr = p_kunnr.
SELECT bukrs FROM t001 INTO TABLE ibukrs
FOR ALL ENTRIES IN t_knb1
WHERE bukrs = t_knb1-bukrs.
LOOP AT ikunnr1.
LOOP AT ibukrs.
ikunnr-kunnr = ikunnr1-kunnr.
ikunnr-bukrs = ibukrs-bukrs.
READ TABLE t_kna1 WITH KEY kunnr = ikunnr1-kunnr.
ikunnr-lifnr = t_kna1-lifnr.
APPEND ikunnr.
ENDLOOP.
ENDLOOP.
DELETE ikunnr WHERE bukrs NE p_bukrs.
LOOP AT ikunnr.
CLEAR: knc1,lfc1,f.
IF NOT ( ikunnr-kunnr IS INITIAL ) AND NOT ( p_vendor IS INITIAL ).
SELECT SINGLE * FROM lfc1
WHERE gjahr = gjahr AND bukrs = ikunnr-bukrs
AND lifnr = ikunnr-lifnr.
ENDIF.
SELECT SINGLE * FROM knc1
WHERE gjahr = gjahr AND bukrs = p_bukrs
AND kunnr = p_kunnr.
IF sy-subrc = 0.
CASE period .
WHEN 12.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h +
knc1-um09s - knc1-um09h + knc1-um10s - knc1-um10h +
knc1-um11s - knc1-um11h + knc1-um12s - knc1-um12h.
IF NOT ( lfc1 IS INITIAL ).
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h +
lfc1-um09s - lfc1-um09h + lfc1-um10s - lfc1-um10h +
lfc1-um11s - lfc1-um11h + lfc1-um12s - lfc1-um12h.
ENDIF.
WHEN 11.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h +
knc1-um09s - knc1-um09h + knc1-um10s - knc1-um10h +
knc1-um11s - knc1-um11h.
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h +
lfc1-um09s - lfc1-um09h + lfc1-um10s - lfc1-um10h +
lfc1-um11s - lfc1-um11h.
ENDIF.
WHEN 10.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h +
knc1-um09s - knc1-um09h + knc1-um10s - knc1-um10h .
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h +
lfc1-um09s - lfc1-um09h + lfc1-um10s - lfc1-um10h.
ENDIF.
WHEN 9.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h +
knc1-um09s - knc1-um09h .
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h +
lfc1-um09s - lfc1-um09h.
ENDIF.
WHEN 8.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h + knc1-um08s - knc1-um08h.
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um05h + lfc1-um06s - lfc1-um06h +
lfc1-um07s - lfc1-um07h + lfc1-um08s - lfc1-um08h .
ENDIF.
WHEN 7.
open = knc1-umsav +
knc1-um01s - knc1-um01h + knc1-um02s - knc1-um02h +
knc1-um03s - knc1-um03h + knc1-um04s - knc1-um04h +
knc1-um05s - knc1-um05h + knc1-um06s - knc1-um06h +
knc1-um07s - knc1-um07h .
IF NOT ( lfc1 IS INITIAL ) .
open = open + lfc1-umsav +
lfc1-um01s - lfc1-um01h + lfc1-um02s - lfc1-um02h +
lfc1-um03s - lfc1-um03h + lfc1-um04s - lfc1-um04h +
lfc1-um05s - lfc1-um -
Open and closing balances std report
Dear All,
please suggest me open and closing balances std report and can i suggest my user below t.code for viewing open and closing balnces for India scenarion T.code:J3RFLVMOBVED
Regards
Gopal.Shi
kindly chk MB5B it will fullfill your requirement
regards
praveen.k -
Opening and Closing balance in FBL3N?
Hi All,
In other ERP systems, if you browse GL Account, i.e. FBL3N in SAP, you get the list of documents within specified period but in other systems you also get the OPENING balance as well as CLOSING balance and the current postings are in between them. Is there any standard report or report painter is to be used for such requirement.
Balances can be checked through FS10N and S_ALR_87012301 etc. but requirement is to get the list of documents with opening and closing balance in beginning and end of the report. The best example is of Cash Journal (Txn FBCJ)
ThanksThank you Will,
Yes, actually if other system provide such functionality then SAP should be providing that. I searched within table TSTC for such transaction but unable to get. Accountants requirement is when they execute FBL3N within specified period, the cummulative opening balance and closing balance should be provided with report.
Thanks for your answer!
Regards,
Nayab -
Opening and closing balance logic
How to get opening and closing balances for a material and chapter-id for tarif-wise report for sales and captive consumption...
Edited by: vijetasap on Apr 13, 2009 2:25 PMHi Vijeta...
Try posting this question related to the functional domain forum of your requirement.. you might have more luck there.. -
GL a/c opening and closing balances
Hi All,
Below is my selection screen:
select-options : s_bukrs for bkpf-bukrs obligatory.
parameter : p_gjahr like bkpf-gjahr obligatory.
select-options : s_budat for bkpf-budat,
s_monat for bkpf-monat,
s_hkont for bseg-hkont.
I am displaying the data from tables BKPF, BSEG, KNA1-NAME1, LFA1-NAME1, SKAT-TXT50. I have to fetch Opening and Closing balances for GL a/c's. I am fetching data from table GLT0-HSLVT(opening balance). But unable to get the data for closing balance based on the period given on the selection screen. In my report I am looping on table it_bseg to populate the final internal table. How to get the closing balances's total based on the input.
Please help me.
Thanks,
HarithaHello Haritha,
Try this code by building a function module. This would cover both opening and closing balance.
FUNCTION ZGL_OPENING_CLOSING_BAL_KEYDAT.
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(COMP) TYPE BKPF-BUKRS
*" REFERENCE(DATE) TYPE BKPF-BUDAT
*" REFERENCE(ACCT) TYPE BSEG-HKONT
*" EXPORTING
*" REFERENCE(BALANCE) TYPE BSEG-DMBTR
DATA : COMPANYCODEID LIKE BAPI0002_2-COMP_CODE ,
POSTING_DATE LIKE BAPI0002_4-POSTING_DATE ,
FISCAL_YEAR LIKE BAPI0002_4-FISCAL_YEAR ,
FISCAL_PERIOD LIKE BAPI0002_4-FISCAL_PERIOD .
DATA : ACCOUNT_BALANCES TYPE TABLE OF BAPI3006_4 WITH HEADER LINE.
DATA : BAL TYPE BSEG-DMBTR.
DATA : IV_DATE TYPE D ,
EV_MONTH_BEGIN_DATE TYPE D,
EV_MONTH_END_DATE TYPE D .
DATA : COMPANYCODE LIKE BAPI3006_0-COMP_CODE,
GLACCT LIKE BAPI3006_0-GL_ACCOUNT ,
FISCALYEAR LIKE BAPI3006_4-FISC_YEAR,
CURRENCYTYPE LIKE BAPI3006_5-CURR_TYPE VALUE 10.
DATA : IT_BKPF TYPE TABLE OF BKPF WITH HEADER LINE.
DATA : BEGIN OF IT_BSEG OCCURS 0,
BELNR TYPE BSEG-BELNR,
GJAHR TYPE BSEG-GJAHR,
SHKZG TYPE BSEG-SHKZG ,
DMBTR TYPE BSEG-DMBTR,
END OF IT_BSEG.
COMPANYCODEID = COMP.
POSTING_DATE = DATE.
IV_DATE = DATE.
CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
EXPORTING
IV_DATE = IV_DATE
IMPORTING
EV_MONTH_BEGIN_DATE = EV_MONTH_BEGIN_DATE
EV_MONTH_END_DATE = EV_MONTH_END_DATE.
CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
EXPORTING
COMPANYCODEID = COMPANYCODEID
POSTING_DATE = POSTING_DATE
IMPORTING
FISCAL_YEAR = FISCAL_YEAR
FISCAL_PERIOD = FISCAL_PERIOD.
IF EV_MONTH_END_DATE NE DATE.
IF FISCAL_PERIOD = 1.
FISCAL_PERIOD = 12 .
FISCAL_YEAR = FISCAL_YEAR - 1 .
ELSE.
FISCAL_PERIOD = FISCAL_PERIOD - 1.
ENDIF.
ENDIF.
COMPANYCODE = COMP.
GLACCT = ACCT.
FISCALYEAR = FISCAL_YEAR.
CALL FUNCTION 'BAPI_GL_ACC_GETPERIODBALANCES'
EXPORTING
COMPANYCODE = COMPANYCODE
GLACCT = GLACCT
FISCALYEAR = FISCALYEAR
CURRENCYTYPE = CURRENCYTYPE
TABLES
ACCOUNT_BALANCES = ACCOUNT_BALANCES.
READ TABLE ACCOUNT_BALANCES WITH KEY FISC_YEAR = FISCALYEAR FIS_PERIOD = FISCAL_PERIOD.
IF SY-SUBRC = 0.
BALANCE = ACCOUNT_BALANCES-BALANCE.
ENDIF.
IF EV_MONTH_END_DATE NE DATE.
SELECT * FROM BKPF INTO TABLE IT_BKPF WHERE BUKRS = COMP AND BUDAT >= EV_MONTH_BEGIN_DATE
AND BUDAT <= DATE.
IF IT_BKPF[] IS NOT INITIAL.
SELECT BELNR GJAHR SHKZG DMBTR
FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
FOR ALL ENTRIES IN IT_BKPF
WHERE BELNR = IT_BKPF-BELNR AND GJAHR = IT_BKPF-GJAHR AND HKONT = ACCT AND BUKRS = COMP.
ENDIF.
LOOP AT IT_BSEG.
IF IT_BSEG-SHKZG = 'H'.
BAL = BAL - IT_BSEG-DMBTR.
ELSEIF IT_BSEG-SHKZG = 'S'.
BAL = BAL + IT_BSEG-DMBTR.
ENDIF.
ENDLOOP.
BALANCE = BALANCE + BAL.
ENDIF.
ENDFUNCTION.
Raghav -
Customer Statement with opening and closing balances
Dear Forum,
The users want to generate the Customer Statement with opening and closing balances like the traditional one. The statement now generated gives the list of all open items as on date, but the users want the statement with opening balances as on the date of the begining of the range specified and the closing balance at the end of the period for which the statement is generated. Is there a way to generate the same from the system.
Thanks for the help.
Regards,Hi,
SPRO> Financial Accounting (New) > Accounts Receivable and Accounts Payable > Customer Accounts > Line Items > Correspondence > Make and Check Settings for Correspondence
You can use the program RFKORD10 with correspondance type SAP06 for your company code
This program prints account statements and open items lists for customers and vendors in letter form. For account statements, all postings between two key dates, as well as the opening and closing balance, are listed.
Regards,
Gaurav -
Hi sapgurus
I need a report with similar to MB5B at particular posting date with opening and closing balances but I am unable to download the report to excel the data with MB5B tranasaction.Is there any similar transaction with same output values which can be easily transported to excel from Sap.
ThanxHi,
I tested in ECC6.0 and i could able to do so, you try as mentioned below.
In the output screen of MB5B, goto menu details > click on list > select save > select file > select spreadsheet. Here you can save tthe output in excel format.
Regards,
Prabu -
Vendor Line item with Opening and Closing Balances report regarding
Dear All,
I need a report for vendor line items with Opening and Closing balances.
Thanks in advance
SateeshHi
Try S_ALR_87012082 - Vendor Balances in Local Currency
Regards
Sanil Bhandari -
How to achive Opening Balance & Closing Balance on 0FIAR_O03 DSO
Hi all,
Can any body help me in getting the opening and closing balances from 0FIAR_O03 ODS.
ragards,
sekharHi,
how are u calculating the opening and closing balances means based on what basis. BY general it should be by the end of the monthe what is the amount of quantity.
Is this ur requirement?
Khaja -
Opening and Closing balances in RG1 register
Hi,
We are facing one issue in RG1 register. When we update and extract the RG1 register from system, its showing Sales Qty and Excise duties properly. But opening and closing balances are not coming, its showing zero there. I checked J_2IRG1BAL table and found that it is also not getting updated. Material comes into stock with 561(initial stock) and 101(from production) movement types but opening/closing balances not coming in either case. Both movement types are activated for RG1 also.
Seeking your help in this regard.....
Regards,
Satyendra SoniHi Satyendra ,
For initial upload in RG1 there are 2 tables you need to manually update. J_2IRG1BAL from CIN or SD side. And Accounts to be updated for Balance in J_2IACCBAL.
There are 2 ways for updating balance tables
On last day of month enter Balance in Closing balance field.
OR enter opening balance on 1 st day of month.
Also check Material form P ,can be maintained in user exit for permanent effect.
After updating balances ,
perform any one transaction on system.
and then Extract the Rg1 table .
Ask FI consultant to put in FI JV after balance upload in ACCBAL table.
If you have not done table entries before performing transaction and extraction of RG1 then balances will not appear .
Check with your senior there and use table edit in such case (I hope you are not on production server at the moment) .Then again perform Extraction and check once.
SD FI and ABAP to be present and take decision accordingly. -
Opening and Closing Balances -SAP
Hi experts
please explain me about the Opening and Closing Balance in SAP? and what is the use of Opening and closing Balance?
regards
anandHi Ananda
opening balance : when ever u run any financial report for example a ledger profit and loss account then it has a opening balance and a closing balance
say for example if we see the balance of our cash account in sap at end of the day today then we can consider the balance as x amount as closing balance and when again tomorrow there is some transaction in the same account than this x Amount is considered as the opening balance for tomorrows date
Hope this would suffice your Concern
Regards,
Manish -
Hi experts.
I am looking for a formula to calculate opening and closing balance @ query level.
points are waiting.Hi,
I think you are using 0IC_C03 Cube.
You can get ...liek below
Opening Stock Qty =
Valuated stock qty-- 0VALSTCKQTY
Calendar Year/Month 0CALMONTH
Z_SNGVAL-1
Restrict 0VALSTCKQTY keyfigure with 0CALMONTH , Z_SNGVAL (Less then or equal to) is user entry Variable for Month, so Z_SNGVAL-1 give OIpening Stock.
Closing Stock..
Valuated stock qty ---0VALSTCKQTY
Calendar Year/Month 0CALMONTH 8
<=SNGVAL (Restrict with Less then or equal to)
Thanks
Reddy -
Opening and closing balance between 2 dates
hi.
i am facing a problem while fetching the opening and closing balance for a particular G/L account.
In my program i am entering G/L account for a date range i.e, between two dates and i want opening and closing balance for these 2 date ranges.
So, please tell me is there any function module to fetch opening and closing balance between two dates.
Regards,
ROHINI.K.Hi Rohini,
Check this FM : BAPI_GL_GETGLACCPERIODBALANCES.
If we use this functional module, we will get opening and closing balance of corresponding G/L Acc.
(e.g)
CALL FUNCTION 'BAPI_GL_GETGLACCPERIODBALANCES'
EXPORTING
companycode = '1000'
glacct = '0000548101'
fiscalyear = '2007'
currencytype = '10'
IMPORTING
BALANCE_CARRIED_FORWARD = gs_bal-balance
RETURN = v_return
TABLES
account_balances = gt_bal. -
Opening and closing balance values at storage location level
Dear all,
I want to know opening and closing balance values and receipts and issue values at storage location level for certain period.
I tried with MB5B, it is not giving value at storage location level, it is giving quantities at storage location level and values at plant level. But requirement is: please see below example:
All values are in USD
Storage location: 1001 1002
Opening Balance: 2000 3000
Receipts: 1000 2000
Issues: 2000 3000
Closing Balance: 1000 2000
Please help in this regard (I want value of the stock only, not qty)
Regads,
Veerappa
Edited by: Chinna Veerappa on Jul 27, 2010 5:27 PM
Edited by: Chinna Veerappa on Jul 27, 2010 5:28 PMvlauation is at plant level (MBEW table) the storage location level does not carry values (table MARD).
You may have to develope your own ZMB5B program and calculate yourself what is not stored in SAP.
Maybe you are looking for
-
How do i set-up ipad nano for other user?
Hi, I want to buy my boyfriend an ipod nano for his birthday and set it up for him with all my music. I have a mac and he has a pc. How do i ensure that when i plug the nano for the first time it doesn't wipe all my songs? also can i set it up for hi
-
Acrobat 9 Standard bundled with scanner will not install
My serial number for the bundled Acrobat 9 Standard is interpreted by Adobe as an upgrade. I cannot install without evidence of an earlier version- which, of course, I never had. The scanner is a Fujitsu fi-6230 (great machine). I just upgraded to W
-
Why can't I get the same apps on my mac as on my iPad?
I have a few apps on my IPad that I would like to have on my mac but when I go to the app store they are not there.
-
Hi Gurus, How to drop an undo tablespace in oracle 10.2. when i issue drop tablespace undo including contents it shows like "ORA-30013: undo tablespace 'UNDO' is currently in use" Pls help it out...... Regards Rajesh
-
I am trying to edit a project originally started on another computer, by someone else and saved onto an external h-drive, but keep getting 'general error 48' when I try to render it to work further. Can anyone help?