Application Development and Automation 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: 
Read only

Clear Work Area

Former Member
0 Likes
995

HI guru's,

IN report double click in any PO Blank area its disply the previously opened PO No. how to solve it..

FORM FM_USER_COMMAND USING UCOMM TYPE SY-UCOMM

SELFIELD TYPE SLIS_SELFIELD.

CASE UCOMM.

WHEN '&IC1'.

IF SELFIELD-FIELDNAME = 'ANLN1'.

READ TABLE IT_HEADER INTO WA_HEADER INDEX SELFIELD-TABINDEX.

SET PARAMETER ID 'AN1' FIELD WA_HEADER-ANLN1.

SET PARAMETER ID 'BUK' FIELD WA_HEADER-BUKRS.

CALL TRANSACTION 'AW01N' AND SKIP FIRST SCREEN.

  • ENDIF.

ELSEIF SELFIELD-FIELDNAME = 'BELNR'.

READ TABLE IT_HEADER INTO WA_HEADER INDEX SELFIELD-TABINDEX.

SET PARAMETER ID 'BLN' FIELD WA_HEADER-BELNR.

SET PARAMETER ID 'BUK' FIELD WA_HEADER-BUKRS.

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

ELSEIF SELFIELD-FIELDNAME = 'EBELN'.

READ TABLE IT_HEADER INTO WA_HEADER INDEX SELFIELD-TABINDEX.

SET PARAMETER ID 'BES' FIELD WA_HEADER-EBELN.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

regards

JK

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
914

Hi Janardhan,

Try this code,it might help u in solving ur issue.

CASE UCOMM.

WHEN '&IC1'.

CLEAR WA_HEADER.

READ TABLE IT_HEADER INTO WA_HEADER INDEX SELFIELD-TABINDEX.

IF sy-subrc = 0.

CASE selfield-fieldname.

WHEN 'ANLN1'.

IF NOT WA_HEADER-ANLN1 IS INITIAL.

SET PARAMETER ID 'AN1' FIELD WA_HEADER-ANLN1.

CALL TRANSACTION 'AW01N' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDIF.

ENDCASE.

8 REPLIES 8
Read only

Former Member
0 Likes
914

Hi Jonardhan,

Put a break point while double clicking on the button. and then chcek whats the value in the work area while reading the SELFIELD-TABINDEX.

I am sure you might be having a very minor mistake.

Thanks,

Chidanand

Read only

Former Member
0 Likes
914

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN------> i dont use skip first screen.

try like this CALL TRANSACTION 'ME23N' .

Read only

Former Member
0 Likes
914
READ TABLE IT_HEADER INTO WA_HEADER INDEX SELFIELD-TABINDEX.
SET PARAMETER ID 'BES' FIELD WA_HEADER-EBELN.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

just make sure that you have value in wa_header-ebeln and also it is valid purchase order or not.

for confirmation change the tcode to ME23 instead of me23n.

Read only

0 Likes
914

HI ,

Thanks for your reply...it showing same error..

regards

JJK

Read only

0 Likes
914

may be there is no leading zeroes, pad zeroes , before setting the parameter id.

Read only

0 Likes
914

HI this is the code..

&----


*

*& Form FM_GET_ANLA

&----


  • Get from ANLA

----


FORM FM_GET_ANLA .

REFRESH IT_ANLA.

SELECT BUKRS

ANLN1

ANLN2

ANLKL

KTOGR

AKTIV

EAUFN

TXT50

SERNR

INTO TABLE IT_ANLA

FROM ANLA

WHERE BUKRS IN SO_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 IN SO_BUKRS

AND BUDAT IN SO_BUDAT.

ENDFORM. " FM_GET_BKPF

&----


*& Form FM_GET_ANEP

&----


  • Get from ANEP

----


FORM FM_GET_ANEP .

REFRESH IT_ANEP.

SELECT BUKRS

ANLN1

ANLN2

GJAHR

AFABE

BELNR

BUZEI

NAFAB

INTO TABLE IT_ANEP

FROM ANEP

FOR ALL ENTRIES IN IT_ANLA

WHERE BUKRS IN SO_BUKRS

AND ANLN1 EQ IT_ANLA-ANLN1

AND ANLN2 EQ IT_ANLA-ANLN2

AND AFABE IN SO_AFABE.

SORT IT_ANEP BY ANLN1 ANLN2 BELNR BUZEI.

ENDFORM. " FM_GET_ANEP

&----


*& Form FM_GET_BSEG

&----


  • Get from BSEG

----


FORM FM_GET_BSEG .

REFRESH IT_BSEG.

IF NOT IT_BKPF[] IS INITIAL.

SELECT BUKRS

BELNR

GJAHR

BUZEI

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 WERKS IN SO_WERKS

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_LFA1

&----


  • Get from LFA1

----


FORM FM_GET_LFA1 .

REFRESH IT_LFA1.

IF NOT IT_BSEG[] IS INITIAL.

SELECT LIFNR

NAME1

INTO TABLE IT_LFA1

FROM LFA1

FOR ALL ENTRIES IN IT_BSEG

WHERE LIFNR EQ IT_BSEG-LIFNR.

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.

  • read depreciation value

PERFORM FM_READ_ANEP.

  • read vendor name

PERFORM FM_READ_LFA1.

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.

  • WA_DETAIL-NAFAB = WA_ANEP-NAFAB.

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.

******************************************************

WA_DETAIL-NAFAB = WA_ANEP-NAFAB.

WA_DETAIL-NBOOK = WA_HEADER-ACVAL + WA_HEADER-NAFAB.

WA_DETAIL-SERNR = WA_ANLA-SERNR.

WA_DETAIL-EAUFN = WA_ANLA-EAUFN.

WA_DETAIL-MENGE = WA_PO_DTL-MENGE.

WA_DETAIL-BEDNR = WA_PO_DTL-BEDNR.

WA_DETAIL-AFNAM = WA_PO_DTL-AFNAM.

WA_DETAIL-KOSTL = WA_BSEG-KOSTL.

WA_DETAIL-LIFNR = WA_BSEG-LIFNR.

WA_DETAIL-NAME1 = WA_LFA1-NAME1.

WA_DETAIL-HKONT = WA_BSEG-HKONT.

  • WA_DETAIL-BELNR = WA_BSEG-BELNR..

WA_DETAIL-WERKS = WA_BSEG-WERKS.

******************************************************

APPEND WA_DETAIL TO IT_DETAIL.

  • append to header

WA_HEADER-ANLKL = WA_ANLA-ANLKL.

WA_HEADER-BUKRS = WA_ANLA-BUKRS.

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-NAFAB = WA_ANEP-NAFAB.

  • net book value

WA_HEADER-NBOOK = WA_HEADER-ACVAL + WA_HEADER-NAFAB.

WA_HEADER-EBELN = WA_BSEG-EBELN.

WA_HEADER-EBELP = WA_BSEG-EBELP.

WA_HEADER-MENGE = WA_PO_DTL-MENGE.

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-NAME1 = WA_LFA1-NAME1.

WA_HEADER-HKONT = WA_BSEG-HKONT.

WA_HEADER-SERNR = WA_ANLA-SERNR.

WA_HEADER-EAUFN = WA_ANLA-EAUFN.

WA_HEADER-BELNR = WA_BSEG-BELNR.

WA_HEADER-ANBWA = WA_BSEG-ANBWA.

WA_HEADER-WERKS = WA_BSEG-WERKS.

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_READ_ANEP

&----


  • Read depreciation value

----


FORM FM_READ_ANEP .

CLEAR WA_ANEP.

READ TABLE IT_ANEP INTO WA_ANEP

WITH KEY ANLN1 = WA_BSEG-ANLN1

ANLN2 = WA_BSEG-ANLN2

BELNR = WA_BSEG-BELNR

BUZEI = WA_BSEG-BUZEI

BINARY SEARCH.

ENDFORM. " FM_READ_ANEP

&----


*& Form FM_READ_LFA1

&----


  • Read vendor details

----


FORM FM_READ_LFA1.

CLEAR WA_LFA1.

READ TABLE IT_LFA1 INTO WA_LFA1

WITH KEY LIFNR = WA_BSEG-LIFNR

BINARY SEARCH.

ENDFORM. " FM_READ_LFA1

&----


*& 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:

'BUKRS' 'IT_HEADER' 'ANLA' '',

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

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

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

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

'HKONT' 'IT_HEADER' 'BSEG' '',

'BELNR' 'IT_HEADER' 'BSEG' '',

'ANBWA' 'IT_HEADER' 'BSEG' '',

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

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

'NAFAB' 'IT_HEADER' 'ANEP' 'X',

'NBOOK' 'IT_HEADER' '' 'X',

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

'EAUFN' 'IT_HEADER' '' '',

'WERKS' 'IT_HEADER' 'BSEG' '',

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

'EBELP' 'IT_HEADER' 'BSEG' '',

'MENGE' 'IT_HEADER' 'EKPO' '',

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

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

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

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

'NAME1' 'IT_HEADER' 'LFA1' ''.

WHEN PA_LIST.

PERFORM FM_APPEND_FCAT USING:

'BUKRS' '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' '' '',

'DUMM1' 'IT_DETAIL' '' '',

'NAFAB' 'IT_DETAIL' 'ANEP' '',

'NBOOK' 'IT_DETAIL' '' '',

'SERNR' 'IT_DETAIL' 'ANLA' '',

'EAUFN' 'IT_DETAIL' 'ANLA' '',

'MENGE' 'IT_DETAIL' 'EKPO' '',

'BEDNR' 'IT_DETAIL' 'EKPO' '',

'AFNAM' 'IT_DETAIL' 'EKPO' '',

'KOSTL' 'IT_DETAIL' 'BSEG' '',

'LIFNR' 'IT_DETAIL' 'LFA1' '',

'HKONT' 'IT_DETAIL' 'BSEG' '',

'WERKS' 'IT_DETAIL' 'BSEG' ''.

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.

ELSEIF U_FIELDNAME = 'NBOOK'.

WA_FCAT-REPTEXT_DDIC = TEXT-T07.

ELSEIF U_FIELDNAME = 'EAUFN'.

WA_FCAT-REPTEXT_DDIC = TEXT-T08.

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.

CLEAR WA_EVENTS.

READ TABLE IT_EVENTS INTO WA_EVENTS

WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC EQ 0.

WA_EVENTS-FORM = 'FM_USER_COMMAND'.

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 = 'BUKRS'.

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.

ELSEIF PA_GRP = 'X'.

WA_SORTINFO-SPOS = '2'.

WA_SORTINFO-FIELDNAME = 'ANLN1'.

WA_SORTINFO-TABNAME = 'IT_HEADER'.

WA_SORTINFO-SUBTOT = 'X'.

WA_SORTINFO-UP = 'X'.

APPEND WA_SORTINFO TO IT_SORTINFO.

ENDIF.

ENDFORM. " FM_SORT

&----


*& Form FM_LAYOUT

&----


  • Sort criteria

----


FORM FM_LAYOUT .

CLEAR WA_LAYOUT.

IF PA_GRP = 'X'.

WA_LAYOUT-CELL_MERGE = 'X'.

ENDIF.

ENDFORM. " FM_LAYOUT

&----


*& 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_GRID

&----


  • Display GRID

----


FORM FM_DISPLAY_GRID .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FCAT

IT_SORT = IT_SORTINFO

IT_EVENTS = IT_EVENTS

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_GRID

&----


*& 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'.

  • Reporting date

CONCATENATE TEXT-C02 ':' INTO LWA_LIST_COMMENT-KEY

SEPARATED BY SPACE.

CONCATENATE PA_RPTDT+6(2)

PA_RPTDT+4(2)

PA_RPTDT+0(4)

INTO LWA_LIST_COMMENT-INFO

SEPARATED BY '.'.

  • LWA_LIST_COMMENT-INFO = PA_RPTDT.

APPEND LWA_LIST_COMMENT TO LIT_LIST_COMMENT.

  • Posting Period

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

CONCATENATE SO_BUDAT-LOW+6(2)

SO_BUDAT-LOW+4(2)

SO_BUDAT-LOW+0(4)

INTO LWA_LIST_COMMENT-INFO

SEPARATED BY '.'.

  • LWA_LIST_COMMENT-INFO = SO_BUDAT-LOW.

IF NOT SO_BUDAT-HIGH IS INITIAL.

CONCATENATE LWA_LIST_COMMENT-INFO

' to '

SO_BUDAT-HIGH+6(2)

'.'

SO_BUDAT-HIGH+4(2)

'.'

SO_BUDAT-HIGH+0(4)

INTO LWA_LIST_COMMENT-INFO.

  • 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

&----


*& Form FM_USER_COMMAND

&----


  • text

----


FORM FM_USER_COMMAND USING UCOMM TYPE SY-UCOMM

SELFIELD TYPE SLIS_SELFIELD.

CASE UCOMM.

WHEN '&IC1'.

IF SELFIELD-FIELDNAME = 'ANLN1'.

CLEAR WA_HEADER.

READ TABLE IT_HEADER INTO WA_HEADER INDEX SELFIELD-TABINDEX.

SET PARAMETER ID 'AN1' FIELD WA_HEADER-ANLN1.

SET PARAMETER ID 'BUK' FIELD WA_HEADER-BUKRS.

CALL TRANSACTION 'AW01N' AND SKIP FIRST SCREEN.

  • ENDIF.

ELSEIF SELFIELD-FIELDNAME = 'BELNR'.

CLEAR WA_HEADER.

READ TABLE IT_HEADER INTO WA_HEADER INDEX SELFIELD-TABINDEX.

SET PARAMETER ID 'BLN' FIELD WA_HEADER-BELNR.

SET PARAMETER ID 'BUK' FIELD WA_HEADER-BUKRS.

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

ELSEIF SELFIELD-FIELDNAME = 'EBELN'.

CLEAR WA_HEADER.

READ TABLE IT_HEADER INTO WA_HEADER INDEX SELFIELD-TABINDEX.

SET PARAMETER ID 'BES' FIELD WA_HEADER-EBELN.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

regards

JK

Read only

Former Member
0 Likes
915

Hi Janardhan,

Try this code,it might help u in solving ur issue.

CASE UCOMM.

WHEN '&IC1'.

CLEAR WA_HEADER.

READ TABLE IT_HEADER INTO WA_HEADER INDEX SELFIELD-TABINDEX.

IF sy-subrc = 0.

CASE selfield-fieldname.

WHEN 'ANLN1'.

IF NOT WA_HEADER-ANLN1 IS INITIAL.

SET PARAMETER ID 'AN1' FIELD WA_HEADER-ANLN1.

CALL TRANSACTION 'AW01N' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDIF.

ENDCASE.

Read only

0 Likes
914

HI,

Changed like this.. its working..

FORM FM_USER_COMMAND USING UCOMM TYPE SY-UCOMM

SELFIELD TYPE SLIS_SELFIELD.

CASE UCOMM.

WHEN '&IC1'.

IF SELFIELD-FIELDNAME = 'EBELN'.

CLEAR WA_HEADER.

READ TABLE IT_HEADER INTO WA_HEADER INDEX SELFIELD-TABINDEX.

IF WA_HEADER-EBELN EQ SPACE.

SET PARAMETER ID 'BES' FIELD SPACE.

ELSE.

SET PARAMETER ID 'BES' FIELD WA_HEADER-EBELN.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

ELSEIF SELFIELD-FIELDNAME = 'ANLN1'.

CLEAR WA_HEADER.

READ TABLE IT_HEADER INTO WA_HEADER INDEX SELFIELD-TABINDEX.

SET PARAMETER ID 'AN1' FIELD WA_HEADER-ANLN1.

SET PARAMETER ID 'BUK' FIELD WA_HEADER-BUKRS.

CALL TRANSACTION 'AS03' AND SKIP FIRST SCREEN.

ELSEIF SELFIELD-FIELDNAME = 'BELNR'.

CLEAR WA_HEADER.

READ TABLE IT_HEADER INTO WA_HEADER INDEX SELFIELD-TABINDEX.

SET PARAMETER ID 'BLN' FIELD WA_HEADER-BELNR.

SET PARAMETER ID 'BUK' FIELD WA_HEADER-BUKRS.

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDFORM.

thanks

regards

JK