壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3228|回复: 7

[OAF] 知识共享----OAF控制 数字显示样式 比如 999,999.99

[复制链接]
发表于 2008/5/22 11:49:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
import oracle.cabo.ui.validate.Formatter;
import oracle.apps.fnd.framework.webui.OADecimalValidater;
import oracle.apps.fnd.framework.webui.beans.OAWebBeanDataAttribute;
import oracle.apps.fnd.framework.webui.beans.message.OAMessageTextInputBean;

processRequest中加入
    Formatter formatter = new OADecimalValidater("#,###,###,##0;(#,###,###,##0)", "#,###,###,##0;(#,###,###,##0)");
    OAMessageTextInputBean Fare = (OAMessageTextInputBean)webBean.findChildRecursive("Fare");
     if(Fare != null)
        Fare.setAttributeValue(ON_SUBMIT_VALIDATER_ATTR, formatter);
     ((OAWebBeanDataAttribute)tableBean.findIndexedChildRecursive("Fare")).setTabularFunctionCurrencyCode("CNY");





by pandc
发表于 2008/5/22 14:55:32 | 显示全部楼层
呵呵,四海也来做技术的活了

这个方法其实只要设置了币种就可以了,当然,需要在首选项里设置数字格式,同时这也是一个Profile,可以在系统管理员配置。

例如:
    OAMessageStyledTextBean cost = (OAMessageStyledTextBean)webBean.findIndexedChildRecursive("Cost");
    cost.setAttributeValue(CURRENCY_CODE, "CNY");

这种方法更灵活了些,不用把Number Format设置死。呵呵
发表于 2008/9/3 14:23:14 | 显示全部楼层
好东西,学习一下,多谢了
发表于 2008/9/17 23:59:29 | 显示全部楼层
做点补充:
    需要导入的类都位于:oracle.cabo.ui.validate
    Formater的子类有ColorValidater, WMLPatternValidater, ByteLengthValidater, DecimalValidater, DateValidater
    1、DateValidater:验证日期格式。不但可以用于“OAMessageDateFieldBean”,也可用于“OAMessageTextInputBean”。 例如:
        OADateValidater formatter = new OADateValidater("yyyyMMdd", "");
    2、WMLPatternValidater:验证文本框的格式。 例如:
        WMLPatternValidater formatter = new WMLPatternValidater("8N");
    3、ByteLengthValidater:验证入力的byte长度。 例如:
        ByteLengthValidater formatter = new ByteLengthValidater(10, "Windows-31J");
        当入力的字符中有全角,超出规定的byte数后,会报出客户端的错。与在画页面的时候,设置控件的长度效果一样。
    4、DecimalValidater:验证入力数字的大小。 例如:
        DecimalValidater formatter = new DecimalValidater();
        formatter.setMaxValue(10);
        formatter.setMinValue(2);
        (webBean.findChildRecursive("item1")).setAttributeValue(ON_SUBMIT_VALIDATER_ATTR, formatter);
    5、若是需要自定义地、更复杂地属性验证,可以使用RegExpValidater。 例如:
        (webBean.findChildRecursive("item1")).setAttributeValue(ON_SUBMIT_VALIDATER_ATTR, new RegExpValidater("[0-9]{3}"));
    6、以上的验证可以写在processRequest()方法的webBean的setAttributeValue()中,
       若在触发submit请求时,有验证错误的话,就会先在客户端弹出系统标准的javaScript的错误消息。
       同时,对于想在submit请求以后,再进行属性验证的时候,可以调用ValidationUtils.validate()方法。
       这个方法有三个参数,其中那个String的参数对应的值,是页面上控件的值。 例如:
        OAMessageTextInputBean dfb = (OAMessageTextInputBean)webBean.findChildRecursive("item1");
        java.text.ParseException[] p =
          ValidationUtils.validate(pageContext.getRenderingContext(), new WMLPatternValidater("8N"), (String)dfb.getValue(pageContext));
        if (p != null && p.length > 0)
        {
          throw new OAException("YOUR MESSAGE...");
        }
    7、其中OAF中继承的类有OADateValidater和OADecimalValidater。具体的使用方式,可以参照各个类的DOC。
发表于 2008/9/18 03:35:06 | 显示全部楼层
不错的知识点。

谢谢各位
发表于 2008/11/26 14:10:12 | 显示全部楼层
好,学习了。。。。
发表于 2012/6/20 17:41:23 | 显示全部楼层
测试过,实现了功能
发表于 2012/8/7 14:32:27 | 显示全部楼层
好,谢谢,收藏一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 11:05 , Processed in 0.017373 second(s), 17 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表