跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 新手求助
  4. 单击一个按钮弹出一个form表单,怎么不刷新原表单?

单击一个按钮弹出一个form表单,怎么不刷新原表单?

已定时 已固定 已锁定 已移动 Odoo 新手求助
14 帖子 4 发布者 7.3k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • W 离线
    W 离线
    winbo
    在 回复了 萧云飞 最后由 编辑
    #5

    @萧云飞 我试过用js调用后台方法,但怎么搞都抱错,openerp的js很难理解。我是这样处理的重写了create方法就好了

    萧 2 条回复 最后回复
    0
    • 萧 离线
      萧 离线
      萧云飞
      在 回复了 winbo 最后由 编辑
      #6

      @winbo :clap_tone1:

      1 条回复 最后回复
      0
      • 萧 离线
        萧 离线
        萧云飞
        在 回复了 winbo 最后由 编辑
        #7

        @winbo 我想问下,你重新了create方法,是在create方法里面直接调用draft_force_assign_winbo()这个方法吗?今天我试了下,不行呢

        1 条回复 最后回复
        0
        • W 离线
          W 离线
          winbo
          写于 最后由 编辑
          #8

          create 方法里面不需要调用 你自己的方法,他会执行完create 方法继续执行你的这个方法@萧云飞

          萧 1 条回复 最后回复
          0
          • 萧 离线
            萧 离线
            萧云飞
            在 回复了 winbo 最后由 编辑
            #9

            那它还是会调用create方法,创建实例,然后刷新当前表单的数据的。@winbo, 能看下,你特殊处理的那段代码么?

            W 1 条回复 最后回复
            0
            • W 离线
              W 离线
              winbo
              在 回复了 萧云飞 最后由 编辑
              #10

              @萧云飞 def create(self, cr, uid, vals, context=None):
              print "==============winbo=========create"
              print vals
              super(stock_picking_in_winbo, self).write(cr, uid, picking_id, vals, context=context)
              # self.draft_force_assign_winbo(self, cr, uid,picking_id)

                  return picking_id
              
              
              def draft_force_assign_winbo(self, cr, uid, ids, context=None):
              
                  if context is None:
                      context = {}
                  stock_obj = self.browse(cr, uid, ids)
              
                  """Open the partial picking wizard"""
                  context.update({
                      'active_model': self._name,
                      'active_ids': ids,
                      'active_id': len(ids) and ids[0] or False,
                      'ref_id': 13
                  })
              
                  mod_obj = self.pool.get('ir.model.data')
                  res = mod_obj.get_object_reference(cr, uid, 'starmerx_stock', 'starmerx_stock_partial_picking_form')
                  # raise osv.except_osv(_('无法保存 !'), _('字段值有错误!'))
                  return {
                      'view_type': 'form',
                      'view_mode': 'form',
                      'view_id': [res and res[1] or False],
                      'res_model': 'stock.partial.picking',
                      'type': 'ir.actions.act_window',
                      'target': 'new',
                      'context': context,
                      'nodestroy': True,
                  }
              

              我的这个场景可能跟你的不一样,我之前也以为要在create里面调用我的方法,但其实不用

              萧 1 条回复 最后回复
              0
              • JoshuaJ 离线
                JoshuaJ 离线
                Joshua 管理员
                写于 最后由 编辑
                #11

                如果你的按钮的类型是object,在点击的时候会调用read方法来刷新你的FormA,如果你的按钮类型是action,则可以不刷新FormA,也能弹出FormB。

                例如:

                <button name="%(action_view_sale_advance_payment_inv)d" string="Create Invoice"
                                        type="action" class="btn-primary"
                                        attrs="{'invisible': [('invoice_status', '!=', 'to invoice')]}"/>
                
                

                【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

                digitalsatoriD 萧 2 条回复 最后回复
                1
                • digitalsatoriD 离线
                  digitalsatoriD 离线
                  digitalsatori 管理员
                  在 回复了 Joshua 最后由 编辑
                  #12

                  @Joshua 👍

                  【上海先安科技】(tony AT openerp.cn)

                  1 条回复 最后回复
                  0
                  • 萧 离线
                    萧 离线
                    萧云飞
                    在 回复了 winbo 最后由 编辑
                    #13

                    @winbo 在 单击一个按钮弹出一个form表单,怎么不刷新原表单? 中说:

                    picking

                    谢谢

                    1 条回复 最后回复
                    0
                    • 萧 离线
                      萧 离线
                      萧云飞
                      在 回复了 Joshua 最后由 编辑
                      #14

                      @Joshua 谢谢你的讲解,这个action在某些场景不适用。某些条件成立时,才弹出一个窗口,其它条件就执行另外的代码;或者根据不同的条件,处理不同的数据后,弹出不同的窗口(可以定义多个button,但是attrs条件框处理能力毕竟有限)

                      1 条回复 最后回复
                      0

                      • 登录

                      • 没有帐号? 注册

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 标签
                      • 热门
                      • 用户
                      • 群组