表单视图用于从单个记录中显示数据。它们的根元素是。它们由常规HTML组成,具有额外的结构和语义组件。
结构组件结构组件提供了结构化的或很小逻辑的“视觉”特征的组件。它们用作表单视图中的元素或元素集。
notebook
定义选项卡部分。每个选项卡都是通过page子元素定义的。page子元素可以具有以下属性:
string (必须的)
选项卡标题
accesskey
一个HTML 快捷键
attrs
基于记录值的标准动态属性
group
用于在表单中定义列布局。默认情况下,组定义2列,组中最直接的子组使用单个列。 field 直接子组默认显示一个标签,并且这个标签和字段本身合用一个单元格。
在一个group 中列的个数可以使用col 属性自定义,一个元素的列数可使用colspan属性自定义。
子元素水平放置(试图在改变行之前填充下一列)。
组可以有一个string属性,它显示为组的标题
newline
仅在group 元素中有用,提前结束当前行,然后立即切换到新行(未预先填充任何剩余列)。
separator
小的水平间距,随一个string 属性作为一个部件的标题
sheet
可用作form 元素的直接子元素来形成一个更有限的和更加响应式的表单布局
header
和sheet元素组合使用,在sheet元素之上提供一个完整宽度的场景,通常用于展示工作流和状态小部件
语义组件语义组件和Odoo系统相联系并与允许和Odoo系统互动。 可用的语义组件如下:
button
访问Odoo系统,和列表式视图的按钮使用类似
field
呈现(并允许可能的版本)当前记录的单个字段。可能的属性是:
name (强制性的)
要呈现的字段的名称
widget
字段有一个基于其类型的默认渲染方式 (例如 Char, Many2one), 而 widget 属性允许使用不同的渲染方法和上下文
options
JSON对象指定字段小部件的配置选项(包括默认小部件)
class
在生成的元素上设置HTML样式类,通用的字段样式类有:
oe_inline
防止在字段后出现换行
oe_left, oe_right
将字段浮动到相应的方向
oe_read_only, oe_edit_only
仅以相应的表单模式显示字段
oe_no_button
在使用Many2one 时禁止展示导航按钮
oe_avatar
对于图片字段,展示图片作为其“化身”(正方形,最大90x90,对于某些图片装饰)
groups
只显示特定用户的字段
on_change
在编辑该字段的值时调用指定的方法,可以生成更新其他字段或为用户显示警告
子8.0版本后过时:在模版(model)上使用 odoo.api.onchange()
attrs
基于记录值的动态元参数
domain
对于关系字段,只有在显示现有记录以进行选择时才能应用筛选器
context
对于关系字段,只有在获取可能值时传递上下文
readonly
在只读模式和编辑模式显示字段,但总是不可编辑
required
当字段没有值是生成一个错误提示并阻止记录保存
nolabel
不自动显示字段的标签,只有在字段是group元素的直接子元素时才有意义
placeholder
在字段为空时展示的帮助消息。可以在复杂的表单中代替字段标签。不应该是数据的一个例子,因为用户很容易混淆占位符文本和填充字段
mode
对于One2many, 展示模型(视图类型)使用字段的关联记录。 tree, form, kanban 或graph视图中的一个。默认是 tree 视图(列表视图)
help
在字段或标签上悬停时为用户显示提示信息
filename
对于二进制字段,相关字段名称提供了文件的名称
password
指示一个Char字段存储密码并不展示数据
业务视图针对的是普通用户,而不是高级用户。列子有: Opportunities, Products, Partners, Tasks, Projects等项目。
一般来说,一个业务视图由以下三点组成:
- 顶部的状态栏(带有技术或业务流程),
- 中间的一表单(表单本身),
- 有历史内容和评论内容的底层。
从技术上讲,新表单视图的结构如下(xml格式):
... content of the status bar ...
... content of the sheet ...
... content of the bottom part ...
状态栏
状态栏的目的是显示当前记录的状态和动作按钮。
按钮
按钮的顺序遵循业务流程。例如,在销售订单中,逻辑步骤是:
- 发送报价
- 确认报价
- 创建最终发票
- 发送货物
突出显示的按钮(默认为红色)以帮助用户强调逻辑的下一步。它通常是第一个活动按钮。另一方面,取消按钮必须保持灰色(通常情况下)。例如,在发票中,退款按钮绝不是红色的。
从技术上将,按钮的突出显示可以通过添加样式类"oe_highlight"实现:
状态
使用statusbar小部件,并用红色显示当前状态。 所有流中常见的状态 (例如,一个销售订单开始是报价,然后我们发送它,然后它成为一个完整的销售订单并且最后被完成) 应该在任何时候都可见,但取决于特定子流的异常或状态仅在当前时可见。
状态随着在字段中的使用顺序的变化而改变 (选择字段中的列表等)。总是显示的状态指定使用属性 statusbar_visible
Sheet表单
所有业务视图都应该像一张打印的表:
- 在 和 元素内部的元素不定义组,它们内部的元素是安装普通HTML规则来布局的。它们的内容可以用 元素或者规整的 元素显示的进行分组。
- 默认情况下,元素内部定义了两列,除非使用了属性col="n"。每列都有相同的宽度 (组宽度的1/n)。 使用
元素生成字段栏。要给一个段赋予一个标题,可以将一个string属性添加到元素:
这取代了以前的使用的
。元素不产生一个标签,除非作为一个元素的直接子元素。使用关注打赏 - 默认情况下,元素内部定义了两列,除非使用了属性col="n"。每列都有相同的宽度 (组宽度的1/n)。 使用
微信扫码登录
