跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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 中文社区

F

figol

@figol
关于
帖子
7
主题
3
群组
0
粉丝
0
关注
0

帖子

最新 最佳 有争议的

  • OpenERP concurrent transaction
    F figol

    步科的分析非常到位; 同时感谢tommy无私分享, it helps a lot;


  • Js初探
    F figol

    想搞js的初级选手,来这里https://github.com/figol/web_scanner; 大牛直接跳过。


  • OpenERP 关于rml报表的修改
    F figol

    先占个座再慢慢拜读。。。。


  • Openerp 中打开 URL 的三种 方法
    F figol

    最近总结了,Openerp 中打开 URL 的三种 方法:
    一、在form view 添加 <a>标签
    二、使用url widget, <field name="field_name" widget="url"/>
    三、使用按钮,return { 'type': 'ir.actions.act_url', 'http://www.openerp.com': drawing_url, 'nodestroy': True, 'target': 'new' }

    谢谢mrshelly等人的帮助!!!!


  • Openerp many2many字段详解 及创建 产品含税 的 报价单 销售订单例子
    F figol

        通常意义上的多对多关系,指的是关系数据库中两个表之间的一种关系, 该关系中第一个表中的一个行可以与第二个表中的一个或多个行相关。第二个表中的一个行也可以与第一个表中的一个或多个行相关。

        比如在常见的订单管理数据库当中“产品”表和“订单”表之间的关系。单个订单中可以包含多个产品。另一方面,一个产品可能出现在多个订单中。因此,对于“订单”表中的每条记录,都可能与“产品”表中的多条记录对应。此外,对于“产品”表中的每条记录,都可以与“订单”表中的多条记录对应。这种关系称为多对多关系,因为对于任何产品,都可以有多个订单,而对于任何订单,都可以包含许多产品。请注意,为了检测到表之间的现有多对多关系,务必考虑关系的双方。[1]
    要表示多对多关系,您必须创建第三个表,该表通常称为联接表,它将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中。因此,第三个表记录关系的每个匹配项或实例。例如,“订单”表和“产品”表有一种多对多的关系,这种关系是通过与“订单明细”表建立两个一对多关系来定义的。一个订单可以有多个产品,每个产品可以出现在多个订单中。
    以上来自百度百科 多对多关系

    OPENERP中的多对多关系:
    many2many :
        语法:fields.many2many('other.object.name',
                    'relation object',
                    'actual.object.id',
                    'other.object.id',
                    'Field Name')
    多对多字段涉及3 个表的操作:
        源表:就是声明 many2many字段的表名 称为 actual.object
        目的表:other.object.name
        关联表:'relation object', OPENERP会自动创建

        说明: other.object.name is the other object which belongs to the relation
                由于多对多指的是两个表之间的关系,那么other.object.name 当然就是指目的表的 对象名咯!!!

                relation object is the table that makes the link
                由于多对多关系通常需要第三个表来记录匹配关系,那么relation object指的就是第三个表也叫关联表的表名,不是对象名哦!

                actual.object.id and other.object.id are the fields' names used in the relation table
                actual.object.id 为关联表的 字段名称,对应原表行 ID值, other.object.id为关系表的 字段名称,值对应目的表行 ID 。行ID通常就是 主键ID。 冒似有点难理解!

    例子:
        Sales order line表的 tax_id字段就是一个多对多字段,定义如下:
                'tax_id': fields.many2many('account.tax', 'sale_order_tax', 'order_line_id', 'tax_id', 'Taxes', readonly=True, states={'draft': [('readonly', False)]}),
              显而易见,
              原表:sale.order.line
              目的表:account.tax
              关联表:sale.order.tax
               
              order_line_id 就是sale.order.line表的一个字段,值 对应 原表的ID值
              tax_id就是 account.tax表的一个字段,值 对应 目的表的ID值
    简单应用:
              创建一个 产品带 税 的 报价单

            saleOrder = {'partner_id': 5,'partner_invoice_id': 5,'partner_shipping_id': 5,'pricelist_id': 1}       
            saleOrderLine = {'order_id': '','price_unit':10.0,'product_id':2,'product_uos_qty':1,
                            'product_uom':1,'product_uom_qty':8,'name':'fengmi',
                            'tax_id':[(6, 0, [7])]    #【7】为tax_id
                            }
            orderID = self.pool.get('sale.order').create(cr, uid, saleOrder)
            orderLineID = saleOrderLine['order_id'] = orderID       
            self.pool.get('sale.order.line').create(cr, uid, saleOrderLine)
            怎么样,很容易吧。。。轻松创建一个带税的报价单。。


  • Openerp tree view 中的分页问题
    F figol

    当然 在 浏览器地址栏中 直接设置 limit 的值也是可行的


  • Openerp tree view 中的分页问题
    F figol

    首先感谢 mrshelly 南京-海飞 给我的帮助 ,你们说的两种都是有效的

    方法一、点击 tree view 中右上角 的数字 可以自由 选择 视图中每页想要显示的 数量

    方法二、在tree view 所对应的 action 中 设置 limit field
    如:<field name="limit">20</field>即每页显示的数量

    ;D ;D ;D ;D ;D ;D ;D ;D

  • 登录

  • 没有帐号? 注册

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