Navigation

    Odoo 中文社区

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    • Users
    • Groups

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

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

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

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

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

    Odoo 新手求助
    2
    6
    4382
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      popkar77 last edited by

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

      1 Reply Last reply Reply Quote 0
      • O
        oldrev last edited by

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

        1 Reply Last reply Reply Quote 0
        • P
          popkar77 last edited by

          我看了这个模块里它里面有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

          <button name="button_dummy" states="draft" string="Compute" type="object"/>
          

          但是并不明白他们到底参数是怎么传输,还有就是他们怎么关联呢?
          [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]]

          1 Reply Last reply Reply Quote 0
          • O
            oldrev last edited by

            我说的是 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]

            1 Reply Last reply Reply Quote 0
            • P
              popkar77 last edited by

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

              1 Reply Last reply Reply Quote 0
              • First post
                Last post