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

Table control

Former Member
0 Likes
294

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
264

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

2 REPLIES 2
Read only

Former Member
0 Likes
265

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

Read only

Former Member
0 Likes
264

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