‎2008 Mar 17 10:36 AM
Hi friends,
I have created a Table control, when i am trying to insert new rows in table control, its not updating instead it updating empty rows, any one has the solution for this problem ? points will be given for solution
regards and thanks
Vijaya
‎2008 Mar 17 10:43 AM
hi,,
PROCESS BEFORE OUTPUT.
MODULE STATUS_9000.
LOOP AT IT_STR WITH CONTROL TC.
MODULE FILL_MODULE_9OOO.
MODULE ICON_9000.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE CANCEL AT EXIT-COMMAND.
LOOP AT IT_STR.
CHAIN.
FIELD IT_STR-MNO.
FIELD IT_STR-QTY.
MODULE FILL_TABLE_9000 ON CHAIN-REQUEST.
ENDCHAIN.
ENDLOOP.
****************************************************
MODULE FILL_TABLE_9000 ON CHAIN-REQUEST.
DATA : V_LINECOUNT TYPE I, "TO FIND NO OF LINES IN INTERNAL TABLE
V_PAGECOUNT TYPE I, "TO ADD LINES WHEN SCROLLING
V_ABS_LINE TYPE I. "FOR CURRENT LINE
IF SY-DATAR = 'X'. "CLICK IS ON MESSAGE OR IN SCROLL.
DESCRIBE TABLE IT_STR LINES V_LINECOUNT. "TO GET THE NO OF LINES
IF SY-SUBRC = 0.
V_ABS_LINE = TC-TOP_LINE + SY-STEPL - 1. "GETTING THE CURRENT LINE
IF V_ABS_LINE LE V_LINECOUNT. "CHECKING WHEATHER CURRENT LINE IS GT LINECOUNT
MODIFY IT_STR INDEX V_ABS_LINE. "SY-STEPL.
ELSE.
IT_STR-ZINO = V_ABS_LINE.
APPEND IT_STR.
ENDIF.
ENDIF.
*tc-lines = sy-tfill + 1.
V_PAGECOUNT = SY-STEPL DIV SY-LOOPC. "CHECKING WHEATHER TO ADD LINES OR NOT
IF V_PAGECOUNT > 0.
TC-LINES = V_LINECOUNT + SY-LOOPC.
ENDIF.
ENDMODULE.
ENDIF.
-Siva
‎2008 Mar 17 10:46 AM
‎2008 Mar 17 11:04 AM
Hi Dhwani,
I have created a table control, i am able to display the rows in table control, but when i am trying to insert new rows, then it updating an empty row,
‎2008 Mar 17 11:15 AM
hi...
chk this part
IF SY-DATAR = 'X'. "CLICK IS ON MESSAGE OR IN SCROLL.
DESCRIBE TABLE IT_STR LINES V_LINECOUNT. "TO GET THE NO OF LINES
IF SY-SUBRC = 0.
V_ABS_LINE = TC-TOP_LINE + SY-STEPL - 1. "GETTING THE CURRENT LINE
IF V_ABS_LINE LE V_LINECOUNT. "CHECKING WHEATHER CURRENT LINE IS GT LINECOUNT
MODIFY IT_STR INDEX V_ABS_LINE. "SY-STEPL.
ELSE.
IT_STR-ZINO = V_ABS_LINE.
APPEND IT_STR.
ENDIF.
ENDIF.
-Siva
‎2008 Mar 17 11:04 AM
Hi,
Follow the bellow steps to enter new record or modify the existing record also.
1.TOP-INCLUDE
DATA: ITAB LIKE KNA1 OCCURS 0 WITH HEADER LINE,
ITAB1 LIKE KNA1 OCCURS 0 WITH HEADER LINE,
WA LIKE KNA1.
DATA: CNT TYPE I,
CUR TYPE I.
DATA: OK_CODE TYPE SY-UCOMM.
CONTROLS: TABCTRL TYPE TABLEVIEW USING SCREEN 100.
2.Creat screen 100
PROCESS BEFORE OUTPUT.
LOOP AT ITAB CURSOR CUR WITH CONTROL TABCTRL.
ENDLOOP.
MODULE STATUS_0100.
*
PROCESS AFTER INPUT.
MODULE CLEAR_DATA.
LOOP AT ITAB.
MODULE MOVE_DATA.
ENDLOOP.
MODULE USER_COMMAND_0100.
3.Click on layout tab from application toolbar
and creat one table control with name "TABCTRL"
and required pushbuttons.
Double click on "CLEAR_DATA".
module CLEAR_DATA input.
CLEAR ITAB1.
REFRESH ITAB1.
endmodule.
come back and Double click on "MODULE MOVE_DATA"
module MOVE_DATA input.
APPEND ITAB TO ITAB1.
endmodule.
COME BACK TO FLOWLOGIC EDITOR
Double click on PAI
module USER_COMMAND_0100 input.
CASE OK_CODE.
WHEN 'FETCH'.
SELECT * FROM KNA1 INTO TABLE ITAB UP TO 20 ROWS.
TABCTRL-LINES = SY-DBCNT.
WHEN 'ADD'.
GET CURSOR LINE CNT.
CNT = TABCTRL-TOP_LINE + CNT - 1.
CLEAR WA.
INSERT WA INTO ITAB INDEX CNT.
WHEN 'MODIFY'.
GET CURSOR LINE CNT.
READ TABLE ITAB1 INDEX CNT.
LOOP AT ITAB1.
MODIFY KNA1 FROM ITAB1.
ENDLOOP.
SELECT * FROM KNA1 INTO TABLE ITAB.
WHEN 'DELETE'.
GET CURSOR LINE CNT.
LOOP AT ITAB1.
DELETE ITAB1 INDEX CNT.
MODIFY KNA1 FROM ITAB1.
ENDLOOP.
SELECT * FROM KNA1 INTO TABLE ITAB.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
endmodule. " USER_COMMAND_0100 INPUT
creat tcode and execute it.
First click on FETCH later place the cursor in required position where u want to creat new record.
Click on "ADD" ,then enter the record data and click on
"MODIFY",it will insert record and displays the new information.
Reward,if it is useful.
Regards,
Chandu.