10-16-2007 1:44 AM
Hi All,
I want to put DELETE BUTTON and UPDATE BUTTON on my normal report. so how can i put this one. can i use set pf-status status? if yes, so in which event i use this statement..........
vishal....................
10-16-2007 2:07 AM
Yes, you can use SET PF-STATUS. If you are calling your own screen, do this in the PBO (Process Before Output). In a regular list type program, do it in the START-OF-SELECTION or END-OF-SELECTION events.
10-16-2007 2:11 AM
Hi Kevin,
PBO is for the dialog programing. right na??? I want to put in our normal report so, what code i write for this statement.... can u give me some example for this query....
Vishal
10-16-2007 2:17 AM
Yes, PBO is for dialog programming.
For a normal report, do this:
1st - create status 100 for your program in SE41. Then do this code.
START-OF-SELECTION.
SET PF-STATUS '100'.
...
write...
...
10-16-2007 2:18 AM
Hi Vishal,
You can put it in START-OF-SELECTION or END-OF-SELECTION.
And the code is SET PF-STATUS <status name>
Regards,
Atish
10-16-2007 4:19 AM
Hi,
I want to crate DELETE BUTTON and UPDATE BUTTON, left side corner......so it is possible through set pf-status......
give me some code for that.....
Thanks
Vishal
10-16-2007 4:20 AM
Hi Vishal,
There is no code for PF-STATUS. You need to create it using SE41. It is like a creating screen so there is no code for it.
Regards,
Atish
10-16-2007 4:23 AM
In your program just write this single statement
set pf-status 'STAT'.
and then double click on STAT, which will take you to the PF-Status screen.
Just create new buttons what ever you want on the application tool bar.
These buttons will be reflected in your output screen.
Regards
Gopi
10-16-2007 4:43 AM
Hi Vishal,
Just put a statement like this - set pf-status '100'
anywhere in program may be after start of selection.
U can give any name also other than 100.
1) Double click on - set pf-status '100'
2) It will give message - " GUI Status 100 does not exist.Create Object ?"
3) Give option "YES"
4)Give a Short Text
5)Click on NORMAL SCREEN ( it will be default )
6)Choose the option "Application Toolbar "
7) Give name DELETE on the space provided there on ROW Items 1 - 7.
😎 Click on Save above
9) It will prompt to choose any button, choose any one like F7 or F2 like that
10) Do the same from step 7 to 9 for UPDATE also
10) Click on Menu "User Interface"- Generate.
11) Activate ..Come back to main program Activate main Program
12) Run the main program U can see the Buttons at output
Regards
Avi........
10-16-2007 5:04 PM
Hi Avi,
I follow ur step in my report but i not get any button when i run this prog.....
below is my code.......
REPORT ZDESKDLC_NEW.
----
DATA DECLARATION
----
TABLES : ZDESKDLC.
DATA: LW_SELECT TYPE zdeskdlc,
LW_UPDATE TYPE ZDESKDLC.
*DATA : FLAG_CLEAR TYPE C.
*DATA: BEGIN OF FINAL_UPDATE_ITAB occurs 200,
SR_MANAG type ZDESKDLC-SR_MANAGEMENT,
LASTNAME type ZDESKDLC-LAST_NAME,
FIRSTNM type ZDESKDLC-FIRST_NAME,
DEPART type ZDESKDLC-DEPARTMENT,
ADM_SYS type ZDESKDLC-ADMIN_SYSTEM,
RACF_ID type ZDESKDLC-RACF_ID,
OPEN_DT type ZDESKDLC-OPEN_DATE,
CLOSE_DT type ZDESKDLC-CLOSE_DATE,
SAPUSRID type ZDESKDLC-SAP_USER_ID,
*
END of FINAL_UPDATE_ITAB.
*data: flag type c.
----
SELECTION SCREEN
----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: CCOD LIKE ZDESKDLC-CCODE MODIF ID ABC.
PARAMETERS: DESKCODE LIKE ZDESKDLC-DESK_CODE MODIF ID ABC.
SELECTION-SCREEN END OF BLOCK B1.
----
SELECTION SCREEN WITH RADIO BUTTON
----
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
PARAMETERS: DELETE RADIOBUTTON GROUP G1 USER-COMMAND R DEFAULT 'X'.
PARAMETERS: UPDATE RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF BLOCK B2.
----
SELECTION SCREEN
----
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-001.
PARAMETERS: CCOD1 LIKE ZDESKDLC-CCODE MODIF ID DEF,
DESKCD LIKE ZDESKDLC-DESK_CODE MODIF ID DEF,
SR_MANAG LIKE ZDESKDLC-SR_MANAGEMENT MODIF ID DEF,
LASTNAME LIKE ZDESKDLC-LAST_NAME MODIF ID DEF,
FIRSTNM LIKE ZDESKDLC-FIRST_NAME MODIF ID DEF,
DEPART LIKE ZDESKDLC-DEPARTMENT MODIF ID DEF,
ADM_SYS LIKE ZDESKDLC-ADMIN_SYSTEM MODIF ID DEF,
RACF_ID LIKE ZDESKDLC-RACF_ID MODIF ID DEF,
OPEN_DT LIKE ZDESKDLC-OPEN_DATE MODIF ID DEF,
CLOSE_DT LIKE ZDESKDLC-CLOSE_DATE MODIF ID DEF,
SAPUSRID LIKE ZDESKDLC-SAP_USER_ID MODIF ID DEF.
SELECTION-SCREEN END OF BLOCK B3.
**SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-002.
**
**SELECTION-SCREEN PUSHBUTTON /10(20) TEXT-003 USER-COMMAND ABCD
.
**SELECTION-SCREEN PUSHBUTTON /10(20) TEXT-004 USER-COMMAND EFGH .
**
**
**SELECTION-SCREEN END OF BLOCK B4.
*INITIALIZATION.
AT SELECTION-SCREEN OUTPUT.
*data prog like sy-repid.
*
*move 'ZDESKDLC_NEW' to prog.
*
*set pf-status 'BUTTON'.
IF DELETE = 'X'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'DEF'.
SCREEN-ACTIVE = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
IF UPDATE = 'X'.
SELECT SINGLE * FROM ZDESKDLC
INTO lW_SELECT
WHERE CCODE = CCOD AND DESK_CODE = DESKCODE.
MOVE LW_SELECT-CCODE TO CCOD1.
MOVE LW_SELECT-DESK_CODE TO DESKCD.
move LW_select-SR_MANAGEMENT to SR_MANAG.
MOVE LW_SELECT-Last_name TO LASTNAME.
MOVE LW_SELECT-FIRST_NAME TO FIRSTNM.
move LW_select-DEPARTMENT to DEPART.
move LW_select-ADMIN_SYSTEM to ADM_SYS.
move LW_select-RACF_ID to RACF_ID.
move LW_select-OPEN_DATE to OPEN_DT.
move LW_select-CLOSE_DATE to CLOSE_DT.
move LW_select-SAP_USER_ID to SAPUSRID.
*FREE MEMORY ID 'back'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'ABC'.
SCREEN-ACTIVE = '0'.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
----
AT SELECTION-SCREEN.
----
AT SELECTION-SCREEN.
IF UPDATE = 'X'.
*clear: lastname,firstnm.
clear lw_update.
LW_UPDATE-SR_MANAGEMENT = SR_MANAG.
LW_UPDATE-LAST_NAME = LASTNAME.
LW_UPDATE-FIRST_NAME = FIRSTNM.
LW_UPDATE-DEPARTMENT = DEPART.
LW_UPDATE-ADMIN_SYSTEM = ADM_SYS.
LW_UPDATE-RACF_ID = RACF_ID.
LW_UPDATE-OPEN_DATE = OPEN_DT.
LW_UPDATE-CLOSE_DATE = CLOSE_DT.
LW_UPDATE-SAP_USER_ID = SAPUSRID.
SELECT SINGLE * FROM ZDESKDLC
INTO lW_SELECT
WHERE CCODE = CCOD1 and
DESK_CODE = DESKCD OR CCODE = CCOD AND DESK_CODE = DESKCODE.
move LW_select-SR_MANAGEMENT to SR_MANAG.
MOVE LW_SELECT-Last_name TO LASTNAME.
MOVE LW_SELECT-FIRST_NAME TO FIRSTNM.
move LW_select-DEPARTMENT to DEPART.
move LW_select-ADMIN_SYSTEM to ADM_SYS.
move LW_select-RACF_ID to RACF_ID.
move LW_select-OPEN_DATE to OPEN_DT.
move LW_select-CLOSE_DATE to CLOSE_DT.
move LW_select-SAP_USER_ID to SAPUSRID.
CLEAR LW_SELECT.
ENDIF.
----
START-OF-SELECTION
----
start-of-selection.
SET PF-STATUS 'BUTTON'.
DELETE QUERY
IF DELETE = 'X'.
DELETE from zdeskdlc where
CCODE = CCOD AND
DESK_CODE = DESKCODE.
IF SY-SUBRC = 0.
MESSAGE S001(zjig)." WITH 'Data Delete successfully'.
ELSE.
MESSAGE S002(zjig)." WITH 'NO RECORD FOUND'.
ENDIF.
ENDIF.
UPDATE QUERY
IF UPDATE = 'X'.
UPDATE zdeskdlc SET SR_MANAGEMENT = LW_UPDATE-SR_MANAGEMENT
LAST_NAME = LW_UPDATE-LAST_NAME
FIRST_NAME = LW_UPDATE-FIRST_NAME
DEPARTMENT = LW_UPDATE-DEPARTMENT
ADMIN_SYSTEM = LW_UPDATE-ADMIN_SYSTEM
RACF_ID = LW_UPDATE-RACF_ID
OPEN_DATE = LW_UPDATE-OPEN_DATE
CLOSE_DATE = LW_UPDATE-CLOSE_DATE
SAP_USER_ID = LW_UPDATE-SAP_USER_ID
WHERE CCODE = CCOD1
AND DESK_CODE = DESKCD.
IF SY-SUBRC = 0.
MESSAGE S003(zjig)." WITH 'data modified successfully'.
ENDIF.
CLEAR LW_UPDATE.
ENDIF.
*END-OF-SELECTION.
END-OF-SELECTION.
CLEAR: SR_MANAG, LASTNAME, FIRSTNM, DEPART, ADM_SYS, RACF_ID, OPEN_DT, CLOSE_DT, SAPUSRID.
FREE MEMORY.
set parameter id 'DEF' field CCOD1.
set parameter id 'DEF' field DESKCD.
set parameter id 'DEF' field SR_MANAG.
set parameter id 'DEF' field LASTNAME.
set parameter id 'DEF' field FIRSTNM.
set parameter id 'DEF' field DEPART.
set parameter id 'DEF' field ADM_SYS.
set parameter id 'DEF' field RACF_ID.
set parameter id 'DEF' field OPEN_DT.
set parameter id 'DEF' field CLOSE_DT.
set parameter id 'DEF' field SAPUSRID.
10-16-2007 5:09 AM
hi vishal,
u have to use AT USER-COMMAND event for button of GUI status in report program. Create a button in GUI status, assign the function code for example FCODE.
Then in ur report program, write like this.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'FCODE'.
........................... " Your Logic
ENDCASE.
sy-ucomm catches all the function codes of the system.
For further reference, check these links.
http://help.sap.com/saphelp_47x200/helpdata/en/9f/dba3ae35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/9f/dba2c435c111d1829f0000e829fbfe/frameset.htm
reward if useful,
Harimanjesh AN
10-16-2007 5:24 PM
You're not actually writing anything to the list screen so this screen isn't showing up. Do you want the buttons on the selection screen or on a following screen?
10-16-2007 5:42 PM
Hi Kevi,
Thanks for reply.....
I want to button on left side corner.... so its possible for that....
Vishal
10-16-2007 5:47 PM
Yes, just write something to the screen.
WRITE: / 'Please choose an option'.
If you would rather have them show up on the selection screen, use
selection-screen function key 1.
selection-screen function key 2.
when you are defining the selection screen. You will then have to respond to these in the AT SELECTION-SCREEN event.
case ucomm.
when 'FC01'.
do something
when 'FC02'.
do something else
endcase.
10-16-2007 7:30 PM
Hi Kevi,
I follow ur coding in my report, its working fine now i have to see button on left side corner but when i click on delete button or update button so both function not working, after i see in debug mode so debug point that function not working is at selection screen, i tried also at user command......
so in which event i write for delete and update function....
Vishal
Message was edited by:
VISHAL BHARDWAJ
10-17-2007 6:38 PM
Hi Kevi,
I follow ur code its working fine. Thank you very much.
vishal