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

BDC and Table control

Former Member
0 Likes
361

Hi,

How can i get one Screen Value from a Table Control while running a BDC? i need this Screen Value for selecting a row which need to be updated through that BDC.

Regards,

Anoop R.S

Message was edited by: ANOOP R.S

2 REPLIES 2
Read only

Former Member
0 Likes
323

hi

good

yes it is possible.

thanks

mrutyun

Read only

Former Member
0 Likes
323

Hai Anoop,

Try this sample code.

TABLES: ZPRODUCT.

CALL SCREEN 9000.

DATA: BEGIN OF WA_PRODUCT,

ZZPCODE TYPE ZPRODUCT-ZZPCODE,

ZZPNAME TYPE ZPRODUCT-ZZPNAME,

ZZPRICE TYPE ZPRODUCT-ZZPRICE,

ZZCAT TYPE ZPRODUCT-ZZCAT,

ZZQTY TYPE ZPRODUCT-ZZQTY,

END OF WA_PRODUCT.

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

DATA: BEGIN OF WA_BDC,

ZZPCODE(6),

ZZPNAME(30),

ZZCAT(25),

ZZQTY(3),

ZZPRICE(5),

END OF WA_BDC.

DATA: IT_BDC LIKE TABLE OF BDCDATA WITH HEADER LINE.

DATA: L_INDEX(2) TYPE C.

DATA: L_ZZPCODE(30), L_ZZPNAME(30), L_ZZCAT(25), L_ZZQTY(30),

L_ZZPRICE(30).

DATA: FILENAME TYPE STRING VALUE 'C:\PRODUCTNEW.TXT'.

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

DATA : V_PAGE_LENGTH TYPE I VALUE 0.

DATA : IT_PRODUCT LIKE TABLE OF WA_PRODUCT WITH HEADER LINE.

CONTROLS : TCPROD TYPE TABLEVIEW USING SCREEN 9000.

&----


*& Module USER_COMMAND_9000 INPUT

&----


  • text

----


MODULE USER_COMMAND_9000 INPUT.

CASE SY-UCOMM.

WHEN 'E1'.

LEAVE PROGRAM.

WHEN 'D1'.

TCPROD-TOP_LINE = TCPROD-TOP_LINE + 1.

WHEN 'U1'.

TCPROD-TOP_LINE = TCPROD-TOP_LINE - 1.

WHEN 'PU1'.

TCPROD-TOP_LINE = TCPROD-TOP_LINE - V_PAGE_LENGTH.

WHEN 'PD1'.

TCPROD-TOP_LINE = TCPROD-TOP_LINE + V_PAGE_LENGTH.

WHEN 'UPLOAD'.

PERFORM BDC_UPLOAD.

WHEN 'SAVE'.

LOOP AT IT_PRODUCT.

ZPRODUCT-ZZPCODE = IT_PRODUCT-ZZPCODE.

ZPRODUCT-ZZPNAME = IT_PRODUCT-ZZPNAME.

ZPRODUCT-ZZCAT = IT_PRODUCT-ZZCAT.

ZPRODUCT-ZZQTY = IT_PRODUCT-ZZQTY.

ZPRODUCT-ZZPRICE = IT_PRODUCT-ZZPRICE.

INSERT ZPRODUCT.

ENDLOOP.

ENDCASE.

ENDMODULE. " USER_COMMAND_9000 INPUT

&----


*& Module STATUS_9000 OUTPUT

&----


  • text

----


MODULE STATUS_9000 OUTPUT.

  • SET PF-STATUS 'xxxxxxxx'.

  • SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_9000 OUTPUT

&----


*& Module M_FIND_LENGTH OUTPUT

&----


  • text

----


MODULE M_FIND_LENGTH OUTPUT.

V_PAGE_LENGTH = SY-STEPL.

ENDMODULE. " M_FIND_LENGTH OUTPUT

&----


*& Form BDC_FIELD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BDC_UPLOAD.

DATA L_NO(2) TYPE N VALUE '1'.

OPEN DATASET FILENAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.

DO.

READ DATASET FILENAME INTO WA_BDC.

IF SY-SUBRC = 0.

L_INDEX = L_NO.

PERFORM BDC_HEADER USING 'ZSAK_TABLE_SCROLL' 9000.

L_ZZPCODE = 'IT_PRODUCT-ZZPCODE(*)'.

L_ZZPNAME = 'IT_PRODUCT-ZZPNAME(*)'.

L_ZZCAT = 'IT_PRODUCT-ZZCAT(*)'.

L_ZZQTY = 'IT_PRODUCT-ZZQTY(*)'.

L_ZZPRICE = 'IT_PRODUCT-ZZPRICE(*)'.

REPLACE '*' WITH L_INDEX INTO L_ZZPCODE.

REPLACE '*' WITH L_INDEX INTO L_ZZPNAME.

REPLACE '*' WITH L_INDEX INTO L_ZZCAT.

REPLACE '*' WITH L_INDEX INTO L_ZZQTY.

REPLACE '*' WITH L_INDEX INTO L_ZZPRICE.

IF L_NO < V_PAGE_LENGTH.

PERFORM BDC_FIELD USING 'BDC_OKCODE' 'SAVE'.

L_NO = L_NO + 1.

ELSE.

PERFORM BDC_FIELD USING 'BDC_OKCODE' 'D1'.

ENDIF.

PERFORM BDC_FIELD USING L_ZZPCODE WA_BDC-ZZPCODE.

PERFORM BDC_FIELD USING L_ZZPNAME WA_BDC-ZZPNAME.

PERFORM BDC_FIELD USING L_ZZCAT WA_BDC-ZZCAT.

PERFORM BDC_FIELD USING L_ZZQTY WA_BDC-ZZQTY.

PERFORM BDC_FIELD USING L_ZZPRICE WA_BDC-ZZPRICE.

ELSE.

EXIT.

ENDIF.

ENDDO.

CLOSE DATASET FILENAME.

PERFORM BDC_PROCESS USING 'ZTRANSPROD'.

ENDFORM.

----


  • FORM BDC_HEADER

----


*

----


  • --> PROGRAMNAME

  • --> SCREENNO

----


FORM BDC_HEADER USING PROGRAMNAME SCREENNO.

IT_BDC-PROGRAM = PROGRAMNAME.

IT_BDC-DYNPRO = SCREENNO.

IT_BDC-DYNBEGIN = 'X'.

APPEND IT_BDC.

ENDFORM. "BDC_HEADER

FORM BDC_FIELD USING FNAME FVALUE.

CLEAR IT_BDC.

IT_BDC-FNAM = FNAME.

IT_BDC-FVAL = FVALUE.

APPEND IT_BDC.

ENDFORM. "BDC_FIELD

FORM BDC_PROCESS USING TRANSCODE.

CALL TRANSACTION TRANSCODE

USING IT_BDC

MODE 'A' " PROCESSING MODE: A, E & N.

UPDATE 'S'. " UPDATE MODE:S, A & L.

ENDFORM. "BDC_PROCESS

&----


*& Module M_HOLD_DATA INPUT

&----


  • text

----


MODULE M_HOLD_DATA INPUT.

DATA : L_LINES TYPE I.

MODIFY IT_PRODUCT INDEX TCPROD-CURRENT_LINE.

IF SY-SUBRC <> 0.

APPEND IT_PRODUCT.

ENDIF.

DESCRIBE TABLE IT_PRODUCT LINES L_LINES.

TCPROD-LINES = L_LINES + 1.

ENDMODULE. " M_HOLD_DATA INPUT