Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

pushbutton in program

Former Member
0 Likes
1,136

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

12 REPLIES 12
Read only

Former Member
0 Likes
1,095

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

Read only

0 Likes
1,095

prabhu where i have to add that pf _status exactly

Please help me.

Read only

0 Likes
1,095

HI Ali

You nedd to add it in End-of-selection event.

as set pf-status ' '

Regards Rk

Read only

0 Likes
1,095

In this program i got confussion where i have to add that exactly . Please tell me the place where i have to add that.

Read only

0 Likes
1,095

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

Read only

0 Likes
1,095

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.

Read only

0 Likes
1,095

check RK post ?

tell me where do u want to add Push button ?

in out ---> then u have to create PF status.

Regards

Prabhu

Read only

0 Likes
1,095

After adding that code here, what are the next steps to do or this is enough.

Than how should be the output.

Thanks

Read only

0 Likes
1,095

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.

Read only

0 Likes
1,095

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

Read only

0 Likes
1,095

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

Read only

Former Member
0 Likes
1,095

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