02-28-2009 8:53 AM
Please do not have your subject in ALL CAPITALS
Hi Experts,
Please advice,
I am having three fields in output first one is directly fetched from table and other two are variables.
ITAB-MENGE = fetched data.
ITAB-UCOMM = user command.
AT SELECTION-SCREEN OUTPUT
when the user press ENTER
ITAB-SUM = ITAB-MENGE + ITAB-UCOMM.
For eq:
Suppose if:
ITAB-MENGE = 100
and if the user enters the value in ITAB-UCOMM = 200
and when the user press enter the sum should display on the other field ITAB-SUM
Note: I am using normal write statement ( not ALV ) & I am not using any parameters in selection screen all these has to fired on output screen
Thanks
R.Karthik
Edited by: Karthik R on Feb 28, 2009 3:34 PM
Edited by: Matt on Mar 1, 2009 7:18 PM
03-06-2009 9:43 AM
Hi,
Refer code:-
REPORT Z19TG7_1 NO STANDARD PAGE HEADING.
TABLES : LFA1.
TYPES : BEGIN OF VENDOR,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
END OF VENDOR,
BEGIN OF VENDOR1,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
ORT01 LIKE LFA1-ORT01,
LAND1 LIKE LFA1-LAND1,
BUKRS LIKE LFB1-BUKRS,
END OF VENDOR1.
DATA : VENDOR_TAB TYPE STANDARD TABLE OF VENDOR INITIAL SIZE 20 WITH HEADER LINE,
VENDOR1_TAB TYPE STANDARD TABLE OF VENDOR1 INITIAL SIZE 20 WITH HEADER LINE,
CB.
* WAS_USED.
TOP-OF-PAGE DURING LINE-SELECTION.
WRITE SY-LSIND.
START-OF-SELECTION.
SET PF-STATUS 'Z19TG7_1_PF'.
SELECT LIFNR NAME1
FROM LFA1
INTO TABLE VENDOR_TAB.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'VL'.
IF SY-LSIND = 1.
SET PF-STATUS SPACE.
DO.
CLEAR CB.
READ LINE SY-INDEX FIELD VALUE CB.
IF SY-SUBRC <> 0.
EXIT.
ELSE.
CHECK CB = 'X'.
MODIFY CURRENT LINE : FIELD VALUE CB FROM SPACE.
SELECT A~LIFNR A~NAME1 A~ORT01 A~LAND1 B~BUKRS
FROM LFA1 AS A
LEFT OUTER JOIN LFB1 AS B
ON A~LIFNR = B~LIFNR
INTO TABLE VENDOR1_TAB
WHERE A~LIFNR = VENDOR_TAB-LIFNR.
LOOP AT VENDOR1_TAB.
WRITE : / 'Vendor ID:' NO-GAP, VENDOR1_TAB-LIFNR,
/ 'Vendor Name :' NO-GAP, VENDOR1_TAB-NAME1,
/ 'City :' NO-GAP, VENDOR1_TAB-ORT01,
/ 'Land :' NO-GAP, VENDOR1_TAB-LAND1,
/ 'Country Code :' NO-GAP, VENDOR1_TAB-BUKRS.
ULINE.
ENDLOOP.
ENDIF.
ENDDO.
ENDIF.
ENDCASE.
END-OF-SELECTION.
WRITE : /1 'CB', 5 TEXT-001, 18 TEXT-002.
ULINE.
LOOP AT VENDOR_TAB.
WRITE : /1 CB AS CHECKBOX, 5 VENDOR_TAB-LIFNR, 18 VENDOR_TAB-NAME1.
HIDE : VENDOR_TAB-LIFNR.
ENDLOOP.
ULINE.
Hope this helps you.
Regards,
Tarun
02-28-2009 2:55 PM
Hi, Karthik,
Please Past your Code for better understanding it is not clear what you want and where the user entering the Value ?
May be the following Code will help you to solve out your problem,
DATA: BEGIN OF it OCCURS 10,
menge TYPE i,
ucomm TYPE i,
sum TYPE i,
END OF it.
SELECT-OPTIONS soucomm FOR it-ucomm NO-EXTENSION NO INTERVALS.
it-menge = 10.
DO 5 TIMES.
APPEND it TO it.
ADD 10 TO : it-menge.
ENDDO.
LOOP AT it INTO it.
it-ucomm = soucomm-low.
it-sum = it-menge + it-ucomm.
MODIFY it FROM it INDEX sy-tabix.
WRITE: / it-menge, it-ucomm , it-sum.
ENDLOOP.
INITIALIZATION.
soucomm-low = 200.
APPEND soucomm TO soucomm.
Kind Regards,
Faisal
03-01-2009 2:07 PM
Hi Faisal,
Thanks for your post, but it does'nt meet my requirement.
As I cannot use ucomm in select-options.
In my output one field will be in edit-mode( with no data in it ) and another field is menge.
When the user enters some value in the field which in edit-mode ( in out-put / report ) and then press
enter the sum of menge and the value manully entered by the user should display in another field( with on data ).
I have not done this report in ALV but in normal report.
Please advice.
Karthik
03-01-2009 6:51 PM
Hi,
it is not possible to catch ENTER event in the list. The only way you can use is to create a hotspot and then catch this click. Check out the code below (taken from standard SAP help):
DATA: input_field TYPE c LENGTH 100,
line_num TYPE i.
START-OF-SELECTION.
WRITE 'Input text:'.
SET BLANK LINES ON.
FORMAT INPUT.
WRITE / input_field.
FORMAT INPUT OFF.
WRITE / '>>> OK <<<' COLOR 5 HOTSPOT.
AT LINE-SELECTION.
IF sy-lisel = '>>> OK <<<'.
line_num = sy-lilli - 1.
READ LINE line_num FIELD VALUE input_field.
WRITE: 'The input was:',
/ input_field.
ENDIF.
Regards,
Karol
Edited by: Karol Seman on Mar 1, 2009 8:24 PM
03-01-2009 6:56 PM
HI, Karthi,
Please Past your code if you can to get the appropriate answer.
Kind Regards,
Faisal
02-28-2009 3:05 PM
Hi,
Check this Code..
PARAMETERs:
p_val1 TYPE i DEFAULT '100',
p_val2 TYPE i,
p_comm TYPE char4.
AT SELECTION-SCREEN OUTPUT.
If p_comm Eq 'SUM'.
p_val2 = p_val2 + p_val1.
ENDIF.
03-01-2009 3:46 PM
Hi,
Note: I am using normal write statement ( not ALV ) & I am not using any parameters in selection screen all these has to fired on output screen
with the above note you mean to say that you dont have selection-screen in the program but you have input fields on the list...
Is this what you meant... by the above statement
Regards,
Siddarth
03-02-2009 3:39 AM
Hi Sidharth,
No, I meant that I am not using any parameter for ucomm.
Thanks
Karthik
03-02-2009 5:00 AM
03-01-2009 6:18 PM
03-06-2009 9:40 AM
At first create the pf status in start-of -selection evenmt.
SET PF-STATUS 'PF_SUM' EXCLUDING p_rt_extab.
(where p_rt_extab TYPE slis_t_extab) and declare the function code for enter (ENT) in that pf status.
then,
AT USER-COMMAND.
case SY-UCOMM.
when 'ENT'.
result = num1 + num2.
endcase.
regards,
Nilay.
03-06-2009 9:43 AM
Hi,
Refer code:-
REPORT Z19TG7_1 NO STANDARD PAGE HEADING.
TABLES : LFA1.
TYPES : BEGIN OF VENDOR,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
END OF VENDOR,
BEGIN OF VENDOR1,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
ORT01 LIKE LFA1-ORT01,
LAND1 LIKE LFA1-LAND1,
BUKRS LIKE LFB1-BUKRS,
END OF VENDOR1.
DATA : VENDOR_TAB TYPE STANDARD TABLE OF VENDOR INITIAL SIZE 20 WITH HEADER LINE,
VENDOR1_TAB TYPE STANDARD TABLE OF VENDOR1 INITIAL SIZE 20 WITH HEADER LINE,
CB.
* WAS_USED.
TOP-OF-PAGE DURING LINE-SELECTION.
WRITE SY-LSIND.
START-OF-SELECTION.
SET PF-STATUS 'Z19TG7_1_PF'.
SELECT LIFNR NAME1
FROM LFA1
INTO TABLE VENDOR_TAB.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'VL'.
IF SY-LSIND = 1.
SET PF-STATUS SPACE.
DO.
CLEAR CB.
READ LINE SY-INDEX FIELD VALUE CB.
IF SY-SUBRC <> 0.
EXIT.
ELSE.
CHECK CB = 'X'.
MODIFY CURRENT LINE : FIELD VALUE CB FROM SPACE.
SELECT A~LIFNR A~NAME1 A~ORT01 A~LAND1 B~BUKRS
FROM LFA1 AS A
LEFT OUTER JOIN LFB1 AS B
ON A~LIFNR = B~LIFNR
INTO TABLE VENDOR1_TAB
WHERE A~LIFNR = VENDOR_TAB-LIFNR.
LOOP AT VENDOR1_TAB.
WRITE : / 'Vendor ID:' NO-GAP, VENDOR1_TAB-LIFNR,
/ 'Vendor Name :' NO-GAP, VENDOR1_TAB-NAME1,
/ 'City :' NO-GAP, VENDOR1_TAB-ORT01,
/ 'Land :' NO-GAP, VENDOR1_TAB-LAND1,
/ 'Country Code :' NO-GAP, VENDOR1_TAB-BUKRS.
ULINE.
ENDLOOP.
ENDIF.
ENDDO.
ENDIF.
ENDCASE.
END-OF-SELECTION.
WRITE : /1 'CB', 5 TEXT-001, 18 TEXT-002.
ULINE.
LOOP AT VENDOR_TAB.
WRITE : /1 CB AS CHECKBOX, 5 VENDOR_TAB-LIFNR, 18 VENDOR_TAB-NAME1.
HIDE : VENDOR_TAB-LIFNR.
ENDLOOP.
ULINE.
Hope this helps you.
Regards,
Tarun