2008 Jul 29 11:16 AM
Hi,
i m calling screen from report and and in output where does my pf-status ok_code (for buttons in application toolbar of report) will be set.
when i m clicking button (back, exit ,fagr )in application tool bar they r not working.
so plzz help me out.
my code is....
START-OF-SELECTION.
SET PF-STATUS 'S100'.
WRITE : '//'.
IF sy-ucomm IS INITIAL .
SET USER-COMMAND 'GETSCR' .
ENDIF .
AT USER-COMMAND .
CASE SY-UCOMM.
WHEN 'GETSCR'.
CLEAR SY-UCOMM.
CALL SCREEN '0100'.
WHEN 'FAGR'.
...................................
WHEN 'SAGR' .
WHEN 'BACK'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'CANC'.
LEAVE TO SCREEN 0.
ENDCASE.
\[removed by moderator\]
Regards,
Devi.
Edited by: Jan Stallkamp on Jul 29, 2008 5:29 PM
Hi,
i m calling screen from report and and in output where does my pf-status ok_code (for buttons in application toolbar of report) will be set.
when i m clicking button (back, exit ,fagr )in application tool bar they r not working.
so plzz help me out.
my code is....
START-OF-SELECTION.
SET PF-STATUS 'S100'.
WRITE : '//'.
IF sy-ucomm IS INITIAL .
SET USER-COMMAND 'GETSCR' .
ENDIF .
AT USER-COMMAND .
CASE SY-UCOMM.
WHEN 'GETSCR'.
CLEAR SY-UCOMM.
CALL SCREEN '0100'.
WHEN 'FAGR'.
...................................
WHEN 'SAGR' .
WHEN 'BACK'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'CANC'.
LEAVE TO SCREEN 0.
ENDCASE.
\[removed by moderator\]
Regards,
Devi.
Edited by: Jan Stallkamp on Jul 29, 2008 5:29 PM
2008 Jul 29 11:18 AM
hi use this..
START-OF-SELECTION.
SET PF-STATUS 'S100'.
AT USER-COMMAND .
CASE SY-UCOMM.
WHEN 'GETSCR'.
CALL SCREEN '0100'.
WHEN 'FAGR'.
...................................
WHEN 'SAGR' .
WHEN 'BACK'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'CANC'.
LEAVE TO SCREEN 0.
ENDCASE.
2008 Jul 29 11:19 AM
this will help u
tables :BUT000 .
type-pools SLIS.
data : IT_ZEFL_BP_LOCATION type standard table of ZEFL_BP_LOCATION
initial size 0,
IT_BUT000 type standard table of BUT000
initial size 0.
data WA_ZEFL_BP_LOCATION type ZEFL_BP_LOCATION.
data : PARTNER_NO type CRMT_PARTNER_NO,
LOCATION type LGORT_D,
PLANT type WERKS_D,
ACTUAL_PLANT type ZWERKS_D.
data : V_RC type SY-SUBRC.
data : WA_ZEFL_BP_LOCN_LOG type ZEFL_BP_LOCN_LOG.
selection-screen begin of block BLK1 with frame title TEXT-001.
parameters:PR_PART type BUT000-PARTNER.
selection-screen end of block BLK1 .
at selection-screen on exit-command.
if SY-UCOMM = 'ECAN' or SY-UCOMM = 'ENDE' or SY-UCOMM = 'E'
or SY-UCOMM = 'CCAN' or SY-UCOMM = 'CEND' or SY-UCOMM = 'CBAC'.
leave program.
endif.
start-of-selection.
get ZEFL_BP_LOCATION
perform GET_ZEFL_BP_LOCATION.
if SY-SUBRC = 0.
read table IT_ZEFL_BP_LOCATION into WA_ZEFL_BP_LOCATION
index 1.
call screen 2000 starting at 0 8.
else.
perform GET_BUT000. " Get customer Table
if SY-SUBRC = 0.
clear wa_zemplimit.
call screen 2000 starting at 0 8.
else.
message 'Invalid Partner Code' type 'E'.
endif.
endif.
&----
*& Form GET_ZEFL_BP_LOCATION
&----
text
----
form GET_ZEFL_BP_LOCATION .
call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
INPUT = PR_PART
importing
OUTPUT = PR_PART.
.
select * from ZEFL_BP_LOCATION
into table IT_ZEFL_BP_LOCATION
where PARTNER_NO = PR_PART.
endform. " GET_ZEFL_BP_LOCATION
&----
*& Form GET_KNA1
&----
text
----
--> p1 text
<-- p2 text
----
form GET_BUT000 .
select * from BUT000
into table IT_BUT000
where PARTNER = PR_PART.
endform. " GET_KNA1
&----
*& Module USER_COMMAND_2000 INPUT
&----
text
----
module USER_COMMAND_2000 input.
case SY-UCOMM.
when 'SAVE'.
perform UPDATE_LOG.
when 'REJECT'.
message 'Not updated' type 'I'.
call selection-screen 1000.
endcase.
endmodule. " USER_COMMAND_2000 INPUT
&----
*& Module STATUS_2000 OUTPUT
&----
text
----
module STATUS_2000 output.
SET PF-STATUS 'STANDARD'.
SET TITLEBAR 'xxx'.
perform GET_ZEFL_BP_LOCATION.
if SY-SUBRC = 0.
read table IT_ZEFL_BP_LOCATION into WA_ZEFL_BP_LOCATION
index 1.
endif.
PARTNER_NO = PR_PART.
if PARTNER_NO ge 80000.
loop at screen .
if SCREEN-NAME = 'LOCATION'.
SCREEN-INPUT = '0'.
SCREEN-OUTPUT = '0'.
modify screen.
endif.
modify screen.
endloop.
endif.
LOCATION = WA_ZEFL_BP_LOCATION-LOCATION.
PLANT = WA_ZEFL_BP_LOCATION-PLANT.
ACTUAL_PLANT = WA_ZEFL_BP_LOCATION-ACTUAL_PLANT.
endmodule. " STATUS_2000 OUTPUT
&----
*& Form UPDATE_LOG
&----
text
----
form UPDATE_LOG .
WA_ZEFL_BP_LOCN_LOG-ZDATE = SY-DATUM.
WA_ZEFL_BP_LOCN_LOG-ZTIME = SY-UZEIT.
WA_ZEFL_BP_LOCN_LOG-USER_ID = SY-UNAME.
WA_ZEFL_BP_LOCN_LOG-PARTNER_NO = PARTNER_NO.
WA_ZEFL_BP_LOCN_LOG-LOCATION = LOCATION.
WA_ZEFL_BP_LOCN_LOG-PLANT = PLANT.
WA_ZEFL_BP_LOCN_LOG-ACTUAL_PLANT = ACTUAL_PLANT.
WA_ZEFL_BP_LOCATION-PARTNER_NO = PARTNER_NO.
WA_ZEFL_BP_LOCATION-LOCATION = LOCATION.
WA_ZEFL_BP_LOCATION-PLANT = PLANT.
WA_ZEFL_BP_LOCATION-ACTUAL_PLANT = ACTUAL_PLANT.
update ZEFL_BP_LOCATION from WA_ZEFL_BP_LOCATION.
if SY-SUBRC ne 0.
insert into ZEFL_BP_LOCATION values WA_ZEFL_BP_LOCATION.
V_RC = 1.
endif.
if V_RC = 1.
WA_ZEFL_BP_LOCN_LOG-TYPE = 'N'.
else.
WA_ZEFL_BP_LOCN_LOG-TYPE = 'M'.
endif.
insert into ZEFL_BP_LOCN_LOG values WA_ZEFL_BP_LOCN_LOG.
message 'Entry Updated' type 'I'.
call selection-screen 1000.
call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
INPUT = PR_PART
importing
OUTPUT = PR_PART.
.
endform. " UPDATE_LOG
Regards
Anbu
2008 Jul 29 11:23 AM
hi,
If you have created your own PF-STATUS then you will have to define the actions need to performed when a ok_code is triggered. Thats the reason the back, exit, cancel buttons wont work in the called screen.
SAVE_OK = OK_CODE.
CASE SAVE_OK.
WHEN 'SALL'.
PERFORM mark_all_checkboxes.
WHEN 'DALL'.
PERFORM demark_all_checkboxes.
WHEN 'F15'. " Function code for Back button
LEAVE SCREEN.
WHEN '&F12'. " Function code for Exit button
LEAVE PROGRAM.
ENDCASE.
2008 Jul 29 11:23 AM
Hi,
U have to set the code for the buttons in the screen PBO and PAI.
Module PBO_200.
Set pf_status 'STATUS'.
in PAI of 200.
case sy-ucomm.
when 'save'.
ur code.
when 'back'.
leave to screen 0.
endcase.
Hope it helps you.
2008 Jul 29 11:24 AM
Hi,
After set screen 0, you can leave the screen (100 ) by giving LEAVE SCREEN Statement.
2008 Jul 29 11:26 AM
Hi Devi Raju,
The report should of this format:
start-of-selection.
call screen 100.in screen 100 Flow logic:
PBO.
module status_100.
PAI.
module user_command.in the report:
module status_100.
set pf-status 'STAT'.
module user_command.
CASE SY-UCOMM.
WHEN 'GETSCR'.
CLEAR SY-UCOMM.
CALL SCREEN '0100'.
WHEN 'FAGR'.
...................................
WHEN 'SAGR' .
WHEN 'BACK'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'CANC'.
LEAVE TO SCREEN 0.
ENDCASE.So, your Usercommand should be PAI.
Regards,
Shailaja
2008 Jul 29 12:25 PM
START-OF-SELECTION.
SET PF-STATUS 'STATUS'.
AT USER-COMMAND .
CASE SY-UCOMM.
WHEN 'GETSCR'.
CALL SCREEN '1000'.
WHEN 'BACK' or 'EXIT' or 'CANC'.
LEAVE SCREEN.
ENDCASE.
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |