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

RE:ALV

Former Member
0 Likes
736

Hi,

i want a save button in my alv grid menu so i wrote the code like this......

&----


*& Report ZAL_SHIPEXP

*&

&----


*&

*&

&----


REPORT ZAL_SHIPEXP.

type-pools : slis.

data :begin of it_vbap occurs 0,

vbeln type vbak-vbeln,

KNUMV type vbak-knumv,

kunnr type vbak-kunnr,

posnr LIKE VBAP-POSNR,

matnr type VBAP-MATNR,

netwr type VBAP-NETWR,

kwmeng type VBAP-KWMENG,

WAERK LIKE VBAP-WAERK,

end of it_vbap.

data :begin of it_VBKD occurs 0,

vbeln type vbkd-vbeln,

FKDAT type vbkd-FKDAT,

end of it_VBKD.

data :begin of it_kna1 occurs 0,

kunnr type kna1-kunnr,

land1 type kna1-land1,

name1 type kna1-name1,

end of it_kna1.

data : begin of it_konv occurs 0,

KNUMV type konv-KNUMV,

kschl type konv-kschl,

KwERt type konv-KwERt,

KPOSN LIKE KONV-KPOSN,

end of it_konv.

data : begin of it_out occurs 0,

vbeln type vbak-vbeln,

KNUMV type vbak-knumv,

kunnr type vbak-kunnr,

matnr type VBAP-MATNR,

netwr type VBAP-NETWR,

kwmeng type VBAP-KWMENG,

WAERK LIKE VBAP-WAERK,

FKDAT type vbkd-FKDAT,

land1 type kna1-land1,

name1 type kna1-name1,

kschl type konv-kschl,

KwERt type konv-KwERt,

  • pr type konv-kwert,

tax type konv-kwert,

INTERNALPR type KONV-Kwert,

TOTEXP type konv-kwert,

NETREAL type konv-kwert,

netwr1 type VBAP-NETWR,

end of it_out.

data :V_WAERK TYPE VBAP-WAERK,

V_REPID TYPE SY-REPID,

WA_FOREIGN TYPE VBAP-NETWR.

DATA: WA_FIELD1 TYPE SLIS_FIELDCAT_ALV,

IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,

WA_SORT TYPE SLIS_SORTINFO_ALV,

IT_SORT TYPE SLIS_T_SORTINFO_ALV.

data: rt_extab type slis_t_extab. " Table of inactive function

----


  • Selection-screen

----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE text-t05.

SELECT-OPTIONS: S_VBELN FOR it_VBAp-VBELN.

SELECTION-SCREEN END OF BLOCK B1.

start-of-selection.

select k~vbeln

k~knumv

k~kunnr

p~posnr

p~matnr

p~netwr

p~kwmeng

p~WAERK into table it_vbap from vbak as k inner join vbap as p

on kvbeln = pvbeln where k~vbeln in s_vbeln.

if it_vbap[] is not initial.

select vbeln

fkdat from vbkd into table it_vbkd FOR ALL ENTRIES IN it_vbap

where vbeln = it_vbap-vbeln.

endif.

if it_VBKD[] is not initial.

select kunnr

land1

name1 from kna1 into table it_kna1 FOR ALL ENTRIES IN it_vbap

where kunnr = it_vbap-kunnr.

endif.

select KNUMV

kschl

KwERt

KPOSN from konv into table it_konv FOR ALL ENTRIES IN it_vbap

where knumv = it_vbap-knumv.

loop at it_vbap.

it_out-vbeln = it_vbap-vbeln.

it_out-knumv = it_vbap-knumv.

it_out-kunnr = it_vbap-kunnr.

it_out-MATNR = it_vbap-MATNR.

it_out-NETWR = it_vbap-NETWR.

it_out-KWMENG = it_VBAP-KWMENG.

V_WAERK = it_VBAP-waerk.

read table it_VBKD with KEY vbeln = it_vbap-vbeln.

it_out-fkdat = it_vbkd-FKDAT.

read table it_kna1 with KEY kunnr = it_vbap-kunnr.

it_out-land1 = it_kna1-land1.

it_out-name1 = it_kna1-name1.

*read table it_konv with KEY knumv = it_vbap-knumv.

  • Read TABLE IT_KONV WITH KEY KPOSN = it_VBAP-POSNR

  • knumv = it_vbap-KNUMV

  • KSCHL = 'PR00'.

  • IF SY-SUBRC = 0.

  • MOVE it_KONV-KWERT TO it_OUT-PR.

  • ENDIF.

Read TABLE IT_KONV WITH KEY KPOSN = it_VBAP-POSNR

knumv = it_vbap-KNUMV

KSCHL = 'PR00'.

IF SY-SUBRC = 0.

MOVE it_KONV-KWERT TO it_OUT-tax.

ENDIF.

Read TABLE IT_KONV WITH KEY KPOSN = it_VBAP-POSNR

knumv = it_vbap-KNUMV

KSCHL = 'VPRS'.

IF SY-SUBRC = 0.

MOVE it_KONV-KWERT TO it_OUT-INTERNALPR.

ENDIF.

  • Calculating Total Expence.

it_OUT-TOTEXP = it_OUT-TAX + it_OUT-INTERNALPR.

  • Calculating Total Realiasation Amount.

it_OUT-NETREAL = it_OUT-NETWR - it_OUT-TOTEXP.

  • append it_out.

  • endloop.

CALL FUNCTION 'CONVERT_TO_FOREIGN_CURRENCY'

EXPORTING

CLIENT = SY-MANDT

DATE = it_VBKD-FKDAT

FOREIGN_CURRENCY ='INR'

LOCAL_AMOUNT = it_VBAP-NETWR

LOCAL_CURRENCY = V_WAERK

  • RATE = 0

  • TYPE_OF_RATE = 'M'

  • READ_TCURR = 'X'

IMPORTING

  • EXCHANGE_RATE =

FOREIGN_AMOUNT = WA_FOREIGN

  • FOREIGN_FACTOR =

  • LOCAL_FACTOR =

  • EXCHANGE_RATEX =

  • DERIVED_RATE_TYPE =

  • FIXED_RATE =

  • EXCEPTIONS

  • NO_RATE_FOUND = 1

  • OVERFLOW = 2

  • NO_FACTORS_FOUND = 3

  • NO_SPREAD_FOUND = 4

  • DERIVED_2_TIMES = 5

  • OTHERS = 6

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

MOVE WA_FOREIGN TO it_out-NETWR1.

**

append it_out.

endloop.

----


*

  • Description:DISPLAY OF SHIPMENT COST DETAILS

----


wa_field1-col_pos = 1.

wa_field1-fieldname = 'FKDAT'.

wa_field1-seltext_l = 'INVOICE DATE'.

wa_field1-outputlen = 8.

APPEND wa_field1 TO IT_FIELDCAT1.

wa_field1-col_pos = 2.

wa_field1-fieldname = 'VBELN'.

wa_field1-seltext_l = 'INVOICE NO'.

wa_field1-outputlen = 10.

APPEND wa_field1 TO IT_FIELDCAT1.

wa_field1-col_pos = 3.

wa_field1-fieldname = 'NAME1'.

wa_field1-seltext_l = 'CUSTOMER NAME'.

wa_field1-outputlen = 35.

APPEND wa_field1 TO IT_FIELDCAT1.

wa_field1-col_pos = 4.

wa_field1-fieldname = 'LAND1'.

wa_field1-seltext_l = 'COUNTRY'.

wa_field1-outputlen = 8.

APPEND wa_field1 TO IT_FIELDCAT1.

wa_field1-col_pos = 5.

wa_field1-fieldname = 'MATNR'.

wa_field1-seltext_l = 'PRODUCT'.

wa_field1-outputlen = 25.

APPEND wa_field1 TO IT_FIELDCAT1.

wa_field1-col_pos = 6.

wa_field1-fieldname = 'KWMENG'.

wa_field1-seltext_l = 'QUANTITY'.

WA_FIELD1-do_sum = 'X'.

wa_field1-outputlen = 20.

APPEND wa_field1 TO IT_FIELDCAT1.

wa_field1-col_pos = 7.

wa_field1-fieldname = 'NETWR'.

wa_field1-seltext_l = 'AMOUNT IN DOC.(CURR)'.

WA_FIELD1-do_sum = 'X'.

wa_field1-outputlen = 25.

APPEND wa_field1 TO IT_FIELDCAT1.

wa_field1-col_pos = 8.

wa_field1-fieldname = 'NETWR1'.

wa_field1-seltext_l = 'AMOUNT IN INDIAN CURR'.

WA_FIELD1-do_sum = 'X'.

wa_field1-outputlen = 25.

APPEND wa_field1 TO IT_FIELDCAT1.

  • wa_field1-col_pos = 9.

  • wa_field1-fieldname = 'PR'.

  • wa_field1-seltext_l = 'PRICE'.

  • WA_FIELD1-do_sum = 'X'.

*wa_field1-outputlen = 10.

  • APPEND wa_field1 TO IT_FIELDCAT1.

wa_field1-col_pos = 9.

wa_field1-fieldname = 'TAX'.

wa_field1-seltext_l = 'TAX'.

WA_FIELD1-do_sum = 'X'.

wa_field1-outputlen = 20.

APPEND wa_field1 TO IT_FIELDCAT1.

wa_field1-col_pos = 10.

wa_field1-fieldname = 'INTERNALPR'.

wa_field1-seltext_l = 'INTERNALPRICE'.

WA_FIELD1-do_sum = 'X'.

wa_field1-outputlen = 20.

APPEND wa_field1 TO IT_FIELDCAT1.

wa_field1-col_pos = 11.

wa_field1-fieldname = 'TOTEXP'.

wa_field1-seltext_l = 'TOTALEXP'.

WA_FIELD1-do_sum = 'X'.

wa_field1-outputlen = 20.

APPEND wa_field1 TO IT_FIELDCAT1.

wa_field1-col_pos = 12.

wa_field1-fieldname = 'NETREAL'.

wa_field1-seltext_l = 'NET REALISATION'.

WA_FIELD1-do_sum = 'X'.

wa_field1-outputlen = 20.

APPEND wa_field1 TO IT_FIELDCAT1.

  • wa_field1-col_pos = 13.

  • wa_field1-fieldname = 'NETAVG'.

  • wa_field1-seltext_l = 'NETAVG.REALISATION'.

  • WA_FIELD1-do_sum = 'X'.

  • wa_field1-outputlen = 20.

  • APPEND wa_field1 TO IT_FIELDCAT1.

*

  • wa_field1-col_pos = 14.

  • wa_field1-fieldname = 'SOTP'.

  • wa_field1-seltext_l = 'SOLD-TO-PARTY'.

  • wa_field1-outputlen = 20.

  • APPEND wa_field1 TO IT_FIELDCAT1.

*

  • wa_field1-col_pos = 16.

  • wa_field1-fieldname = 'SHTP'.

  • wa_field1-seltext_l = 'SHIP-TO-PARTY'.

  • wa_field1-outputlen = 20.

  • APPEND wa_field1 TO IT_FIELDCAT1.

WA_SORT-SPOS = 2.

WA_SORT-UP = 'X'.

WA_SORT-FIELDNAME = 'VBELN'.

WA_SORT-SUBTOT = 'X'.

APPEND WA_SORT TO IT_SORT.

  • perform SET_PF_STATUS USING RT_EXTAB.

perform alv_display.

&----


*& Form alv_display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form alv_display .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

I_CALLBACK_USER_COMMAND = 'KKKKKKKKKKKK'

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = IT_FIELDCAT1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

IT_SORT = IT_SORT

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = it_out

  • 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. " alv_display

form SET_PF_STATUS using rt_extab type slis_t_extab.

SET PF-STATUS 'ZTEST'.

endform.

but i am not getting any set pf status..

wht can be the reason .........

Also i have copied from std pf status only

thanks in advance,

alex.

1 ACCEPTED SOLUTION
Read only

JozsefSzikszai
Active Contributor
0 Likes
714

hi Alex,

when the ALV function starts:

I_CALLBACK_PROGRAM = V_REPID

pls. check in debug if V_REPID has the right value (i. e. the name of your program)

ec

4 REPLIES 4
Read only

Former Member
0 Likes
714

Hi,

Double click on ZTEST & activate it.

Then try.

Best regards,

Prashant

Read only

Former Member
0 Likes
714

Did you create ZTEST status with all the needed buttons like OK , EXIT and OTHERS THAT U NEED???

ARE YOU SURE?

It should work fine!

FORM STD_STATUS USING EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'STD_FULL'." EXCLUDING tab.

ENDFORM. "STD_STATUS

Reward if helpful.

Read only

JozsefSzikszai
Active Contributor
0 Likes
715

hi Alex,

when the ALV function starts:

I_CALLBACK_PROGRAM = V_REPID

pls. check in debug if V_REPID has the right value (i. e. the name of your program)

ec

Read only

Former Member
0 Likes
714

refer to the sample program

BCALV_GRID_05

Hope it helps.

Lokesh