• Form中格式化数字、金额


    form界面我们要想格式化一个数字行如:123456.03的话,我们可以把这个Item的属性

    成这样

    原数字

    Format Mask

    结果

    说明

    123456.03

    FM999990

    FM999990.00

     

    0.123

    FM999,999.00

    .12

    小数点前是9

    0.123

    FM999,990.00

    0.12

    小数点前是0

    123456789.03

    FM999,990.00

    ######

    因为Format Mask的个数不够

    123456789.03

    FM999,999,990.00

    123,456,789.03

     

    to_charto_char(A,B)

    A

    B

    结果

    说明

    0.123

    FM999,999.00

    .123

    小数点前是9

    0.123

    FM999,990.00

    0.123

    小数点前是0

    金额的格式输入不应该用上面的方法,因为不同种类币种的格式掩码是不一样的,例如:币种为‘CNY’时金额保留两位小数,币种为‘BHD’时显示三位小数,有两种方法可以实现:

    <!--[if !supportLists]-->(1)<!--[endif]-->用代码根据币种动态控制格式掩码

    设需要格式化的块为TESTItemAMOUNT,在块TESTPost-query里加入如下代码:

    APP_ITEM_PROPERTY.SET_PROPERTY('TEST.AMOUNT',--需要格式化的Item

    FORMAT_MASK,

    FND_CURRENCY.GET_FORMAT_MASK(

    /*格式化用的币种,如果想用本位币可以这样取得

    Select currency_code

    Into l_currency_code

    From gl_sets_of_books

    Where set_of_books_id = fnd_profile(‘GL_SET_OF_BOOKS_ID’);

    */

    ‘USD’,

    GET_ITEM_PROPERTY('TEST.AMOUNT',--返回Item的长度

    MAX_LENGTH)));

    这种方法简单,但如果是一个块显示为多行数据,每行的币种不同的话,就不起作用了。

    <!--[if !supportLists]-->(2)<!--[endif]-->用函数APP_CURRENCY.Line_Dyn_Currency实现,这种方法可以实现多行不同币种的格式化

    具体方法如下:

    设需要格式化的块为TESTItemAMOUNT,每行的币种为Item CURRENCY_CODE在数据块中新建一个非数据库描述字段DESCAMOUNT不显示,显示DESC,在块TESTpost-query里加入如下代码:

    :TEST.DESC := TEST.DESC;

    APP_CURRENCY.Line_Dyn_Currency(:TEST.CURRENCY_CODE,'TEST.AMOUNT','TEST.DESC','POST-QUERY');

    ItemDESCWHEN-VALIDATE-ITEM里添加如下代码:

    APP_CURRENCY.Line_Dyn_Currency(:TEST.CURRENCY_CODE,'TEST.AMOUNT',

    'TEST.DESC','WHEN-VALIDATE-ITEM');

    它的作用是当DESC改变之后重新设置。

    当然这种方法也有它的缺限,在块上查询之后用户没有操作,当前块的状态变成‘CHANGED’因显示AMOUNT时函数会APP_CURRENCY.Line_Dyn_CurrencyAMOUNT重新赋值。解决以上问题,可以在块TEST post-query里加 APP_RECORD.SET_STATUS('QUERY'),把块的状态改回来。

  • 相关阅读:
    洛谷 P3384 【模板】树链剖分
    codevs 4633 [Mz]树链剖分练习
    看一个人的回答有感(怎么判断数组中有没有未定义的值,如:[,,1,,3])
    bzoj2754: [SCOI2012]喵星球上的点名
    bzoj4456: [Zjoi2016]旅行者
    bzoj4574:Zjoi2016线段树 dp
    bzoj4455: [Zjoi2016]小星星
    bzoj4516: [Sdoi2016]生成魔咒
    uoj#207. 共价大爷游长沙
    bzoj4530:[Bjoi2014]大融合
  • 原文地址:https://www.cnblogs.com/liuweicong39/p/2530646.html
Copyright © 2020-2023  润新知