‎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
‎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