2008 Jul 29 10:17 AM
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..
2008 Jul 29 11:25 AM
>
> 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..
2008 Jul 29 10:20 AM
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
2008 Jul 29 10:28 AM
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
2008 Jul 29 10:32 AM
Hi,
Formatting Column ContentsCheck this link:
http://help.sap.com/saphelp_erp2004/helpdata/en/ff/4649baf17411d2b486006094192fe3/content.htm
Regards
Adil
2008 Jul 29 11:25 AM
>
> 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
2008 Jul 29 11:30 AM
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...
2008 Jul 29 11:47 AM
2008 Jul 29 11:54 AM
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...
2008 Jul 29 11:56 AM
2008 Jul 29 12:01 PM
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
2008 Jul 29 12:43 PM
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_SELECTCheck 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
2008 Jul 29 2:13 PM
2008 Aug 04 10:58 AM
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.
2008 Aug 04 11:02 AM
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.
2008 Aug 04 11:00 AM
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
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |