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

WHAT IS TABLE CONTROL?

Former Member
0 Likes
569

HI EXPERTS

WHAT IS TABLE CONTROL?

3 REPLIES 3
Read only

Former Member
0 Likes
516

For Transactions like VA01 , VK11 etc Header data , Item data is available .

For each Header entry there is 1 or more item entries exisisted . These item

data is saved in table format.

eg : va01 etc.,.

Check eg prg for Table control transaction : FV11

-


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

  • Program Name : ZFV11_NEW

  • Program Description : To Upload Condition Records-FV11

  • Author : Jagadish

  • Start Date : 11/06/2007

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

REPORT zfv11

NO STANDARD PAGE HEADING LINE-SIZE 255.

      • DO NOT CHANGE - the generated data section - DO NOT CHANGE ***

*

  • If it is nessesary to change the data section use the rules:

  • 1.) Each definition of a field exists of two lines

  • 2.) The first line shows exactly the comment

  • '* data element: ' followed with the data element

  • which describes the field.

  • If you don't have a data element use the

  • comment without a data element name

  • 3.) The second line shows the fieldname of the

  • structure, the fieldname must consist of

  • a fieldname and optional the character '_' and

  • three numbers and the field length in brackets

  • 4.) Each field must be type C.

*

      • Generated data section with specific formatting - DO NOT CHANGE ***

TABLES : t100.

DATA: BEGIN OF record OCCURS 0,

  • data element: KSCHA

kschl(004), "Condition Type

  • data element: SELKZ_LIST

  • selkz(001),

  • data element: WERKS_D

werks(004), "Plant

  • data element: ELIFN

lifnr(010), "Vendor

  • data element: MATNR

matnr(018), "Material No.

  • data element: KBETR_KOND

kbetr(016), "Amount

  • data element: KODATAB

datab(010), "Condition Validity Date from

  • data element: KODATBI

datbi(010), "Condition Validity To

  • data element: MWSKZ

mwsk1(002),

END OF record.

DATA : BEGIN OF it_new OCCURS 0, " Internal Table for Header Data

kschl(004),

werks(004),

lifnr(010),

END OF it_new.

DATA : BEGIN OF it_item OCCURS 0, " Internal table for Item Data

werks(004),

lifnr(010),

matnr(018),

kbetr(016),

datab(010),

datbi(010),

mwsk1(002),

END OF it_item.

DATA : cnt(2) TYPE n,

fld(25) TYPE c.

TYPE-POOLS: truxs.

DATA: it_raw TYPE truxs_t_text_data.

DATA : n TYPE n.

DATA:

BEGIN OF t_data OCCURS 0,

data TYPE string,

END OF t_data.

DATA:BEGIN OF it_mess OCCURS 0,

msgtyp(5),

lms(200),

msgv1(50),

END OF it_mess.

DATA : p_mode TYPE c.

DATA:it_msgtab TYPE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE,

it_msgtab1 TYPE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE.

DATA : l_mstring(150).

DATA : BEGIN OF bdcdata OCCURS 0.

INCLUDE STRUCTURE bdcdata.

DATA: END OF bdcdata.

PARAMETERS : p_file1 LIKE rlgrap-filename.

INITIALIZATION.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.

PERFORM file_selection.

PERFORM data_upload.

PERFORM table_control.

LOOP AT it_new.

REFRESH bdcdata.

PERFORM bdc_dynpro USING 'SAPMV13A' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RV13A-KSCHL'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'RV13A-KSCHL'

it_new-kschl.

PERFORM bdc_dynpro USING 'SAPLV14A' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RV130-SELKZ(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=WEIT'.

PERFORM bdc_dynpro USING 'SAPMV13A' '1363'.

PERFORM bdc_field USING 'BDC_CURSOR'

'KONP-KBETR(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'KOMG-WERKS'

it_new-werks.

PERFORM bdc_field USING 'KOMG-LIFNR'

it_new-lifnr.

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

"""""""""""""

  • DATA: "X(5) TYPE N,

  • N(5) TYPE N.

  • N = 0.

  • LOOP AT it_item.

  • N = N + 1.

  • ENDLOOP.

  • "X = 1.

  • CNT = 1.

  • DO N TIMES.

  • IF CNT > 19.

*

  • perform bdc_field using 'BDC_OKCODE' 'KOMG-MATNR(01)'.

  • perform bdc_field using 'BDC_OKCODE' '=P+'.

  • PERFORM bdc_dynpro USING 'SAPMV13A' '1363'.

  • CNT = 1.

  • ENDIF.

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

cnt = 1.

LOOP AT it_item WHERE werks EQ it_new-werks AND lifnr EQ it_new-lifnr . "FROM x TO x.

CONCATENATE 'KOMG-MATNR(' cnt ')' INTO fld.

PERFORM bdc_field USING fld it_item-matnr.

CONCATENATE 'KONP-KBETR(' cnt')' INTO fld.

PERFORM bdc_field USING fld it_item-kbetr.

CONCATENATE 'RV13A-DATAB(' cnt ')' INTO fld.

PERFORM bdc_field USING fld it_item-datab.

CONCATENATE 'RV13A-DATBI(' cnt ')' INTO fld.

PERFORM bdc_field USING fld it_item-datbi.

CONCATENATE 'KONP-MWSK1(' cnt ')' INTO fld.

PERFORM bdc_field USING fld it_item-mwsk1.

cnt = cnt + 1.

if cnt = 20.

perform bdc_field using 'BDC_OKCODE' 'KOMG-MATNR(19)'.

perform bdc_field using 'BDC_OKCODE' '=P+'.

PERFORM bdc_dynpro USING 'SAPMV13A' '1363'.

CNT = 1.

endif.

CLEAR it_item.

ENDLOOP.

  • ENDDO.

PERFORM bdc_dynpro USING 'SAPMV13A' '1363'.

PERFORM bdc_field USING 'BDC_CURSOR'

'KONP-MWSK1(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=SICH'.

CALL TRANSACTION 'FV11' USING bdcdata MODE 'A'

UPDATE 'S'

MESSAGES INTO it_msgtab.

CLEAR bdcdata[].

PERFORM error.

ENDLOOP.

----


  • Start new screen -Subroutine for screen s *

----


FORM bdc_dynpro USING program dynpro.

CLEAR bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

APPEND bdcdata.

ENDFORM. "BDC_DYNPRO

----


  • Insert field -Subroutine for field s *

----


FORM bdc_field USING fnam fval.

CLEAR bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

APPEND bdcdata.

ENDFORM. "BDC_FIELD

&----


*& Form file_selection

----


FORM file_selection .

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = syst-cprog

dynpro_number = syst-dynnr

field_name = 'P_FILE1'

IMPORTING

file_name = p_file1.

ENDFORM. " file_selection

&----


*& Form data_upload

----


FORM data_upload .

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

EXPORTING

  • I_FIELD_SEPERATOR =

i_line_header = 'X'

i_tab_raw_data = it_raw

i_filename = p_file1

TABLES

i_tab_converted_data = record

EXCEPTIONS

conversion_failed = 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. " data_upload

&----


*& Form error

----


FORM error .

LOOP AT it_msgtab.

IF it_msgtab-msgtyp = 'E'.

SELECT SINGLE * FROM t100 WHERE sprsl = it_msgtab-msgspra

AND arbgb = it_msgtab-msgid

AND msgnr = it_msgtab-msgnr.

IF sy-subrc = 0.

l_mstring = t100-text.

IF l_mstring CS '&1'.

REPLACE '&1' WITH it_msgtab-msgv1 INTO l_mstring.

REPLACE '&2' WITH it_msgtab-msgv2 INTO l_mstring.

REPLACE '&3' WITH it_msgtab-msgv3 INTO l_mstring.

REPLACE '&4' WITH it_msgtab-msgv4 INTO l_mstring.

ELSE.

REPLACE '&' WITH it_msgtab-msgv1 INTO l_mstring.

REPLACE '&' WITH it_msgtab-msgv2 INTO l_mstring.

REPLACE '&' WITH it_msgtab-msgv3 INTO l_mstring.

REPLACE '&' WITH it_msgtab-msgv4 INTO l_mstring.

ENDIF.

CONDENSE l_mstring.

it_mess-msgtyp = it_msgtab-msgtyp.

it_mess-lms = l_mstring.

it_mess-msgv1 = it_msgtab-msgv1.

APPEND it_mess.

  • WRITE: / it_msgtab-msgtyp, l_mstring(150).

ELSE.

  • WRITE: / it_msgtab.

it_mess-msgtyp = it_msgtab-msgtyp.

it_mess-lms = l_mstring.

it_mess-msgv1 = it_msgtab-msgv1.

APPEND it_mess.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. " error

&----


*& Form table_Control

----


FORM table_control .

  • SORT record BY lifnr matnr.

LOOP AT record.

ON CHANGE OF record-lifnr.

MOVE-CORRESPONDING record TO it_new.

APPEND it_new.

ENDON.

MOVE-CORRESPONDING record TO it_item.

APPEND it_item.

ENDLOOP.

ENDFORM. " table_Control

-


Reward if useful

Regards

Jagadeesh.G

Read only

Former Member
0 Likes
516

Hi,

TABLE CONTROL provides the option to enter mulitple entries at the same time..

It is like a Grid in VB..Or kind of excel sheet..

The simple example for table control,

in sales order,it may contain more than one material,if you have more than one material ,how do you display?

We have to use table control,it will have number of columns and number of rows.

Try to create on tabel control with using ABAPDOCU Transaction->complex screen.

Regards

Kiran Sure

Read only

Former Member
0 Likes
516

Have a look at below links:

[Table Controls|http://help.sap.com/saphelp_nw04/helpdata/en/9f/dbac1d35c111d1829f0000e829fbfe/frameset.htm]

[Table Control Example|http://members.aol.com/skarkada/sap/table_control/table_control.htm]

Thanks,

Vibha

Please mark all the useful answers