Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

date problem in indian fiscal year style (urgent)

Former Member
0 Kudos

hi all,

my rquirement is that in selection screen if i enter

date 31.12.2006

then it should show all the records from

01.04.2005 to 31.12.2006 only.

how to achieve this.

give the logic plz.

i will award ur efforts.

promise

thanks & Regards

sanjeev

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi sanjeev ,

First of all declare two date variables

Enter your date of December month and then use these date variables to fetch the data.

Assuming that ur date calculations is based on the year

data :

t_low type sy-datum,

t_high type sy-datum,

t_year(04) type n.

t_year = tdate(04)

t_year = t_year - 1.

concatenate t_year '0401' into t_low.

clear t_year.

t_year = t_date(04)

concatenate t_year '1231' into t_high.

select <fields>

from <Database Table>

into <Internal table>.

where date >= t_low

and date <= t_high.

16 REPLIES 16

Former Member
0 Kudos

declare two date variables

check the entered date and populate the date variables accordingly

and then use these date variables to fetch the data.

Assuming that ur date calculations is based on the year

data :

v_low type sy-datum,

v_high type sy-datum,

v_year(04) type n.

v_year = v_date(04)

v_year = v_year - 1.

concatenate v_year '0401' into v_low.

clear v_year.

v_year = v_date(04)

concatenate v_year '1231' into v_high.

select ...

from ....

into ....

where date >= v_low

and date <= v_high.

Message was edited by:

Elanchezhian Balasubramanian

0 Kudos

hi Elanchezhian Balasubramanian

thanks for ur reply

but i am unable to use ur logic in my program.

here i am sending my code plz do the needful modification in code

so that it can solve my purpose.

plz sir i request u to do it for me. just apply ur logi to get the requirement

ie if i enter 22.12.2006 in selection screen then i should get all the asset

from 01.04.2005 to 22.12.2006.

i have applied ur logic but unable to get the requirement bcoz it is not applied

correctly. so plz check my code and do the needful modification bcoz for this only

i have suffering from last 5 days. so plz once again i request u to do the needful.

REPORT Z_FA_ACQ NO STANDARD PAGE HEADING

LINE-SIZE 400

LINE-COUNT 65(3).

TYPE-POOLS : SLIS.

TABLES : ANLA, "ASSET MASTER RECORD-SEGMENT

ANLZ, "time dependent asset allocations

ANLC,

ANEK.

DATA : BEGIN OF T_ANLA OCCURS 0,

BUKRS LIKE ANLA-BUKRS,

ANLN1 LIKE ANLA-ANLN1,

ANLN2 LIKE ANLA-ANLN2,

AKTIV LIKE ANLA-AKTIV,

TXT50 LIKE ANLA-TXT50,

ZUGDT LIKE ANLA-ZUGDT,

MENGE LIKE ANLA-MENGE,

MEINS LIKE ANLA-MEINS,

ANLKL LIKE ANLA-ANLKL,

END OF T_ANLA.

DATA : BEGIN OF T_ANLZ OCCURS 0,

BUKRS LIKE ANLZ-BUKRS,

ANLN1 LIKE ANLZ-ANLN1,

ANLN2 LIKE ANLZ-ANLN2,

GSBER LIKE ANLZ-GSBER,

KOSTL LIKE ANLZ-KOSTL,

STORT LIKE ANLZ-STORT,

RAUMN LIKE ANLZ-RAUMN,

KFZKZ LIKE ANLZ-KFZKZ,

WERKS LIKE ANLZ-WERKS,

END OF T_ANLZ.

DATA : BEGIN OF T_ANEK OCCURS 0,

BUKRS LIKE ANEK-BUKRS,

ANLN1 LIKE ANEK-ANLN1,

ANLN2 LIKE ANEK-ANLN2,

BELNR LIKE ANEK-BELNR,

BUDAT LIKE ANEK-BUDAT,

XBLNR LIKE ANEK-XBLNR,

SGTXT LIKE ANEK-SGTXT,

GJAHR LIKE ANEK-GJAHR,

PDATE LIKE ANEK-BUDAT, " modified by sanjeev for date logic

END OF T_ANEK.

DATA : BEGIN OF T_ANLC OCCURS 0,

BUKRS LIKE ANLC-BUKRS,

ANLN1 LIKE ANLC-ANLN1,

ANLN2 LIKE ANLC-ANLN2,

ANSWL LIKE ANLC-ANSWL,

NAFAP LIKE ANLC-NAFAP,

AAFAP LIKE ANLC-AAFAP,

AFABE LIKE ANLC-AFABE,

GJAHR LIKE ANLC-GJAHR,

END OF T_ANLC.

DATA : BEGIN OF IT_FINAL OCCURS 0,

ANLN1 LIKE ANLA-ANLN1,

ANLN2 LIKE ANLA-ANLN2,

AKTIV LIKE ANLA-AKTIV,

TXT50 LIKE ANLA-TXT50,

ZUGDT LIKE ANLA-ZUGDT,

MENGE LIKE ANLA-MENGE,

MEINS LIKE ANLA-MEINS,

GSBER LIKE ANLZ-GSBER,

KOSTL LIKE ANLZ-KOSTL,

STORT LIKE ANLZ-STORT,

RAUMN LIKE ANLZ-RAUMN,

KFZKZ LIKE ANLZ-KFZKZ,

BELNR LIKE ANEK-BELNR,

BUDAT LIKE ANEK-BUDAT,

PDATE LIKE ANEK-BUDAT,

XBLNR LIKE ANEK-XBLNR,

SGTXT LIKE ANEK-SGTXT,

ANSWL LIKE ANLC-ANSWL,

NAFAP LIKE ANLC-NAFAP,

AAFAP LIKE ANLC-AAFAP,

GJAHR LIKE ANEK-GJAHR,

ANLKL LIKE ANLA-ANLKL,

END OF IT_FINAL.

DATA: PDATE LIKE ANEK-BUDAT.

PDATE = SY-DATUM.

DATA:V_LOW LIKE SY-DATUM,

V_HIGH LIKE SY-DATUM,

V_DATE(04) TYPE N,

V_YEAR(04) TYPE N.

V_YEAR = V_DATE(04).

V_YEAR = V_YEAR - 1.

CONCATENATE V_YEAR '0401' INTO V_LOW.

CLEAR V_YEAR.

V_YEAR = V_DATE(04).

CONCATENATE V_YEAR '0331' INTO V_HIGH.

DATA : LINE_COLOR(4) TYPE C.

DATA : FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: EVENT TYPE SLIS_ALV_EVENT OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN : BEGIN OF BLOCK B_FA WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS : S_BUKRS FOR ANLA-BUKRS DEFAULT 'ML',

S_ANLN1 FOR ANLA-ANLN1,

S_ANLN2 FOR ANLA-ANLN2,

S_ANLKL FOR ANLA-ANLKL,

S_AKTIV FOR ANLA-AKTIV,

S_GSBER FOR ANLZ-GSBER,

S_KOSTL FOR ANLZ-KOSTL,

S_WERKS FOR ANLZ-WERKS,

S_STORT FOR ANLZ-STORT,

  • s_budat FOR anek-budat,

S_GJAHR FOR ANEK-GJAHR.

SELECTION-SCREEN : END OF BLOCK B_FA.

SET PF-STATUS '100'.

SELECT BUKRS ANLN1 ANLN2 AKTIV TXT50 ZUGDT MENGE MEINS ANLKL

FROM ANLA

INTO CORRESPONDING FIELDS OF TABLE T_ANLA

WHERE ANLN1 IN S_ANLN1

AND ANLN2 IN S_ANLN2

AND BUKRS IN S_BUKRS

AND ANLKL IN S_ANLKL

AND AKTIV IN S_AKTIV.

*CHECK : NOT t_anla[] IS INITIAL.

SELECT BUKRS ANLN1 ANLN2 GSBER KOSTL STORT RAUMN KFZKZ

FROM ANLZ

INTO CORRESPONDING FIELDS OF TABLE T_ANLZ

FOR ALL ENTRIES IN T_ANLA

WHERE ANLN1 = T_ANLA-ANLN1

AND ANLN2 = T_ANLA-ANLN2

AND BUKRS = T_ANLA-BUKRS

AND GSBER NOT IN S_GSBER

AND KOSTL IN S_KOSTL

AND WERKS IN S_WERKS.

SELECT BUKRS ANLN1 ANLN2 BELNR BUDAT XBLNR SGTXT GJAHR

FROM ANEK

INTO CORRESPONDING FIELDS OF TABLE T_ANEK

FOR ALL ENTRIES IN T_ANLA

WHERE ANLN1 = T_ANLA-ANLN1

AND ANLN2 = T_ANLA-ANLN2

AND BUKRS = T_ANLA-BUKRS

AND PDATE >= V_LOW

AND PDATE <= V_HIGH.

  • AND gjahr IN s_gjahr. " modified for date logic by Sanjeev

SELECT BUKRS ANLN1 ANLN2 ANSWL NAFAP AAFAP AFABE GJAHR

FROM ANLC

INTO CORRESPONDING FIELDS OF TABLE T_ANLC

FOR ALL ENTRIES IN T_ANLA

WHERE ANLN1 = T_ANLA-ANLN1

AND ANLN2 = T_ANLA-ANLN2

AND BUKRS = T_ANLA-BUKRS

AND AFABE = '01'.

LOOP AT T_ANLA.

MOVE : T_ANLA-ANLN1 TO IT_FINAL-ANLN1,

T_ANLA-ANLN2 TO IT_FINAL-ANLN2,

T_ANLA-AKTIV TO IT_FINAL-AKTIV,

T_ANLA-TXT50 TO IT_FINAL-TXT50,

T_ANLA-ZUGDT TO IT_FINAL-ZUGDT,

T_ANLA-MENGE TO IT_FINAL-MENGE,

T_ANLA-MEINS TO IT_FINAL-MEINS.

READ TABLE T_ANLZ WITH KEY BUKRS = T_ANLA-BUKRS

ANLN1 = T_ANLA-ANLN1

ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.

IF SY-SUBRC EQ 0.

MOVE : T_ANLZ-GSBER TO IT_FINAL-GSBER,

T_ANLZ-KOSTL TO IT_FINAL-KOSTL,

T_ANLZ-STORT TO IT_FINAL-STORT,

T_ANLZ-RAUMN TO IT_FINAL-RAUMN,

T_ANLZ-KFZKZ TO IT_FINAL-KFZKZ.

ENDIF.

READ TABLE T_ANLC WITH KEY BUKRS = T_ANLA-BUKRS

ANLN1 = T_ANLA-ANLN1

ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.

IF SY-SUBRC EQ 0.

MOVE : T_ANLC-ANSWL TO IT_FINAL-ANSWL,

T_ANLC-NAFAP TO IT_FINAL-NAFAP,

T_ANLC-AAFAP TO IT_FINAL-AAFAP.

ENDIF.

LOOP AT T_ANEK WHERE BUKRS = T_ANLA-BUKRS AND ANLN1 = T_ANLA-ANLN1 AND

ANLN2 = T_ANLA-ANLN2 AND PDATE >= V_LOW

AND PDATE <= V_HIGH.

MOVE : T_ANEK-BELNR TO IT_FINAL-BELNR,

T_ANEK-BUDAT TO IT_FINAL-BUDAT,

T_ANEK-GJAHR TO IT_FINAL-GJAHR,

T_ANEK-XBLNR TO IT_FINAL-XBLNR,

T_ANEK-SGTXT TO IT_FINAL-SGTXT.

APPEND IT_FINAL.

ENDLOOP.

ENDLOOP.

PERFORM BUILD_FIELDCATALOG.

PERFORM DISPLAY_ALV_REPORT.

PERFORM BUILD_LAYOUT.

----


  • FORM BUILD_FIELDCATALOG *

----


  • ........ *

----


FORM BUILD_FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ANLN1'.

FIELDCATALOG-SELTEXT_M = 'ASSET MAIN NO'.

FIELDCATALOG-COL_POS = 0.

FIELDCATALOG-OUTPUTLEN = 14.

FIELDCATALOG-EMPHASIZE = 'X'.

FIELDCATALOG-KEY = 'X'.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ANLN2'.

FIELDCATALOG-SELTEXT_M = 'SUB NO'.

FIELDCATALOG-COL_POS = 1.

FIELDCATALOG-OUTPUTLEN = 7.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'AKTIV'.

FIELDCATALOG-SELTEXT_M = 'CAP.DATE'.

FIELDCATALOG-COL_POS = 2.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'TXT50'.

FIELDCATALOG-SELTEXT_M = 'NAME'.

FIELDCATALOG-COL_POS = 3.

FIELDCATALOG-OUTPUTLEN = 50.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ZUGDT'.

FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.

FIELDCATALOG-COL_POS = 4.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'MENGE'.

FIELDCATALOG-SELTEXT_M = 'QTY'.

FIELDCATALOG-COL_POS = 5.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'MEINS'.

FIELDCATALOG-SELTEXT_M = 'UNITS'.

FIELDCATALOG-COL_POS = 6.

FIELDCATALOG-OUTPUTLEN = 3.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'GSBER'.

FIELDCATALOG-SELTEXT_M = 'BA'.

FIELDCATALOG-COL_POS = 7.

FIELDCATALOG-OUTPUTLEN = 4.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'KOSTL'.

FIELDCATALOG-SELTEXT_M = 'COST CENTER'.

FIELDCATALOG-COL_POS = 8.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'STORT'.

FIELDCATALOG-SELTEXT_M = 'LOCATION'.

FIELDCATALOG-COL_POS = 9.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'RAUMN'.

FIELDCATALOG-SELTEXT_M = 'ROOM'.

FIELDCATALOG-COL_POS = 10.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'KFZKZ'.

FIELDCATALOG-SELTEXT_M = 'LICENSE PLATE NO'.

FIELDCATALOG-COL_POS = 11.

FIELDCATALOG-OUTPUTLEN = 20.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'BELNR'.

FIELDCATALOG-SELTEXT_M = 'DOC NO'.

FIELDCATALOG-COL_POS = 12.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'BUDAT'.

FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.

FIELDCATALOG-COL_POS = 13.

FIELDCATALOG-OUTPUTLEN = 15.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'XBLNR'.

FIELDCATALOG-SELTEXT_M = 'REF NO'.

FIELDCATALOG-COL_POS = 14.

FIELDCATALOG-OUTPUTLEN = 25.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'SGTXT'.

FIELDCATALOG-SELTEXT_M = 'TEXT'.

FIELDCATALOG-COL_POS = 15.

FIELDCATALOG-OUTPUTLEN = 50.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ANSWL'.

FIELDCATALOG-SELTEXT_M = 'ACQ VAL'.

FIELDCATALOG-COL_POS = 16.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'NAFAP'.

FIELDCATALOG-SELTEXT_M = 'ORD.DEP'.

FIELDCATALOG-COL_POS = 17.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'AAFAP'.

FIELDCATALOG-SELTEXT_M = 'UNPLAN DEP'.

FIELDCATALOG-COL_POS = 18.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

ENDFORM.

PERFORM ALVDISPLAY.

FORM ALVDISPLAY.

EVENT-FORM = 'USERCOMMAND'(002).

EVENT-NAME = 'USER_COMMAND'(001).

APPEND EVENT.

ENDFORM.

FORM DOWNLOADEXCEL.

DATA : B_FILE1 LIKE RLGRAP-FILENAME.

ENDFORM.

----


  • FORM BUILD_LAYOUT *

----


  • ........ *

----


FORM BUILD_LAYOUT.

GD_LAYOUT-ZEBRA = 'X'.

GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.

ENDFORM.

----


  • FORM DISPLAY_ALV_REPORT *

----


  • ........ *

----


FORM DISPLAY_ALV_REPORT.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • i_callback_pf_status_set = 100

  • i_callback_user_command = sy-ucomm

  • I_STRUCTURE_NAME =

IS_LAYOUT = GD_LAYOUT

IT_FIELDCAT = FIELDCATALOG[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT = ' '

  • IT_EVENTS =

  • IT_EVENT_EXIT = EVENT[]

  • IS_PRINT =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IT_FINAL

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

ENDFORM.

0 Kudos

Hi Sanjeev

u have not used the date field in the selection screen, instead u have used fiscal year (gjahr), so first use the date field which u have commented.

Then I have done few changes in ur code, go through the code and let me know if ur problem has been solved.

REPORT Z_FA_ACQ NO STANDARD PAGE HEADING

LINE-SIZE 400

LINE-COUNT 65(3).

TYPE-POOLS : SLIS.

TABLES : ANLA, "ASSET MASTER RECORD-SEGMENT

ANLZ, "time dependent asset allocations

ANLC,

ANEK.

DATA : BEGIN OF T_ANLA OCCURS 0,

BUKRS LIKE ANLA-BUKRS,

ANLN1 LIKE ANLA-ANLN1,

ANLN2 LIKE ANLA-ANLN2,

AKTIV LIKE ANLA-AKTIV,

TXT50 LIKE ANLA-TXT50,

ZUGDT LIKE ANLA-ZUGDT,

MENGE LIKE ANLA-MENGE,

MEINS LIKE ANLA-MEINS,

ANLKL LIKE ANLA-ANLKL,

END OF T_ANLA.

DATA : BEGIN OF T_ANLZ OCCURS 0,

BUKRS LIKE ANLZ-BUKRS,

ANLN1 LIKE ANLZ-ANLN1,

ANLN2 LIKE ANLZ-ANLN2,

GSBER LIKE ANLZ-GSBER,

KOSTL LIKE ANLZ-KOSTL,

STORT LIKE ANLZ-STORT,

RAUMN LIKE ANLZ-RAUMN,

KFZKZ LIKE ANLZ-KFZKZ,

WERKS LIKE ANLZ-WERKS,

END OF T_ANLZ.

DATA : BEGIN OF T_ANEK OCCURS 0,

BUKRS LIKE ANEK-BUKRS,

ANLN1 LIKE ANEK-ANLN1,

ANLN2 LIKE ANEK-ANLN2,

BELNR LIKE ANEK-BELNR,

BUDAT LIKE ANEK-BUDAT,

XBLNR LIKE ANEK-XBLNR,

SGTXT LIKE ANEK-SGTXT,

GJAHR LIKE ANEK-GJAHR,

PDATE LIKE ANEK-BUDAT, " modified by sanjeev for date logic

END OF T_ANEK.

DATA : BEGIN OF T_ANLC OCCURS 0,

BUKRS LIKE ANLC-BUKRS,

ANLN1 LIKE ANLC-ANLN1,

ANLN2 LIKE ANLC-ANLN2,

ANSWL LIKE ANLC-ANSWL,

NAFAP LIKE ANLC-NAFAP,

AAFAP LIKE ANLC-AAFAP,

AFABE LIKE ANLC-AFABE,

GJAHR LIKE ANLC-GJAHR,

END OF T_ANLC.

DATA : BEGIN OF IT_FINAL OCCURS 0,

ANLN1 LIKE ANLA-ANLN1,

ANLN2 LIKE ANLA-ANLN2,

AKTIV LIKE ANLA-AKTIV,

TXT50 LIKE ANLA-TXT50,

ZUGDT LIKE ANLA-ZUGDT,

MENGE LIKE ANLA-MENGE,

MEINS LIKE ANLA-MEINS,

GSBER LIKE ANLZ-GSBER,

KOSTL LIKE ANLZ-KOSTL,

STORT LIKE ANLZ-STORT,

RAUMN LIKE ANLZ-RAUMN,

KFZKZ LIKE ANLZ-KFZKZ,

BELNR LIKE ANEK-BELNR,

BUDAT LIKE ANEK-BUDAT,

PDATE LIKE ANEK-BUDAT,

XBLNR LIKE ANEK-XBLNR,

SGTXT LIKE ANEK-SGTXT,

ANSWL LIKE ANLC-ANSWL,

NAFAP LIKE ANLC-NAFAP,

AAFAP LIKE ANLC-AAFAP,

GJAHR LIKE ANEK-GJAHR,

ANLKL LIKE ANLA-ANLKL,

END OF IT_FINAL.

DATA: PDATE LIKE ANEK-BUDAT.

PDATE = SY-DATUM.

DATA:V_LOW LIKE SY-DATUM,

V_HIGH LIKE SY-DATUM,

  • V_DATE(04) TYPE N,

V_YEAR(04) TYPE N.

*CLEAR V_YEAR.

*V_YEAR = V_DATE(04).

*CONCATENATE V_YEAR '0331' INTO V_HIGH.

DATA : LINE_COLOR(4) TYPE C.

DATA : FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: EVENT TYPE SLIS_ALV_EVENT OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN : BEGIN OF BLOCK B_FA WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS : S_BUKRS FOR ANLA-BUKRS DEFAULT 'ML',

S_ANLN1 FOR ANLA-ANLN1,

S_ANLN2 FOR ANLA-ANLN2,

S_ANLKL FOR ANLA-ANLKL,

S_AKTIV FOR ANLA-AKTIV,

S_GSBER FOR ANLZ-GSBER,

S_KOSTL FOR ANLZ-KOSTL,

S_WERKS FOR ANLZ-WERKS,

S_STORT FOR ANLZ-STORT,

s_budat FOR anek-budat,

S_GJAHR FOR ANEK-GJAHR.

SELECTION-SCREEN : END OF BLOCK B_FA.

SET PF-STATUS '100'.

if s_budat-high is initial.

V_YEAR = s_budat-low+0(4).

V_YEAR = V_YEAR - 1.

CONCATENATE V_YEAR '0401' INTO V_LOW.

v_high = s_budat-low.

else.

v_low = s_budat-low.

v_high = s_budat-high.

endif.

SELECT BUKRS ANLN1 ANLN2 AKTIV TXT50 ZUGDT MENGE MEINS ANLKL

FROM ANLA

INTO CORRESPONDING FIELDS OF TABLE T_ANLA

WHERE ANLN1 IN S_ANLN1

AND ANLN2 IN S_ANLN2

AND BUKRS IN S_BUKRS

AND ANLKL IN S_ANLKL

AND AKTIV IN S_AKTIV.

*CHECK : NOT t_anla[] IS INITIAL.

SELECT BUKRS ANLN1 ANLN2 GSBER KOSTL STORT RAUMN KFZKZ

FROM ANLZ

INTO CORRESPONDING FIELDS OF TABLE T_ANLZ

FOR ALL ENTRIES IN T_ANLA

WHERE ANLN1 = T_ANLA-ANLN1

AND ANLN2 = T_ANLA-ANLN2

AND BUKRS = T_ANLA-BUKRS

AND GSBER NOT IN S_GSBER

AND KOSTL IN S_KOSTL

AND WERKS IN S_WERKS.

SELECT BUKRS ANLN1 ANLN2 BELNR BUDAT XBLNR SGTXT GJAHR

FROM ANEK

INTO CORRESPONDING FIELDS OF TABLE T_ANEK

FOR ALL ENTRIES IN T_ANLA

WHERE ANLN1 = T_ANLA-ANLN1

AND ANLN2 = T_ANLA-ANLN2

AND BUKRS = T_ANLA-BUKRS

AND budat >= V_LOW

AND budat <= V_HIGH.

  • AND gjahr IN s_gjahr. " modified for date logic by Sanjeev

SELECT BUKRS ANLN1 ANLN2 ANSWL NAFAP AAFAP AFABE GJAHR

FROM ANLC

INTO CORRESPONDING FIELDS OF TABLE T_ANLC

FOR ALL ENTRIES IN T_ANLA

WHERE ANLN1 = T_ANLA-ANLN1

AND ANLN2 = T_ANLA-ANLN2

AND BUKRS = T_ANLA-BUKRS

AND AFABE = '01'.

LOOP AT T_ANLA.

MOVE : T_ANLA-ANLN1 TO IT_FINAL-ANLN1,

T_ANLA-ANLN2 TO IT_FINAL-ANLN2,

T_ANLA-AKTIV TO IT_FINAL-AKTIV,

T_ANLA-TXT50 TO IT_FINAL-TXT50,

T_ANLA-ZUGDT TO IT_FINAL-ZUGDT,

T_ANLA-MENGE TO IT_FINAL-MENGE,

T_ANLA-MEINS TO IT_FINAL-MEINS.

READ TABLE T_ANLZ WITH KEY BUKRS = T_ANLA-BUKRS

ANLN1 = T_ANLA-ANLN1

ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.

IF SY-SUBRC EQ 0.

MOVE : T_ANLZ-GSBER TO IT_FINAL-GSBER,

T_ANLZ-KOSTL TO IT_FINAL-KOSTL,

T_ANLZ-STORT TO IT_FINAL-STORT,

T_ANLZ-RAUMN TO IT_FINAL-RAUMN,

T_ANLZ-KFZKZ TO IT_FINAL-KFZKZ.

ENDIF.

READ TABLE T_ANLC WITH KEY BUKRS = T_ANLA-BUKRS

ANLN1 = T_ANLA-ANLN1

ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.

IF SY-SUBRC EQ 0.

MOVE : T_ANLC-ANSWL TO IT_FINAL-ANSWL,

T_ANLC-NAFAP TO IT_FINAL-NAFAP,

T_ANLC-AAFAP TO IT_FINAL-AAFAP.

ENDIF.

LOOP AT T_ANEK WHERE BUKRS = T_ANLA-BUKRS AND ANLN1 = T_ANLA-ANLN1 AND

ANLN2 = T_ANLA-ANLN2 AND PDATE >= V_LOW

AND PDATE <= V_HIGH.

MOVE : T_ANEK-BELNR TO IT_FINAL-BELNR,

T_ANEK-BUDAT TO IT_FINAL-BUDAT,

T_ANEK-GJAHR TO IT_FINAL-GJAHR,

T_ANEK-XBLNR TO IT_FINAL-XBLNR,

T_ANEK-SGTXT TO IT_FINAL-SGTXT.

APPEND IT_FINAL.

ENDLOOP.

ENDLOOP.

PERFORM BUILD_FIELDCATALOG.

PERFORM DISPLAY_ALV_REPORT.

PERFORM BUILD_LAYOUT.

PERFORM ALVDISPLAY.

----


  • FORM BUILD_FIELDCATALOG *

----


  • ........ *

----


FORM BUILD_FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ANLN1'.

FIELDCATALOG-SELTEXT_M = 'ASSET MAIN NO'.

FIELDCATALOG-COL_POS = 0.

FIELDCATALOG-OUTPUTLEN = 14.

FIELDCATALOG-EMPHASIZE = 'X'.

FIELDCATALOG-KEY = 'X'.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ANLN2'.

FIELDCATALOG-SELTEXT_M = 'SUB NO'.

FIELDCATALOG-COL_POS = 1.

FIELDCATALOG-OUTPUTLEN = 7.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'AKTIV'.

FIELDCATALOG-SELTEXT_M = 'CAP.DATE'.

FIELDCATALOG-COL_POS = 2.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'TXT50'.

FIELDCATALOG-SELTEXT_M = 'NAME'.

FIELDCATALOG-COL_POS = 3.

FIELDCATALOG-OUTPUTLEN = 50.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ZUGDT'.

FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.

FIELDCATALOG-COL_POS = 4.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'MENGE'.

FIELDCATALOG-SELTEXT_M = 'QTY'.

FIELDCATALOG-COL_POS = 5.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'MEINS'.

FIELDCATALOG-SELTEXT_M = 'UNITS'.

FIELDCATALOG-COL_POS = 6.

FIELDCATALOG-OUTPUTLEN = 3.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'GSBER'.

FIELDCATALOG-SELTEXT_M = 'BA'.

FIELDCATALOG-COL_POS = 7.

FIELDCATALOG-OUTPUTLEN = 4.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'KOSTL'.

FIELDCATALOG-SELTEXT_M = 'COST CENTER'.

FIELDCATALOG-COL_POS = 8.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'STORT'.

FIELDCATALOG-SELTEXT_M = 'LOCATION'.

FIELDCATALOG-COL_POS = 9.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'RAUMN'.

FIELDCATALOG-SELTEXT_M = 'ROOM'.

FIELDCATALOG-COL_POS = 10.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'KFZKZ'.

FIELDCATALOG-SELTEXT_M = 'LICENSE PLATE NO'.

FIELDCATALOG-COL_POS = 11.

FIELDCATALOG-OUTPUTLEN = 20.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'BELNR'.

FIELDCATALOG-SELTEXT_M = 'DOC NO'.

FIELDCATALOG-COL_POS = 12.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'BUDAT'.

FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.

FIELDCATALOG-COL_POS = 13.

FIELDCATALOG-OUTPUTLEN = 15.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'XBLNR'.

FIELDCATALOG-SELTEXT_M = 'REF NO'.

FIELDCATALOG-COL_POS = 14.

FIELDCATALOG-OUTPUTLEN = 25.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'SGTXT'.

FIELDCATALOG-SELTEXT_M = 'TEXT'.

FIELDCATALOG-COL_POS = 15.

FIELDCATALOG-OUTPUTLEN = 50.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ANSWL'.

FIELDCATALOG-SELTEXT_M = 'ACQ VAL'.

FIELDCATALOG-COL_POS = 16.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'NAFAP'.

FIELDCATALOG-SELTEXT_M = 'ORD.DEP'.

FIELDCATALOG-COL_POS = 17.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'AAFAP'.

FIELDCATALOG-SELTEXT_M = 'UNPLAN DEP'.

FIELDCATALOG-COL_POS = 18.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

ENDFORM.

*PERFORM ALVDISPLAY.

FORM ALVDISPLAY.

EVENT-FORM = 'USERCOMMAND'(002).

EVENT-NAME = 'USER_COMMAND'(001).

APPEND EVENT.

ENDFORM.

FORM DOWNLOADEXCEL.

DATA : B_FILE1 LIKE RLGRAP-FILENAME.

ENDFORM.

----


  • FORM BUILD_LAYOUT *

----


  • ........ *

----


FORM BUILD_LAYOUT.

GD_LAYOUT-ZEBRA = 'X'.

GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.

ENDFORM.

----


  • FORM DISPLAY_ALV_REPORT *

----


  • ........ *

----


FORM DISPLAY_ALV_REPORT.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • i_callback_pf_status_set = 100

  • i_callback_user_command = sy-ucomm

  • I_STRUCTURE_NAME =

IS_LAYOUT = GD_LAYOUT

IT_FIELDCAT = FIELDCATALOG[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT = ' '

  • IT_EVENTS =

  • IT_EVENT_EXIT = EVENT[]

  • IS_PRINT =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IT_FINAL

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

ENDFORM.

Thanks

Elan

0 Kudos

i have done modification according to ur guidelines but it is showing

that list contains no data.

but there is data. i should get it.

here i am sending modified code as per ur direction. so check what more can be

done. plz i need ur help.

if u have done similar sceanrio for asset aquisition report then plz send me the

code so that i can check it otherwise see what modification can be done to my modified code as per u.

REPORT Z_FA_ACQ NO STANDARD PAGE HEADING

LINE-SIZE 400

LINE-COUNT 65(3).

TYPE-POOLS : SLIS.

TABLES : ANLA, "ASSET MASTER RECORD-SEGMENT

ANLZ, "time dependent asset allocations

ANLC,

ANEK.

DATA : BEGIN OF T_ANLA OCCURS 0,

BUKRS LIKE ANLA-BUKRS,

ANLN1 LIKE ANLA-ANLN1,

ANLN2 LIKE ANLA-ANLN2,

AKTIV LIKE ANLA-AKTIV,

TXT50 LIKE ANLA-TXT50,

ZUGDT LIKE ANLA-ZUGDT,

MENGE LIKE ANLA-MENGE,

MEINS LIKE ANLA-MEINS,

ANLKL LIKE ANLA-ANLKL,

END OF T_ANLA.

DATA : BEGIN OF T_ANLZ OCCURS 0,

BUKRS LIKE ANLZ-BUKRS,

ANLN1 LIKE ANLZ-ANLN1,

ANLN2 LIKE ANLZ-ANLN2,

GSBER LIKE ANLZ-GSBER,

KOSTL LIKE ANLZ-KOSTL,

STORT LIKE ANLZ-STORT,

RAUMN LIKE ANLZ-RAUMN,

KFZKZ LIKE ANLZ-KFZKZ,

WERKS LIKE ANLZ-WERKS,

END OF T_ANLZ.

DATA : BEGIN OF T_ANEK OCCURS 0,

BUKRS LIKE ANEK-BUKRS,

ANLN1 LIKE ANEK-ANLN1,

ANLN2 LIKE ANEK-ANLN2,

BELNR LIKE ANEK-BELNR,

BUDAT LIKE ANEK-BUDAT,

XBLNR LIKE ANEK-XBLNR,

SGTXT LIKE ANEK-SGTXT,

GJAHR LIKE ANEK-GJAHR,

PDATE LIKE ANEK-BUDAT, " modified by sanjeev for date logic

END OF T_ANEK.

DATA : BEGIN OF T_ANLC OCCURS 0,

BUKRS LIKE ANLC-BUKRS,

ANLN1 LIKE ANLC-ANLN1,

ANLN2 LIKE ANLC-ANLN2,

ANSWL LIKE ANLC-ANSWL,

NAFAP LIKE ANLC-NAFAP,

AAFAP LIKE ANLC-AAFAP,

AFABE LIKE ANLC-AFABE,

GJAHR LIKE ANLC-GJAHR,

END OF T_ANLC.

DATA : BEGIN OF IT_FINAL OCCURS 0,

ANLN1 LIKE ANLA-ANLN1,

ANLN2 LIKE ANLA-ANLN2,

AKTIV LIKE ANLA-AKTIV,

TXT50 LIKE ANLA-TXT50,

ZUGDT LIKE ANLA-ZUGDT,

MENGE LIKE ANLA-MENGE,

MEINS LIKE ANLA-MEINS,

GSBER LIKE ANLZ-GSBER,

KOSTL LIKE ANLZ-KOSTL,

STORT LIKE ANLZ-STORT,

RAUMN LIKE ANLZ-RAUMN,

KFZKZ LIKE ANLZ-KFZKZ,

BELNR LIKE ANEK-BELNR,

BUDAT LIKE ANEK-BUDAT,

PDATE LIKE ANEK-BUDAT,

XBLNR LIKE ANEK-XBLNR,

SGTXT LIKE ANEK-SGTXT,

ANSWL LIKE ANLC-ANSWL,

NAFAP LIKE ANLC-NAFAP,

AAFAP LIKE ANLC-AAFAP,

GJAHR LIKE ANEK-GJAHR,

ANLKL LIKE ANLA-ANLKL,

END OF IT_FINAL.

*DATA: pdate LIKE anek-budat.

*pdate = sy-datum.

DATA:V_LOW LIKE SY-DATUM,

V_HIGH LIKE SY-DATUM,

  • v_date(04) TYPE n,

V_YEAR(04) TYPE N.

*v_year = v_date(04).

*v_year = v_year - 1.

*CONCATENATE v_year '0401' INTO v_low.

*CLEAR v_year.

*v_year = v_date(04).

*CONCATENATE v_year '0331' INTO v_high.

DATA : LINE_COLOR(4) TYPE C.

DATA : FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: EVENT TYPE SLIS_ALV_EVENT OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN : BEGIN OF BLOCK B_FA WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS : S_BUKRS FOR ANLA-BUKRS DEFAULT 'ML',

S_ANLN1 FOR ANLA-ANLN1,

S_ANLN2 FOR ANLA-ANLN2,

S_ANLKL FOR ANLA-ANLKL,

S_AKTIV FOR ANLA-AKTIV,

S_GSBER FOR ANLZ-GSBER,

S_KOSTL FOR ANLZ-KOSTL,

S_WERKS FOR ANLZ-WERKS,

S_STORT FOR ANLZ-STORT,

S_BUDAT FOR ANEK-BUDAT.

  • s_gjahr FOR anek-gjahr.

SELECTION-SCREEN : END OF BLOCK B_FA.

PARAMETERS : PDATE LIKE ANEK-BUDAT.

SET PF-STATUS '100'.

IF S_BUDAT-HIGH IS INITIAL.

V_YEAR = S_BUDAT-LOW+0(4).

V_YEAR = V_YEAR - 1.

CONCATENATE V_YEAR '0401' INTO V_LOW.

V_HIGH = S_BUDAT-LOW.

ELSE.

V_LOW = S_BUDAT-LOW.

V_HIGH = S_BUDAT-HIGH.

ENDIF.

SELECT BUKRS ANLN1 ANLN2 AKTIV TXT50 ZUGDT MENGE MEINS ANLKL

FROM ANLA

INTO CORRESPONDING FIELDS OF TABLE T_ANLA

WHERE ANLN1 IN S_ANLN1

AND ANLN2 IN S_ANLN2

AND BUKRS IN S_BUKRS

AND ANLKL IN S_ANLKL

AND AKTIV IN S_AKTIV.

*CHECK : NOT t_anla[] IS INITIAL.

SELECT BUKRS ANLN1 ANLN2 GSBER KOSTL STORT RAUMN KFZKZ

FROM ANLZ

INTO CORRESPONDING FIELDS OF TABLE T_ANLZ

FOR ALL ENTRIES IN T_ANLA

WHERE ANLN1 = T_ANLA-ANLN1

AND ANLN2 = T_ANLA-ANLN2

AND BUKRS = T_ANLA-BUKRS

AND GSBER NOT IN S_GSBER

AND KOSTL IN S_KOSTL

AND WERKS IN S_WERKS.

SELECT BUKRS ANLN1 ANLN2 BELNR BUDAT XBLNR SGTXT GJAHR

FROM ANEK

INTO CORRESPONDING FIELDS OF TABLE T_ANEK

FOR ALL ENTRIES IN T_ANLA

WHERE ANLN1 = T_ANLA-ANLN1

AND ANLN2 = T_ANLA-ANLN2

AND BUKRS = T_ANLA-BUKRS

AND BUDAT >= V_LOW

AND BUDAT <= V_HIGH.

  • AND gjahr IN s_gjahr. " modified for date logic by Sanjeev

SELECT BUKRS ANLN1 ANLN2 ANSWL NAFAP AAFAP AFABE GJAHR

FROM ANLC

INTO CORRESPONDING FIELDS OF TABLE T_ANLC

FOR ALL ENTRIES IN T_ANLA

WHERE ANLN1 = T_ANLA-ANLN1

AND ANLN2 = T_ANLA-ANLN2

AND BUKRS = T_ANLA-BUKRS

AND AFABE = '01'.

LOOP AT T_ANLA.

MOVE : T_ANLA-ANLN1 TO IT_FINAL-ANLN1,

T_ANLA-ANLN2 TO IT_FINAL-ANLN2,

T_ANLA-AKTIV TO IT_FINAL-AKTIV,

T_ANLA-TXT50 TO IT_FINAL-TXT50,

T_ANLA-ZUGDT TO IT_FINAL-ZUGDT,

T_ANLA-MENGE TO IT_FINAL-MENGE,

T_ANLA-MEINS TO IT_FINAL-MEINS.

READ TABLE T_ANLZ WITH KEY BUKRS = T_ANLA-BUKRS

ANLN1 = T_ANLA-ANLN1

ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.

IF SY-SUBRC EQ 0.

MOVE : T_ANLZ-GSBER TO IT_FINAL-GSBER,

T_ANLZ-KOSTL TO IT_FINAL-KOSTL,

T_ANLZ-STORT TO IT_FINAL-STORT,

T_ANLZ-RAUMN TO IT_FINAL-RAUMN,

T_ANLZ-KFZKZ TO IT_FINAL-KFZKZ.

ENDIF.

READ TABLE T_ANLC WITH KEY BUKRS = T_ANLA-BUKRS

ANLN1 = T_ANLA-ANLN1

ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.

IF SY-SUBRC EQ 0.

MOVE : T_ANLC-ANSWL TO IT_FINAL-ANSWL,

T_ANLC-NAFAP TO IT_FINAL-NAFAP,

T_ANLC-AAFAP TO IT_FINAL-AAFAP.

ENDIF.

LOOP AT T_ANEK WHERE BUKRS = T_ANLA-BUKRS AND ANLN1 = T_ANLA-ANLN1 AND

ANLN2 = T_ANLA-ANLN2 AND PDATE >= V_LOW

AND PDATE <= V_HIGH.

MOVE : T_ANEK-BELNR TO IT_FINAL-BELNR,

T_ANEK-BUDAT TO IT_FINAL-BUDAT,

T_ANEK-GJAHR TO IT_FINAL-GJAHR,

T_ANEK-XBLNR TO IT_FINAL-XBLNR,

T_ANEK-SGTXT TO IT_FINAL-SGTXT.

APPEND IT_FINAL.

ENDLOOP.

ENDLOOP.

PERFORM BUILD_FIELDCATALOG.

PERFORM DISPLAY_ALV_REPORT.

PERFORM BUILD_LAYOUT.

----


  • FORM BUILD_FIELDCATALOG *

----


  • ........ *

----


FORM BUILD_FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ANLN1'.

FIELDCATALOG-SELTEXT_M = 'ASSET MAIN NO'.

FIELDCATALOG-COL_POS = 0.

FIELDCATALOG-OUTPUTLEN = 14.

FIELDCATALOG-EMPHASIZE = 'X'.

FIELDCATALOG-KEY = 'X'.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ANLN2'.

FIELDCATALOG-SELTEXT_M = 'SUB NO'.

FIELDCATALOG-COL_POS = 1.

FIELDCATALOG-OUTPUTLEN = 7.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'AKTIV'.

FIELDCATALOG-SELTEXT_M = 'CAP.DATE'.

FIELDCATALOG-COL_POS = 2.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'TXT50'.

FIELDCATALOG-SELTEXT_M = 'NAME'.

FIELDCATALOG-COL_POS = 3.

FIELDCATALOG-OUTPUTLEN = 50.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ZUGDT'.

FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.

FIELDCATALOG-COL_POS = 4.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'MENGE'.

FIELDCATALOG-SELTEXT_M = 'QTY'.

FIELDCATALOG-COL_POS = 5.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'MEINS'.

FIELDCATALOG-SELTEXT_M = 'UNITS'.

FIELDCATALOG-COL_POS = 6.

FIELDCATALOG-OUTPUTLEN = 3.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'GSBER'.

FIELDCATALOG-SELTEXT_M = 'BA'.

FIELDCATALOG-COL_POS = 7.

FIELDCATALOG-OUTPUTLEN = 4.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'KOSTL'.

FIELDCATALOG-SELTEXT_M = 'COST CENTER'.

FIELDCATALOG-COL_POS = 8.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'STORT'.

FIELDCATALOG-SELTEXT_M = 'LOCATION'.

FIELDCATALOG-COL_POS = 9.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'RAUMN'.

FIELDCATALOG-SELTEXT_M = 'ROOM'.

FIELDCATALOG-COL_POS = 10.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'KFZKZ'.

FIELDCATALOG-SELTEXT_M = 'LICENSE PLATE NO'.

FIELDCATALOG-COL_POS = 11.

FIELDCATALOG-OUTPUTLEN = 20.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'BELNR'.

FIELDCATALOG-SELTEXT_M = 'DOC NO'.

FIELDCATALOG-COL_POS = 12.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'BUDAT'.

FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.

FIELDCATALOG-COL_POS = 13.

FIELDCATALOG-OUTPUTLEN = 15.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'XBLNR'.

FIELDCATALOG-SELTEXT_M = 'REF NO'.

FIELDCATALOG-COL_POS = 14.

FIELDCATALOG-OUTPUTLEN = 25.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'SGTXT'.

FIELDCATALOG-SELTEXT_M = 'TEXT'.

FIELDCATALOG-COL_POS = 15.

FIELDCATALOG-OUTPUTLEN = 50.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ANSWL'.

FIELDCATALOG-SELTEXT_M = 'ACQ VAL'.

FIELDCATALOG-COL_POS = 16.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'NAFAP'.

FIELDCATALOG-SELTEXT_M = 'ORD.DEP'.

FIELDCATALOG-COL_POS = 17.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'AAFAP'.

FIELDCATALOG-SELTEXT_M = 'UNPLAN DEP'.

FIELDCATALOG-COL_POS = 18.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

ENDFORM.

PERFORM ALVDISPLAY.

FORM ALVDISPLAY.

EVENT-FORM = 'USERCOMMAND'(002).

EVENT-NAME = 'USER_COMMAND'(001).

APPEND EVENT.

ENDFORM.

FORM DOWNLOADEXCEL.

DATA : B_FILE1 LIKE RLGRAP-FILENAME.

ENDFORM.

----


  • FORM BUILD_LAYOUT *

----


  • ........ *

----


FORM BUILD_LAYOUT.

GD_LAYOUT-ZEBRA = 'X'.

GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.

ENDFORM.

----


  • FORM DISPLAY_ALV_REPORT *

----


  • ........ *

----


FORM DISPLAY_ALV_REPORT.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • i_callback_pf_status_set = 100

  • i_callback_user_command = sy-ucomm

  • I_STRUCTURE_NAME =

IS_LAYOUT = GD_LAYOUT

IT_FIELDCAT = FIELDCATALOG[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT = ' '

  • IT_EVENTS =

  • IT_EVENT_EXIT = EVENT[]

  • IS_PRINT =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IT_FINAL

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

ENDFORM.

0 Kudos

Hi Sanjeev

Put a breakpoint at the SELECT statements and check where the SELECT is failing. If ur SELECT's are failing check all the WHERE conditions once again in the SELECT statements.

You are using a READ statement with BINARY SEARCH, but u have not sorted ur internal table which ur reading. Sort that internal table by the key fields.

Debug and check whether ur IT_FINAL internal table has been populated. If it is not getting populated try to find the reason it is not getting populated.

In ur internal table T_ANEK u have declared a field PDATE but u have not populated it anywhere and in the where condition of the loop u were checking this field. so instead of PDATE check the BUDAT field in the where condition of the loop.

Also I'm not using the PDATE field which u have declared in the selection screen, instead I'm using the S_BUDAT which is there in the selection screen.

I've modified ur code, check it

REPORT Z_FA_ACQ NO STANDARD PAGE HEADING

LINE-SIZE 400

LINE-COUNT 65(3).

TYPE-POOLS : SLIS.

TABLES : ANLA, "ASSET MASTER RECORD-SEGMENT

ANLZ, "time dependent asset allocations

ANLC,

ANEK.

DATA : BEGIN OF T_ANLA OCCURS 0,

BUKRS LIKE ANLA-BUKRS,

ANLN1 LIKE ANLA-ANLN1,

ANLN2 LIKE ANLA-ANLN2,

AKTIV LIKE ANLA-AKTIV,

TXT50 LIKE ANLA-TXT50,

ZUGDT LIKE ANLA-ZUGDT,

MENGE LIKE ANLA-MENGE,

MEINS LIKE ANLA-MEINS,

ANLKL LIKE ANLA-ANLKL,

END OF T_ANLA.

DATA : BEGIN OF T_ANLZ OCCURS 0,

BUKRS LIKE ANLZ-BUKRS,

ANLN1 LIKE ANLZ-ANLN1,

ANLN2 LIKE ANLZ-ANLN2,

GSBER LIKE ANLZ-GSBER,

KOSTL LIKE ANLZ-KOSTL,

STORT LIKE ANLZ-STORT,

RAUMN LIKE ANLZ-RAUMN,

KFZKZ LIKE ANLZ-KFZKZ,

WERKS LIKE ANLZ-WERKS,

END OF T_ANLZ.

DATA : BEGIN OF T_ANEK OCCURS 0,

BUKRS LIKE ANEK-BUKRS,

ANLN1 LIKE ANEK-ANLN1,

ANLN2 LIKE ANEK-ANLN2,

BELNR LIKE ANEK-BELNR,

BUDAT LIKE ANEK-BUDAT,

XBLNR LIKE ANEK-XBLNR,

SGTXT LIKE ANEK-SGTXT,

GJAHR LIKE ANEK-GJAHR,

PDATE LIKE ANEK-BUDAT, " modified by sanjeev for date logic

END OF T_ANEK.

DATA : BEGIN OF T_ANLC OCCURS 0,

BUKRS LIKE ANLC-BUKRS,

ANLN1 LIKE ANLC-ANLN1,

ANLN2 LIKE ANLC-ANLN2,

ANSWL LIKE ANLC-ANSWL,

NAFAP LIKE ANLC-NAFAP,

AAFAP LIKE ANLC-AAFAP,

AFABE LIKE ANLC-AFABE,

GJAHR LIKE ANLC-GJAHR,

END OF T_ANLC.

DATA : BEGIN OF IT_FINAL OCCURS 0,

ANLN1 LIKE ANLA-ANLN1,

ANLN2 LIKE ANLA-ANLN2,

AKTIV LIKE ANLA-AKTIV,

TXT50 LIKE ANLA-TXT50,

ZUGDT LIKE ANLA-ZUGDT,

MENGE LIKE ANLA-MENGE,

MEINS LIKE ANLA-MEINS,

GSBER LIKE ANLZ-GSBER,

KOSTL LIKE ANLZ-KOSTL,

STORT LIKE ANLZ-STORT,

RAUMN LIKE ANLZ-RAUMN,

KFZKZ LIKE ANLZ-KFZKZ,

BELNR LIKE ANEK-BELNR,

BUDAT LIKE ANEK-BUDAT,

PDATE LIKE ANEK-BUDAT,

XBLNR LIKE ANEK-XBLNR,

SGTXT LIKE ANEK-SGTXT,

ANSWL LIKE ANLC-ANSWL,

NAFAP LIKE ANLC-NAFAP,

AAFAP LIKE ANLC-AAFAP,

GJAHR LIKE ANEK-GJAHR,

ANLKL LIKE ANLA-ANLKL,

END OF IT_FINAL.

*DATA: pdate LIKE anek-budat.

*pdate = sy-datum.

DATA:V_LOW LIKE SY-DATUM,

V_HIGH LIKE SY-DATUM,

  • v_date(04) TYPE n,

V_YEAR(04) TYPE N.

*v_year = v_date(04).

*v_year = v_year - 1.

*CONCATENATE v_year '0401' INTO v_low.

*CLEAR v_year.

*v_year = v_date(04).

*CONCATENATE v_year '0331' INTO v_high.

DATA : LINE_COLOR(4) TYPE C.

DATA : FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: EVENT TYPE SLIS_ALV_EVENT OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN : BEGIN OF BLOCK B_FA WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS : S_BUKRS FOR ANLA-BUKRS DEFAULT 'ML',

S_ANLN1 FOR ANLA-ANLN1,

S_ANLN2 FOR ANLA-ANLN2,

S_ANLKL FOR ANLA-ANLKL,

S_AKTIV FOR ANLA-AKTIV,

S_GSBER FOR ANLZ-GSBER,

S_KOSTL FOR ANLZ-KOSTL,

S_WERKS FOR ANLZ-WERKS,

S_STORT FOR ANLZ-STORT,

S_BUDAT FOR ANEK-BUDAT.

  • s_gjahr FOR anek-gjahr.

SELECTION-SCREEN : END OF BLOCK B_FA.

  • PARAMETERS : PDATE LIKE ANEK-BUDAT.

SET PF-STATUS '100'.

IF S_BUDAT-HIGH IS INITIAL.

V_YEAR = S_BUDAT-LOW+0(4).

V_YEAR = V_YEAR - 1.

CONCATENATE V_YEAR '0401' INTO V_LOW.

V_HIGH = S_BUDAT-LOW.

ELSE.

V_LOW = S_BUDAT-LOW.

V_HIGH = S_BUDAT-HIGH.

ENDIF.

SELECT BUKRS ANLN1 ANLN2 AKTIV TXT50 ZUGDT MENGE MEINS ANLKL

FROM ANLA

INTO CORRESPONDING FIELDS OF TABLE T_ANLA

WHERE ANLN1 IN S_ANLN1

AND ANLN2 IN S_ANLN2

AND BUKRS IN S_BUKRS

AND ANLKL IN S_ANLKL

AND AKTIV IN S_AKTIV.

*CHECK : NOT t_anla[] IS INITIAL.

SELECT BUKRS ANLN1 ANLN2 GSBER KOSTL STORT RAUMN KFZKZ

FROM ANLZ

INTO CORRESPONDING FIELDS OF TABLE T_ANLZ

FOR ALL ENTRIES IN T_ANLA

WHERE ANLN1 = T_ANLA-ANLN1

AND ANLN2 = T_ANLA-ANLN2

AND BUKRS = T_ANLA-BUKRS

AND GSBER NOT IN S_GSBER

AND KOSTL IN S_KOSTL

AND WERKS IN S_WERKS.

SELECT BUKRS ANLN1 ANLN2 BELNR BUDAT XBLNR SGTXT GJAHR

FROM ANEK

INTO CORRESPONDING FIELDS OF TABLE T_ANEK

FOR ALL ENTRIES IN T_ANLA

WHERE ANLN1 = T_ANLA-ANLN1

AND ANLN2 = T_ANLA-ANLN2

AND BUKRS = T_ANLA-BUKRS

AND BUDAT >= V_LOW

AND BUDAT <= V_HIGH.

  • AND gjahr IN s_gjahr. " modified for date logic by Sanjeev

SELECT BUKRS ANLN1 ANLN2 ANSWL NAFAP AAFAP AFABE GJAHR

FROM ANLC

INTO CORRESPONDING FIELDS OF TABLE T_ANLC

FOR ALL ENTRIES IN T_ANLA

WHERE ANLN1 = T_ANLA-ANLN1

AND ANLN2 = T_ANLA-ANLN2

AND BUKRS = T_ANLA-BUKRS

AND AFABE = '01'.

sort t_anlc by bukrs anln1 anln2.

sort t_anlz by bukrs anln1 anln2.

LOOP AT T_ANLA.

MOVE : T_ANLA-ANLN1 TO IT_FINAL-ANLN1,

T_ANLA-ANLN2 TO IT_FINAL-ANLN2,

T_ANLA-AKTIV TO IT_FINAL-AKTIV,

T_ANLA-TXT50 TO IT_FINAL-TXT50,

T_ANLA-ZUGDT TO IT_FINAL-ZUGDT,

T_ANLA-MENGE TO IT_FINAL-MENGE,

T_ANLA-MEINS TO IT_FINAL-MEINS.

READ TABLE T_ANLZ WITH KEY BUKRS = T_ANLA-BUKRS

ANLN1 = T_ANLA-ANLN1

ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.

IF SY-SUBRC EQ 0.

MOVE : T_ANLZ-GSBER TO IT_FINAL-GSBER,

T_ANLZ-KOSTL TO IT_FINAL-KOSTL,

T_ANLZ-STORT TO IT_FINAL-STORT,

T_ANLZ-RAUMN TO IT_FINAL-RAUMN,

T_ANLZ-KFZKZ TO IT_FINAL-KFZKZ.

ENDIF.

READ TABLE T_ANLC WITH KEY BUKRS = T_ANLA-BUKRS

ANLN1 = T_ANLA-ANLN1

ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.

IF SY-SUBRC EQ 0.

MOVE : T_ANLC-ANSWL TO IT_FINAL-ANSWL,

T_ANLC-NAFAP TO IT_FINAL-NAFAP,

T_ANLC-AAFAP TO IT_FINAL-AAFAP.

ENDIF.

LOOP AT T_ANEK WHERE BUKRS = T_ANLA-BUKRS AND ANLN1 = T_ANLA-ANLN1 AND

ANLN2 = T_ANLA-ANLN2 AND BUDAT >= V_LOW

AND BUDAT <= V_HIGH.

MOVE : T_ANEK-BELNR TO IT_FINAL-BELNR,

T_ANEK-BUDAT TO IT_FINAL-BUDAT,

T_ANEK-GJAHR TO IT_FINAL-GJAHR,

T_ANEK-XBLNR TO IT_FINAL-XBLNR,

T_ANEK-SGTXT TO IT_FINAL-SGTXT.

APPEND IT_FINAL.

ENDLOOP.

ENDLOOP.

PERFORM BUILD_FIELDCATALOG.

PERFORM DISPLAY_ALV_REPORT.

PERFORM BUILD_LAYOUT.

PERFORM ALVDISPLAY.

----


  • FORM BUILD_FIELDCATALOG *

----


  • ........ *

----


FORM BUILD_FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ANLN1'.

FIELDCATALOG-SELTEXT_M = 'ASSET MAIN NO'.

FIELDCATALOG-COL_POS = 0.

FIELDCATALOG-OUTPUTLEN = 14.

FIELDCATALOG-EMPHASIZE = 'X'.

FIELDCATALOG-KEY = 'X'.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ANLN2'.

FIELDCATALOG-SELTEXT_M = 'SUB NO'.

FIELDCATALOG-COL_POS = 1.

FIELDCATALOG-OUTPUTLEN = 7.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'AKTIV'.

FIELDCATALOG-SELTEXT_M = 'CAP.DATE'.

FIELDCATALOG-COL_POS = 2.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'TXT50'.

FIELDCATALOG-SELTEXT_M = 'NAME'.

FIELDCATALOG-COL_POS = 3.

FIELDCATALOG-OUTPUTLEN = 50.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ZUGDT'.

FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.

FIELDCATALOG-COL_POS = 4.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'MENGE'.

FIELDCATALOG-SELTEXT_M = 'QTY'.

FIELDCATALOG-COL_POS = 5.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'MEINS'.

FIELDCATALOG-SELTEXT_M = 'UNITS'.

FIELDCATALOG-COL_POS = 6.

FIELDCATALOG-OUTPUTLEN = 3.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'GSBER'.

FIELDCATALOG-SELTEXT_M = 'BA'.

FIELDCATALOG-COL_POS = 7.

FIELDCATALOG-OUTPUTLEN = 4.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'KOSTL'.

FIELDCATALOG-SELTEXT_M = 'COST CENTER'.

FIELDCATALOG-COL_POS = 8.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'STORT'.

FIELDCATALOG-SELTEXT_M = 'LOCATION'.

FIELDCATALOG-COL_POS = 9.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'RAUMN'.

FIELDCATALOG-SELTEXT_M = 'ROOM'.

FIELDCATALOG-COL_POS = 10.

FIELDCATALOG-OUTPUTLEN = 10.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'KFZKZ'.

FIELDCATALOG-SELTEXT_M = 'LICENSE PLATE NO'.

FIELDCATALOG-COL_POS = 11.

FIELDCATALOG-OUTPUTLEN = 20.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'BELNR'.

FIELDCATALOG-SELTEXT_M = 'DOC NO'.

FIELDCATALOG-COL_POS = 12.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'BUDAT'.

FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.

FIELDCATALOG-COL_POS = 13.

FIELDCATALOG-OUTPUTLEN = 15.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'XBLNR'.

FIELDCATALOG-SELTEXT_M = 'REF NO'.

FIELDCATALOG-COL_POS = 14.

FIELDCATALOG-OUTPUTLEN = 25.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'SGTXT'.

FIELDCATALOG-SELTEXT_M = 'TEXT'.

FIELDCATALOG-COL_POS = 15.

FIELDCATALOG-OUTPUTLEN = 50.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'ANSWL'.

FIELDCATALOG-SELTEXT_M = 'ACQ VAL'.

FIELDCATALOG-COL_POS = 16.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'NAFAP'.

FIELDCATALOG-SELTEXT_M = 'ORD.DEP'.

FIELDCATALOG-COL_POS = 17.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

FIELDCATALOG-FIELDNAME = 'AAFAP'.

FIELDCATALOG-SELTEXT_M = 'UNPLAN DEP'.

FIELDCATALOG-COL_POS = 18.

FIELDCATALOG-OUTPUTLEN = 13.

APPEND FIELDCATALOG TO FIELDCATALOG.

CLEAR FIELDCATALOG.

ENDFORM.

*PERFORM ALVDISPLAY.

FORM ALVDISPLAY.

EVENT-FORM = 'USERCOMMAND'(002).

EVENT-NAME = 'USER_COMMAND'(001).

APPEND EVENT.

ENDFORM.

FORM DOWNLOADEXCEL.

DATA : B_FILE1 LIKE RLGRAP-FILENAME.

ENDFORM.

----


  • FORM BUILD_LAYOUT *

----


  • ........ *

----


FORM BUILD_LAYOUT.

GD_LAYOUT-ZEBRA = 'X'.

GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.

ENDFORM.

----


  • FORM DISPLAY_ALV_REPORT *

----


  • ........ *

----


FORM DISPLAY_ALV_REPORT.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • i_callback_pf_status_set = 100

  • i_callback_user_command = sy-ucomm

  • I_STRUCTURE_NAME =

IS_LAYOUT = GD_LAYOUT

IT_FIELDCAT = FIELDCATALOG[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT = ' '

  • IT_EVENTS =

  • IT_EVENT_EXIT = EVENT[]

  • IS_PRINT =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IT_FINAL

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

ENDFORM.

Thanks

Elan

Message was edited by:

Elanchezhian Balasubramanian

0 Kudos

thanks for the giving solution from the morning to me .

i appreciate ur effort and guidelines.

as my requirement was if i was entered date 30.04.2006

then i should get all the data from 01.04.2005 to 30.04.2003.

but my client now need little modification that------

1. if i enter 31.03.2006 then only i should get

data from 01.04.2005 to 31.03.2006 as this is indian fiscal year.

this i am getting now.

2. but they have one more requirement that-

if i enter 22.12.2006 instead of 31.03.2006

then i should get data from 01.04.2006 to 22.12.2006 only

instead of getting data from 01.04.2005 to 22.02.2006.

so i need that my first requirement as well as second requirement

should also fullfill.

Former Member
0 Kudos

data: d1 type sy-datum.

concatenate p_date+0(4) '04' '01' into d1.

select from where date >= d1

and date <= p_date.

anversha_s
Active Contributor
0 Kudos

hi sanjeev,

u can use this FM.

data : wa_date type sy-datum.
 
call function 'RP_CALC_DATE_IN_INTERVAL'
exporting
date = p_date  " selection screen date parameter
days = 20       "  give ur required date
months = 0    "  give ur required month
years = 0
signum = '-'
importing
calc_date = wa_date.
 
write 😕 wa_date. -> new minised date
 
Note
signum = '+' " 
signum = '-' "

So u have the selection screen and minised date. write the select query depend upon that.

hope u got the idea.

Rgds

Anver

Former Member
0 Kudos

report ZSAMPLE_SAN.

tables: vbak.

data: g_date type d.

select-options: s_erdat for vbak-erdat modif id 123.

parameters: p_x as checkbox user-command ucomm.

at selection-screen output.

s_erdat-low = '20060401'.

append s_erdat.

loop at screen.

if screen-group1 = '123'.

if screen-group3 = 'LOW'.

if p_x = ' '.

screen-input = '0'.

modify screen.

else.

screen-input = 1.

endif.

endif.

endif.

endloop.

try this

Former Member
0 Kudos

use fm Month_plus_determine

consider month as -12

Former Member
0 Kudos

Hi,

Use this logic

data lv_date type dats.

CALL FUNCTION 'CALCULATE_DATE'

EXPORTING

  • DAYS = '0'

MONTHS = '-12'

START_DATE = '20061231'

IMPORTING

RESULT_DATE = lv_date

.

lv_date = lv_date + 1.

write lv_date.

Rgds,

Prakash

Former Member
0 Kudos

Sanjeev,

I will request u to post the query in some other communities as well cause i can understand the gravity of the situation .

Since this is related to FI stuff u need correct response to ur solution <b>working for all the scenarios</b> and it is not pertaining to one scenario.

regards,

vijay

Former Member
0 Kudos

Hi sanjeev ,

First of all declare two date variables

Enter your date of December month and then use these date variables to fetch the data.

Assuming that ur date calculations is based on the year

data :

t_low type sy-datum,

t_high type sy-datum,

t_year(04) type n.

t_year = tdate(04)

t_year = t_year - 1.

concatenate t_year '0401' into t_low.

clear t_year.

t_year = t_date(04)

concatenate t_year '1231' into t_high.

select <fields>

from <Database Table>

into <Internal table>.

where date >= t_low

and date <= t_high.

0 Kudos

thanks for the giving solution..

i appreciate ur effort and also awarded ur effort.

as my requirement was if i was entered date 30.04.2006

then i should get all the data from 01.04.2005 to 30.04.2003.

but my client now need little modification that------

1. if i enter 31.03.2006 then only i should get

data from 01.04.2005 to 31.03.2006 as this is indian fiscal year.

this i am getting now.

2. but they have one more requirement that-

if i enter 22.12.2006 instead of 31.03.2006

then i should get data from 01.04.2006 to 22.12.2006 only

instead of getting data from 01.04.2005 to 22.02.2006.

so i need that my first requirement as well as second requirement

should also fullfill.

Former Member
0 Kudos

hey use fuctiona module yaar u will get

HR_HK_TAX_YEAR

Former Member
0 Kudos

thanks for all ur reply.

my problem is solved.

i have awarded the good efforts.