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

Problem with currency fields while editing in alv

Former Member
0 Likes
2,987

hi guys,

while creating the editable fields and saving the data in database i have problem with currency(price fields),

when iam entering 10000 it is storing as 100.00 in database but

i want to store it as 10,000.00

can any one help me.

thanks..

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
2,295

>

> hi guys,

>

> while creating the editable fields and saving the data in database i have problem with currency(price fields),

>

> when iam entering 10000 it is storing as 100.00 in database but

> i want to store it as 10,000.00

>

> can any one help me.

>

> thanks..

The Problem is with the Fieldcatalog.

Suppose what ever you are entering should be stored into a field with decimals 2 then you can do this...

fieldcat-decimals_out = '2'.

if you don't want any decimals you can give this 

fieldcat-decimals_out = '0'.

The problem will be solved if you mention the DECIMALS_OUT for the field you are modifying in the output.

Regards

Vijay Babu Dudla

>

> hi guys,

>

> while creating the editable fields and saving the data in database i have problem with currency(price fields),

>

> when iam entering 10000 it is storing as 100.00 in database but

> i want to store it as 10,000.00

>

> can any one help me.

>

> thanks..

The Problem is with the Fieldcatalog.

Suppose what ever you are entering should be stored into a field with decimals 2 then you can do this...

fieldcat-decimals_out = '2'.

if you don't want any decimals you can give this 

fieldcat-decimals_out = '0'.

The problem will be solved if you mention the DECIMALS_OUT for the field you are modifying in the output.

Regards

Vijay Babu Dudla

14 REPLIES 14
Read only

Former Member
0 Likes
2,295

hi,

do this way .. Goto System-> User Profile->own data ...in that goto default tab and change it to the required format in the Decimal notation ..

Regards,

Santosh

Read only

0 Likes
2,295

thanks for your reply...

but,

in system->user profile .....

the setting were correct ,

but still iam not getting the solution.

Edited by: PINGALA RAVI KUMAR on Jul 29, 2008 11:29 AM

Read only

Former Member
0 Likes
2,295
Read only

Former Member
0 Likes
2,296

>

> hi guys,

>

> while creating the editable fields and saving the data in database i have problem with currency(price fields),

>

> when iam entering 10000 it is storing as 100.00 in database but

> i want to store it as 10,000.00

>

> can any one help me.

>

> thanks..

The Problem is with the Fieldcatalog.

Suppose what ever you are entering should be stored into a field with decimals 2 then you can do this...

fieldcat-decimals_out = '2'.

if you don't want any decimals you can give this 

fieldcat-decimals_out = '0'.

The problem will be solved if you mention the DECIMALS_OUT for the field you are modifying in the output.

Regards

Vijay Babu Dudla

Read only

0 Likes
2,295

vijay,

i have tried this but ,

if ideclare decimals_out = 0.

when i enter the value 10000.

iam getting as 100 in database.

thank u...

Read only

0 Likes
2,295

Give it

fieldcat-decimals_out = '2'.

and see..

Read only

0 Likes
2,295

hi vijay...

if i give ,

decimals_out =2

it is taking for 10000 as 100.00.

decimals_out = 0

it is taking for 10000 as 100.

iam editing netwr colomn in vbrp table.

thanks...

Read only

0 Likes
2,295

show the code. if it is not involved in any custom objects.

Read only

0 Likes
2,295

TYPE-POOLS: SLIS.

TABLES ZPRK_VBRP. " DATABASE TABLE

TYPES: BEGIN OF TY_VBRP.

INCLUDE STRUCTURE ZPRK_VBRP.

*TYPES: CURRENCY(10) TYPE C.

TYPES: END OF TY_VBRP.

DATA: T_VBRP TYPE TABLE OF TY_VBRP,

W_VBRP TYPE TY_VBRP,

T_NVBRP TYPE TABLE OF ZPRK_VBRP,

W_NVBRP TYPE ZPRK_VBRP.

DATA: T_FCAT_VBRP TYPE SLIS_T_FIELDCAT_ALV,

W_FCAT_VBRP TYPE SLIS_FIELDCAT_ALV,

W_LAYOUT TYPE SLIS_LAYOUT_ALV,

T_EVENT TYPE SLIS_T_EVENT,

W_EVENT TYPE SLIS_ALV_EVENT,

I_EXIT

SELECT-OPTIONS SO_VBELN FOR ZPRK_VBRP-VBELN DEFAULT 0090005178 TO

0090005184 .

PERFORM DATA_SELECT.

PERFORM BUID_FCAT.

PERFORM BUILD_LAYOUT.

PERFORM BUILD_EVENT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMM'

  • 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 = W_LAYOUT

IT_FIELDCAT = T_FCAT_VBRP

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = T_EVENT

  • 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

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = T_VBRP

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

&----


*& Form BUID_FCAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUID_FCAT .

W_FCAT_VBRP-COL_POS = 1.

W_FCAT_VBRP-FIELDNAME = 'VBELN'.

W_FCAT_VBRP-SELTEXT_L = 'BILL NO'.

W_FCAT_VBRP-OUTPUTLEN = 15.

W_FCAT_VBRP-JUST = 'C'.

APPEND W_FCAT_VBRP TO T_FCAT_VBRP.

W_FCAT_VBRP-COL_POS = 2.

W_FCAT_VBRP-FIELDNAME = 'POSNR'.

W_FCAT_VBRP-SELTEXT_L = 'BILLING ITIEM'.

W_FCAT_VBRP-OUTPUTLEN = 10.

W_FCAT_VBRP-JUST = 'C'.

W_FCAT_VBRP-NO_OUT = ' '.

W_FCAT_VBRP-ROLLNAME = 'POSNR'.

APPEND W_FCAT_VBRP TO T_FCAT_VBRP.

W_FCAT_VBRP-COL_POS = 3.

W_FCAT_VBRP-FIELDNAME = 'ARKTX'.

W_FCAT_VBRP-SELTEXT_L = 'SALES ORDER'.

W_FCAT_VBRP-OUTPUTLEN = 25.

W_FCAT_VBRP-JUST = 'C'.

W_FCAT_VBRP-INPUT = 'X'.

W_FCAT_VBRP-EDIT = 'X'.

  • W_FCAT_VBRP-SP_GROUP = 'SP01'.

APPEND W_FCAT_VBRP TO T_FCAT_VBRP.

W_FCAT_VBRP-COL_POS = 4.

W_FCAT_VBRP-FIELDNAME = 'FKIMG'.

W_FCAT_VBRP-SELTEXT_L = 'INVOICE QTY'.

W_FCAT_VBRP-OUTPUTLEN = 15.

W_FCAT_VBRP-JUST = 'C'.

W_FCAT_VBRP-INPUT = ' '.

W_FCAT_VBRP-EDIT = ' '.

  • W_FCAT_VBRP-SP_GROUP = 'SP01'.

APPEND W_FCAT_VBRP TO T_FCAT_VBRP.

W_FCAT_VBRP-COL_POS = 5.

W_FCAT_VBRP-FIELDNAME = 'NETWR'.

W_FCAT_VBRP-SELTEXT_L = 'NETVALUE IN BILLING'.

W_FCAT_VBRP-OUTPUTLEN = 25.

W_FCAT_VBRP-DO_SUM = 'X'.

W_FCAT_VBRP-JUST = 'C'.

  • W_FCAT_VBRP-CFIELDNAME = 'CURRENCY'.

  • W_FCAT_VBRP-CTABNAME = 'T_VBRP'.

  • W_FCAT_VBRP-DECIMALSTABNAME = 'T_VBRP'.

  • W_FCAT_VBRP-DECIMALSFIELDNAME = 'NETWR'.

W_FCAT_VBRP-DECIMALS_OUT = ' '.

W_FCAT_VBRP-INPUT = 'X'.

W_FCAT_VBRP-EDIT = 'X'.

APPEND W_FCAT_VBRP TO T_FCAT_VBRP.

ENDFORM. " BUID_FCAT

.

&----


*& Form BUILD_LAYOUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_LAYOUT .

W_LAYOUT-WINDOW_TITLEBAR = 'TITLE'.

W_LAYOUT-ZEBRA = 'X'.

ENDFORM. " BUILD_LAYOUT

&----


*& Form BUILD_EVENT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_EVENT .

W_EVENT-NAME = 'USER_COMMAND'.

W_EVENT-FORM = 'USER_COMM'.

ENDFORM. " BUILD_EVENT

&----


*& Form USER_COMM

&----


FORM USER_COMM USING R_UCOMM TYPE SY-UCOMM

R_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&DATA_SAVE'.

LOOP AT T_VBRP INTO W_VBRP.

UPDATE ZPRK_VBRP FROM W_VBRP.

ENDLOOP.

ENDCASE.

ENDFORM. "USER_COMM

&----


*& Form DATA_SELECT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DATA_SELECT .

SELECT VBELN POSNR FKIMG ARKTX NETWR

FROM ZPRK_VBRP INTO CORRESPONDING FIELDS OF TABLE T_VBRP

WHERE VBELN IN SO_VBELN.

*LOOP AT T_VBRP INTO W_VBRP.

  • W_VBRP-CURRENCY = W_VBRP-NETWR.

  • MODIFY T_VBRP FROM W_VBRP.

  • ENDLOOP.

ENDFORM. " DATA_SELECT

Read only

0 Likes
2,295

I modified your code to a lot. Just replace where ever VBRP comes. when you are doing action on Currency field you have to fetch Currency key also, and it should in the fieldcat and display.

REPORT ztest_alvee.

TYPE-POOLS: slis.
TABLES: vbrp.
*TABLES zprk_vbrp. " DATABASE TABLE

TYPES: BEGIN OF ty_vbrp.
        INCLUDE STRUCTURE vbrp.
 TYPES:       waerk type vbrk-waerk.
TYPES: CURRENCY TYPE vbrp-netwr.
TYPES: END OF ty_vbrp.

DATA: t_vbrp TYPE TABLE OF ty_vbrp,
w_vbrp TYPE ty_vbrp,

t_nvbrp TYPE TABLE OF vbrp,
w_nvbrp TYPE vbrp.

DATA: t_fcat_vbrp TYPE slis_t_fieldcat_alv,
w_fcat_vbrp TYPE slis_fieldcat_alv,

w_layout TYPE slis_layout_alv,

t_event TYPE slis_t_event,
w_event TYPE slis_alv_event,
i_exit.


SELECT-OPTIONS so_vbeln FOR vbrp-vbeln
  DEFAULT 0090005178 TO
0090005184 .


PERFORM data_select.
PERFORM buid_fcat.
PERFORM build_layout.
PERFORM build_event.


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    i_callback_program      = sy-repid
    i_callback_user_command = 'USER_COMM'
    is_layout               = w_layout
    it_fieldcat             = t_fcat_vbrp
    i_default               = 'X'
    it_events               = t_event
  TABLES
    t_outtab                = t_vbrp
  EXCEPTIONS
    program_error           = 1
    OTHERS                  = 2.
IF sy-subrc NE 0.

  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

*&---------------------------------------------------------------------*
*&      Form  BUID_FCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM buid_fcat .


  w_fcat_vbrp-col_pos = 1.
  w_fcat_vbrp-fieldname = 'VBELN'.
  w_fcat_vbrp-seltext_l = 'BILL NO'.
  w_fcat_vbrp-outputlen = 15.
  w_fcat_vbrp-just = 'C'.
  APPEND w_fcat_vbrp TO t_fcat_vbrp.


  w_fcat_vbrp-col_pos = 2.
  w_fcat_vbrp-fieldname = 'POSNR'.
  w_fcat_vbrp-seltext_l = 'BILLING ITIEM'.
  w_fcat_vbrp-outputlen = 10.
  w_fcat_vbrp-just = 'C'.
  w_fcat_vbrp-no_out = ' '.
  w_fcat_vbrp-rollname = 'POSNR'.
  APPEND w_fcat_vbrp TO t_fcat_vbrp.

  w_fcat_vbrp-col_pos = 3.
  w_fcat_vbrp-fieldname = 'ARKTX'.
  w_fcat_vbrp-seltext_l = 'SALES ORDER'.
  w_fcat_vbrp-outputlen = 25.
  w_fcat_vbrp-just = 'C'.
  w_fcat_vbrp-input = 'X'.
  w_fcat_vbrp-edit = 'X'.


  w_fcat_vbrp-sp_group = 'SP01'.
  APPEND w_fcat_vbrp TO t_fcat_vbrp.

  w_fcat_vbrp-col_pos = 4.
  w_fcat_vbrp-fieldname = 'FKIMG'.
  w_fcat_vbrp-seltext_l = 'INVOICE QTY'.
  w_fcat_vbrp-outputlen = 15.
  w_fcat_vbrp-input = ' '.
  w_fcat_vbrp-edit = ' '.

  w_fcat_vbrp-sp_group = 'SP01'.
  APPEND w_fcat_vbrp TO t_fcat_vbrp.
  clear w_fcat_vbrp.

*  w_fcat_vbrp-col_pos = 5.
*  w_fcat_vbrp-fieldname = 'NETWR'.
*  w_fcat_vbrp-seltext_l = 'NETVALUE IN BILLING'.
*  w_fcat_vbrp-outputlen = 25.
*  w_fcat_vbrp-do_sum = 'X'.
**  w_fcat_vbrp-just = 'C'.
*APPEND w_fcat_vbrp TO t_fcat_vbrp.
*
  clear w_fcat_vbrp.
  w_fcat_vbrp-cfieldname = 'WAERK'.
  w_fcat_vbrp-ctabname = 'T_VBRP'.
  w_fcat_vbrp-tabname = 'T_VBRP'.
  w_fcat_vbrp-fieldname = 'CURRENCY'.
  w_fcat_vbrp-ref_tabname = 'VBRP'.
  w_fcat_vbrp-ref_fieldname = 'NETWR'.
  w_fcat_vbrp-decimals_out = 2.
  w_fcat_vbrp-seltext_l = 'SALES CUr'.
  w_fcat_vbrp-input = 'X'.
  w_fcat_vbrp-edit = 'X'.
  APPEND w_fcat_vbrp TO t_fcat_vbrp.


  clear w_fcat_vbrp.
  w_fcat_vbrp-fieldname = 'WAERK'.
  w_fcat_vbrp-tabname = 'T_VBRP'.

  w_fcat_vbrp-seltext_l = 'Unit'.

  APPEND w_fcat_vbrp TO t_fcat_vbrp.

ENDFORM. " BUID_FCAT


*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM build_layout .

  w_layout-window_titlebar = 'TITLE'.
  w_layout-zebra = 'X'.

ENDFORM. " BUILD_LAYOUT

*&---------------------------------------------------------------------*
*&      Form  BUILD_EVENT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM build_event .

  w_event-name = 'USER_COMMAND'.
  w_event-form = 'USER_COMM'.

ENDFORM. " BUILD_EVENT


*&---------------------------------------------------------------------*
*&      Form  USER_COMM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->R_UCOMM    text
*      -->R_SELFIELD text
*----------------------------------------------------------------------*
FORM user_comm USING r_ucomm TYPE sy-ucomm
r_selfield TYPE slis_selfield.

  CASE r_ucomm.
    WHEN '&DATA_SAVE'.

      LOOP AT t_vbrp INTO w_vbrp.

        UPDATE vbrp FROM w_vbrp.
      ENDLOOP.
  ENDCASE.

ENDFORM. "USER_COMM

*&---------------------------------------------------------------------*
*&      Form  DATA_SELECT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM data_select .

  SELECT vbrp~vbeln vbrp~posnr vbrp~fkimg vbrp~arktx vbrp~netwr
    vbrk~WAERK
  FROM vbrp join vbrk on
    vbrp~vbeln = vbrk~vbeln
   INTO CORRESPONDING FIELDS OF TABLE t_vbrp
  WHERE vbrp~vbeln IN so_vbeln.

  LOOP AT t_vbrp INTO w_vbrp.
    w_vbrp-currency = w_vbrp-netwr.
    MODIFY t_vbrp FROM w_vbrp.
  ENDLOOP.

ENDFORM. " DATA_SELECT

Check the field catalog for the currency field. why are you giving JEST = 'C' for currency fields.

clear w_fcat_vbrp.

w_fcat_vbrp-cfieldname = 'WAERK'. <=- currency key

w_fcat_vbrp-ctabname = 'T_VBRP'. <-==currency key internal table.

w_fcat_vbrp-tabname = 'T_VBRP'. <==tab name

w_fcat_vbrp-fieldname = 'CURRENCY'. <==fieldname

w_fcat_vbrp-ref_tabname = 'VBRP'. <== ref_table

w_fcat_vbrp-ref_fieldname = 'NETWR'. <== ref field

w_fcat_vbrp-decimals_out = 2. <==decimals 2

w_fcat_vbrp-seltext_l = 'SALES CUr'. <== title

w_fcat_vbrp-input = 'X'.

w_fcat_vbrp-edit = 'X'.

APPEND w_fcat_vbrp TO t_fcat_vbrp.

I declared Currency field as type netwr and declared extra field WAERK "currency key. i fetched it from VBRK.

and also displayed in ALV output

Read only

0 Likes
2,295

THANK U VERY MUCH ....

IT IS WORKING ...

Read only

0 Likes
2,295

HI..

how to convert from one currency to another currency

for above program i want to convert netwr to 'INR'.

eg usd to inr .

thank u.

Read only

0 Likes
2,295

how to convert from one currency to another currency

for above program i want to convert netwr to 'INR'.

eg usd to inr .

Use FM:

convert_to_local_currency

CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
    EXPORTING
*   CLIENT                  = SY-MANDT
      date                    = p_date
      foreign_amount          = p_fcval
      foreign_currency        = p_curfrm
      local_currency          = p_curloc
*   RATE                    = 0
     type_of_rate            = 'M'
     read_tcurr              = 'X'
    IMPORTING
*   EXCHANGE_RATE           =
*   FOREIGN_FACTOR          =
      local_amount            = p_lcval
*   LOCAL_FACTOR            =
*   EXCHANGE_RATEX          =
*   FIXED_RATE              =
*   DERIVED_RATE_TYPE       =
    EXCEPTIONS
     no_rate_found           = 1
     overflow                = 2
     no_factors_found        = 3
     no_spread_found         = 4
     derived_2_times         = 5
     OTHERS                  = 6

.

Read only

Former Member
0 Likes
2,295

problem with currency field

HI..

how to convert from one currency to another currency

for above program i want to convert netwr to 'INR'.

eg usd to inr .

thank u