2007 Apr 19 10:29 AM
Hi,
.
Please help me in this.
In this Normal report my requirement is like this .
In this report i have to add some logic. Here before adding
that new logic to this report,
i have to maintain this complete report in one Push Button.
After that i have to add logic in this area .
For this existing report what is the process to add push button, and where i have to add that push button. And in that push button how can i add this program logic.
Please help me. Please place that push button logic here.
I am new to this area please help.
Report
**********************************
TABLES : /ivl/zmb_behdr,
/ivl/zmb_bndmas,
knvv.
----
Internal Tables *
----
DATA : BEGIN OF it_itab OCCURS 0,
kvgr3 LIKE knvv-kvgr3,
zztono LIKE /ivl/zmb_behdr-zztono,
boedate LIKE /ivl/zmb_behdr-boedate,
impdpsno LIKE /ivl/zmb_behdr-impdpsno,
totdtyval LIKE /ivl/zmb_behdr-totdtyval,
zzintrst LIKE /ivl/zmb_behdr-zzintrst,
zzdtyval LIKE /ivl/zmb_behdr-zzdtyval,
zzkunnr LIKE /ivl/zmb_behdr-zzkunnr,
bondregnno LIKE /ivl/zmb_bndmas-bondregnno,
bondno LIKE /ivl/zmb_behdr-bondno,
docno LIKE /ivl/zmb_behdr-docno,
*Begin of modification for change $01
ZZPLASLNO like /ivl/zmb_behdr-ZZPLASLNO,
*End of modification for change $01
END OF it_itab.
----
Global Workfields *
----
DATA : w_hdline TYPE i,
w_clrfmt TYPE i VALUE 1,
w_duty LIKE /ivl/zmb_behdr-zzdtyval,
w_int LIKE /ivl/zmb_behdr-zzintrst,
w_tot LIKE /ivl/zmb_behdr-totdtyval,
w_dtyval LIKE t001r_bf-amount..
----
Selection screen *
----
SELECTION-SCREEN : BEGIN OF BLOCK b001 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_boedt FOR /ivl/zmb_behdr-boedate OBLIGATORY,
s_kvgr3 FOR knvv-kvgr3 OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b001.
----
Screen Validation *
----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_boedt-low.
PERFORM boedate_listing CHANGING s_boedt-low.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_boedt-high.
PERFORM boedate_listing1 CHANGING s_boedt-high.
AT SELECTION-SCREEN .
PERFORM check_kvgr3.
----
Start of selection *
----
START-OF-SELECTION.
PERFORM fetch_data.
----
End of selection *
----
END-OF-SELECTION.
IF w_hdline = 0.
WRITE : ''(135).
ELSE.
PERFORM write_data.
ENDIF.
----
Top of page *
----
TOP-OF-PAGE.
PERFORM header.
&----
*& Form check_kvgr3
&----
text
----
--> p1 text
<-- p2 text
----
FORM check_kvgr3.
LOOP AT s_kvgr3.
CHECK s_kvgr3-option = 'EQ'.
SELECT SINGLE * FROM knvv
CLIENT SPECIFIED WHERE
mandt = sy-mandt AND
kvgr3 = s_kvgr3-low.
IF sy-subrc NE 0.
MESSAGE e000(38) WITH 'Select proper customer gp'.
ENDIF.
ENDLOOP.
LOOP AT s_kvgr3.
CHECK s_kvgr3-option = 'BT'.
SELECT SINGLE * FROM knvv
CLIENT SPECIFIED WHERE
mandt = sy-mandt AND
kvgr3 = s_kvgr3-low.
IF sy-subrc NE 0.
MESSAGE e000(38) WITH 'Select proper customer gp'.
ENDIF.
ENDLOOP.
LOOP AT s_kvgr3.
CHECK s_kvgr3-option = 'BT'.
SELECT SINGLE * FROM knvv
CLIENT SPECIFIED WHERE
mandt = sy-mandt AND
kvgr3 = s_kvgr3-low.
IF sy-subrc NE 0.
MESSAGE e000(38) WITH 'Select proper customer gp'.
ENDIF.
ENDLOOP.
ENDFORM. " check_kvgr3
&----
*& Form boedate_listing
&----
text
----
<--P_s_boedt_LOW text
----
FORM boedate_listing CHANGING p_s_boedt_low.
DATA : BEGIN OF it_boedate OCCURS 0,
boedate LIKE /ivl/zmb_behdr-boedate,
END OF it_boedate.
CLEAR it_boedate.
REFRESH it_boedate.
SELECT boedate INTO TABLE it_boedate
FROM /ivl/zmb_behdr.
SORT it_boedate BY boedate.
LOOP AT it_boedate.
IF it_boedate-boedate = ' '.
DELETE it_boedate.
ENDIF.
ENDLOOP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CPONO'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'sapcpono'
window_title = 'BOE Date Listing'
value_org = 'S'
display = ' '
TABLES
value_tab = it_boedate
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
ENDFORM. " boedate_listing
&----
*& Form boedate_listing1
&----
text
----
<--P_s_boedt_HIGH text
----
FORM boedate_listing1 CHANGING p_s_boedt_high.
DATA : BEGIN OF it_boedate OCCURS 0,
boedate LIKE /ivl/zmb_behdr-boedate,
END OF it_boedate.
CLEAR it_boedate.
REFRESH it_boedate.
SELECT boedate INTO TABLE it_boedate
FROM /ivl/zmb_behdr.
SORT it_boedate BY boedate.
LOOP AT it_boedate.
IF it_boedate-boedate = ' '.
DELETE it_boedate.
ENDIF.
ENDLOOP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CPONO'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'sapcpono'
window_title = 'BOE Date Listing'
value_org = 'S'
display = ' '
TABLES
value_tab = it_boedate
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
ENDFORM. " boedate_listing1
&----
*& Form fetch_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM fetch_data.
SELECT zztono boedate impdpsno totdtyval
*Begin of modification for change $01
zzintrst zzdtyval zzkunnr bondno docno
zzintrst zzdtyval zzkunnr bondno docno ZZPLASLNO
*End of modification for change $01
INTO CORRESPONDING FIELDS OF TABLE it_itab
FROM /ivl/zmb_behdr
WHERE doctype EQ 'GBOE'
AND boedate IN s_boedt
AND boestat NE 'X'. " Mahesh / 29.08.2003
LOOP AT it_itab.
call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
input = it_itab-ZZPLASLNO
IMPORTING
OUTPUT = it_itab-ZZPLASLNO.
.
w_dtyval = it_itab-zzdtyval.
CALL FUNCTION 'FI_ROUND_AMOUNT'
EXPORTING
amount_in = w_dtyval
company = '1970'
currency = 'INR'
IMPORTING
amount_out = w_dtyval
DIFFERENCE =
ROUNDING_UNIT =
.
it_itab-zzdtyval = w_dtyval.
MODIFY it_itab.
SELECT SINGLE bondregnno
INTO it_itab-bondregnno
FROM /ivl/zmb_bndmas
WHERE bondno = it_itab-bondno.
SELECT SINGLE kvgr3 INTO it_itab-kvgr3
FROM knvv
WHERE kunnr = it_itab-zzkunnr
AND kvgr3 IN s_kvgr3.
IF sy-subrc = 0 .
MODIFY it_itab TRANSPORTING bondregnno kvgr3.
w_duty = w_duty + it_itab-zzdtyval.
w_int = w_int + it_itab-zzintrst.
w_tot = w_tot + it_itab-totdtyval.
ELSE.
DELETE it_itab.
CONTINUE.
ENDIF.
ENDLOOP.
DESCRIBE TABLE it_itab LINES w_hdline.
ENDFORM. " fetch_data
&----
*& Form write_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM write_data.
FORMAT COLOR OFF.
LOOP AT it_itab.
IF w_clrfmt = 1.
FORMAT COLOR COL_KEY INTENSIFIED OFF.
w_clrfmt = 2.
ELSE.
FORMAT COLOR COL_NORMAL.
w_clrfmt = 1.
ENDIF.
WRITE :/(1) sy-vline,
(10) it_itab-zztono,
(1) sy-vline,
(10) it_itab-docno,
(1) sy-vline,
(10) it_itab-boedate,
(1) sy-vline,
(25) it_itab-impdpsno,
(1) sy-vline,
(12) it_itab-ZZPLASLNO,
(1) sy-vline,
(10) it_itab-bondregnno,
(1) sy-vline,
(13) it_itab-totdtyval,
(1) sy-vline,
(13) it_itab-zzintrst,
(1) sy-vline,
(13) it_itab-zzdtyval,
(1) sy-vline.
AT LAST.
FORMAT COLOR OFF.
WRITE :/(144) sy-uline.
WRITE :(1) sy-vline,
(6) ''(150) COLOR COL_NEGATIVE,
(85) ' ',
(1) sy-vline,
(13) w_tot,
(1) sy-vline,
(13) w_int,
(1) sy-vline,
(13) w_duty,
(1) sy-vline.
WRITE :/(144) sy-uline.
ENDAT.
ENDLOOP.
ENDFORM. " write_data
&----
*& Form header
&----
text
----
--> p1 text
<-- p2 text
----
FORM header.
NEW-LINE NO-SCROLLING.
WRITE : (50) '',
(24) ''(201) COLOR COL_NEGATIVE INTENSIFIED OFF.
SKIP 1.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
WRITE : (144) sy-uline.
WRITE :/(1) sy-vline,
(10) ''(100),
(1) sy-vline,
(10) ''(200),
(1) sy-vline,
(10) ''(101),
(1) sy-vline,
(25) ''(102),
(1) sy-vline,
(12) ''(202),
(1) sy-vline,
(10) ''(103),
(1) sy-vline,
(13) ''(104),
(1) sy-vline,
(13) ''(105),
(1) sy-vline,
(13) ''(106),
(1) sy-vline.
WRITE :/(144) sy-uline.
FORMAT COLOR OFF.
ENDFORM. " header
***************************************
Please help me.
Thanks
After adding that code here, what are the next steps to do or this is enough.
Than how should be the output.
Thanks
2007 Apr 19 10:33 AM
u have to create a new PF status thru SE41 , in that u have to create Push buttions..
that PF status u have to call it from this program.
like this
set pf-status 'testing'.
at user-command.
case sy-ucomm
when 'testing'.
do some thing in SAP
endcase.
Regards
Prabhu
2007 Apr 19 10:51 AM
prabhu where i have to add that pf _status exactly
Please help me.
2007 Apr 19 10:55 AM
HI Ali
You nedd to add it in End-of-selection event.
as set pf-status ' '
Regards Rk
2007 Apr 19 10:57 AM
In this program i got confussion where i have to add that exactly . Please tell me the place where i have to add that.
2007 Apr 19 11:01 AM
Hi alil
write here
----
End of selection *
----
END-OF-SELECTION.
<b>set pf-status <status name></b>
IF w_hdline = 0.
WRITE : ''(135).
ELSE.
PERFORM write_data.
ENDIf.
you have to put this before writing data into list
regards Rk
2007 Apr 19 11:03 AM
Please help me in this report at which place i have to add that set Pf_status.
I am getting confussion.
Pleas help me urgent.
2007 Apr 19 11:08 AM
check RK post ?
tell me where do u want to add Push button ?
in out ---> then u have to create PF status.
Regards
Prabhu
2007 Apr 19 11:08 AM
After adding that code here, what are the next steps to do or this is enough.
Than how should be the output.
Thanks
2007 Apr 19 11:10 AM
Hi ali,
In the <b>START-OF SELECTION</b> screen you can to do it.
In the below code of yours......I bold saying that PUT HERE your status....OK
Report
**********************************
TABLES : /ivl/zmb_behdr,
/ivl/zmb_bndmas,
knvv.
----
Internal Tables *
----
DATA : BEGIN OF it_itab OCCURS 0,
kvgr3 LIKE knvv-kvgr3,
zztono LIKE /ivl/zmb_behdr-zztono,
boedate LIKE /ivl/zmb_behdr-boedate,
impdpsno LIKE /ivl/zmb_behdr-impdpsno,
totdtyval LIKE /ivl/zmb_behdr-totdtyval,
zzintrst LIKE /ivl/zmb_behdr-zzintrst,
zzdtyval LIKE /ivl/zmb_behdr-zzdtyval,
zzkunnr LIKE /ivl/zmb_behdr-zzkunnr,
bondregnno LIKE /ivl/zmb_bndmas-bondregnno,
bondno LIKE /ivl/zmb_behdr-bondno,
docno LIKE /ivl/zmb_behdr-docno,
*Begin of modification for change $01
ZZPLASLNO like /ivl/zmb_behdr-ZZPLASLNO,
*End of modification for change $01
END OF it_itab.
----
Global Workfields *
----
DATA : w_hdline TYPE i,
w_clrfmt TYPE i VALUE 1,
w_duty LIKE /ivl/zmb_behdr-zzdtyval,
w_int LIKE /ivl/zmb_behdr-zzintrst,
w_tot LIKE /ivl/zmb_behdr-totdtyval,
w_dtyval LIKE t001r_bf-amount..
----
Selection screen *
----
SELECTION-SCREEN : BEGIN OF BLOCK b001 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_boedt FOR /ivl/zmb_behdr-boedate OBLIGATORY,
s_kvgr3 FOR knvv-kvgr3 OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b001.
----
Screen Validation *
----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_boedt-low.
PERFORM boedate_listing CHANGING s_boedt-low.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_boedt-high.
PERFORM boedate_listing1 CHANGING s_boedt-high.
AT SELECTION-SCREEN .
PERFORM check_kvgr3.
----
Start of selection *
----
START-OF-SELECTION.
<b>
*PUT HERE your PF_STATUS.....OK</b>
PERFORM fetch_data.
----
End of selection *
----
END-OF-SELECTION.
IF w_hdline = 0.
WRITE : ''(135).
ELSE.
PERFORM write_data.
ENDIF.
----
Top of page *
----
TOP-OF-PAGE.
PERFORM header.
&----
*& Form check_kvgr3
&----
text
----
--> p1 text
<-- p2 text
----
FORM check_kvgr3.
LOOP AT s_kvgr3.
CHECK s_kvgr3-option = 'EQ'.
SELECT SINGLE * FROM knvv
CLIENT SPECIFIED WHERE
mandt = sy-mandt AND
kvgr3 = s_kvgr3-low.
IF sy-subrc NE 0.
MESSAGE e000(38) WITH 'Select proper customer gp'.
ENDIF.
ENDLOOP.
LOOP AT s_kvgr3.
CHECK s_kvgr3-option = 'BT'.
SELECT SINGLE * FROM knvv
CLIENT SPECIFIED WHERE
mandt = sy-mandt AND
kvgr3 = s_kvgr3-low.
IF sy-subrc NE 0.
MESSAGE e000(38) WITH 'Select proper customer gp'.
ENDIF.
ENDLOOP.
LOOP AT s_kvgr3.
CHECK s_kvgr3-option = 'BT'.
SELECT SINGLE * FROM knvv
CLIENT SPECIFIED WHERE
mandt = sy-mandt AND
kvgr3 = s_kvgr3-low.
IF sy-subrc NE 0.
MESSAGE e000(38) WITH 'Select proper customer gp'.
ENDIF.
ENDLOOP.
ENDFORM. " check_kvgr3
&----
*& Form boedate_listing
&----
text
----
<--P_s_boedt_LOW text
----
FORM boedate_listing CHANGING p_s_boedt_low.
DATA : BEGIN OF it_boedate OCCURS 0,
boedate LIKE /ivl/zmb_behdr-boedate,
END OF it_boedate.
CLEAR it_boedate.
REFRESH it_boedate.
SELECT boedate INTO TABLE it_boedate
FROM /ivl/zmb_behdr.
SORT it_boedate BY boedate.
LOOP AT it_boedate.
IF it_boedate-boedate = ' '.
DELETE it_boedate.
ENDIF.
ENDLOOP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CPONO'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'sapcpono'
window_title = 'BOE Date Listing'
value_org = 'S'
display = ' '
TABLES
value_tab = it_boedate
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
ENDFORM. " boedate_listing
&----
*& Form boedate_listing1
&----
text
----
<--P_s_boedt_HIGH text
----
FORM boedate_listing1 CHANGING p_s_boedt_high.
DATA : BEGIN OF it_boedate OCCURS 0,
boedate LIKE /ivl/zmb_behdr-boedate,
END OF it_boedate.
CLEAR it_boedate.
REFRESH it_boedate.
SELECT boedate INTO TABLE it_boedate
FROM /ivl/zmb_behdr.
SORT it_boedate BY boedate.
LOOP AT it_boedate.
IF it_boedate-boedate = ' '.
DELETE it_boedate.
ENDIF.
ENDLOOP.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CPONO'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'sapcpono'
window_title = 'BOE Date Listing'
value_org = 'S'
display = ' '
TABLES
value_tab = it_boedate
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
ENDFORM. " boedate_listing1
&----
*& Form fetch_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM fetch_data.
SELECT zztono boedate impdpsno totdtyval
*Begin of modification for change $01
zzintrst zzdtyval zzkunnr bondno docno
zzintrst zzdtyval zzkunnr bondno docno ZZPLASLNO
*End of modification for change $01
INTO CORRESPONDING FIELDS OF TABLE it_itab
FROM /ivl/zmb_behdr
WHERE doctype EQ 'GBOE'
AND boedate IN s_boedt
AND boestat NE 'X'. " Mahesh / 29.08.2003
LOOP AT it_itab.
call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
input = it_itab-ZZPLASLNO
IMPORTING
OUTPUT = it_itab-ZZPLASLNO.
.
w_dtyval = it_itab-zzdtyval.
CALL FUNCTION 'FI_ROUND_AMOUNT'
EXPORTING
amount_in = w_dtyval
company = '1970'
currency = 'INR'
IMPORTING
amount_out = w_dtyval
DIFFERENCE =
ROUNDING_UNIT =
.
it_itab-zzdtyval = w_dtyval.
MODIFY it_itab.
SELECT SINGLE bondregnno
INTO it_itab-bondregnno
FROM /ivl/zmb_bndmas
WHERE bondno = it_itab-bondno.
SELECT SINGLE kvgr3 INTO it_itab-kvgr3
FROM knvv
WHERE kunnr = it_itab-zzkunnr
AND kvgr3 IN s_kvgr3.
IF sy-subrc = 0 .
MODIFY it_itab TRANSPORTING bondregnno kvgr3.
w_duty = w_duty + it_itab-zzdtyval.
w_int = w_int + it_itab-zzintrst.
w_tot = w_tot + it_itab-totdtyval.
ELSE.
DELETE it_itab.
CONTINUE.
ENDIF.
ENDLOOP.
DESCRIBE TABLE it_itab LINES w_hdline.
ENDFORM. " fetch_data
&----
*& Form write_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM write_data.
FORMAT COLOR OFF.
LOOP AT it_itab.
IF w_clrfmt = 1.
FORMAT COLOR COL_KEY INTENSIFIED OFF.
w_clrfmt = 2.
ELSE.
FORMAT COLOR COL_NORMAL.
w_clrfmt = 1.
ENDIF.
WRITE :/(1) sy-vline,
(10) it_itab-zztono,
(1) sy-vline,
(10) it_itab-docno,
(1) sy-vline,
(10) it_itab-boedate,
(1) sy-vline,
(25) it_itab-impdpsno,
(1) sy-vline,
(12) it_itab-ZZPLASLNO,
(1) sy-vline,
(10) it_itab-bondregnno,
(1) sy-vline,
(13) it_itab-totdtyval,
(1) sy-vline,
(13) it_itab-zzintrst,
(1) sy-vline,
(13) it_itab-zzdtyval,
(1) sy-vline.
AT LAST.
FORMAT COLOR OFF.
WRITE :/(144) sy-uline.
WRITE :(1) sy-vline,
(6) ''(150) COLOR COL_NEGATIVE,
(85) ' ',
(1) sy-vline,
(13) w_tot,
(1) sy-vline,
(13) w_int,
(1) sy-vline,
(13) w_duty,
(1) sy-vline.
WRITE :/(144) sy-uline.
ENDAT.
ENDLOOP.
ENDFORM. " write_data
&----
*& Form header
&----
text
----
--> p1 text
<-- p2 text
----
FORM header.
NEW-LINE NO-SCROLLING.
WRITE : (50) '',
(24) ''(201) COLOR COL_NEGATIVE INTENSIFIED OFF.
SKIP 1.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
WRITE : (144) sy-uline.
WRITE :/(1) sy-vline,
(10) ''(100),
(1) sy-vline,
(10) ''(200),
(1) sy-vline,
(10) ''(101),
(1) sy-vline,
(25) ''(102),
(1) sy-vline,
(12) ''(202),
(1) sy-vline,
(10) ''(103),
(1) sy-vline,
(13) ''(104),
(1) sy-vline,
(13) ''(105),
(1) sy-vline,
(13) ''(106),
(1) sy-vline.
WRITE :/(144) sy-uline.
FORMAT COLOR OFF.
ENDFORM. " header
***************************************
<b>
Reward all helpful answers...........</b>
Regards,
V.Raghavender.
2007 Apr 19 11:14 AM
HI Ali.
did you created that Pf status for this program through Se41 or just double click on that
set pf-status <b>'SAMPLE'</b> ,on sample..like
then you will find the push button on your list output .then write the code accordingly
Regards Rk
2007 Apr 19 11:17 AM
Hi Ahammad,
Check this simple report.This will suit your requirement.
Here if you click GET_LIST it will display the report.No need to use Execute button.
REPORT z_vig_sdn_test.
TABLES:vbak.
PARAMETERS:p_vbeln TYPE vbak-vbeln.
SELECTION-SCREEN :PUSHBUTTON /2(10) but1 USER-COMMAND fcode .
INITIALIZATION.
but1 = 'GET List'.
AT SELECTION-SCREEN.
SET PF-STATUS 'GUI_LIST'.
LEAVE TO LIST-PROCESSING.
PERFORM write.
AT USER-COMMAND.
LEAVE TO SCREEN 0.
BREAK-POINT.
START-OF-SELECTION.
&----
*& Form write
&----
text
----
FORM write.
WRITE:p_vbeln.
ENDFORM. "write
2007 Apr 19 10:41 AM
Hi.
You do not need a new PF (gui) status to create pushbuttons.
Please explain again what you want the pushbutton to do. I do not understand your question.
Thanks,
John
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |