‎2008 Nov 03 3:42 AM
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
‎2008 Nov 03 6:10 AM
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.
‎2008 Nov 03 3:53 AM
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
‎2008 Nov 03 4:05 AM
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN------> i dont use skip first screen.
try like this CALL TRANSACTION 'ME23N' .
‎2008 Nov 03 4:51 AM
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.
‎2008 Nov 03 5:17 AM
‎2008 Nov 03 5:42 AM
may be there is no leading zeroes, pad zeroes , before setting the parameter id.
‎2008 Nov 03 5:51 AM
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
‎2008 Nov 03 6:10 AM
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.
‎2008 Nov 03 6:19 AM
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