Go on link..

link us with ...

Friday, December 31, 2010

SDL0FIR0_GL_S

*&---------------------------------------------------------------------*
*& Report ZVVF_SDL0FIR0_GL_S *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

REPORT ZVVF_SDL0FIR0_GL_S LINE-SIZE 230
NO STANDARD PAGE HEADING.

TABLES : T001, BSEG, BKPF , SKB1 , KNA1, LFA1, SKAT, PAYR,SKA1,GLT0.
PARAMETERS : BUKRS LIKE T001-BUKRS MEMORY ID BUK.
SELECTION-SCREEN BEGIN OF BLOCK GEN WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : BELNR FOR BKPF-BELNR,
HKONT FOR SKB1-SAKNR MATCHCODE OBJECT SAKO OBLIGATORY,
BLART FOR BKPF-BLART,
BUDAT FOR BKPF-BUDAT OBLIGATORY.
SELECTION-SCREEN END OF BLOCK GEN .
SELECTION-SCREEN BEGIN OF BLOCK OUT WITH FRAME TITLE TEXT-003.
PARAMETERS : LIST RADIOBUTTON GROUP OUT,
XXL RADIOBUTTON GROUP OUT.
SELECTION-SCREEN END OF BLOCK OUT .
*$*$ Data Decleration

DATA : BEGIN OF IT_BELNR OCCURS 1000 ,
BELNR LIKE BKPF-BELNR,
END OF IT_BELNR.
DATA IGLT0 LIKE GLT0 OCCURS 10 WITH HEADER LINE.
DATA : BEGIN OF IT_DATA OCCURS 1000 ,
BUDAT LIKE BKPF-BUDAT,
BELNR LIKE BSEG-BELNR,
BLDAT LIKE BKPF-BLDAT,
CHECT LIKE PAYR-CHECT,
LIFNR LIKE BSEG-LIFNR,
NAME1 LIKE KNA1-NAME1,
SGTXT LIKE BSEG-SGTXT,
DR LIKE BSEG-WRBTR,
CR LIKE BSEG-WRBTR,
SALDO LIKE RF42B-SALDO,
END OF IT_DATA.

DATA : CHAR10(10),
CHAR10A(10),
IBSEG LIKE BSEG OCCURS 1000 WITH HEADER LINE,
CHAR30(30),
FIRST_DATE LIKE BUDAT,
GJAHR LIKE BKPF-GJAHR,
DATE(10),
POSTPERIOD LIKE T009B-POPER,
LAST_PERIOD_LDATE LIKE SY-DATUM,
LAST_PERIOD LIKE POSTPERIOD,
FIRST_PERIOD LIKE LAST_PERIOD,
BEGIN OF SUMM,
HSL01 like GLT0-HSL01,
HSL02 like GLT0-HSL02,
HSL03 like GLT0-HSL03,
HSL04 like GLT0-HSL04,
HSL05 like GLT0-HSL05,
HSL06 like GLT0-HSL06,
HSL07 like GLT0-HSL07,
HSL08 like GLT0-HSL08,
HSL09 like GLT0-HSL09,
HSL10 like GLT0-HSL10,
HSL11 like GLT0-HSL11,
HSL12 like GLT0-HSL12,
HSLVT like GLT0-HSLVT,
END OF SUMM,

DUMMY_FIYEAR LIKE BSEG-GJAHR,
FLG_FIRST.
DATA : PERIOD_CL_VALUE LIKE RF42B-SALDO,
PERIOD_CL_DEBIT LIKE RF42B-UMNNS,
PERIOD_CL_CREDIT LIKE RF42B-UMNNH,
PERIOD_CL_BALANCE LIKE RF42B-SALDO,
ACCT_BAL_CR LIKE GLT0-HSLVT,
ACCT_BAL_DR LIKE GLT0-HSLVT,
CURRENT_CR LIKE RF42B-SALDO,
CURRENT_DR LIKE RF42B-SALDO,
CURRENT_BALANCE LIKE RF42B-SALDO.
FIELD-SYMBOLS .
INCLUDE ZVVF_TSDL0BSIO_S.
*INCLUDE ZVVF_SDL0BSIO_S.
DEFINE SORT_IT_DATA.
IF &1 = 'D'.
SORT IT_DATA BY &2 DESCENDING..
ELSE.
SORT IT_DATA BY &2.
ENDIF.
END-OF-DEFINITION.
*$*$ At selection-screen *$*$
AT SELECTION-SCREEN ON BUKRS.
PERFORM CHECK_BUKRS .

AT SELECTION-SCREEN ON BUDAT.
PERFORM CHECK_GJAHR .
*$*$ Start-of-selection
START-OF-SELECTION.
SET PF-STATUS 'GL00'.
PERFORM FIND_OPEN_BALANCE.
IF FLG_FIRST = 'X'.
LAST_PERIOD_LDATE = BUDAT-LOW.
LAST_PERIOD_LDATE+5(2) = '01'.
ELSE.
LAST_PERIOD_LDATE = LAST_PERIOD_LDATE + 1.
ENDIF.
PERFORM GET_DATA.
PERFORM GET_CUR_GLBAL.
SORT IT_DATA BY BUDAT BELNR.
LOOP AT IT_DATA.
CURRENT_BALANCE = CURRENT_BALANCE - IT_DATA-CR + IT_DATA-DR.
IT_DATA-SALDO = CURRENT_BALANCE.
MODIFY IT_DATA.
ENDLOOP.
WRITE IT_DATA-SALDO TO SY-TVAR2 CURRENCY 'INR' .
IF IT_DATA[] IS INITIAL .
MESSAGE 'No data selected. Please Check your Input' TYPE 'E'.
ENDIF.
*$*$ End-of-selection.
END-OF-SELECTION.
IF LIST = SPACE.
PERFORM TO_XXL.
ELSE.
NEW-PAGE LINE-COUNT 58.
PERFORM WRITE_LIST.
ENDIF.
*$*$ At user-command.
AT USER-COMMAND.
PERFORM HANDLE_USER_COMMAND.
*$*$ At line-selection
AT LINE-SELECTION.
PERFORM LINE_SELECTION.
*$*$ Top-of-page.
TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM WRITE_HEADING.

TOP-OF-PAGE.
PERFORM WRITE_HEADING.


*&---------------------------------------------------------------------*
*& Form CHECK_GJAHR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CHECK_GJAHR .
DATA TMP_GJAHR LIKE GJAHR.
IF BUDAT-HIGH IS INITIAL . BUDAT-HIGH = BUDAT-LOW. ENDIF.
CALL FUNCTION 'FI_PERIOD_DETERMINE'
EXPORTING
I_BUDAT = BUDAT-LOW
I_BUKRS = BUKRS
I_PERIV = T001-PERIV
IMPORTING
E_POPER = POSTPERIOD
E_GJAHR = GJAHR
EXCEPTIONS
FISCAL_YEAR = 1
PERIOD = 2
PERIOD_VERSION = 3
POSTING_PERIOD = 4
SPECIAL_PERIOD = 5
VERSION = 6
POSTING_DATE = 7
OTHERS = 8.

CHECK NOT BUDAT-HIGH IS INITIAL.
CALL FUNCTION 'FI_PERIOD_DETERMINE'
EXPORTING
I_BUDAT = BUDAT-HIGH
I_BUKRS = BUKRS
I_PERIV = T001-PERIV
IMPORTING
E_GJAHR = TMP_GJAHR
EXCEPTIONS
FISCAL_YEAR = 1
PERIOD = 2
PERIOD_VERSION = 3
POSTING_PERIOD = 4
SPECIAL_PERIOD = 5
VERSION = 6
POSTING_DATE = 7
OTHERS = 8.

IF TMP_GJAHR NE GJAHR .
MESSAGE 'Something missing' type 'I'.
ENDIF.

ENDFORM. " CHECK_GJAHR
*&---------------------------------------------------------------------*
*& Form WRITE_AC_TEXT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM WRITE_AC_TEXT.
CASE BSEG-KOART.
WHEN 'S' OR 'M'.
SELECT SINGLE TXT20 FROM SKAT INTO IT_DATA-NAME1
WHERE SPRAS = SY-LANGU
AND KTOPL = T001-KTOPL
AND SAKNR = BSEG-HKONT.
IT_DATA-LIFNR = BSEG-HKONT.
WHEN 'D'.
SELECT SINGLE NAME1 FROM KNA1 INTO IT_DATA-NAME1
WHERE KUNNR = BSEG-KUNNR.
IT_DATA-LIFNR = BSEG-KUNNR.
WHEN 'K'.
SELECT SINGLE NAME1 FROM LFA1 INTO IT_DATA-NAME1
WHERE LIFNR = BSEG-LIFNR.
IT_DATA-LIFNR = BSEG-LIFNR.

ENDCASE.

ENDFORM. " WRITE_AC_TEXT
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CHECK_BUKRS.
SELECT SINGLE * FROM T001
WHERE BUKRS = BUKRS.
* IF SY-SUBRC NE 0.
* MESSAGE 'E050' type 'I'.
* ENDIF.
*AUTHORITY-CHECK OBJECT 'Z_SDL_REPS'
* ID 'TCD' FIELD SY-TCODE
* ID 'BUKRS' FIELD BUKRS
* ID 'VKORG' FIELD '*'
* ID 'WERKS' FIELD '*'.
* IF SY-SUBRC NE 0
* .MESSAGE 'E039' type 'I'.
* ENDIF.
ENDFORM. " CHECK_BUKRS
*&---------------------------------------------------------------------*
*& Form WRITE_CEQUE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM WRITE_CEQUE_DATA.

SELECT SINGLE * FROM PAYR
WHERE ZBUKR = BUKRS
AND VBLNR = IT_BELNR
AND GJAHR = GJAHR.
IF SY-SUBRC = 0.
IT_DATA-CHECT = PAYR-CHECT.
ELSE.
CLEAR IT_DATA-CHECT.
ENDIF.
ENDFORM. " WRITE_CEQUE_DATA
*&---------------------------------------------------------------------*
*& Form TO_XXL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM TO_XXL.
COLL_HEADER '1' 'Post. date'.
COLL_HEADER '2' 'Docu. No'.

ROW_HEADER '1' '1' 'Docu. Date'.
ROW_HEADER '1' '2' 'Cheque No'.
ROW_HEADER '1' '3' 'Offset A/C'.
ROW_HEADER '1' '4' 'A/C Desc'.
ROW_HEADER '1' '5' 'Text'.
ROW_HEADER '1' '6' 'Debit(Rs)'.
ROW_HEADER '1' '7' 'Credit(Rs)'.
ROW_HEADER '1' '8' 'Balance(Rs)'.
COL_ATR '1' ' ' 'DAT' 'DFT' ' ' .
COL_ATR '2' ' ' 'STR' 'DFT' ' ' .
COL_ATR '3' ' ' 'DAT' 'NOP' ' ' .
COL_ATR '4' ' ' 'STR' 'DFT' ' ' .
COL_ATR '5' ' ' 'STR' 'DFT' ' ' .
COL_ATR '6' ' ' 'STR' 'DFT' ' ' .
COL_ATR '7' ' ' 'STR' 'DFT' ' ' .
COL_ATR '8' ' ' 'NUM' 'ADD' ' ' .
COL_ATR '9' ' ' 'NUM' 'ADD' ' ' .
COL_ATR '10' ' ' 'NUM' 'ADD' ' ' .
P_HEADER 'H' 'L' '1' T001-BUTXT.
P_HEADER 'H' 'C' '1' TEXT-002.
* write sy-uzeit format '__:__:__' to char10 .
* write sy-datum to char10a dd/mm/yyyy
CONCATENATE 'Time' SY-UZEIT 'Date' SY-DATUM INTO CHAR30
SEPARATED BY SPACE.
P_HEADER 'H' 'R' '1' CHAR30.
P_HEADER 'H' 'L' '2' T001-ORT01.
SELECT SINGLE * FROM SKAT
WHERE SPRAS = SY-LANGU
AND KTOPL = T001-KTOPL
AND SAKNR = HKONT-LOW.
P_HEADER 'H' 'C' '2' SKAT-TXT50.
CONCATENATE SY-CPROG '/' SY-UNAME INTO CHAR30 SEPARATED BY SPACE.
P_HEADER 'H' 'R' '2' CHAR30.

CONCATENATE 'Open. Bal :' SY-TVAR1 INTO CHAR30 SEPARATED BY SPACE.
CONDENSE CHAR30.
P_HEADER 'H' 'L' '3' CHAR30.
IF BUDAT-HIGH IS INITIAL.
CONCATENATE 'On' BUDAT-LOW INTO CHAR30 SEPARATED BY SPACE.
ELSE.
CONCATENATE 'From' BUDAT-LOW 'To' BUDAT-HIGH
INTO CHAR30 SEPARATED BY SPACE.
ENDIF.
P_HEADER 'H' 'C' '3' CHAR30.
CONCATENATE 'Clos. Bal :' SY-TVAR2 INTO CHAR30 SEPARATED BY SPACE.

CONDENSE CHAR30.
P_HEADER 'H' 'R' '3' CHAR30.

* call_xxl '1' 'A/C Summery' it_data.
CALL_XXL_FULL '2' 'A/C Summery' IT_DATA '8' '1'.

ENDFORM. " TO_XXL

*&---------------------------------------------------------------------*
*& Form WRITE_LIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM WRITE_LIST.
DATA INT TYPE I.
LOOP AT IT_DATA.
NEW-LINE.
FORMAT COLOR 2.
INT = SY-TABIX MOD 2.
IF INT IS INITIAL.
FORMAT INTENSIFIED OFF.
ELSE.
FORMAT INTENSIFIED ON.
ENDIF.
WRITE : AT 1 '|', IT_DATA-BUDAT,
AT 13 '|', IT_DATA-BELNR HOTSPOT ON,
AT 25 '|', IT_DATA-BLDAT,
AT 37 '|', IT_DATA-CHECT,
AT 51 '|', IT_DATA-LIFNR,
AT 63 '|', IT_DATA-NAME1,
AT 99 '|', IT_DATA-SGTXT,
AT 151 '|', IT_DATA-DR,
AT 170 '|', IT_DATA-CR.
IF IT_DATA-SALDO < 0.
WRITE : AT 188 '|', IT_DATA-SALDO COLOR 6.
ELSE.
WRITE : AT 188 '|', IT_DATA-SALDO COLOR 5.
ENDIF.
WRITE : AT 214 '|'.
AT LAST.
ULINE.
SUM.
FORMAT COLOR OFF.
NEW-LINE.
WRITE : AT 151 '|', IT_DATA-DR COLOR 5,
AT 170 '|', IT_DATA-CR COLOR 6,
AT 188 '|'.
NEW-LINE.
ULINE AT 151(38).
ENDAT.
ENDLOOP.
CLEAR IT_DATA.
ENDFORM. " WRITE_LIST
*&---------------------------------------------------------------------*
*& Form HANDLE_USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM HANDLE_USER_COMMAND.
FIELD-SYMBOLS .
SY-LSIND = 0.
CASE SY-UCOMM.
WHEN 'PICK' OR 'DET' . "Choose
DATA N10(10) TYPE N.
N10 = SY-LISEL+14(10).
SELECT SINGLE * FROM BKPF
WHERE BUKRS = BUKRS
AND BELNR = N10
AND GJAHR = GJAHR.
CHECK SY-SUBRC = 0.
SET PARAMETER ID 'BLN' FIELD N10.
SET PARAMETER ID 'GJR' FIELD GJAHR.
SET PARAMETER ID 'BUK' FIELD BUKRS.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
WHEN 'S+'. "Next Field
SCROLL LIST RIGHT BY 20 PLACES.
WHEN 'S++'.
SCROLL LIST RIGHT.
WHEN 'S-'. "Previous Field
SCROLL LIST LEFT BY 20 PLACES.
WHEN 'S--'. "First Field
SCROLL LIST LEFT .
WHEN 'UP'. "Up
GET CURSOR FIELD CHAR30.
CHECK CHAR30 CS 'IT_DATA-'.
SHIFT CHAR30 UP TO '-'. SHIFT CHAR30 .
ASSIGN CHAR30 TO .
SORT_IT_DATA ' ' () .
PERFORM WRITE_LIST.

WHEN 'DOWN'. "Down
GET CURSOR FIELD CHAR30.
CHECK CHAR30 CS 'IT_DATA-'.
SHIFT CHAR30 UP TO '-'. SHIFT CHAR30 .
ASSIGN CHAR30 TO .
SORT_IT_DATA 'D' ().
PERFORM WRITE_LIST.

WHEN 'SEL'.
MODIFY CURRENT LINE LINE FORMAT COLOR = 4.
ENDCASE.

ENDFORM. " HANDLE_USER_COMMAND
*&---------------------------------------------------------------------*
*& Form WRITE_HEADING
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM WRITE_HEADING.
* format color 3.
SELECT SINGLE * FROM SKAT
WHERE SPRAS = SY-LANGU
AND KTOPL = T001-KTOPL
AND SAKNR = HKONT-LOW.
FORMAT COLOR 3. FORMAT INTENSIFIED OFF.
DATA CHAR150(150).
DATA DATE1(10).
DATA DATE1A(1).
WRITE SY-DATUM TO DATE DD/MM/YYYY.
CONCATENATE 'Time' SY-UZEIT 'Date' DATE INTO CHAR30
SEPARATED BY SPACE.
WRITE : T001-BUTXT LEFT-JUSTIFIED .
SY-INDEX = SY-LINSZ - 60.
WRITE AT 30+(SY-INDEX) : TEXT-002 CENTERED .
SY-INDEX = SY-LINSZ - 30.
WRITE AT SY-INDEX+(30) CHAR30 RIGHT-JUSTIFIED.
WRITE BUDAT-LOW TO DATE DD/MM/YYYY .
NEW-LINE.
FORMAT INTENSIFIED OFF.

SY-INDEX = SY-LINSZ - 60.
WRITE AT 30+(SY-INDEX) : SKAT-TXT50 CENTERED .
WRITE AT 180+(50) : ''.
NEW-LINE.
IF BUDAT-HIGH IS INITIAL.
CONCATENATE 'On' DATE INTO CHAR30 SEPARATED BY SPACE.
ELSE.
WRITE BUDAT-HIGH TO DATE1 DD/MM/YYYY.
CONCATENATE 'From' DATE 'To' DATE1
INTO CHAR30 SEPARATED BY SPACE.
ENDIF.
WRITE : T001-ORT01 .
SY-INDEX = SY-LINSZ - 60.

WRITE AT 30+(SY-INDEX) : CHAR30 CENTERED .
SY-INDEX = SY-LINSZ - 30.
CONCATENATE SY-CPROG SY-UNAME INTO CHAR30 SEPARATED BY SPACE.
WRITE AT SY-INDEX+(30) CHAR30 RIGHT-JUSTIFIED .
NEW-LINE.
DATA BAL_CA_FD LIKE ACCT_BAL_DR.
BAL_CA_FD = ACCT_BAL_CR + ACCT_BAL_DR.
NEW-LINE. SKIP.
FORMAT : COLOR 4, INTENSIFIED ON.
WRITE : 'Opening balance as on', BUDAT-LOW,
SY-TVAR1 .
NEW-LINE.
FORMAT COLOR 4.
WRITE : 'Closing balance as on', BUDAT-HIGH,
SY-TVAR2 .


* write : 'Current Period',
* at 15 period_cl_credit , '(Cr)',
* at 42 period_cl_debit , '(Dr)',
* at 70 period_cl_balance , '(Net)'.
* new-line.
* write : 'On' , budat-low dd/mm/yy,
* at 15 current_cr , '(Cr)',
* at 42 current_dr , '(Dr)',
* at 70 current_balance , '(Net)'.

FORMAT COLOR 1.
ULINE.
SKIP 1.
ULINE.
WRITE : AT 1 '|', 'Post. date',
AT 13 '|', 'Docu. No',
AT 25 '|', 'Docu. Date',
AT 37 '|', 'Cheque No',
AT 51 '|', 'Offset A/C',
AT 63 '|', 'A/C Desc',
AT 99 '|', 'Text',
AT 151 '|', 'Debit(Rs)',
AT 170 '|', 'Credit(Rs)',
AT 188 '|', 'Balance',
AT 214 '|'.
ULINE.

ENDFORM. " WRITE_HEADING
*&---------------------------------------------------------------------*
*& Form FIND_OPEN_BALANCE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIND_OPEN_BALANCE.

* Check whether Input G/L Account is a Cash account
select single * from SKA1 where KTOPL = T001-KTOPL
AND SAKNR = HKONT-LOW.
if POSTPERIOD = 001.
LAST_PERIOD = 1.
FLG_FIRST = 'X'.
else.
LAST_PERIOD = POSTPERIOD - 1.
endif.
* Determine the Date of the Last Day for the Last Period
CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
EXPORTING
I_GJAHR = GJAHR
I_PERIV = T001-PERIV
I_POPER = LAST_PERIOD
IMPORTING
E_DATE = LAST_PERIOD_LDATE
EXCEPTIONS
INPUT_FALSE = 1
T009_NOTFOUND = 2
T009B_NOTFOUND = 3
OTHERS = 4.
case SY-SUBRC.
when 1.
MESSAGE 'Invalid Date Input' type 'I'.
when 2.
MESSAGE 'Fiscal Year variant V3 not in table T009' type 'I'.
when 3.
MESSAGE 'Fiscal Year variant V3 not in table T009B' type 'I'.
when 4.
MESSAGE 'Error while converting Input Date to Fiscal Period' type 'I'.
endcase.
CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
EXPORTING
I_DATE = BUDAT-LOW
I_PERIV = T001-PERIV
IMPORTING
E_BUPER = first_PERIOD
E_GJAHR = GJAHR
EXCEPTIONS
INPUT_FALSE = 1
T009_NOTFOUND = 2
T009B_NOTFOUND = 3
OTHERS = 4.
FIRST_DATE = BUDAT-LOW.
FIRST_DATE+6(02) = '01'.
first_PERIOD = first_PERIOD - 1.
select * from GLT0 into table IGLT0
WHERE BUKRS = BUKRS AND RACCT IN HKONT AND RYEAR = GJAHR.
if SY-SUBRC <> 0.
MESSAGE 'No record found' type 'I'.
endif.
PERFORM GET_LAST_PERIOD_CL_VALUE USING LAST_PERIOD 'S'.
PERIOD_CL_DEBIT = PERIOD_CL_VALUE.
CLEAR PERIOD_CL_VALUE.
PERFORM GET_LAST_PERIOD_CL_VALUE USING LAST_PERIOD 'H'.
PERIOD_CL_CREDIT = PERIOD_CL_VALUE.
PERIOD_CL_BALANCE = PERIOD_CL_BALANCE +
PERIOD_CL_DEBIT + PERIOD_CL_CREDIT +
ACCT_BAL_CR + ACCT_BAL_DR.

ENDFORM. " FIND_OPEN_BALANCE

*&---------------------------------------------------------------------*
*& Form GET_LAST_PERIOD_CL_VALUE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LAST_PERIOD text *
* -->P_1383 text *
*----------------------------------------------------------------------*
FORM GET_LAST_PERIOD_CL_VALUE USING LAST_PERIOD P_DRCRIND.
if P_DRCRIND = 'H'.
LOOP AT IGLT0 WHERE DRCRK = 'H'.
MOVE-CORRESPONDING IGLT0 TO SUMM.
ACCT_BAL_CR = ACCT_BAL_CR + IGLT0-HSLVT.
clear IGLT0.
do firST_PERIOD times.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE SUMM TO .
if SY-SUBRC <> 0.
EXIT.
endif.
PERIOD_CL_VALUE = + PERIOD_CL_VALUE.
enddo.
ENDLOOP.
CLEAR SUMM.
elseif P_DRCRIND = 'S'.
LOOP AT IGLT0 WHERE DRCRK = 'S'.
move-corresponding IGLT0 to SUMM.
ACCT_BAL_DR = ACCT_BAL_DR + IGLT0-HSLVT."Account Balance Debit Fd
clear IGLT0.
do firST_PERIOD times.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE SUMM TO .
if SY-SUBRC <> 0.
EXIT.
endif.
PERIOD_CL_VALUE = + PERIOD_CL_VALUE.
enddo.
ENDLOOP.
clear SUMM.
endif.
ENDFORM. " GET_LAST_PERIOD_CL_VALUE
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA.
SELECT * FROM BSEG APPENDING
CORRESPONDING FIELDS OF TABLE IT_BELNR
WHERE BUKRS = BUKRS
AND GJAHR = GJAHR
AND HKONT IN HKONT
ORDER BY PRIMARY KEY.
SORT IT_BELNR.
DELETE ADJACENT DUPLICATES FROM IT_BELNR.
LOOP AT IT_BELNR.
CLEAR IT_DATA.
SELECT SINGLE * FROM BKPF
WHERE BUKRS = BUKRS
AND BELNR = IT_BELNR
AND GJAHR = GJAHR
AND BLART IN BLART.
CHECK SY-SUBRC = 0.
CHECK BKPF-BUDAT BETWEEN LAST_PERIOD_LDATE AND BUDAT-HIGH.
IF BKPF-BUDAT >= LAST_PERIOD_LDATE
AND BKPF-BUDAT < BUDAT-LOW.
SELECT * FROM BSEG
APPENDING CORRESPONDING FIELDS OF TABLE IBSEG
WHERE BUKRS = BUKRS
AND BELNR = IT_BELNR
AND GJAHR = GJAHR
AND HKONT IN HKONT.
ELSE.
SELECT * FROM BSEG
WHERE BUKRS = BUKRS
AND BELNR = IT_BELNR
AND GJAHR = GJAHR
AND HKONT NOT IN HKONT.
CLEAR IT_DATA.
MOVE-CORRESPONDING BKPF TO IT_DATA.
MOVE-CORRESPONDING BSEG TO IT_DATA.
IF BSEG-SHKZG = 'S'.
IT_DATA-CR = BSEG-DMBTR.
ELSE.
IT_DATA-DR = BSEG-DMBTR.
ENDIF.
PERFORM WRITE_AC_TEXT.
PERFORM WRITE_CEQUE_DATA.
APPEND IT_DATA.
ENDSELECT.
ENDIF.
ENDLOOP.

ENDFORM. " GET_DATA

*&---------------------------------------------------------------------*
*& Form GET_CUR_GLBAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_CUR_GLBAL.
CURRENT_CR = PERIOD_CL_CREDIT.
CURRENT_DR = PERIOD_CL_DEBIT.
CURRENT_BALANCE = PERIOD_CL_BALANCE.

LOOP AT IBSEG.
IF IBSEG-SHKZG = 'H'.
CURRENT_CR = CURRENT_CR + IBSEG-DMBTR.
CURRENT_BALANCE = CURRENT_BALANCE - IBSEG-DMBTR.
ELSE.
CURRENT_DR = CURRENT_DR + IBSEG-DMBTR.
CURRENT_BALANCE = CURRENT_BALANCE + IBSEG-DMBTR.
ENDIF.
ENDLOOP.
WRITE CURRENT_BALANCE TO SY-TVAR1. "*-*-*--=====///////////////////

ENDFORM. " GET_CUR_GLBAL
*&---------------------------------------------------------------------*
*& Form LINE_SELECTION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM LINE_SELECTION.
DATA N10(10) TYPE N.
N10 = SY-LISEL+14(10).
SELECT SINGLE * FROM BKPF
WHERE BUKRS = BUKRS
AND BELNR = N10
AND GJAHR = GJAHR.
CHECK SY-SUBRC = 0.


SET PARAMETER ID 'BLN' FIELD SY-LISEL+14(10).
SET PARAMETER ID 'GJR' FIELD GJAHR.
SET PARAMETER ID 'BUK' FIELD BUKRS.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

ENDFORM. " LINE_SELECTION

No comments:

link us...

For Visitors

if you want to publish or Add something on ERP, SAP , SAP FUNCTIONAL, SAP ABAP then mail us along with your email-id. contain must be yours

email-id :- avinashkr_raj@yahoo.com(any email)

email-id :- avinaskr_raj.abap@blogger.com ( use only gmail)