Application Development 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: 

inserting data into table .......

Former Member
0 Kudos

how to insert values into a table using a table control?

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

Please have a look at these pgms

DEMO_DYNPRO_TABLE_CONTROL_1

DEMO_DYNPRO_TABLE_CONTROL_2

demo_dynpro_tabcont_loop_at.

Chek out this pdf for a simple tablecontrol:

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/table%20c...

MODULE EXTRACT_USERDATA INPUT.

CASE SAVE_CODE.

WHEN 'DELE'.

IF SELECTION IS INITIAL AND

confirmation = 'G'.

PERFORM TRANSFER.

ENDIF.

WHEN 'SAVE'.

PERFORM TRANSFER.

WHEN 'APND'.

PERFORM TRANSFER.

ENDCASE.

ENDMODULE. " EXTRACT_USERDATA INPUT

*&----


*& Form TRANSFER

*&----


  • text

*----


  • --> p1 text

  • <-- p2 text

*----


FORM TRANSFER.

CLEAR ITAB_PHONELIST.

ITAB_PHONELIST-NAME = RECORD-NAME.

ITAB_PHONELIST-PHONE = RECORD-PHONE.

ITAB_PHONELIST-EMAIL = RECORD-EMAIL.

APPEND ITAB_PHONELIST.

ENDFORM. " TRANSFER

Use the APPEND statement to add data to the internal table .

Use MODIFY <DBtable> from table <itab> if you want to modify ur dbtable.

Regards,

Omkar.

3 REPLIES 3

Former Member
0 Kudos

Hi,

Please have a look at these pgms

DEMO_DYNPRO_TABLE_CONTROL_1

DEMO_DYNPRO_TABLE_CONTROL_2

demo_dynpro_tabcont_loop_at.

Chek out this pdf for a simple tablecontrol:

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/table%20c...

MODULE EXTRACT_USERDATA INPUT.

CASE SAVE_CODE.

WHEN 'DELE'.

IF SELECTION IS INITIAL AND

confirmation = 'G'.

PERFORM TRANSFER.

ENDIF.

WHEN 'SAVE'.

PERFORM TRANSFER.

WHEN 'APND'.

PERFORM TRANSFER.

ENDCASE.

ENDMODULE. " EXTRACT_USERDATA INPUT

*&----


*& Form TRANSFER

*&----


  • text

*----


  • --> p1 text

  • <-- p2 text

*----


FORM TRANSFER.

CLEAR ITAB_PHONELIST.

ITAB_PHONELIST-NAME = RECORD-NAME.

ITAB_PHONELIST-PHONE = RECORD-PHONE.

ITAB_PHONELIST-EMAIL = RECORD-EMAIL.

APPEND ITAB_PHONELIST.

ENDFORM. " TRANSFER

Use the APPEND statement to add data to the internal table .

Use MODIFY <DBtable> from table <itab> if you want to modify ur dbtable.

Regards,

Omkar.

amit_khare
Active Contributor
0 Kudos

Refer programs -

DEMO_DYNPRO_TABLE_CONTROL_1

DEMO_DYNPRO_TABLE_CONTROL_2

Refer links -

Regards,

Amit

Reward all helpful replies.

mahaboob_pathan
Contributor
0 Kudos

Hi,

check this

&----


*& Report ZBDC_TAB_CTRL_FB50 *

*& *

&----


*& *

*& *

&----


REPORT ZBDC_TAB_CTRL_FB50 .

DATA: I_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

****Header Internal Table

DATA: BEGIN OF T_HEAD OCCURS 0,

BLDAT(10) TYPE C,

BUDAT(10) TYPE C,

END OF T_HEAD.

****Detail Internal Table

DATA: BEGIN OF T_DET OCCURS 0,

BLDAT(10) TYPE C,

BUDAT(10) TYPE C,

HKONT LIKE ACGL_ITEM-HKONT,

SHKZG LIKE ACGL_ITEM-SHKZG,

WRBTR(16) TYPE C,

END OF T_DET.

DATA: T_EXCEL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE,

IDX(2) TYPE C,

FNAM(20) TYPE C,

FVAL(40) TYPE C.

***Internal Table for Holding Messages

DATA: BEGIN OF MSGTAB OCCURS 0.

INCLUDE STRUCTURE BDCMSGCOLL.

DATA: END OF MSGTAB.

    • Parameter for locating the .xls file

PARAMETER:P_FILE TYPE RLGRAP-FILENAME OBLIGATORY.

***Selection Block for Header Section

SELECTION-SCREEN : BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.

PARAMETER: PBROW_HD TYPE I,

PEROW_HD TYPE I,

PBCOL_HD TYPE I,

PECOL_HD TYPE I.

SELECTION-SCREEN : END OF BLOCK BLK1.

***Selection Block for Detail Section

SELECTION-SCREEN : BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002.

PARAMETER: PBROW_DT TYPE I,

PEROW_DT TYPE I,

PBCOL_DT TYPE I,

PECOL_DT TYPE I.

SELECTION-SCREEN : END OF BLOCK BLK2.

****Selecting the

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

FILE_NAME = P_FILE.

START-OF-SELECTION.

***Selecting data from .xls for the header data

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

FILENAME = P_FILE

I_BEGIN_COL = PBCOL_HD

I_BEGIN_ROW = PBROW_HD

I_END_COL = PECOL_HD

I_END_ROW = PEROW_HD

TABLES

INTERN = T_EXCEL

EXCEPTIONS

INCONSISTENT_PARAMETERS = 1

UPLOAD_OLE = 2

OTHERS = 3.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

****For Header internal Table

LOOP AT T_EXCEL WHERE ROW GT 0.

CASE T_EXCEL-COL.

WHEN 1. MOVE T_EXCEL-VALUE TO T_HEAD-BLDAT.

WHEN 2. MOVE T_EXCEL-VALUE TO T_HEAD-BUDAT.

ENDCASE.

AT END OF ROW.

APPEND T_HEAD.

CLEAR T_HEAD.

ENDAT.

ENDLOOP.

***Selecting data from .xls for the detail data

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

FILENAME = P_FILE

I_BEGIN_COL = PBCOL_DT

I_BEGIN_ROW = PBROW_DT

I_END_COL = PECOL_DT

I_END_ROW = PEROW_DT

TABLES

INTERN = T_EXCEL

EXCEPTIONS

INCONSISTENT_PARAMETERS = 1

UPLOAD_OLE = 2

OTHERS = 3.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

****For Detail internal Table

LOOP AT T_EXCEL WHERE ROW GT 0.

CASE T_EXCEL-COL.

WHEN 1. MOVE T_EXCEL-VALUE TO T_DET-BLDAT.

WHEN 2. MOVE T_EXCEL-VALUE TO T_DET-BUDAT.

WHEN 3. MOVE T_EXCEL-VALUE TO T_DET-HKONT.

WHEN 4. MOVE T_EXCEL-VALUE TO T_DET-SHKZG.

WHEN 5. MOVE T_EXCEL-VALUE TO T_DET-WRBTR.

ENDCASE.

AT END OF ROW.

APPEND T_DET.

CLEAR T_DET.

ENDAT.

ENDLOOP.

***Populating i_bdcdata from the header internal table

LOOP AT T_HEAD .

PERFORM BDC USING 'H'.

***Populating i_bdcdata from the detail internal table

LOOP AT T_DET WHERE BLDAT = T_HEAD-BLDAT AND

BUDAT = T_HEAD-BUDAT.

PERFORM BDC USING 'D'.

ENDLOOP.

PERFORM POPULATE_BDCTABLE USING:'' 'BDC_OKCODE' '=BU'.

CALL TRANSACTION 'FB50' USING I_BDCDATA

MODE 'A'

UPDATE 'A'.

ENDLOOP.

&----


*& Form POPULATE_BDCTABLE

&----


  • text

----


  • -->P_0011 text

  • -->P_0012 text

  • -->P_0013 text

----


FORM POPULATE_BDCTABLE USING VALUE(P_FLAG)

VALUE(P_FNAM)

VALUE(P_FVAL).

IF P_FLAG = 'X'.

I_BDCDATA-PROGRAM = P_FNAM.

I_BDCDATA-DYNPRO = P_FVAL.

I_BDCDATA-DYNBEGIN = 'X'.

ELSE.

I_BDCDATA-FNAM = P_FNAM.

I_BDCDATA-FVAL = P_FVAL.

ENDIF.

APPEND I_BDCDATA.

CLEAR I_BDCDATA.

ENDFORM. " POPULATE_BDCTABLE

&----


*& Form BDC

&----


  • text

----


  • -->P_0416 text

----


FORM BDC USING VALUE(P_VAL).

****For Header

IF P_VAL = 'H'.

DATA:L_BLDAT(10) TYPE C,

L_BUDAT(10) TYPE C.

CLEAR:L_BLDAT,L_BUDAT.

WRITE: T_HEAD-BLDAT TO L_BLDAT,

T_HEAD-BUDAT TO L_BUDAT.

PERFORM POPULATE_BDCTABLE USING:'X' 'SAPMF05A' '1001',

' ' 'BDC_OKCODE' '=0006',

' ' 'BDC_CURSOR' 'ACGL_ITEM-WRBTR(01)',

' ' 'ACGL_HEAD-BLDAT' L_BLDAT,

' ' 'ACGL_HEAD-BUDAT' L_BUDAT .

****For Detail

ELSEIF P_VAL = 'D'.

IDX = IDX + 1.

IF IDX = 1.

CONCATENATE 'ACGL_ITEM-HKONT(0' IDX ')' INTO FNAM.

PERFORM POPULATE_BDCTABLE USING: ' ' FNAM T_DET-HKONT.

CONCATENATE 'ACGL_ITEM-SHKZG(0' IDX ')' INTO FNAM.

PERFORM POPULATE_BDCTABLE USING ' ' FNAM T_DET-SHKZG.

CONCATENATE 'ACGL_ITEM-WRBTR(0' IDX ')' INTO FNAM.

PERFORM POPULATE_BDCTABLE USING ' ' FNAM T_DET-WRBTR.

ELSE.

IF IDX > 10.

IDX = 10.

ENDIF.

PERFORM POPULATE_BDCTABLE USING: 'X' 'SAPMF05A' '1001',

' ' 'BDC_OKCODE' '=0006'.

CONCATENATE 'ACGL_ITEM-HKONT(0' IDX ')' INTO FNAM.

PERFORM POPULATE_BDCTABLE USING: ' ' FNAM T_DET-HKONT.

CONCATENATE 'ACGL_ITEM-SHKZG(0' IDX ')' INTO FNAM.

PERFORM POPULATE_BDCTABLE USING ' ' FNAM T_DET-SHKZG.

CONCATENATE 'ACGL_ITEM-WRBTR(0' IDX ')' INTO FNAM.

PERFORM POPULATE_BDCTABLE USING ' ' FNAM T_DET-WRBTR.

ENDIF.

ENDIF.

ENDFORM. " BDC