‎2008 Jan 11 4:02 AM
hi,
pls any one can help me
my problem is
tables are:mara,makt,t002.
form these in first screen if i enter material number and if i press the display button , in screen 2 it should disply the langyage key,material description in all languages by using table control.
‎2008 Jan 11 4:18 AM
Hi Rajasekhar,
I have a code for tablecontrol. This is the code on which i worked. Just look at this code this might help u in creating ur own code.
&----
*& Module pool ZTRAINEE26_TABCONTROL *
*& *
&----
*& *
*& *
&----
PROGRAM ZTRAINEE26_TABCONTROL .
CONTROLS SCREENTABLE TYPE TABLEVIEW USING SCREEN 100 .
DATA : OK_CODE TYPE SY-UCOMM.
DATA :SAVE_CODE TYPE SY-UCOMM.
TABLES : ZEKKO_PP11 .
DATA:ITAB TYPE ZEKKO_PP11 OCCURS 10 WITH HEADER LINE.
DATA COLS LIKE LINE OF SCREENTABLE-COLS .
DATA MARK .
*DATA WA_ITAB TYPE ZEKKO_PP11 .
*SELECT * FROM ZEKKO_PP11 INTO ITAB .
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'STATUS'.
SET TITLEBAR 'TITLE'.
SCREENTABLE-LINES = 10.
CASE SY-TCODE .
WHEN 'ZTABCONT_DISPLAY' .
SELECT * FROM ZEKKO_PP11 INTO TABLE ITAB .
LOOP AT screentable-cols INTO cols. "WHERE index GT 2.
cols-screen-input = '0'.
MODIFY screentable-cols FROM cols. "INDEX sy-tabix.
ENDLOOP .
LOOP AT SCREEN .
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDLOOP.
WHEN 'ZTABCONT_CREATE' .
LOOP AT SCREEN .
IF SCREEN-NAME EQ 'DISPLAY' OR SCREEN-NAME EQ 'MODIFY' .
SCREEN-INPUT = 0 .
MODIFY SCREEN .
ENDIF .
ENDLOOP.
WHEN 'ZTABCONT_MODIFY' .
SELECT * FROM ZEKKO_PP11 INTO TABLE ITAB .
LOOP AT screentable-cols INTO cols WHERE index LE 1.
cols-screen-input = '0'.
MODIFY screentable-cols FROM cols INDEX sy-tabix.
ENDLOOP .
LOOP AT SCREEN .
IF SCREEN-NAME EQ 'CREATE' OR SCREEN-NAME EQ 'DISPLAY'.
SCREEN-INPUT = 0 .
MODIFY SCREEN .
ENDIF .
ENDLOOP.
ENDCASE .
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module EXIT INPUT
&----
text
----
MODULE EXIT INPUT.
LEAVE PROGRAM.
ENDMODULE. " EXIT INPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Module INSERT_DATA INPUT
&----
text
----
MODULE INSERT_DATA INPUT.
CASE SY-UCOMM .
WHEN 'CREATE' .
ITAB-EBELN = ZEKKO_PP11-EBELN .
ITAB-BEDAT = ZEKKO_PP11-BEDAT .
ITAB-NETPR = ZEKKO_PP11-NETPR .
ITAB-LIFNR = ZEKKO_PP11-LIFNR .
ITAB-BUKRS = ZEKKO_PP11-BUKRS .
ITAB-WAERS = ZEKKO_PP11-WAERS .
APPEND ITAB .
INSERT INTO ZEKKO_PP11 VALUES ITAB .
IF SY-SUBRC = 0 .
MESSAGE S000(ZSCREENMESS) WITH 'DATA ENTERED SUCCESSFULLY '.
ELSE.
MESSAGE E000(ZSCREENMESS) WITH 'DATA NOT MODIFIED' .
ENDIF .
clear itab[].
WHEN 'MODIFY'.
ITAB-EBELN = ZEKKO_PP11-EBELN .
ITAB-BEDAT = ZEKKO_PP11-BEDAT .
ITAB-NETPR = ZEKKO_PP11-NETPR .
ITAB-LIFNR = ZEKKO_PP11-LIFNR .
ITAB-BUKRS = ZEKKO_PP11-BUKRS .
ITAB-WAERS = ZEKKO_PP11-WAERS .
APPEND ITAB .
UPDATE ZEKKO_PP11 FROM TABLE ITAB .
IF SY-SUBRC = 0 .
MESSAGE S000(ZSCREENMESS) WITH 'DATA ENTERED SUCCESSFULLY '.
ELSE.
MESSAGE E000(ZSCREENMESS) WITH 'DATA NOT MODIFIED' .
ENDIF .
clear itab[].
ENDCASE .
ENDMODULE. " INSERT_DATA INPUT
&----
*& Module READ_TABLE OUTPUT
&----
text
----
MODULE READ_TABLE OUTPUT.
LOOP AT ITAB .
READ TABLE ITAB INDEX SCREENTABLE-CURRENT_LINE .
ZEKKO_PP11-EBELN = ITAB-EBELN .
ZEKKO_PP11-BEDAT = ITAB-BEDAT .
ZEKKO_PP11-LIFNR = ITAB-LIFNR .
ZEKKO_PP11-BUKRS = ITAB-BUKRS .
ZEKKO_PP11-NETPR = ITAB-NETPR.
ZEKKO_PP11-WAERS = ITAB-WAERS.
ENDLOOP.
ENDMODULE. " READ_TABLE OUTPUT
&----
*& Module USER_INTERFACE INPUT
&----
text
----
MODULE USER_INTERFACE INPUT.
SAVE_CODE = OK_CODE .
CLEAR OK_CODE .
CASE SAVE_CODE .
WHEN 'ADD' .
SELECT SINGLE * FROM ZEKKO_PP11 WHERE EBELN EQ
ZEKKO_PP11-EBELN.
IF SY-SUBRC <> 0.
INSERT INTO ZEKKO_PP11 VALUES ITAB .
ELSE .
UPDATE ZEKKO_PP11 FROM TABLE ITAB .
ENDIF.
IF SY-SUBRC = 0 .
MESSAGE S000(ZSCREENMESS) WITH 'DATA ENTERED SUCCESSFULLY '.
ELSE.
MESSAGE E000(ZSCREENMESS) WITH 'DATA NOT MODIFIED' .
ENDIF .
clear itab[].
IF MARK = 'X' AND SAVE_CODE = 'DELETE'.
DELETE SCREENTABLE.
ENDIF.
ENDCASE .
ENDMODULE .
ZEKKO_PP11 is the table which i created.
EBELN ,BEDAT,LIFNR ,BUKRS,NETPR ,WAERS are fields in the table.
Try running this code and u will get an idea .
HOPE THIS CODE HELPS U.....
reward if useful
thanks and regards
suma sailaja pvn
‎2008 Jan 11 4:18 AM
Hi Rajasekhar,
I have a code for tablecontrol. This is the code on which i worked. Just look at this code this might help u in creating ur own code.
&----
*& Module pool ZTRAINEE26_TABCONTROL *
*& *
&----
*& *
*& *
&----
PROGRAM ZTRAINEE26_TABCONTROL .
CONTROLS SCREENTABLE TYPE TABLEVIEW USING SCREEN 100 .
DATA : OK_CODE TYPE SY-UCOMM.
DATA :SAVE_CODE TYPE SY-UCOMM.
TABLES : ZEKKO_PP11 .
DATA:ITAB TYPE ZEKKO_PP11 OCCURS 10 WITH HEADER LINE.
DATA COLS LIKE LINE OF SCREENTABLE-COLS .
DATA MARK .
*DATA WA_ITAB TYPE ZEKKO_PP11 .
*SELECT * FROM ZEKKO_PP11 INTO ITAB .
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'STATUS'.
SET TITLEBAR 'TITLE'.
SCREENTABLE-LINES = 10.
CASE SY-TCODE .
WHEN 'ZTABCONT_DISPLAY' .
SELECT * FROM ZEKKO_PP11 INTO TABLE ITAB .
LOOP AT screentable-cols INTO cols. "WHERE index GT 2.
cols-screen-input = '0'.
MODIFY screentable-cols FROM cols. "INDEX sy-tabix.
ENDLOOP .
LOOP AT SCREEN .
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDLOOP.
WHEN 'ZTABCONT_CREATE' .
LOOP AT SCREEN .
IF SCREEN-NAME EQ 'DISPLAY' OR SCREEN-NAME EQ 'MODIFY' .
SCREEN-INPUT = 0 .
MODIFY SCREEN .
ENDIF .
ENDLOOP.
WHEN 'ZTABCONT_MODIFY' .
SELECT * FROM ZEKKO_PP11 INTO TABLE ITAB .
LOOP AT screentable-cols INTO cols WHERE index LE 1.
cols-screen-input = '0'.
MODIFY screentable-cols FROM cols INDEX sy-tabix.
ENDLOOP .
LOOP AT SCREEN .
IF SCREEN-NAME EQ 'CREATE' OR SCREEN-NAME EQ 'DISPLAY'.
SCREEN-INPUT = 0 .
MODIFY SCREEN .
ENDIF .
ENDLOOP.
ENDCASE .
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module EXIT INPUT
&----
text
----
MODULE EXIT INPUT.
LEAVE PROGRAM.
ENDMODULE. " EXIT INPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Module INSERT_DATA INPUT
&----
text
----
MODULE INSERT_DATA INPUT.
CASE SY-UCOMM .
WHEN 'CREATE' .
ITAB-EBELN = ZEKKO_PP11-EBELN .
ITAB-BEDAT = ZEKKO_PP11-BEDAT .
ITAB-NETPR = ZEKKO_PP11-NETPR .
ITAB-LIFNR = ZEKKO_PP11-LIFNR .
ITAB-BUKRS = ZEKKO_PP11-BUKRS .
ITAB-WAERS = ZEKKO_PP11-WAERS .
APPEND ITAB .
INSERT INTO ZEKKO_PP11 VALUES ITAB .
IF SY-SUBRC = 0 .
MESSAGE S000(ZSCREENMESS) WITH 'DATA ENTERED SUCCESSFULLY '.
ELSE.
MESSAGE E000(ZSCREENMESS) WITH 'DATA NOT MODIFIED' .
ENDIF .
clear itab[].
WHEN 'MODIFY'.
ITAB-EBELN = ZEKKO_PP11-EBELN .
ITAB-BEDAT = ZEKKO_PP11-BEDAT .
ITAB-NETPR = ZEKKO_PP11-NETPR .
ITAB-LIFNR = ZEKKO_PP11-LIFNR .
ITAB-BUKRS = ZEKKO_PP11-BUKRS .
ITAB-WAERS = ZEKKO_PP11-WAERS .
APPEND ITAB .
UPDATE ZEKKO_PP11 FROM TABLE ITAB .
IF SY-SUBRC = 0 .
MESSAGE S000(ZSCREENMESS) WITH 'DATA ENTERED SUCCESSFULLY '.
ELSE.
MESSAGE E000(ZSCREENMESS) WITH 'DATA NOT MODIFIED' .
ENDIF .
clear itab[].
ENDCASE .
ENDMODULE. " INSERT_DATA INPUT
&----
*& Module READ_TABLE OUTPUT
&----
text
----
MODULE READ_TABLE OUTPUT.
LOOP AT ITAB .
READ TABLE ITAB INDEX SCREENTABLE-CURRENT_LINE .
ZEKKO_PP11-EBELN = ITAB-EBELN .
ZEKKO_PP11-BEDAT = ITAB-BEDAT .
ZEKKO_PP11-LIFNR = ITAB-LIFNR .
ZEKKO_PP11-BUKRS = ITAB-BUKRS .
ZEKKO_PP11-NETPR = ITAB-NETPR.
ZEKKO_PP11-WAERS = ITAB-WAERS.
ENDLOOP.
ENDMODULE. " READ_TABLE OUTPUT
&----
*& Module USER_INTERFACE INPUT
&----
text
----
MODULE USER_INTERFACE INPUT.
SAVE_CODE = OK_CODE .
CLEAR OK_CODE .
CASE SAVE_CODE .
WHEN 'ADD' .
SELECT SINGLE * FROM ZEKKO_PP11 WHERE EBELN EQ
ZEKKO_PP11-EBELN.
IF SY-SUBRC <> 0.
INSERT INTO ZEKKO_PP11 VALUES ITAB .
ELSE .
UPDATE ZEKKO_PP11 FROM TABLE ITAB .
ENDIF.
IF SY-SUBRC = 0 .
MESSAGE S000(ZSCREENMESS) WITH 'DATA ENTERED SUCCESSFULLY '.
ELSE.
MESSAGE E000(ZSCREENMESS) WITH 'DATA NOT MODIFIED' .
ENDIF .
clear itab[].
IF MARK = 'X' AND SAVE_CODE = 'DELETE'.
DELETE SCREENTABLE.
ENDIF.
ENDCASE .
ENDMODULE .
ZEKKO_PP11 is the table which i created.
EBELN ,BEDAT,LIFNR ,BUKRS,NETPR ,WAERS are fields in the table.
Try running this code and u will get an idea .
HOPE THIS CODE HELPS U.....
reward if useful
thanks and regards
suma sailaja pvn
‎2008 Jan 11 4:22 AM
Hai,
check the code. it may help you.
Check the below link.
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
THis is example to upload the Bank details of the Vendor which has the TC.
REPORT zprataptable2
NO STANDARD PAGE HEADING LINE-SIZE 255.
DATA : BEGIN OF itab OCCURS 0,
i1 TYPE i,
lifnr LIKE rf02k-lifnr,
bukrs LIKE rf02k-bukrs,
ekorg LIKE rf02k-ekorg,
ktokk LIKE rf02k-ktokk,
anred LIKE lfa1-anred,
name1 LIKE lfa1-name1,
sortl LIKE lfa1-sortl,
land1 LIKE lfa1-land1,
akont LIKE lfb1-akont,
fdgrv LIKE lfb1-fdgrv,
waers LIKE lfm1-waers,
END OF itab.
DATA : BEGIN OF jtab OCCURS 0,
j1 TYPE i,
banks LIKE lfbk-banks,
bankl LIKE lfbk-bankl,
bankn LIKE lfbk-bankn,
END OF jtab.
DATA : cnt(4) TYPE n.
DATA : fdt(20) TYPE c.
DATA : c TYPE i.
INCLUDE bdcrecx1.
START-OF-SELECTION.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = 'C:\first1.txt'
filetype = 'DAT'
TABLES
data_tab = itab.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = 'C:\second.txt'
filetype = 'DAT'
TABLES
data_tab = jtab.
LOOP AT itab.
PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-KTOKK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02K-LIFNR'
itab-lifnr.
PERFORM bdc_field USING 'RF02K-BUKRS'
itab-bukrs.
PERFORM bdc_field USING 'RF02K-EKORG'
itab-ekorg.
PERFORM bdc_field USING 'RF02K-KTOKK'
itab-ktokk.
PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-LAND1'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFA1-ANRED'
itab-anred.
PERFORM bdc_field USING 'LFA1-NAME1'
itab-name1.
PERFORM bdc_field USING 'LFA1-SORTL'
itab-sortl.
PERFORM bdc_field USING 'LFA1-LAND1'
itab-land1.
PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-KUNNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKN(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
cnt = 0.
LOOP AT jtab WHERE j1 = itab-i1.
cnt = cnt + 1.
CONCATENATE 'LFBK-BANKS(' cnt ')' INTO fdt.
PERFORM bdc_field USING fdt jtab-banks.
CONCATENATE 'LFBK-BANKL(' cnt ')' INTO fdt.
PERFORM bdc_field USING fdt jtab-bankl.
CONCATENATE 'LFBK-BANKN(' cnt ')' INTO fdt.
PERFORM bdc_field USING fdt jtab-bankn.
IF cnt = 5.
cnt = 0.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=P+'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKN(02)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
ENDIF.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-FDGRV'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFB1-AKONT'
itab-akont.
PERFORM bdc_field USING 'LFB1-FDGRV'
itab-fdgrv.
PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-ZTERM'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0220'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB5-MAHNA'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0310'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFM1-WAERS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFM1-WAERS'
itab-waers.
PERFORM bdc_dynpro USING 'SAPMF02K' '0320'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-LIFNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=YES'.
PERFORM bdc_transaction USING 'XK01'.
ENDLOOP.
PERFORM close_group.
Header file:
1 63190 0001 0001 0001 mr bal188 b in 31000 a1 inr
2 63191 0001 0001 0001 mr bal189 b in 31000 a1 inr
TC file:
1 in sb 11000
1 in sb 12000
1 in sb 13000
1 in sb 14000
1 in sb 15000
1 in sb 16000
1 in sb 17000
1 in sb 18000
1 in sb 19000
1 in sb 20000
1 in sb 21000
1 in sb 22000
2 in sb 21000
2 in sb 22000
**********************************************
REPORT zmm_pr_upload_mat
NO STANDARD PAGE HEADING
LINE-SIZE 255.
Standard Include for Selection Screen
INCLUDE bdcrecx1.
Internal Table for Upload Data
DATA: BEGIN OF i_pr OCCURS 0,
Header Screen
sno(3), " SNo
bsart(004), " PR Type
epstp(001), " Item Category
knttp(001), " Account Assignment
eeind(010), " Delivery Date
lpein(001), " Category of Del Date
werks(004), " Plant
lgort(004), " Storage Location
ekgrp(003), " Purchasing Group
matkl(009), " Material Group
bednr(010), " Tracking No
afnam(012), " Requisitioner
Item Details
matnr(018), " Material No
menge(017), " Quantity
badat(010),
frgdt(010),
preis(014), " Valuation Price
waers(005), " Currency
peinh(005),
wepos(001),
repos(001),
sakto(010), " GL Account
kostl(010), " Cost Center
bnfpo(005),
END OF i_pr.
Internal Table for header Data
DATA: BEGIN OF it_header OCCURS 0,
sno(3), " SNo
bsart(004), " PR Type
epstp(001), " Item Category
knttp(001), " Account Assignment
eeind(010), " Delivery Date
werks(004), " Plant
lgort(004), " Storage Location
ekgrp(003), " Purchasing Group
matkl(009), " Material Group
bednr(010), " Tracking No
afnam(012), " Requisitioner
END OF it_header.
Internal Table for Item Data
DATA: BEGIN OF it_item OCCURS 0,
sno(3), " SNo
matnr(018), " Material No
menge(017), " Quantity
preis(014), " Valuation Price
sakto(010), " GL Account
kostl(010), " Cost Center
END OF it_item.
Data Variables & Constants
CONSTANTS : c_x VALUE 'X'. " Flag
DATA : v_l(2), " Counter
v_rowno(5), " Row No
v_2(2), " Counter
v_rows LIKE sy-srows, " Rows in TC
v_field(45). " String
Parameters
PARAMETERS: p_file LIKE ibipparms-path. " Filename
At selection-screen on Value Request for file Name
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
Get the F4 Values for the File
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
Start of Selection
START-OF-SELECTION.
Open the BDC Session
PERFORM open_group.
Upload the File into internal Table
CALL FUNCTION 'UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = i_pr
EXCEPTIONS
conversion_error = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 5
gui_refuse_filetransfer = 6
OTHERS = 7.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
SORT i_pr BY sno.
LOOP AT i_pr.
MOVE-CORRESPONDING i_pr TO it_item.
APPEND it_item.
CLEAR it_item.
AT END OF sno.
READ TABLE i_pr INDEX sy-tabix.
MOVE-CORRESPONDING i_pr TO it_header.
APPEND it_header.
CLEAR it_header.
ENDAT.
ENDLOOP.
SORT it_header BY sno.
SORT it_item BY sno.
v_rows = sy-srows - 6.
Upload the Data from Internal Table
LOOP AT it_header.
Header Data
PERFORM bdc_dynpro USING 'SAPMM06B' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EBAN-BEDNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EBAN-BSART'
it_header-bsart.
PERFORM bdc_field USING 'RM06B-EPSTP'
it_header-epstp.
PERFORM bdc_field USING 'EBAN-KNTTP'
it_header-knttp.
PERFORM bdc_field USING 'RM06B-EEIND'
it_header-eeind.
PERFORM bdc_field USING 'RM06B-LPEIN'
it_header-lpein.
PERFORM bdc_field USING 'EBAN-WERKS'
it_header-werks.
PERFORM bdc_field USING 'EBAN-LGORT'
it_header-lgort.
PERFORM bdc_field USING 'EBAN-EKGRP'
it_header-ekgrp.
PERFORM bdc_field USING 'EBAN-MATKL'
it_header-matkl.
PERFORM bdc_field USING 'EBAN-BEDNR'
it_header-bednr.
PERFORM bdc_field USING 'EBAN-AFNAM'
it_header-afnam.
Item Details
v_l = 0.
To add no. of rows
v_2 = 0 .
As the screen is showing 13 rows defaulted to 130
v_rowno = 130 .
LOOP AT it_item WHERE sno = it_header-sno.
v_l = v_l + 1.
IF v_l = 14 .
IF v_2 = 12 .
v_2 = 12 .
v_l = 2 .
From second time onwards it is displaying 12 rows only
v_rowno = v_rowno + 120 .
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06B-BNFPO'.
PERFORM bdc_field USING 'RM06B-BNFPO'
v_rowno.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
ELSE.
V_2 initialized to 12 for second screen purpose
v_2 = 12 .
v_l = 2 .
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06B-BNFPO'.
PERFORM bdc_field USING 'RM06B-BNFPO'
v_rowno .
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
ENDIF.
ENDIF.
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
CLEAR v_field.
CONCATENATE 'EBAN-MATNR(' v_l ')' INTO v_field.
PERFORM bdc_field USING v_field it_item-matnr.
CLEAR v_field.
CONCATENATE 'EBAN-MENGE(' v_l ')' INTO v_field.
PERFORM bdc_field USING v_field it_item-menge.
PERFORM bdc_dynpro USING 'SAPMM06B' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EBAN-PREIS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EBAN-PREIS'
it_item-preis.
PERFORM bdc_dynpro USING 'SAPMM06B' '0505'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EBKN-SAKTO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'EBKN-SAKTO'
it_item-sakto.
Cost Center
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-KOSTL'
it_item-kostl.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06B-BNFPO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
Call The Transaction
PERFORM bdc_transaction USING 'ME51'.
ENDLOOP.
Close the BDC Session
PERFORM close_group.
regards.
sowjanya.b