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: 

Programm Update-update

Former Member
0 Kudos

HI Gurus,

I need following details from table.... howt do it plz tell me..

Table: ANEP

Field Name: NAFAB: Ordinary dep on trasactions..

i want to get total dep posted upto current period.. for each asset wise... how to do it..

regards

JK

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

Use group-by-statement.

DATA:

BEGIN OF t_total_depreciation OCCURS 0,

anln1 TYPE anep-anln1,

nafab TYPE anep-nafab,

END OF t_total_depreciation.

SELECT anln1 SUM( nafab )

INTO TABLE t_total_depreciation

FROM anep

GROUP BY anln1.

  • WHERE bzdat LE sy-datum.

WRITE:

/10 'Asset', 25 'Total Depreciation' ,/ .

ULINE.

IF sy-subrc EQ 0.

LOOP AT t_total_depreciation.

WRITE:

/10 t_total_depreciation-anln1,

25 t_total_depreciation-nafab.

ENDLOOP.

ENDIF.

Regards,

Rama.

4 REPLIES 4

Former Member
0 Kudos

Hi,

Use group-by-statement.

DATA:

BEGIN OF t_total_depreciation OCCURS 0,

anln1 TYPE anep-anln1,

nafab TYPE anep-nafab,

END OF t_total_depreciation.

SELECT anln1 SUM( nafab )

INTO TABLE t_total_depreciation

FROM anep

GROUP BY anln1.

  • WHERE bzdat LE sy-datum.

WRITE:

/10 'Asset', 25 'Total Depreciation' ,/ .

ULINE.

IF sy-subrc EQ 0.

LOOP AT t_total_depreciation.

WRITE:

/10 t_total_depreciation-anln1,

25 t_total_depreciation-nafab.

ENDLOOP.

ENDIF.

Regards,

Rama.

0 Kudos

HI Rama.

Thanks for your reply.. this is my acutal programm in this i need to inclue this table and field.. can i create FM_GET_ANEP,

REPORT ZFI_ASSET_ACQ .

  • Top includes for variables, screen declaration

INCLUDE ZFI_ASSET_ACQ_TOP.

  • Subroutines

INCLUDE ZFI_ASSET_ACQ_SUB.

  • Start of selection

START-OF-SELECTION.

CLEAR V_PROCESS_OK.

PERFORM: FM_GET_ANLA,

FM_GET_BKPF,

FM_GET_BSEG,

FM_GET_PO_DTL.

  • End of selection

END-OF-SELECTION.

IF V_PROCESS_OK = 'X'.

  • Process data

PERFORM FM_PROCESS_DATA.

DESCRIBE TABLE IT_DETAIL.

IF SY-TFILL > 0.

  • Display ALV

PERFORM: FM_KEYINFO,

FM_FIELD_CATALOG,

FM_BUILD_EVENTS,

FM_SORT.

CASE 'X'.

WHEN PA_LIST.

PERFORM FM_DISPLAY_HIER_ALV.

WHEN PA_GRP.

PERFORM FM_DISPLAY_ALV.

ENDCASE.

ELSE.

MESSAGE I519(GU).

ENDIF.

ELSE.

MESSAGE I519(GU).

regards

JK

0 Kudos

Hi Janardhan Rao,

Yes you can create FM_GET_ANEP.

What you have to do is :

1.Declare the variables and internal tables globally used in the latest code.

2.Copy the code into one perform FM_GET_ANEP.

DATA:

BEGIN OF t_total_depreciation OCCURS 0,

anln1 TYPE anep-anln1,

nafab TYPE anep-nafab,

END OF t_total_depreciation.

SELECT anln1 nafab

INTO TABLE t_total_depreciation

FROM anep

WHERE bzdat LE sy-datum.

WRITE:

/10 'Asset', 25 'Total Depreciation' ,/ .

ULINE.

IF sy-subrc EQ 0.

SORT t_total_depreciation BY anln1.

LOOP AT t_total_depreciation.

AT END OF anln1.

SUM.

WRITE:

/10 t_total_depreciation-anln1,

25 t_total_depreciation-nafab.

ENDAT.

ENDLOOP.

ENDIF.

3.if the anln1 nafab fields are not there in the final internal table and intermediate internal table process, Add those two fileds.

4.In the FM_PROCESS_DATA form use read table t_total_depreciation and and push the value into newly created field.

Regards,

Rama.

0 Kudos

HI Rama,

This is remaining code we are using...where to change exactly iam functional guy new to abap can u please update me...

  • Tables

TABLES: BKPF,

BSEG,

ANLA.

TYPE-POOLS SLIS.

  • Types

TYPES:

  • Asset

BEGIN OF T_ANLA,

BUKRS LIKE ANLA-BUKRS,

ANLN1 LIKE ANLA-ANLN1,

ANLN2 LIKE ANLA-ANLN2,

ANLKL LIKE ANLA-ANLKL,

KTOGR LIKE ANLA-KTOGR,

AKTIV LIKE ANLA-AKTIV,

TXT50 LIKE ANLA-TXT50,

SERNR LIKE ANLA-SERNR,

EAUFN LIKE ANLA-EAUFN,

END OF T_ANLA,

  • Acctg doc header

BEGIN OF T_BKPF,

BUKRS LIKE BKPF-BUKRS,

BELNR LIKE BKPF-BELNR,

GJAHR LIKE BKPF-GJAHR,

BUDAT LIKE BKPF-BUDAT,

END OF T_BKPF,

  • Acctg doc detail

BEGIN OF T_BSEG,

BUKRS LIKE BSEG-BUKRS,

BELNR LIKE BSEG-BELNR,

GJAHR LIKE BSEG-GJAHR,

SHKZG LIKE BSEG-SHKZG,

GSBER LIKE BSEG-GSBER,

DMBTR LIKE BSEG-DMBTR,

ZUONR LIKE BSEG-ZUONR,

KOSTL LIKE BSEG-KOSTL,

AUFNR LIKE BSEG-AUFNR,

ANLN1 LIKE BSEG-ANLN1,

ANLN2 LIKE BSEG-ANLN2,

ANBWA LIKE BSEG-ANBWA,

HKONT LIKE BSEG-HKONT,

LIFNR LIKE BSEG-LIFNR,

WERKS LIKE BSEG-WERKS,

EBELN LIKE BSEG-EBELN,

EBELP LIKE BSEG-EBELP,

ZEKKN LIKE BSEG-ZEKKN,

END OF T_BSEG,

  • PO details

BEGIN OF T_PO_DTL,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

LOEKZ LIKE EKPO-LOEKZ,

BEDNR LIKE EKPO-BEDNR,

MATKL LIKE EKPO-MATKL,

MENGE LIKE EKPO-MENGE,

PSTYP LIKE EKPO-PSTYP,

BANFN LIKE EKPO-BANFN,

BNFPO LIKE EKPO-BNFPO,

AFNAM LIKE EKPO-AFNAM,

AUFNR LIKE EKKN-AUFNR,

END OF T_PO_DTL,

  • Header

BEGIN OF T_HEADER,

ANLKL LIKE ANLA-ANLKL,

KTOGR LIKE ANLA-KTOGR,

ANLN1 LIKE BSEG-ANLN1,

ANLN2 LIKE BSEG-ANLN2,

TXT50 LIKE ANLA-TXT50,

AKTIV LIKE ANLA-AKTIV,

ACVAL LIKE BSEG-DMBTR,

EBELN LIKE BSEG-EBELN,

BEDNR LIKE EKPO-BEDNR,

AFNAM LIKE EKPO-AFNAM,

KOSTL LIKE BSEG-KOSTL,

LIFNR LIKE BSEG-LIFNR,

HKONT LIKE BSEG-HKONT,

SERNR LIKE ANLA-SERNR,

EAUFN LIKE ANLA-EAUFN,

END OF T_HEADER,

  • Detail

BEGIN OF T_DETAIL,

ANLN1 LIKE BSEG-ANLN1,

ANLN2 LIKE BSEG-ANLN2,

BELNR LIKE BSEG-BELNR,

ANBWA LIKE BSEG-ANBWA,

BUDAT LIKE BKPF-BUDAT,

DMBTR LIKE BSEG-DMBTR,

EBELN LIKE BSEG-EBELN,

EBELP LIKE BSEG-EBELP,

BANFN LIKE EKPO-BANFN,

BNFPO LIKE EKPO-BNFPO,

SERNR LIKE ANLA-SERNR,

EAUFN LIKE ANLA-EAUFN,

ORDTR(30) TYPE C,

END OF T_DETAIL.

  • Data declaration

DATA:

  • Internal tables

IT_BKPF TYPE SORTED TABLE OF T_BKPF

WITH UNIQUE KEY BUKRS BELNR GJAHR,

IT_BSEG TYPE TABLE OF T_BSEG,

IT_ANLA TYPE SORTED TABLE OF T_ANLA

WITH UNIQUE KEY BUKRS ANLN1 ANLN2,

IT_PO_DTL TYPE TABLE OF T_PO_DTL,

IT_HEADER TYPE TABLE OF T_HEADER,

IT_DETAIL TYPE TABLE OF T_DETAIL,

  • Work area

WA_BKPF TYPE T_BKPF,

WA_BSEG TYPE T_BSEG,

WA_ANLA TYPE T_ANLA,

WA_PO_DTL TYPE T_PO_DTL,

WA_HEADER TYPE T_HEADER,

WA_DETAIL TYPE T_DETAIL,

  • ALV internal tables

IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,

IT_EVENTS TYPE SLIS_T_EVENT,

IT_SORTINFO TYPE SLIS_T_SORTINFO_ALV,

  • ALV work area

WA_FCAT TYPE SLIS_FIELDCAT_ALV,

WA_KEYINFO TYPE SLIS_KEYINFO_ALV,

WA_EVENTS TYPE SLIS_ALV_EVENT,

WA_SORTINFO TYPE SLIS_SORTINFO_ALV,

  • Variables

V_PROCESS_OK.

  • Selection screen

SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-T01.

PARAMETERS PA_BUKRS LIKE BKPF-BUKRS OBLIGATORY.

SELECT-OPTIONS: SO_ANLKL FOR ANLA-ANLKL,

SO_GSBER FOR BSEG-GSBER.

PARAMETERS: PA_RPTDT LIKE SY-DATUM DEFAULT SY-DATUM OBLIGATORY.

SELECTION-SCREEN END OF BLOCK BLK1.

SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-T02.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: PA_GRP RADIOBUTTON GROUP GRP1.

SELECTION-SCREEN COMMENT 5(20) FOR FIELD PA_GRP.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: PA_LIST RADIOBUTTON GROUP GRP1.

SELECTION-SCREEN COMMENT 5(15) FOR FIELD PA_LIST.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK BLK2.

SELECTION-SCREEN BEGIN OF BLOCK BLK3 WITH FRAME TITLE TEXT-T03.

SELECT-OPTIONS: SO_AKTIV FOR ANLA-AKTIV,

SO_BUDAT FOR BKPF-BUDAT OBLIGATORY,

SO_ANBWA FOR BSEG-ANBWA,

SO_WERKS FOR BSEG-WERKS.

SELECTION-SCREEN END OF BLOCK BLK3.

&----


*& Include ZFI_ASSET_ACQ_SUB *

&----


&----


*& Form FM_GET_ANLA

&----


  • Get from ANLA

----


FORM FM_GET_ANLA .

REFRESH IT_ANLA.

SELECT BUKRS

ANLN1

ANLN2

ANLKL

KTOGR

AKTIV

TXT50

SERNR

EAUFN

INTO TABLE IT_ANLA

FROM ANLA

WHERE BUKRS EQ PA_BUKRS

AND ANLKL IN SO_ANLKL

AND AKTIV IN SO_AKTIV.

ENDFORM. " FM_GET_ANLA

&----


*& Form FM_GET_BKPF

&----


  • Get from BKPF

----


FORM FM_GET_BKPF .

REFRESH IT_BKPF.

SELECT BUKRS

BELNR

GJAHR

BUDAT

INTO TABLE IT_BKPF

FROM BKPF

WHERE BUKRS EQ PA_BUKRS

AND BUDAT IN SO_BUDAT.

ENDFORM. " FM_GET_BKPF

&----


*& Form FM_GET_BSEG

&----


  • Get from BSEG

----


FORM FM_GET_BSEG .

REFRESH IT_BSEG.

IF NOT IT_BKPF[] IS INITIAL.

SELECT BUKRS

BELNR

GJAHR

SHKZG

GSBER

DMBTR

ZUONR

KOSTL

AUFNR

ANLN1

ANLN2

ANBWA

HKONT

LIFNR

WERKS

EBELN

EBELP

ZEKKN

INTO TABLE IT_BSEG

FROM BSEG

FOR ALL ENTRIES IN IT_BKPF

WHERE BUKRS EQ IT_BKPF-BUKRS

AND BELNR EQ IT_BKPF-BELNR

AND GJAHR EQ IT_BKPF-GJAHR

AND ANBWA IN SO_ANBWA.

IF SY-SUBRC EQ 0.

  • mark there are records to process

V_PROCESS_OK = 'X'.

ENDIF.

ENDIF.

ENDFORM. " FM_GET_BSEG

&----


*& Form FM_GET_PO_DTL

&----


  • Get PO detail

----


FORM FM_GET_PO_DTL .

REFRESH IT_PO_DTL.

IF NOT IT_BSEG[] IS INITIAL.

SELECT EKPO~EBELN

EKPO~EBELP

EKPO~LOEKZ

EKPO~BEDNR

EKPO~MATKL

EKPO~MENGE

EKPO~PSTYP

EKPO~BANFN

EKPO~BNFPO

EKPO~AFNAM

EKKN~AUFNR

INTO TABLE IT_PO_DTL

FROM EKPO

INNER JOIN EKKN

ON EKKNEBELN EQ EKPOEBELN

AND EKKNEBELP EQ EKPOEBELP

FOR ALL ENTRIES IN IT_BSEG

WHERE EKPO~EBELN EQ IT_BSEG-EBELN

AND EKPO~EBELP EQ IT_BSEG-EBELP.

SORT IT_PO_DTL BY EBELN EBELP.

ENDIF.

ENDFORM. " FM_GET_PO_DTL

&----


*& Form FM_PROCESS_DATA

&----


  • Process data

----


FORM FM_PROCESS_DATA .

REFRESH: IT_HEADER,

IT_DETAIL.

  • sort for grouping

SORT IT_BSEG BY ANLN1 ANLN2.

LOOP AT IT_BSEG INTO WA_BSEG.

CLEAR: WA_HEADER,

WA_DETAIL.

  • check if asset belongs to selection

CLEAR WA_ANLA.

READ TABLE IT_ANLA INTO WA_ANLA

WITH KEY BUKRS = WA_BSEG-BUKRS

ANLN1 = WA_BSEG-ANLN1

ANLN2 = WA_BSEG-ANLN2

BINARY SEARCH.

IF SY-SUBRC EQ 0.

  • check debit/credit indicator

IF WA_BSEG-SHKZG = 'H'.

WA_BSEG-DMBTR = WA_BSEG-DMBTR * -1.

ENDIF.

  • read acctg doc header

PERFORM FM_READ_BKPF.

  • read PO details

PERFORM FM_READ_PO_DTL.

WA_DETAIL-ANLN1 = WA_BSEG-ANLN1.

WA_DETAIL-ANLN2 = WA_BSEG-ANLN2.

WA_DETAIL-BELNR = WA_BSEG-BELNR.

WA_DETAIL-ANBWA = WA_BSEG-ANBWA.

WA_DETAIL-BUDAT = WA_BKPF-BUDAT.

WA_DETAIL-DMBTR = WA_BSEG-DMBTR.

WA_DETAIL-EBELN = WA_BSEG-EBELN.

WA_DETAIL-EBELP = WA_BSEG-EBELP.

WA_DETAIL-BANFN = WA_PO_DTL-BANFN.

WA_DETAIL-BNFPO = WA_PO_DTL-BNFPO.

IF NOT WA_PO_DTL-AUFNR IS INITIAL.

WA_DETAIL-ORDTR = WA_PO_DTL-AUFNR.

ELSE.

WA_DETAIL-ORDTR = WA_PO_DTL-BEDNR.

ENDIF.

  • put assignment if no PO reference

IF WA_DETAIL-ORDTR IS INITIAL.

WA_DETAIL-ORDTR = WA_BSEG-ZUONR.

ENDIF.

APPEND WA_DETAIL TO IT_DETAIL.

  • append to header

WA_HEADER-ANLKL = WA_ANLA-ANLKL.

WA_HEADER-KTOGR = WA_ANLA-KTOGR.

WA_HEADER-ANLN1 = WA_BSEG-ANLN1.

WA_HEADER-ANLN2 = WA_BSEG-ANLN2.

WA_HEADER-TXT50 = WA_ANLA-TXT50.

WA_HEADER-AKTIV = WA_ANLA-AKTIV.

WA_HEADER-ACVAL = WA_BSEG-DMBTR.

WA_HEADER-EBELN = WA_BSEG-EBELN.

WA_HEADER-BEDNR = WA_PO_DTL-BEDNR.

WA_HEADER-AFNAM = WA_PO_DTL-AFNAM.

WA_HEADER-KOSTL = WA_BSEG-KOSTL.

WA_HEADER-LIFNR = WA_BSEG-LIFNR.

WA_HEADER-HKONT = WA_BSEG-HKONT.

WA_HEADER-SERNR = WA_ANLA-SERNR.

WA_HEADER-EAUFN = WA_ANLA-EAUFN.

COLLECT WA_HEADER INTO IT_HEADER.

ENDIF.

ENDLOOP.

ENDFORM. " FM_PROCESS_DATA

&----


*& Form FM_READ_BKPF

&----


  • Read BKPF

----


FORM FM_READ_BKPF .

CLEAR WA_BKPF.

READ TABLE IT_BKPF INTO WA_BKPF

WITH KEY BUKRS = WA_BSEG-BUKRS

BELNR = WA_BSEG-BELNR

GJAHR = WA_BSEG-GJAHR

BINARY SEARCH.

ENDFORM. " FM_READ_BKPF

&----


*& Form FM_READ_PO_DTL

&----


  • Read PO details

----


FORM FM_READ_PO_DTL .

CLEAR WA_PO_DTL.

READ TABLE IT_PO_DTL INTO WA_PO_DTL

WITH KEY EBELN = WA_BSEG-EBELN

EBELP = WA_BSEG-EBELP

BINARY SEARCH.

ENDFORM. " FM_READ_PO_DTL

&----


*& Form FM_KEYINFO

&----


  • Fill-in keyinfo

----


FORM FM_KEYINFO .

CLEAR WA_KEYINFO.

WA_KEYINFO-HEADER01 = 'ANLN1'.

WA_KEYINFO-HEADER02 = 'ANLN2'.

WA_KEYINFO-ITEM01 = 'ANLN1'.

WA_KEYINFO-ITEM02 = 'ANLN2'.

ENDFORM. " FM_KEYINFO

&----


*& Form FM_FIELD_CATALOG

&----


  • Fill field catalog

----


FORM FM_FIELD_CATALOG .

REFRESH IT_FCAT.

CASE 'X'.

WHEN PA_GRP.

PERFORM FM_APPEND_FCAT USING:

'KTOGR' 'IT_HEADER' 'ANLA' '',

'ANLKL' 'IT_HEADER' 'ANLA' '',

'ANLN1' 'IT_HEADER' 'BSEG' '',

'ANLN2' 'IT_HEADER' 'BSEG' '',

'TXT50' 'IT_HEADER' 'ANLA' '',

'AKTIV' 'IT_HEADER' 'ANLA' '',

'ACVAL' 'IT_HEADER' '' 'X',

'SERNR' 'IT_HEADER' 'ANLA' '',

'EAUFN' 'IT_HEADER' 'ANLA' '',

'EBELN' 'IT_HEADER' 'BSEG' '',

'BEDNR' 'IT_HEADER' 'EKPO' '',

'AFNAM' 'IT_HEADER' 'EKPO' '',

'KOSTL' 'IT_HEADER' 'BSEG' '',

'LIFNR' 'IT_HEADER' 'BSEG' '',

'HKONT' 'IT_HEADER' 'BSEG' ''.

WHEN PA_LIST.

PERFORM FM_APPEND_FCAT USING:

'KTOGR' 'IT_HEADER' 'ANLA' '',

'ANLKL' 'IT_HEADER' 'ANLA' '',

'ANLN1' 'IT_HEADER' 'BSEG' '',

'ANLN2' 'IT_HEADER' 'BSEG' '',

'TXT50' 'IT_HEADER' 'ANLA' '',

'AKTIV' 'IT_HEADER' 'ANLA' '',

'DUMMY' 'IT_HEADER' '' '',

'ACVAL' 'IT_HEADER' '' 'X',

'DUMMY' 'IT_DETAIL' '' '',

'BELNR' 'IT_DETAIL' 'BSEG' '',

'ANBWA' 'IT_DETAIL' 'BSEG' '',

'BUDAT' 'IT_DETAIL' 'BKPF' '',

'DUMM1' 'IT_DETAIL' '' '',

'DMBTR' 'IT_DETAIL' '' '',

'EBELN' 'IT_DETAIL' 'BSEG' '',

'EBELP' 'IT_DETAIL' 'BSEG' '',

'BANFN' 'IT_DETAIL' 'EKPO' '',

'BNFPO' 'IT_DETAIL' 'EKPO' '',

'ORDTR' 'IT_DETAIL' '' ''.

ENDCASE.

ENDFORM. " FM_FIELD_CATALOG

&----


*& Form FM_APPEND_FCAT

&----


  • Append field category

----


  • -->U_FIELDNAME = Fieldname

  • -->U_TABNAME = Table name

  • -->U_REF_TABNAME = Ref tabname

  • -->U_DO_SUM = Do sum

----


FORM FM_APPEND_FCAT USING U_FIELDNAME

U_TABNAME

U_REF_TABNAME

U_DO_SUM.

CLEAR WA_FCAT.

WA_FCAT-FIELDNAME = U_FIELDNAME.

WA_FCAT-TABNAME = U_TABNAME.

WA_FCAT-REF_TABNAME = U_REF_TABNAME.

WA_FCAT-DO_SUM = U_DO_SUM.

  • dummy to pad spaces

IF U_FIELDNAME = 'DUMMY' AND

U_TABNAME = 'IT_DETAIL'.

WA_FCAT-OUTPUTLEN = 98.

ENDIF.

  • dummy to pad spaces

IF U_FIELDNAME = 'DUMM1' AND

U_TABNAME = 'IT_DETAIL'.

WA_FCAT-OUTPUTLEN = 33.

ENDIF.

  • dummy to pad spaces

IF U_FIELDNAME = 'DUMMY' AND

U_TABNAME = 'IT_HEADER'.

WA_FCAT-OUTPUTLEN = 43.

ENDIF.

  • Custom header text

IF U_FIELDNAME = 'ORDTR'.

WA_FCAT-REPTEXT_DDIC = TEXT-T04.

ELSEIF U_FIELDNAME = 'ACVAL'.

WA_FCAT-REPTEXT_DDIC = TEXT-T05.

ELSEIF U_FIELDNAME = 'DMBTR'.

WA_FCAT-REPTEXT_DDIC = TEXT-T06.

ENDIF.

APPEND WA_FCAT TO IT_FCAT.

ENDFORM. " FM_APPEND_FCAT

&----


*& Form FM_BUILD_EVENTS

&----


  • ALV Events

----


FORM FM_BUILD_EVENTS .

REFRESH IT_EVENTS.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = IT_EVENTS

EXCEPTIONS

LIST_TYPE_WRONG = 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.

CLEAR WA_EVENTS.

READ TABLE IT_EVENTS INTO WA_EVENTS

WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENTS-FORM = 'FM_TOP_OF_PAGE'.

MODIFY IT_EVENTS FROM WA_EVENTS INDEX SY-TABIX TRANSPORTING FORM .

ENDIF.

ENDFORM. " FM_BUILD_EVENTS

&----


*& Form FM_SORT

&----


  • Sort criteria

----


FORM FM_SORT .

REFRESH IT_SORTINFO.

CLEAR WA_SORTINFO.

WA_SORTINFO-SPOS = '1'.

WA_SORTINFO-FIELDNAME = 'KTOGR'.

WA_SORTINFO-TABNAME = 'IT_HEADER'.

WA_SORTINFO-SUBTOT = 'X'.

WA_SORTINFO-UP = 'X'.

APPEND WA_SORTINFO TO IT_SORTINFO.

IF PA_LIST = 'X'.

WA_SORTINFO-SPOS = '2'.

WA_SORTINFO-FIELDNAME = 'BELNR'.

WA_SORTINFO-TABNAME = 'IT_DETAIL'.

WA_SORTINFO-UP = 'X'.

APPEND WA_SORTINFO TO IT_SORTINFO.

ENDIF.

ENDFORM. " FM_SORT

&----


*& Form FM_DISPLAY_HIER_ALV

&----


  • Display hierarchical ALV

----


FORM FM_DISPLAY_HIER_ALV .

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

IT_FIELDCAT = IT_FCAT

I_TABNAME_HEADER = 'IT_HEADER'

I_TABNAME_ITEM = 'IT_DETAIL'

IT_EVENTS = IT_EVENTS

IS_KEYINFO = WA_KEYINFO

IT_SORT = IT_SORTINFO

TABLES

T_OUTTAB_HEADER = IT_HEADER

T_OUTTAB_ITEM = IT_DETAIL

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. " FM_DISPLAY_HIER_ALV

&----


*& Form FM_DISPLAY_ALV

&----


  • Display ALV

----


FORM FM_DISPLAY_ALV .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

IT_FIELDCAT = IT_FCAT

IT_EVENTS = IT_EVENTS

IT_SORT = IT_SORTINFO

TABLES

T_OUTTAB = IT_HEADER

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. " FM_DISPLAY_ALV

&----


*& Form FM_TOP_OF_PAGE

&----


  • Top of page

----


FORM FM_TOP_OF_PAGE .

DATA: LIT_LIST_COMMENT TYPE SLIS_T_LISTHEADER,

LWA_LIST_COMMENT TYPE SLIS_LISTHEADER.

CLEAR LWA_LIST_COMMENT.

LWA_LIST_COMMENT-TYP = 'S'.

  • Company code

CONCATENATE TEXT-C01 ':' INTO LWA_LIST_COMMENT-KEY

SEPARATED BY SPACE.

LWA_LIST_COMMENT-INFO = PA_BUKRS.

APPEND LWA_LIST_COMMENT TO LIT_LIST_COMMENT.

  • Reporting date

CONCATENATE TEXT-C02 ':' INTO LWA_LIST_COMMENT-KEY

SEPARATED BY SPACE.

LWA_LIST_COMMENT-INFO = PA_RPTDT.

APPEND LWA_LIST_COMMENT TO LIT_LIST_COMMENT.

  • Posting Period

CONCATENATE TEXT-C03 ' : ' INTO LWA_LIST_COMMENT-KEY.

LWA_LIST_COMMENT-INFO = SO_BUDAT-LOW.

IF NOT SO_BUDAT-HIGH IS INITIAL.

CONCATENATE LWA_LIST_COMMENT-INFO

SO_BUDAT-HIGH

INTO LWA_LIST_COMMENT-INFO

SEPARATED BY ' to '.

ENDIF.

APPEND LWA_LIST_COMMENT TO LIT_LIST_COMMENT.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = LIT_LIST_COMMENT.

ENDFORM. " FM_TOP_OF_PAGE

regards

JK