Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

在client上面实现自动计算总值的功能



  • client上面有四个空格
    [attach]206[/attach]
    我想根据填入前面三个值自动计算出他的体积。
    看了openobject-developer 里面介绍On_change好像有相关的资料,但是看不明白他的使用方法?
    请问大家有其他的实现方法吗?
    谢谢:)



  • client上面有四个空格
    [attach]206[/attach]
    我想根据填入前面三个值自动计算出他的体积。
    看了openobject-developer 里面介绍On_change好像有相关的资料,但是看不明白他的使用方法?
    请问大家有其他的实现方法吗?
    谢谢:)



  • 放一个按钮来触发事件,参考 tiny_purchase 模块



  • 我看了这个模块里它里面有Puchase_order里面有个按钮就是Compute,他可以计算pruduct的总值。
    然后我就看addon里面找到了关于他的代码
    puchase.py[code]
    class purchase_order(osv.osv):
    def _calc_amount(self, cr, uid, ids, prop, unknow_none, unknow_dict):
    res = {}
    for order in self.browse(cr, uid, ids):
    res[order.id] = 0
    for oline in order.order_line:
    res[order.id] += oline.price_unit * oline.product_qty
    return res
    [/code]puchase_view.xml[code]<button name="button_dummy" states="draft" string="Compute" type="object"/>[/code]但是并不明白他们到底参数是怎么传输,还有就是他们怎么关联呢?
    [code]def _calc_amount(self, cr, uid, ids, prop, unknow_none, unknow_dict):
    [/code]
    具体就是这里的cr,uid,ids,prop,unknow_none,unknow_dict是代表什么意思呢

    我在“openobject-developer.pdf”里面看到了有关于这个的“10.7.1 On Change”里面提到了context,但是看不明白是怎么使用的

    谢谢大家

    [[i] 本帖最后由 popkar77 于 2009-7-8 11:22 编辑 [/i]]



  • 我说的是 tiny_purchase 模块,不是 addon.purchase,tiny_purchase 要简单直观得多
    一切都是在服务器端计算的,button 只是触发一个状态刷新,类似于 Web 页面你按下了 F5[code]
    <field name="product_id" on_change="onchange_compute_price(product_id, quantity)"/>
    [/code]传入参数是由 view.xml 传入的,前几个参数是固定的:[code]
    def onchange_compute_price(self, cr, uid, ids, product_id, quantity):
    if not product_id:
    return {}
    price = self.pool.get('tiny_purchase.product').read(cr, uid, [product_id], ['price'])[0]['price']
    return {'value':{'price': price * quantity,}}

    [/code]



  • 根据tiny_purchase 做好了。
    原来on_change是马上就执行,果然不用button也可以。
    谢谢oldrev:lol


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待