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

data insert through module pool programming

Former Member
0 Likes
1,164

hi

I want to insert the data into the data base through module pool programming.I am taking the fields from different tables, I need sample code ,please help me

4 REPLIES 4
Read only

Former Member
0 Likes
683

Hi Dhanunjay,

REPORT zpe_str_le .

TABLES : zpe_str , zprd_mis1 , mseg , t001l.

*DATA : STR TYPE C VALUE '50'.

data : text(100) VALUE 'DELETED STORAGE LOCATION NO '.

SELECTION-SCREEN : BEGIN OF SCREEN 123 AS WINDOW TITLE TEXT-005.

SELECT-OPTIONS : S_ZSLOC FOR ZPE_STR-ZSLOC,

S_ZMACD FOR ZPE_STR-ZMACD,

S_ZPGRP FOR ZPE_STR-ZPGRP.

SELECTION-SCREEN : END OF SCREEN 123.

DATA : flag(1) TYPE c,

flag1 TYPE c ,

flag3 TYPE c VALUE '1'.

DATA : etab LIKE t001l OCCURS 0 WITH HEADER LINE.

SELECT * FROM T001L INTO TABLE ETAB.

DATA : ihead LIKE thead.

DATA : prevtab LIKE tline OCCURS 0 WITH HEADER LINE.

data : Jtab like TLINE occurs 0 with header line.

DATA : jtab LIKE tline OCCURS 0 WITH HEADER LINE.

DATA : itab LIKE zprd_mis1 OCCURS 0 WITH HEADER LINE.

*SELECT * FROM zprd_mis1 INTO TABLE itab.

DATA : BEGIN OF itab_sloc OCCURS 0,

werks LIKE t001l-werks,

lgort LIKE t001l-lgort,

lgobe LIKE t001l-lgobe,

END OF itab_sloc.

*FLAG = 0.

*

CALL SCREEN 100.

*

MODULE user_command_0100 INPUT.

CASE sy-ucomm.

*

WHEN 'RET'.

LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 100.

*PERFORM PREVIEW.

LOOP AT prevtab.

WRITE : / prevtab.

ENDLOOP.

LOOP AT JTAB[] INTO ZPRD_MIS1.

WRITE : Jtab-TDFORMAT.

WRITE : Jtab-TDLINE .

*********ZPRD_MIS1-MANDT = Jtab-TDLINE .

*********ZPRD_MIS1-SLOC = Jtab-TDLINE .

*********ZPRD_MIS1-MCODE = Jtab-TDLINE .

*********ZPRD_MIS1-GCODE = Jtab-TDLINE .

*********ZPRD_MIS1-DESCR = Jtab-TDLINE .

*********INSERT ZPRD_MIS1.

ENDLOOP.

*********

WRITE : JTAB-ZSLOC.

*********CALL TRANSACTION 'SO10'.

SET CURSOR 2 2.

WHEN 'DET'.

SELECT * FROM ZPRD_MIS1 INTO CORRESPONDING FIELDS OF TABLE ITAB.

CALL SCREEN 123 STARTING AT 10 5.

LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.

SKIP 2 .

WRITE :/1(8) 'STR.LOC' ,10(15) 'MRP. CTLR',27(10) 'P.GRP' ,39(40) 'DESCRIPTION OF PRODUCT'.

*

SELECT SLOC MCODE GCODE DESCR FROM zprd_mis1 INTO ZPRD_MIS1 WHERE SLOC IN S_ZSLOC AND

MCODE IN S_ZMACD AND

GCODE IN S_ZPGRP.

*

WRITE :/1(8) zprd_mis1-SLOC ,10(15) zprd_mis1-MCODE ,27(10) zprd_mis1-GCODE ,39(40) zprd_mis1-DESCR .

ENDSELECT.

WHEN 'CLEAR'.

flag = 4.

IF zpe_str-zsloc NE ' '.

CLEAR zpe_str.

ELSE.

MESSAGE 'ALREADY CLEARED' TYPE 'S'.

ENDIF.

WHEN 'EXIT'.

LEAVE TO SCREEN 0.

WHEN 'SAVE'.

IF zpe_str-zdesc NE ' '.

IF zpe_str-zsloc NE ' '.

LOOP AT itab.

READ TABLE itab WITH KEY sloc = zpe_str-zsloc .

IF sy-subrc = 0 AND flag = 5.

zprd_mis1-mandt = sy-mandt.

zprd_mis1-sloc = zpe_str-zsloc .

zprd_mis1-mcode = zpe_str-zmacd .

zprd_mis1-gcode = zpe_str-zpgrp.

zprd_mis1-descr = zpe_str-zdesc .

MODIFY zprd_mis1.

flag1 = 7.

MESSAGE 'STORAGE LOCATION MODIFIED' TYPE 'S'.

EXIT.

ELSE.

zprd_mis1-mandt = sy-mandt.

zprd_mis1-sloc = zpe_str-zsloc .

zprd_mis1-mcode = zpe_str-zmacd .

zprd_mis1-gcode = zpe_str-zpgrp.

zprd_mis1-descr = zpe_str-zdesc .

INSERT zprd_mis1.

APPEND itab.

flag = 5.

flag1 = 7.

MESSAGE 'STORAGE LOCATION CREATED' TYPE 'S'.

*MESSAGE 'DATA ALREADY SAVED' TYPE 'S'.

EXIT.

*ENDIF.

ENDIF.

ENDLOOP.

ELSE.

flag = 3.

MESSAGE 'PLEASE ENTER THE STORAGE LOCATION' TYPE 'S'.

ENDIF.

ELSE.

LOOP AT itab.

READ TABLE itab WITH KEY sloc = zpe_str-zsloc .

IF sy-subrc = 0.

MESSAGE 'ALREADY SAVED' TYPE 'S'.

ELSE.

MESSAGE 'ENTRIES FOR OTHER FIELDS REQUIRED' TYPE 'S'.

ENDIF.

ENDLOOP.

ENDIF.

WHEN 'CHECK'.

SELECT * FROM zprd_mis1 INTO TABLE itab.

IF zpe_str-zsloc NE ' '.

LOOP AT itab.

READ TABLE itab WITH KEY sloc = zpe_str-zsloc .

IF sy-subrc = 0.

zpe_str-zmandt = itab-mandt.

zpe_str-zsloc = itab-sloc.

zpe_str-zmacd = itab-mcode.

zpe_str-zpgrp = itab-gcode.

zpe_str-zdesc = itab-descr.

flag = 7.

flag1 = 7.

ELSE.

MESSAGE 'NO SUCH STORAGE LOCATION AVAILABLE' TYPE 'S'.

EXIT.

ENDIF.

ENDLOOP.

ELSE.

flag = 3.

MESSAGE 'PLEASE ENTER THE STORAGE LOCATION' TYPE 'S'.

EXIT.

ENDIF.

*

WHEN 'DELETE'.

IF zpe_str-zsloc EQ ' '.

flag = 3.

MESSAGE 'NOSUCH LOCATION AVAILABLE' TYPE 'S'.

ELSE.

READ TABLE itab WITH KEY sloc = zpe_str-zsloc .

IF sy-subrc = 0.

zpe_str-zmandt = itab-mandt.

zpe_str-zsloc = itab-sloc.

zpe_str-zmacd = itab-mcode.

zpe_str-zpgrp = itab-gcode.

zpe_str-zdesc = itab-descr.

IF zpe_str-zsloc NE ' '.

CALL FUNCTION 'G_CHECK_PASSWORD'

EXPORTING

password = 'PLANT1'

EXCEPTIONS

not_authorized = 1

canceled = 2

OTHERS = 3.

IF sy-subrc = 0.

PERFORM PREVIEW.

DELETE FROM zprd_mis1 WHERE SLOC = zpe_str-zSLOC.

UPDATE zprd_mis1.

APPEND itab.

MESSAGE 'STORAGE LOCATION DELETED' TYPE 'S'.

ELSEIF SY-SUBRC = 2.

MESSAGE 'OPRATION CANCELLED' TYPE 'E'.

ELSEIF SY-SUBRC = 3.

MESSAGE 'UNAUTHORIZED' TYPE 'E'.

ENDIF.

ELSE.

MESSAGE 'STORAGE LOCATION CONTAINS NO DATA' TYPE 'S'.

ENDIF.

ELSE.

MESSAGE 'STORAGE LOCATION CONTAINS NO DATA' TYPE 'S'.

ENDIF.

ENDIF.

WHEN 'CREATE'.

FLAG3 = 12.

IF zpe_str-zsloc EQ ' '.

MESSAGE 'ENTER THE STORAGE LOCATION' TYPE 'S'.

EXIT.

ELSE.

LOOP AT etab.

READ TABLE etab WITH KEY lgort = zpe_str-zsloc .

IF sy-subrc = 0.

read table itab with key sloc = zpe_str-zsloc .

if sy-subrc = 0.

zpe_str-zmandt = itab-mandt.

zpe_str-zsloc = itab-sloc.

zpe_str-zmacd = itab-mcode.

zpe_str-zpgrp = itab-gcode.

zpe_str-zdesc = itab-descr.

flag = 7.

flag1 = 7.

clear flag .

clear flag1.

message 'storage location alredy exist' type 'S'.

ELSE.

FLAG = 2.

MESSAGE 'STORAGE LOCATION ENTIRES DOESNOT EXIST' TYPE 'S'.

ENDIF.

else.

message 'no such storage location exist' type 'S'.

endif.

endloop.

FLAG = 2.

exit.

endif.

WHEN 'CHANGE'.

SELECT * FROM zprd_mis1 INTO TABLE itab.

IF zpe_str-zsloc NE ' '.

LOOP AT itab.

READ TABLE itab WITH KEY sloc = zpe_str-zsloc .

IF sy-subrc = 0.

flag = 5.

flag1 = 6.

zpe_str-zmandt = itab-mandt.

zpe_str-zsloc = itab-sloc.

zpe_str-zmacd = itab-mcode.

zpe_str-zpgrp = itab-gcode.

zpe_str-zdesc = itab-descr.

ELSE.

MESSAGE 'NO STORAGE LOCATION AVAILABLE' TYPE 'S'.

ENDIF.

ENDLOOP.

ELSE.

flag = 3.

MESSAGE 'PLEASE ENTER THE STORAGE LOCATION' TYPE 'S'.

ENDIF.

ENDCASE.

*

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module STATUS_0100 OUTPUT

&----


text

-


MODULE status_0100 OUTPUT.

SET PF-STATUS 'AAA'.

SET TITLEBAR 'aaa'.

IF flag3 = '1'.

CALL FUNCTION 'G_CHECK_PASSWORD'

EXPORTING

password = 'PLANT1'

EXCEPTIONS

not_authorized = 1

canceled = 2

OTHERS = 3.

IF sy-subrc 0.

MESSAGE 'un authorized' TYPE 'S'(001).

LEAVE TO SCREEN 0.

ELSEIF SY-SUBRC = 2.

MESSAGE ' OPERATION CANCELLED' TYPE 'S'(001).

LEAVE TO SCREEN 0.

ELSEIF SY-SUBRC = 3.

LEAVE TO SCREEN 0.

MESSAGE 'RESTRICTED' TYPE 'S'(001).

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

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

ENDIF.

CLEAR flag3.

ENDIF.

SELECT * FROM zprd_mis1 INTO TABLE itab.

LOOP AT SCREEN.

IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

IF flag = 5 AND flag1 EQ 6.

LOOP AT SCREEN.

IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.

screen-input = 1.

MODIFY SCREEN.

ENDIF.

IF screen-name = 'CREATE' OR screen-name = 'DELETE' OR screen-name = 'CHANGE' OR screen-name = 'CHECK'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

EXIT.

ENDIF.

IF flag = 2.

LOOP AT SCREEN.

IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.

screen-input = 1.

MODIFY SCREEN.

ENDIF.

IF screen-name = 'CREATE' OR screen-name = 'DELETE' OR screen-name = 'CHANGE' OR screen-name = 'CHECK'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

EXIT.

ENDIF.

IF flag3 = 12.

LOOP AT SCREEN.

IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.

screen-input = 1.

MODIFY SCREEN.

ENDIF.

IF screen-name = 'CREATE' OR screen-name = 'DELETE' OR screen-name = 'CHANGE' OR screen-name = 'RET' OR screen-name = 'CHECK'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

EXIT.

CLEAR FLAG3.

ENDIF.

IF flag = 4.

IF screen-name CP 'ZPE_*'.

screen-input = 1.

ENDIF.

ENDIF.

IF flag1 = 7 AND flag = 5.

LOOP AT SCREEN.

IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZSLOC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

IF screen-name = 'CREATE' OR screen-name = 'DELETE' OR screen-name = 'CHECK' OR screen-name = 'SAVE'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

IF flag1 = 7 AND flag = 7.

LOOP AT SCREEN.

IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZSLOC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

IF screen-name = 'CREATE' OR screen-name = 'CHECK' OR screen-name = 'SAVE'." OR screen-name = 'DELETE'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

IF flag1 = 4 AND flag = 3.

LOOP AT SCREEN.

IF screen-name = 'ZPE_STR-ZDESC' OR screen-name = 'ZPE_STR-ZSLOC' OR screen-name = 'ZPE_STR-ZPGRP' OR screen-name = 'ZPE_STR-ZMACD'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

IF screen-name = 'CREATE' OR screen-name = 'SAVE' OR screen-name = 'DELETE' OR screen-name = 'CHANGE' OR screen-name = 'CHECK'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

DATA: BEGIN OF r1 OCCURS 1.

INCLUDE STRUCTURE ddshretval.

DATA: END OF r1.

&----


*& Module VALUE_SLOC INPUT

&----


text

-


MODULE value_sloc INPUT.

SELECT lgort werks lgobe FROM t001l INTO CORRESPONDING FIELDS OF TABLE itab_sloc.

DELETE ADJACENT DUPLICATES FROM itab_sloc COMPARING lgort.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'LGORT'

value_org = 'S'

TABLES

value_tab = itab_sloc

return_tab = r1

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc EQ 0.

IF r1-fieldval IS NOT INITIAL.

zpe_str-zsloc = r1-fieldval.

ENDIF.

ENDIF.

EXIT.

*ENDSELECT.

ENDMODULE. " VALUE_SLOC INPUT

FORM PREVIEW.

*TABLES : ZPE_STR , ZPRD_MIS1 , MSEG.

data : ihead like thead.

DATA : prevtab like TLINE occurs 0 with header line.

data : Jtab like TLINE occurs 0 with header line.

*data : Jtab like thead occurs 0 with header line.

*data : text(100).

CALL FUNCTION 'READ_TEXT'

EXPORTING

CLIENT = SY-MANDT

ID = 'ST'

LANGUAGE = sy-langu

NAME = 'ZSLDEL'

OBJECT = 'TEXT'

ARCHIVE_HANDLE = 0

LOCAL_CAT = ' '

IMPORTING

HEADER =

TABLES

LINES = prevtab[]

EXCEPTIONS

ID = 1

LANGUAGE = 2

NAME = 3

NOT_FOUND = 4

OBJECT = 5

REFERENCE_CHECK = 6

WRONG_ACCESS_TO_ARCHIVE = 7

OTHERS = 8

.

IF SY-SUBRC 0.

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

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

ENDIF.

if not prevtab[] is initial.

append lines of prevtab to jtab.

endif.

*IHEAD-TDFDATE = SY-DATUM.

*IHEAD-TDFTIME = SY-UZEIT.

ihead-TDOBJECT = 'TEXT'.

ihead-TDNAME = 'ZSLDEL'.

ihead-TDID = 'ST'.

ihead-TDSPRAS = sy-langu.

type-pools : slis.

Jtab-TDFORMAT = ''.

*Jtab-TDLINE = 'SLOCATION'.

*append Jtab.

*Jtab-TDFORMAT = ''.

Jtab-TDFORMAT = '*'.

Jtab-TDLINE = ZPE_STR-ZSLOC.

append Jtab.

Jtab-TDFORMAT = ''.

*Jtab-TDLINE = 'DATE'.

*append Jtab.

Jtab-TDFORMAT = ''.

*Jtab-TDLINE = SY-DATUM.

*append Jtab.

Jtab-TDFORMAT = ''.

*Jtab-TDLINE = 'TIME'.

*append Jtab.

Jtab-TDFORMAT = ''.

*Jtab-TDLINE = SY-UZEIT.

*Jtab-TDFORMAT = ''.

*append Jtab.

CALL FUNCTION 'SAVE_TEXT'

EXPORTING

CLIENT = SY-MANDT

HEADER = ihead

INSERT = 'X'

SAVEMODE_DIRECT = ' '

OWNER_SPECIFIED = ' '

LOCAL_CAT = ' '

IMPORTING

FUNCTION =

NEWHEADER =

TABLES

LINES = Jtab

EXCEPTIONS

ID = 1

LANGUAGE = 2

NAME = 3

OBJECT = 4

OTHERS = 5

.

IF SY-SUBRC 0.

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

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

ENDIF.

**

CALL FUNCTION 'COMMIT_TEXT'

EXPORTING

OBJECT = '*'

NAME = '*'

ID = '*'

LANGUAGE = '*'

SAVEMODE_DIRECT = ' '

KEEP = ' '

LOCAL_CAT = ' '

IMPORTING

COMMIT_COUNT =

TABLES

T_OBJECT =

T_NAME =

T_ID =

T_LANGUAGE =

.

ENDFORM.

*&spwizard: declaration of tablecontrol 'TBLECTL' itself

controls: TBLECTL type tableview using screen 0100.

*&spwizard: lines of tablecontrol 'TBLECTL'

data: g_TBLECTL_lines like sy-loopc.

data: OK_CODE like sy-ucomm.

*&spwizard: output module for tc 'TBLECTL'. do not change this line!

*&spwizard: update lines for equivalent scrollbar

module TBLECTL_change_tc_attr output.

describe table ITAB lines TBLECTL-lines.

endmodule.

*&spwizard: output module for tc 'TBLECTL'. do not change this line!

*&spwizard: get lines of tablecontrol

module TBLECTL_get_lines output.

g_TBLECTL_lines = sy-loopc.

endmodule.

*&spwizard: input module for tc 'TBLECTL'. do not change this line!

*&spwizard: process user command

module TBLECTL_user_command input.

OK_CODE = sy-ucomm.

perform user_ok_tc using 'TBLECTL'

'ITAB'

' '

changing OK_CODE.

sy-ucomm = OK_CODE.

endmodule.

-


INCLUDE TABLECONTROL_FORMS *

-


&----


*& Form USER_OK_TC *

&----


FORM USER_OK_TC USING P_TC_NAME TYPE DYNFNAM

P_TABLE_NAME

P_MARK_NAME

CHANGING P_OK LIKE SY-UCOMM.

&SPWIZARD: BEGIN OF LOCAL DATA----


DATA: L_OK TYPE SY-UCOMM,

L_OFFSET TYPE I.

&SPWIZARD: END OF LOCAL DATA----


*&SPWIZARD: Table control specific operations *

*&SPWIZARD: evaluate TC name and operations *

SEARCH P_OK FOR P_TC_NAME.

IF SY-SUBRC 0.

EXIT.

ENDIF.

L_OFFSET = STRLEN( P_TC_NAME ) + 1.

L_OK = P_OK+L_OFFSET.

*&SPWIZARD: execute general and TC specific operations *

CASE L_OK.

WHEN 'INSR'. "insert row

PERFORM FCODE_INSERT_ROW USING P_TC_NAME

P_TABLE_NAME.

CLEAR P_OK.

WHEN 'DELE'. "delete row

PERFORM FCODE_DELETE_ROW USING P_TC_NAME

P_TABLE_NAME

P_MARK_NAME.

CLEAR P_OK.

WHEN 'P--' OR "top of list

'P-' OR "previous page

'P+' OR "next page

'P++'. "bottom of list

PERFORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME

L_OK.

CLEAR P_OK.

WHEN 'L--'. "total left

PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.

*

WHEN 'L-'. "column left

PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.

*

WHEN 'R+'. "column right

PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.

*

WHEN 'R++'. "total right

PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.

*

WHEN 'MARK'. "mark all filled lines

PERFORM FCODE_TC_MARK_LINES USING P_TC_NAME

P_TABLE_NAME

P_MARK_NAME .

CLEAR P_OK.

WHEN 'DMRK'. "demark all filled lines

PERFORM FCODE_TC_DEMARK_LINES USING P_TC_NAME

P_TABLE_NAME

P_MARK_NAME .

CLEAR P_OK.

WHEN 'SASCEND' OR

'SDESCEND'. "sort column

PERFORM FCODE_SORT_TC USING P_TC_NAME

l_ok.

ENDCASE.

ENDFORM. " USER_OK_TC

&----


*& Form FCODE_INSERT_ROW *

&----


FORM fcode_insert_row

USING P_TC_NAME TYPE DYNFNAM

P_TABLE_NAME .

&SPWIZARD: BEGIN OF LOCAL DATA----


DATA L_LINES_NAME LIKE FELD-NAME.

DATA L_SELLINE LIKE SY-STEPL.

DATA L_LASTLINE TYPE I.

DATA L_LINE TYPE I.

DATA L_TABLE_NAME LIKE FELD-NAME.

FIELD-SYMBOLS <TC> TYPE CXTAB_CONTROL.

FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.

FIELD-SYMBOLS <LINES> TYPE I.

&SPWIZARD: END OF LOCAL DATA----


ASSIGN (P_TC_NAME) TO <TC>.

*&SPWIZARD: get the table, which belongs to the tc *

CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body

ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline

*&SPWIZARD: get looplines of TableControl *

CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_LINES_NAME.

ASSIGN (L_LINES_NAME) TO <LINES>.

*&SPWIZARD: get current line *

GET CURSOR LINE L_SELLINE.

if sy-subrc 0. " append line to table

l_selline = <tc>-lines + 1.

*&SPWIZARD: set top line *

if l_selline > <lines>.

<tc>-top_line = l_selline - <lines> + 1 .

else.

<tc>-top_line = 1.

endif.

else. " insert line into table

l_selline = <tc>-top_line + l_selline - 1.

l_lastline = <tc>-top_line + <lines> - 1.

endif.

*&SPWIZARD: set new cursor line *

l_line = l_selline - <tc>-top_line + 1.

*&SPWIZARD: insert initial line *

INSERT INITIAL LINE INTO <TABLE> INDEX L_SELLINE.

<TC>-LINES = <TC>-LINES + 1.

*&SPWIZARD: set cursor *

SET CURSOR LINE L_LINE.

ENDFORM. " FCODE_INSERT_ROW

&----


*& Form FCODE_DELETE_ROW *

&----


FORM fcode_delete_row

USING P_TC_NAME TYPE DYNFNAM

P_TABLE_NAME

P_MARK_NAME .

&SPWIZARD: BEGIN OF LOCAL DATA----


DATA L_TABLE_NAME LIKE FELD-NAME.

FIELD-SYMBOLS <TC> TYPE cxtab_control.

FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.

FIELD-SYMBOLS <WA>.

FIELD-SYMBOLS <MARK_FIELD>.

&SPWIZARD: END OF LOCAL DATA----


ASSIGN (P_TC_NAME) TO <TC>.

*&SPWIZARD: get the table, which belongs to the tc *

CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body

ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline

*&SPWIZARD: delete marked lines *

DESCRIBE TABLE <TABLE> LINES <TC>-LINES.

LOOP AT <TABLE> ASSIGNING <WA>.

*&SPWIZARD: access to the component 'FLAG' of the table header *

ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.

IF <MARK_FIELD> = 'X'.

DELETE <TABLE> INDEX SYST-TABIX.

IF SY-SUBRC = 0.

<TC>-LINES = <TC>-LINES - 1.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM. " FCODE_DELETE_ROW

&----


*& Form COMPUTE_SCROLLING_IN_TC

&----


text

-


-->P_TC_NAME name of tablecontrol

-->P_OK ok code

-


FORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME

P_OK.

&SPWIZARD: BEGIN OF LOCAL DATA----


DATA L_TC_NEW_TOP_LINE TYPE I.

DATA L_TC_NAME LIKE FELD-NAME.

DATA L_TC_LINES_NAME LIKE FELD-NAME.

DATA L_TC_FIELD_NAME LIKE FELD-NAME.

FIELD-SYMBOLS <TC> TYPE cxtab_control.

FIELD-SYMBOLS <LINES> TYPE I.

&SPWIZARD: END OF LOCAL DATA----


ASSIGN (P_TC_NAME) TO <TC>.

*&SPWIZARD: get looplines of TableControl *

CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_TC_LINES_NAME.

ASSIGN (L_TC_LINES_NAME) TO <LINES>.

*&SPWIZARD: is no line filled? *

IF <TC>-LINES = 0.

*&SPWIZARD: yes, ... *

L_TC_NEW_TOP_LINE = 1.

ELSE.

*&SPWIZARD: no, ... *

CALL FUNCTION 'SCROLLING_IN_TABLE'

EXPORTING

ENTRY_ACT = <TC>-TOP_LINE

ENTRY_FROM = 1

ENTRY_TO = <TC>-LINES

LAST_PAGE_FULL = 'X'

LOOPS = <LINES>

OK_CODE = P_OK

OVERLAPPING = 'X'

IMPORTING

ENTRY_NEW = L_TC_NEW_TOP_LINE

EXCEPTIONS

NO_ENTRY_OR_PAGE_ACT = 01

NO_ENTRY_TO = 02

NO_OK_CODE_OR_PAGE_GO = 03

OTHERS = 0.

ENDIF.

*&SPWIZARD: get actual tc and column *

GET CURSOR FIELD L_TC_FIELD_NAME

AREA L_TC_NAME.

IF SYST-SUBRC = 0.

IF L_TC_NAME = P_TC_NAME.

*&SPWIZARD: et actual column *

SET CURSOR FIELD L_TC_FIELD_NAME LINE 1.

ENDIF.

ENDIF.

*&SPWIZARD: set the new top line *

<TC>-TOP_LINE = L_TC_NEW_TOP_LINE.

ENDFORM. " COMPUTE_SCROLLING_IN_TC

&----


*& Form FCODE_TC_MARK_LINES

&----


marks all TableControl lines

-


-->P_TC_NAME name of tablecontrol

-


FORM FCODE_TC_MARK_LINES USING P_TC_NAME

P_TABLE_NAME

P_MARK_NAME.

&SPWIZARD: EGIN OF LOCAL DATA----


DATA L_TABLE_NAME LIKE FELD-NAME.

FIELD-SYMBOLS <TC> TYPE cxtab_control.

FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.

FIELD-SYMBOLS <WA>.

FIELD-SYMBOLS <MARK_FIELD>.

&SPWIZARD: END OF LOCAL DATA----


ASSIGN (P_TC_NAME) TO <TC>.

*&SPWIZARD: get the table, which belongs to the tc *

CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body

ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline

*&SPWIZARD: mark all filled lines *

LOOP AT <TABLE> ASSIGNING <WA>.

*&SPWIZARD: access to the component 'FLAG' of the table header *

ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.

<MARK_FIELD> = 'X'.

ENDLOOP.

ENDFORM. "fcode_tc_mark_lines

&----


*& Form FCODE_TC_DEMARK_LINES

&----


demarks all TableControl lines

-


-->P_TC_NAME name of tablecontrol

-


FORM FCODE_TC_DEMARK_LINES USING P_TC_NAME

P_TABLE_NAME

P_MARK_NAME .

&SPWIZARD: BEGIN OF LOCAL DATA----


DATA L_TABLE_NAME LIKE FELD-NAME.

FIELD-SYMBOLS <TC> TYPE cxtab_control.

FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.

FIELD-SYMBOLS <WA>.

FIELD-SYMBOLS <MARK_FIELD>.

&SPWIZARD: END OF LOCAL DATA----


ASSIGN (P_TC_NAME) TO <TC>.

*&SPWIZARD: get the table, which belongs to the tc *

CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body

ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline

*&SPWIZARD: demark all filled lines *

LOOP AT <TABLE> ASSIGNING <WA>.

*&SPWIZARD: access to the component 'FLAG' of the table header *

ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.

<MARK_FIELD> = SPACE.

ENDLOOP.

ENDFORM. "fcode_tc_mark_lines

Source : https://forums.sdn.sap.com/click.jspa?searchID=15092700&messageID=5654151

Have A Good Day

Chaitanya.

Read only

Former Member
0 Likes
683

hi..

you can take help from this code.

DATA: itab TYPE zvbak_101906 .

TYPES : BEGIN OF itab2 ,

mark TYPE c,

zstprs LIKE zmara_101906 -zstprs,

zposnr LIKE zvbap_101906 -zposnr,

zmatnr LIKE zvbap_101906 -zmatnr ,

zbrgew LIKE zvbap_101906 -zbrgew,

zmeins LIKE zvbap_101906 -zmeins,

znetwr LIKE zvbap_101906 -znetwr,

zwaerk LIKE zvbap_101906 -zwaerk,

zwerks LIKE zvbap_101906 -zwerks,

zlgort LIKE zvbap_101906 -zlgort,

zgi_comp LIKE zvbap_101906 -zgi_comp,

zinv_comp LIKE zvbap_101906 -zinv_comp,

zmaktx LIKE zmara_101906 -zmaktx,

zvbeln TYPE zvbak_101906 -zvbeln,

END OF itab2.

DATA wa_itab LIKE TABLE OF itab WITH HEADER LINE.

DATA itab_item TYPE TABLE OF itab2 WITH HEADER LINE.

DATA i_item type TABLE OF itab2 WITH HEADER LINE.

SELECT SINGLE ZMAKTX ZMEINS ZWAERK ZSTPRS FROM ZMARA_101906

INTO CORRESPONDING FIELDS OF ITAB_ITEM

WHERE ZMATNR = ITAB_ITEM-ZMATNR.

SELECT SINGLE ZWERKS ZLGORT FROM ZORG_101780

INTO CORRESPONDING FIELDS OF ITAB_ITEM

WHERE ZVKORG = ITAB-ZVKORG

AND ZVTWEG = ITAB-ZVTWEG

AND ZSPART = ITAB-ZSPART.

ITAB_ITEM-ZNETWR = ITAB_ITEM-ZSTPRS * ITAB_ITEM-ZBRGEW.

MODIFY ITAB_ITEM from itab_item INDEX SY-TABIX.

MOVE-CORRESPONDING ITAB_ITEM TO I_ITEM.

APPEND I_ITEM.

REFRESH ITAB_ITEM.

hope it will help you.

regards,

Lokesh

Read only

Former Member
0 Likes
683

hi dhanunjay,

DATA: BEGIN OF it_creation OCCURS 0,

zgi_no TYPE zlikp_101941-zgi_no,

zvbeln TYPE zlikp_101941-zvbeln,

zgi_date type zlikp_101941-zgi_date,

zernam type zlikp_101941-zernam,

zdispatch type zlikp_101941-zdispatch,

gi_text(40) TYPE c,

zktext TYPE zvbak_101941-zktext,

zgi_comp TYPE zvbap_101941-zgi_comp,

zposnr TYPE zvbap_101941-zposnr,

zmatnr TYPE zvbap_101941-zmatnr,

zbrgew TYPE zvbap_101941-zbrgew,

zmeins TYPE zvbap_101941-zmeins,

zwerks TYPE zvbap_101941-zwerks,

zlgort TYPE zvbap_101941-zlgort,

zgi_qty TYPE zvbap_101941-zgi_comp,

zvat TYPE zvbrk_101941-zvat,

open_qty TYPE p DECIMALS 2,

pick_qty TYPE p DECIMALS 2,

titel TYPE i,

END OF it_creation.

it_creation-zvbeln = wa_creation-zvbeln.

it_creation-zernam = sy-uname.

it_creation-zgi_date = sy-datum.

it_creation-zdispatch = ' '.

MOVE-CORRESPONDING it_creation TO zvbap_101941.

MOVE-CORRESPONDING it_creation TO zlikp_101941.

MODIFY zvbap_101941.

MODIFY zlikp_101941.

Read only

former_member69765
Contributor
0 Likes
683

Wow ..

That's like ... " I have a job to do... Why don't you do it for me while I sit back and relax" ..

Why do you expect us to write the code for you ?

Did you try ?

Please try. .. when you get errors then ask us..

This way .. you will learn ABAP also ..