‎2010 Aug 17 11:06 AM
Hi All,
I created one module pool program with three fields MATNR,EBELN,KTMNG(qty). KTMNG is user key in accordingly to create delivery order.
Now the problem is when user key in KTMNG field value let say 10.000.when press enter Again its taking the database value(20.000 for example).
how to keep the user key value 10.000.
here is my coding:
PROCESS BEFORE OUTPUT.
LOOP AT ITAB INTO WA WITH CONTROL tabcontrol.
MODULE STATUS_0100.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
LOOP AT ITAB.
ENDLOOP.
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'DIS'.
REFRESH:ITAB.
SELECT EBELN MATNR KTMNG INTO CORRESPONDING FIELDS OF TABLE ITAB FROM EKPO
WHERE EBELN EQ EKPO-EBELN.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ZTESTING'.
SET TITLEBAR 'ZTEST'.
MOVE:WA-EBELN TO EKKO-EBELN,
WA-KTMNG TO EKPO-KTMNG,
WA-MATNR TO EKPO-MATNR.
VCONTROL-LINES = SY-DBCNT.
ENDMODULE.
Please help me.
Thank You,
Anu.
‎2010 Aug 17 11:20 AM
Hi Anitha,
In Top Include
data : first type char1.
MOVE: WA-EBELN TO EKKO-EBELN.
if first is initial.
first = 'X'. " Put a Flag like this and proceed further, if this doesnt work check appropriate position to put the Flag
"Putting a Flag will serve your purpose.
MOVE: WA-KTMNG TO EKPO-KTMNG.
endif.
MOVE: WA-MATNR TO EKPO-MATNR.Cheerz
Ram
‎2010 Aug 17 11:24 AM
Hi
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
LOOP AT ITAB.
ENDLOOP.
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'DIS'.
REFRESH:ITAB.
SELECT EBELN MATNR KTMNG INTO CORRESPONDING FIELDS OF TABLE ITAB FROM EKPO
WHERE EBELN EQ EKPO-EBELN.
u r doing mistake in PAI.
after user interaction don't fetch the data corresponding to KTMNG just take from screen and the remaining from table .
Anil
‎2010 Aug 17 11:38 AM
PROCESS BEFORE OUTPUT.
LOOP AT ITAB INTO WA WITH CONTROL tabcontrol.
MODULE STATUS_0100.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
LOOP AT ITAB.
" add this
CHAIN.
FIELD EKKO-EBELN.
FIELD EKPO-KTMNG.
FIELD EKPO-MATNR.
Modify tablecontrol.
ENDCHAIN.
ENDLOOP.
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'DIS'.
" Comment this start and Pushi to PBO and check if ITAB is initial then do below Qyery
REFRESH:ITAB.
SELECT EBELN MATNR KTMNG INTO CORRESPONDING FIELDS OF TABLE ITAB FROM EKPO
WHERE EBELN EQ EKPO-EBELN.
" Comment this end
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ZTESTING'.
SET TITLEBAR 'ZTEST'.
MOVE:WA-EBELN TO EKKO-EBELN,
WA-KTMNG TO EKPO-KTMNG,
WA-MATNR TO EKPO-MATNR.
VCONTROL-LINES = SY-DBCNT.
ENDMODULE.
MODULE TABLECONTROL OUTPUT. "New addition in PAI for Modify
MOVE:EKKO-EBELN TO WA-EBELN,
EKPO-KTMNG TO WA-KTMNG ,
EKPO-MATNR TO WA-MATNR .
MODIFY ITAB FROM wa INDEX tabcontrol-current_line
ENDMODULE
‎2010 Aug 18 3:43 AM
Hi Prabhu,
I tried but its not working. Please help me.
Regards,
Anu
‎2010 Aug 18 5:39 AM
hi Anitha,
When you are using Case conation after that you clear the SY-UCOMM and OK_CODE Value like:-
CASE SY-UCOMM.
WHEN 'DIS'.
REFRESH:ITAB.
SELECT EBELN MATNR KTMNG INTO CORRESPONDING FIELDS OF TABLE ITAB FROM EKPO
WHERE EBELN EQ EKPO-EBELN.
CLEAR SY-UCOMM.
WHEN 'EXIT'.
LEAVE PROGRAM.
CLEAR SY-UCOMM.
ENDCASE.
You should be use clear SY-UCOMM Statment after the end of WHEN statment.
i think thread is slaved.
Regards,
Abhilash
‎2010 Aug 18 1:41 PM
Hi All,
Still same problem facing..Unable to set the cursor field on table control field.
Please suggest me.
Regards.
Anu
‎2010 Aug 18 1:48 PM
Hi Anitha,
In the module status 0100 of PBO, use SET CURSOR FIELD f .
Please see below code snippet :-
DATA F(5) VALUE 'MODUS'.
DATA MODUS(10) VALUE '1234567890'.
...
MODULE set_cursor OUTPUT.
...
SET CURSOR FIELD F.
or
SET CURSOR FIELD 'MODUS'. Hope this solves your query, plz close the thread if it does solve.
Regards
Abhii