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.
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 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
HI ,
Thanks for your reply...it showing same error..
regards
JJK
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
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |