06-30-2006 2:10 AM
Hello experts,
I am confused as to why when I press the BACK button in my report goes back to the source code or SE38 screen. I want it that when I press the back button, it goes to the selection-screen. How do I do this guys?
Again, thanks a lot and have a nice day!
06-30-2006 4:59 AM
Hi,
I think this should work just write-
LEAVE TO TRANSACTION <name of ur report TXN>.
or
CALL TRANSACTION <name of ur report TXN>.
Thanks
Seema.
06-30-2006 2:16 AM
Hi Viray,
The back button takes you to the previous screen.
If u run the report from se38 editor and you clikc the back bt from the report it will take you to se38 editor.
So as the case of selection screen.
Rgds,
Jothi.
06-30-2006 2:59 AM
That will be the case, if you're executing the program from SE38. Try creating a Tcode for your program and execute it using the TCode.
However, if you are executing a dialog program you should catch the sy-ucomm and do some case statements with it.
06-30-2006 3:04 AM
Hi guys,
This is not the case before. After I modified my report to have 2 selection-screen(depending on the status of the user)it behaved this way. Any help would be appreciated. Thanks a lot guys and have a nice day!
06-30-2006 4:24 AM
Hi,
If this is the case.
Then u define a screen number to ur selection-screen and call that selection-screen.
Then u catch the sy-ucomm and check if 'back' is pressed then go to that screen .
Hope it helps..
Cheers,
Simha.
06-30-2006 4:34 AM
Hi Narasimha,
How do I do that?how do I capture the value of BACK? Thanks again!
06-30-2006 4:45 AM
I am confused here, by default the BACK button will take you to the selection screen and not the source code. Have you attached your own PF-STATUS here.
If yes can you post the code here, you might be using LEAVE PROGRAM somewhere.
Regards,
Ravi
06-30-2006 4:51 AM
Hi Viray,
This code works. Try it out.
MODULE pai INPUT.
if sy-ucomm = 'BACK'.
LEAVE TO SCREEN 0.
endif.
ENDMODULE.
Mark useful answers.
Regards,
Tanuja.
Message was edited by: Tanuja Sarraju
Message was edited by: Tanuja Sarraju
06-30-2006 4:59 AM
Hi,
I think this should work just write-
LEAVE TO TRANSACTION <name of ur report TXN>.
or
CALL TRANSACTION <name of ur report TXN>.
Thanks
Seema.
06-30-2006 6:26 AM
Hi guys,
Below is my code:
REPORT zdealer_contacts NO STANDARD PAGE HEADING
LINE-COUNT 0
LINE-SIZE 255
MESSAGE-ID zz.
TYPE-POOLS: slis.
*----
Data Dictionary Tables
*----
TABLES: zts0001,
zsoemailid,
kna1,
zts_stpgeoloc.
*----
Includes
*----
*INCLUDE zun_globe_header. " Globe Telecom Report Header
*----
Structures, internal tables and data declarations
*----
TYPES: BEGIN OF t_upload,
kunnr LIKE zts0001-kunnr,
zaddress(100),
zcperson(30),
zcnumber(18),
END OF t_upload.
TYPES: BEGIN OF t_error,
kunnr LIKE zts0001-kunnr,
zaddress(100),
zcperson(30),
zcnumber(18),
END OF t_error.
TYPES: BEGIN OF t_kna1,
name1 LIKE kna1-name1,
END OF t_kna1.
TYPES: BEGIN OF t_zts0001,
kunnr LIKE zts0001-kunnr,
cdseq LIKE zts0001-cdseq,
zaddress LIKE zts0001-zaddress,
zcperson LIKE zts0001-zcperson,
zcnumber LIKE zts0001-zcnumber,
zactivated LIKE zts0001-zactivated,
name1 LIKE kna1-name1,
END OF t_zts0001.
DATA: it_upload TYPE STANDARD TABLE OF t_upload WITH HEADER LINE,
it_error TYPE STANDARD TABLE OF t_error WITH HEADER LINE,
it_kna1 TYPE STANDARD TABLE OF t_kna1 WITH HEADER LINE,
it_zts0001 TYPE STANDARD TABLE OF t_zts0001 WITH HEADER LINE.
DATA: it_ztstemp LIKE zts0001 OCCURS 100 WITH HEADER LINE,
it_ztstemp_gloc LIKE zts_stpgeoloc OCCURS 100 WITH HEADER LINE.
*AVH - start of insertion - 04/18/06
FIELD-SYMBOLS: <fs_zts0001> LIKE LINE OF it_zts0001.
**ALV Declarations
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
g_repid LIKE sy-repid,
gs_layout TYPE slis_layout_alv,
gt_list_top_of_page TYPE slis_t_listheader,
gt_events TYPE slis_t_event WITH HEADER LINE,
gt_print TYPE slis_print_alv.
CONSTANTS: gc_top TYPE slis_formname VALUE 'TOP_OF_PAGE',
gc_topsum TYPE slis_formname VALUE 'TOP_OF_LIST',
gc_ucomm TYPE slis_formname VALUE 'USER_COMMAND'.
*AVH - end of insertion
*----
Variables
*----
DATA: v_kunnr LIKE zts0001-kunnr,
v_title(100) TYPE c,
gc_kunnr(06) TYPE c,
v_compflag(1) TYPE c,
v_flag(1).
*----
Selection Screen
*----
*AVH - start of modification - 06/27/06
*if user is controller, selection-screen 500 will be called else,
*selection-scren 1500 will be called.
*selection-screen for controllers
SELECTION-SCREEN BEGIN OF SCREEN 500.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: pr_upld RADIOBUTTON GROUP grp2 USER-COMMAND ucomm1.
SELECTION-SCREEN COMMENT 2(20) text-007 FOR FIELD pr_upld.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 03(15) text-a11 FOR FIELD p_flnme.
PARAMETERS: p_flnme LIKE rlgrap-filename DEFAULT 'C:\'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: pr_list1 RADIOBUTTON GROUP grp2.
SELECTION-SCREEN COMMENT 2(7) text-003 FOR FIELD pr_list1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN END OF SCREEN 500.
*selection-screen for non-controllers.
SELECTION-SCREEN BEGIN OF SCREEN 1500.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(22) text-002 FOR FIELD p_dcode.
PARAMETERS: p_dcode LIKE vbak-kunnr,
p_name1 LIKE kna1-name1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: pr_list2 RADIOBUTTON GROUP grp USER-COMMAND ucomm2.
SELECTION-SCREEN COMMENT 2(7) text-003 FOR FIELD pr_list2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: pr_add RADIOBUTTON GROUP grp.
SELECTION-SCREEN COMMENT 2(3) text-005 FOR FIELD pr_add.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: pr_edit RADIOBUTTON GROUP grp.
SELECTION-SCREEN COMMENT 2(4) text-006 FOR FIELD pr_edit.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 03(20) text-a12 FOR FIELD p_code.
PARAMETERS: p_code LIKE zts0001-cdseq.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF SCREEN 1500.
INITIALIZATION.
SELECT SINGLE kunnr comp_flag INTO (gc_kunnr,v_compflag)
FROM zsoemailid
WHERE bname = sy-uname.
IF sy-subrc <> 0.
MESSAGE i000 WITH
'You are not authorised to use this transaction'.
LEAVE PROGRAM.
ENDIF.
IF v_compflag = 'X'.
CALL SCREEN 500.
ELSE.
CALL SCREEN 1500.
ENDIF.
*AVH - end of modification
*----
AT SELECTION-SCREEN OUTPUT.
*----
PERFORM authority_check.
added by derick 050125
**-changed by weng rulloda 06012005
*AVH - start of insertion - 05/22/06
*no need to get value of kunnr from global memory
*since gc_kunnr would be filled via the select statement below
GET PARAMETER ID 'KUN' FIELD gc_kunnr.
*AVH - end of insertion
p_dcode = gc_kunnr.
*AVH - start of insertion - 05/22/06
**fetch the respective description of dealer based from p_dcode
**and put in parameter p_name1
SELECT SINGLE name1 FROM kna1
INTO p_name1
WHERE kunnr = p_dcode.
*AVH - end of insertion
*AVH - start of insertion - 05/22/06
**selection-screen parameters is based if user is controller or not.
**created new selection-screen conditions based from orig. code
v_kunnr = gc_kunnr.
LOOP AT SCREEN.
IF screen-name = 'P_DCODE'.
screen-input = '0'.
screen-output = '1'.
MODIFY SCREEN.
ELSEIF screen-name = 'P_NAME1'.
screen-input = '0'.
screen-output = '1'.
MODIFY SCREEN.
ELSEIF screen-name = 'P_CODE'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
IF pr_list2 = 'X' OR pr_add = 'X'.
LOOP AT SCREEN.
IF screen-name = 'P_CODE'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSEIF pr_edit = 'X'.
LOOP AT SCREEN.
IF screen-name = 'P_CODE'.
screen-input = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
IF pr_list1 = 'X'.
LOOP AT SCREEN.
IF screen-name = 'P_FLNME'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
*AVH - end of modification
*----
AT SELECTION-SCREEN.
*----
CHECK sy-ucomm = 'UCOMM1' OR sy-ucomm = 'UCOMM2'.
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_flnme.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_flnme.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
mask = ',.,..'
mode = 'O'
title = 'File Selection'
IMPORTING
filename = p_flnme
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_code.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_code.
DATA : BEGIN OF itab_list OCCURS 0,
kunnr LIKE zts0001-kunnr,
cdseq LIKE zts0001-cdseq,
zaddress LIKE zts0001-zaddress,
zcperson LIKE zts0001-zcperson,
zcnumber LIKE zts0001-zcnumber,
END OF itab_list.
DATA: tab_fields LIKE dfies OCCURS 0 WITH HEADER LINE,
tab_valuetab(100) TYPE c OCCURS 0 WITH HEADER LINE.
DATA: tab_dynnr TYPE sy-dynnr.
DATA: BEGIN OF tab_return_tab OCCURS 0.
INCLUDE STRUCTURE ddshretval.
DATA: END OF tab_return_tab.
DATA: progname LIKE sy-repid.
CLEAR: tab_valuetab[], tab_fields[].
SELECT kunnr cdseq zaddress zcperson zcnumber
INTO CORRESPONDING FIELDS OF TABLE itab_list
FROM zts0001
WHERE kunnr = v_kunnr.
tab_dynnr = sy-dynnr.
tab_fields-tabname = 'ZTS0001'.
tab_fields-fieldname = 'KUNNR'.
APPEND tab_fields.
tab_dynnr = sy-dynnr.
tab_fields-tabname = 'ZTS0001'.
tab_fields-fieldname = 'CDSEQ'.
APPEND tab_fields.
tab_fields-tabname = 'ZTS0001'.
tab_fields-fieldname = 'ZADDRESS'.
APPEND tab_fields.
tab_fields-tabname = 'ZTS0001'.
tab_fields-fieldname = 'ZCPERSON'.
APPEND tab_fields.
tab_fields-tabname = 'ZTS0001'.
tab_fields-fieldname = 'ZCNUMBER'.
APPEND tab_fields.
LOOP AT itab_list.
tab_valuetab = itab_list-kunnr.
APPEND tab_valuetab.
tab_valuetab = itab_list-cdseq.
APPEND tab_valuetab.
tab_valuetab = itab_list-zaddress.
APPEND tab_valuetab.
tab_valuetab = itab_list-zcperson.
APPEND tab_valuetab.
tab_valuetab = itab_list-zcnumber.
APPEND tab_valuetab.
ENDLOOP.
progname = sy-repid.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CDSEQ'
dynpprog = progname
dynpnr = '1000'
dynprofield = 'P_CODE'
TABLES
value_tab = tab_valuetab
field_tab = tab_fields
return_tab = tab_return_tab
EXCEPTIONS
OTHERS = 0.
*----
START-OF-SELECTION.
*----
IF pr_edit = 'X' AND p_code IS INITIAL.
MESSAGE i008 WITH 'Please specify a ship-to code.'.
LEAVE LIST-PROCESSING.
ENDIF.
PERFORM get_data.
IF pr_upld = 'X'.
PERFORM upload_file.
ELSEIF pr_add = 'X'.
PERFORM add_record.
ELSEIF pr_edit = 'X'.
PERFORM edit_record.
ELSEIF pr_list1 = 'X' OR pr_list2 = 'X'.
PERFORM display_alv.
PERFORM display_records.
ENDIF.
*----
END-OF-SELECTION.
*----
&----
*& Form authority_check
&----
FORM authority_check.
CALL FUNCTION 'AUTHORITY_CHECK'
EXPORTING
field1 = 'TCD' "MDM
object = 'S_TCODE'
user = sy-uname
value1 = 'ZMEN'
VALUE3 = '01' MDM
EXCEPTIONS
user_dont_exist = 1
user_is_authorized = 2
user_not_authorized = 3
user_is_locked = 4
OTHERS = 5.
IF sy-subrc NE 2.
**-added by weng 04/28/2006
**-if user is not authorized to use dealer portal check if he is
**- authorized to use the tcode ZDCONTACT
CALL FUNCTION 'AUTHORITY_CHECK'
EXPORTING
field1 = 'TCD' "MDM
object = 'S_TCODE'
user = sy-uname
value1 = 'ZDCONTACT'
VALUE3 = '01' MDM
EXCEPTIONS
user_dont_exist = 1
user_is_authorized = 2
user_not_authorized = 3
user_is_locked = 4
OTHERS = 5.
**-weng
IF sy-subrc NE 2.
MESSAGE i000 WITH
'You are not authorised to use this transaction'.
LEAVE PROGRAM.
ENDIF.
ENDIF.
ENDFORM. " AUTHORITY_CHECK
&----
*& Form get_data
&----
FORM get_data.
*AVH - start of insertion - 04/19/06
**records selected from table zts0001 that has been marked as
**activated will be fetched otherwise, ignore.
IF v_kunnr IS INITIAL.
SELECT * INTO CORRESPONDING FIELDS OF TABLE it_zts0001
FROM zts0001.
ELSEIF v_compflag = 'X'.
SELECT * INTO CORRESPONDING FIELDS OF TABLE it_zts0001
FROM zts0001.
ELSE.
SELECT * INTO CORRESPONDING FIELDS OF TABLE it_zts0001
FROM zts0001
WHERE kunnr = v_kunnr.
ENDIF.
*AVH - start of insertion - 05/24/06
**fetch name based from kunnr and put in itab
LOOP AT it_zts0001 ASSIGNING <fs_zts0001>.
SELECT SINGLE name1 FROM kna1
INTO <fs_zts0001>-name1
WHERE kunnr = <fs_zts0001>-kunnr.
ENDLOOP.
*AVH - end of insertion
ENDFORM. " get_data
&----
*& Form Upload_file
&----
FORM upload_file.
DATA: lv_seq(5) TYPE n,
lv_ctr(5) TYPE c,
lv_kunnr LIKE it_upload-kunnr.
v_title = 'Upload from File'.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_flnme
filetype = 'DAT'
TABLES
data_tab = it_upload
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
MESSAGE i008 WITH 'File does not exist.'.
STOP.
ENDIF.
CHECK sy-subrc EQ 0.
DELETE it_upload
WHERE zaddress EQ space
AND zcperson EQ space
AND zcnumber EQ space.
SORT it_zts0001 BY kunnr ASCENDING cdseq DESCENDING.
SORT it_upload BY kunnr ASCENDING.
LOOP AT it_upload.
lv_kunnr = it_upload-kunnr.
AT NEW kunnr.
SELECT SINGLE kunnr FROM zsoemailid
INTO lv_kunnr
WHERE kunnr = it_upload-kunnr.
AVH - start of insertion - 06/30/06
if it_upload-kunnr is not found in table ZSOEMAILID, it will
not be included in the upload.
IF sy-subrc <> 0.
DELETE it_upload.
CLEAR it_upload.
CONTINUE.
ENDIF.
AVH - end of insertion
READ TABLE it_zts0001 WITH KEY kunnr = lv_kunnr.
IF sy-subrc EQ 0.
lv_seq = it_zts0001-cdseq.
ELSE.
CLEAR lv_seq.
ENDIF.
ENDAT.
IF it_upload-zaddress IS INITIAL.
MOVE-CORRESPONDING it_upload TO it_error.
APPEND it_error.
CLEAR it_error.
ELSE.
REPLACE '"' WITH '' INTO it_upload-zaddress.
REPLACE '"' WITH '' INTO it_upload-zaddress.
REPLACE '"' WITH '' INTO it_upload-zcperson.
REPLACE '"' WITH '' INTO it_upload-zcperson.
CONDENSE it_upload-zaddress.
CONDENSE it_upload-zcperson
.
ADD 1 TO lv_seq.
MOVE: it_upload-kunnr TO it_ztstemp-kunnr,
lv_seq TO it_ztstemp-cdseq,
it_upload-zaddress TO it_ztstemp-zaddress,
it_upload-zcperson TO it_ztstemp-zcperson,
it_upload-zcnumber TO it_ztstemp-zcnumber,
'X' TO it_ztstemp-zactivated,
sy-uname TO it_ztstemp-zcreated_by,
sy-datum TO it_ztstemp-zchanged_date.
MOVE-CORRESPONDING it_ztstemp TO it_ztstemp_gloc.
APPEND: it_ztstemp, it_ztstemp_gloc.
CLEAR: it_ztstemp, it_ztstemp_gloc.
ENDIF.
ENDLOOP.
IF NOT it_ztstemp[] IS INITIAL.
INSERT zts0001 FROM TABLE it_ztstemp.
INSERT zts_stpgeoloc FROM TABLE it_ztstemp_gloc.
WRITE:/ 'List of Records Uploaded.' COLOR 1 INTENSIFIED ON.
FORMAT COLOR 1 INTENSIFIED OFF.
WRITE:/(020) 'Dealer Code' CENTERED,
(007) 'Code' CENTERED,
(100) 'Address',
(030) 'Contact Person' CENTERED,
(018) 'Contact Number' CENTERED.
FORMAT COLOR OFF.
WRITE:/(179) sy-uline.
DESCRIBE TABLE it_ztstemp LINES lv_ctr.
SORT it_ztstemp BY kunnr cdseq.
LOOP AT it_ztstemp.
WRITE:/(020) it_ztstemp-kunnr,
(007) it_ztstemp-cdseq,
(100) it_ztstemp-zaddress,
(030) it_ztstemp-zcperson,
(018) it_ztstemp-zcnumber.
ENDLOOP.
SKIP 1.
WRITE:/ 'TOTAL :', lv_ctr.
ENDIF.
IF NOT it_error[] IS INITIAL.
SKIP 2.
FORMAT COLOR 1 INTENSIFIED OFF.
WRITE:/(020) 'Dealer Code' CENTERED,
(030) 'Contact Person' CENTERED,
(018) 'Contact Number' CENTERED.
FORMAT COLOR OFF.
WRITE:/(070) sy-uline.
DESCRIBE TABLE it_error LINES lv_ctr.
SORT it_error BY kunnr zcperson.
LOOP AT it_error.
WRITE:/ 'With No Address.' COLOR 6 INTENSIFIED ON.
WRITE:/(020) it_error-kunnr,
(030) it_error-zcperson,
(018) it_error-zcnumber.
ENDLOOP.
SKIP 1.
WRITE:/ 'TOTAL :', lv_ctr.
ENDIF.
ENDFORM. " Upload_file
&----
*& Form add_record
&----
FORM add_record.
v_title = ''.
IF NOT v_kunnr IS INITIAL.
SUBMIT zdealer_contacts_add_edit AND RETURN
WITH p_kunnr = v_kunnr
WITH p_name1 = p_name1 "AVH
WITH p_cdseq = space
WITH p_flag = 'A'
WITH p_addr = it_zts0001-zaddress
WITH p_pers = it_zts0001-zcperson
WITH p_numb = it_zts0001-zcnumber
VIA SELECTION-SCREEN.
ENDIF.
ENDFORM. " add_record
&----
*& Form edit_record
&----
FORM edit_record.
v_title = ''.
READ TABLE it_zts0001 WITH KEY kunnr = v_kunnr
cdseq = p_code.
IF sy-subrc EQ 0.
SUBMIT zdealer_contacts_add_edit AND RETURN
WITH p_kunnr = v_kunnr
WITH p_name1 = p_name1 "AVH
WITH p_cdseq = p_code
WITH p_flag = 'E'
WITH p_addr = it_zts0001-zaddress
WITH p_pers = it_zts0001-zcperson
WITH p_numb = it_zts0001-zcnumber
VIA SELECTION-SCREEN.
ELSE.
MESSAGE i008 WITH 'No record found.'.
ENDIF.
ENDFORM. " edit_record
&----
*& Form display_records
&----
*FORM display_records.
*
IF NOT it_zts0001[] IS INITIAL.
v_title = 'List of Dealer Contacts'.
*
FORMAT COLOR 1 INTENSIFIED OFF.
WRITE:/(020) 'Customer Number' CENTERED,
(007) 'Code' CENTERED,
(100) 'Address',
(030) 'Contact Person' CENTERED,
(018) 'Contact Number' CENTERED.
FORMAT COLOR OFF.
WRITE:/(179) sy-uline.
SORT it_zts0001 BY kunnr cdseq.
LOOP AT it_zts0001.
WRITE:/(020) it_zts0001-kunnr,
(007) it_zts0001-cdseq,
(100) it_zts0001-zaddress,
(030) it_zts0001-zcperson,
(018) it_zts0001-zcnumber.
ENDLOOP.
ELSE.
MESSAGE i008 WITH 'No records to display.'.
ENDIF.
*
*ENDFORM. " display_records
&----
*& Form display_alv
&----
FORM display_alv.
SORT it_zts0001 BY kunnr cdseq.
PERFORM f_build_layout USING gs_layout.
PERFORM f_init_fieldcat USING gt_fieldcat[].
PERFORM f_init_events USING 'TOP' gt_events[].
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_top_of_page = 'TOP_OF_PAGE'
i_callback_user_command = 'USER_COMMAND'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_events = gt_events[]
i_save = 'X'
it_sort = gt_sort
TABLES
t_outtab = it_zts0001[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " DISPLAY_ALV
----
FORM top_of_page *
----
........ *
----
FORM top_of_page.
*ALV Header declarations
DATA: t_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader,
t_line LIKE wa_header-info,
lv_title(60),
lv_user(60),
lv_date(10),
lv_time(10),
lv_time_n_date(30),
lv_dcode_n_name(150),
lv_dlr_n_desc(100),
ld_lines TYPE i,
ld_linesc(10) TYPE c.
Title
CLEAR: lv_title, wa_header.
MOVE sy-title TO lv_title.
wa_header-typ = 'H'.
wa_header-info = lv_title.
APPEND wa_header TO t_header.
CLEAR wa_header.
User
CLEAR: lv_user, wa_header.
CONCATENATE: 'Generated by:' sy-uname
INTO lv_user SEPARATED BY space.
wa_header-typ = 'A'.
wa_header-info = lv_user.
APPEND wa_header TO t_header.
CLEAR wa_header.
*Date and time
CLEAR: lv_date, lv_time.
WRITE: sy-datum TO lv_date MM/DD/YYYY,
sy-uzeit TO lv_time USING EDIT MASK '__:__:__'.
CONCATENATE: 'Generated on:' lv_date lv_time
INTO lv_time_n_date SEPARATED BY space.
wa_header-typ = 'A'.
wa_header-info = lv_time_n_date.
APPEND wa_header TO t_header.
CLEAR wa_header.
IF NOT v_kunnr IS INITIAL AND v_compflag IS INITIAL.
*Dealer code and name
CONCATENATE: 'Dealer:' p_dcode p_name1
INTO lv_dcode_n_name SEPARATED BY space.
wa_header-typ = 'A'.
wa_header-info = lv_dcode_n_name.
APPEND wa_header TO t_header.
CLEAR wa_header.
ENDIF.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
ENDFORM. " TOP_OF_PAGE
----
FORM f_build_layout *
----
........ *
----
--> %LAYOUT *
----
FORM f_build_layout USING %layout TYPE slis_layout_alv.
%layout-zebra = 'X'.
%layout-colwidth_optimize = 'X'.
ENDFORM. " F_BUILD_LAYOUT
----
FORM f_init_fieldcat *
----
........ *
----
--> %FIELDCAT *
----
FORM f_init_fieldcat USING %fieldcat TYPE slis_t_fieldcat_alv.
DATA: lc_fieldcat TYPE slis_fieldcat_alv.
CLEAR lc_fieldcat.
DEFINE m_field.
add 1 to lc_fieldcat-col_pos.
lc_fieldcat-fieldname = &1.
lc_fieldcat-outputlen = &2.
lc_fieldcat-seltext_l = &3.
lc_fieldcat-do_sum = &4.
lc_fieldcat-inttype = &5.
lc_fieldcat-hotspot = &6.
lc_fieldcat-fix_column = &7.
lc_fieldcat-ddictxt = 'L'.
lc_fieldcat-no_zero = 'X'.
append lc_fieldcat to %fieldcat.
END-OF-DEFINITION.
IF v_kunnr IS INITIAL.
m_field 'KUNNR' '5' 'Dealer Code' '' '' '' ''.
ENDIF.
IF v_compflag = 'X'.
m_field 'KUNNR' '5' 'Dealer Code' '' '' '' ''.
ENDIF.
IF v_compflag = 'X'.
m_field 'NAME1' '40' 'Dealer Name' '' '' '' ''.
ENDIF.
m_field 'CDSEQ' '05' 'Ship-To Code' '' '' '' ''.
m_field 'ZADDRESS' '100' 'Address' '' '' '' ''.
m_field 'ZCPERSON' '30' 'Contact Person' '' '' '' ''.
m_field 'ZCNUMBER' '18' 'Contact Number' '' '' '' ''.
IF v_kunnr IS INITIAL.
m_field 'NAME1' '40' 'Dealer Name' '' '' '' ''.
ENDIF.
m_field 'ZACTIVATED' '1' 'Activated' '' '' '' ''.
ENDFORM. " f_init_fieldcat
----
FORM f_init_events *
----
........ *
----
--> P_TYPE *
--> %EVENTS *
----
FORM f_init_events USING p_type CHANGING %events TYPE slis_t_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = %events
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc = 0.
PERFORM f_build_events USING: slis_ev_user_command.
IF p_type = 'TOP'.
PERFORM f_build_events USING: gc_top.
ELSEIF p_type = 'SUM'.
PERFORM f_build_events_sum USING: gc_topsum.
ENDIF.
ELSE.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " F_INIT_EVENTS
----
FORM f_build_events *
----
........ *
----
--> %EVENT *
----
FORM f_build_events USING %event.
READ TABLE gt_events WITH KEY name = %event.
IF sy-subrc = 0.
MOVE: %event TO gt_events-form.
MOVE 'USER_COMMAND' TO gt_events-form.
MODIFY gt_events INDEX sy-tabix.
ENDIF.
ENDFORM. " F_BUILD_EVENTS
06-30-2006 6:50 AM
Viray,
I couldn't see a PF-STATUS in your program. Can you try by defining PF-STATUS and give function code for the back button. I believe this way you can control your back button click in selection screen. Define that in initilization event.
I'm not able to do it since you are using custom tables.
rgds,
TM.
06-30-2006 6:54 AM
Hi viraylab,
1. First of all we should use
CALL SELECTION-SCREEN 500.
2. Secondly, i think, it will behave like this only,
bcos we
CALL
from intialization,
and after BACK,
it comes back to intialization (just after CALL),
then there is no further processing.
regards,
amit m.
06-30-2006 7:01 AM
06-30-2006 7:07 AM
Viray,
Can you try by delacring <b>SET PF-STATUS 'xxx'</b> in your initilization event and then in BACK button- user command, use the <b>CALL SELECTION SCREEN 500</b>. I believe this should satisfy your requirement.
Rgds,
TM.
06-30-2006 7:13 AM
Hi,
Just create a pf-status and for the screens you developed as selection screens and write the PAI modules for those.
for ex.
module PAI_500.
case sy-ucomm.
when 'BACK'.
LEAVE TO SCREEN 500.
endcase.
endmodule.
Offcourse,
you will have to write the PBO module to set
the respective pf statuses.
ex.
MODULE PBO_500.
set pf-status 'XXX'.
ENDMODULE.
Hope it helps.
Regards,
Shashank
06-30-2006 7:20 AM
Hi again,
I declared a PF-status for my report and named the back button simply as 'BACK'. Can you guys tell me the code for this?
Please note that I have 2 selection-screens. Again, thank you guys and have a nice day!
06-30-2006 7:21 AM
Hi again,
1. U can try like this.
2. just copy paste.
3. there are 3 screens,
1000 - default , and simply for definition purpose
500
1500
4.
report abc.
*----
1000 - SIMPLY
PARAMETERS : just(1) TYPE C.
*----
500
selection-screen begin of screen 500.
parameters : BUKRS LIKE T001-BUKRS.
selection-screen end of screen 500.
*----
1500
selection-screen begin of screen 1500.
parameters : b1500(20) type c.
selection-screen end of screen 1500.
*----
INITIALIZATION.
IF SY-DYNNR = '1000'.
YOUR IF CONDITION FOR 500, 1500
LEAVE TO SCREEN 500.
YOUR ENDIF
ENDIF.
*----
start-of-selection.
write 😕 'amit'.
regards,
amit m.
06-30-2006 7:45 AM
Hi Shashank,
Will that work in standard/classic reports?
Thanks again!
06-30-2006 7:49 AM
Viray,
Copy and paste this code and use this logic.
Rgds,
TM.
REPORT ztest_tm.
PARAMETERS: pr_upld RADIOBUTTON GROUP grp2 USER-COMMAND ucomm1.
PARAMETERS: pr_upld2 RADIOBUTTON GROUP grp2.
SELECTION-SCREEN BEGIN OF SCREEN 1500.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(22) text-002 FOR FIELD p_dcode.
PARAMETERS: p_dcode LIKE vbak-kunnr,
p_name1 LIKE kna1-name1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF SCREEN 1500.
INITIALIZATION.
SET PF-STATUS 'ABC'.
AT SELECTION-SCREEN.
IF sy-ucomm = 'BACK'.
CALL SELECTION-SCREEN '1500'.
ENDIF.