跟我学Xodoo第六天

视图与xml

视图定义了模型记录(records)的显示方式。每种类型的视图都表示一种可视化模式(记录(records)列表、它们的聚合图等)。

视图继承可以允许你在别的地方快速套用此视图并进行修改(添加或删除内容)。

一般视图

视图被声明为模型ir.ui.view的一条记录,即一般视图需要引用model  ir.ui.view。视图type由arch字段的根元素表示:

<record model="ir.ui.view"id="view_id">
    <field name="name">view.name</field>#此视图标签名
    <field name="model">object_name</field>#引用字段对应的model
    <field name="priority" eval="16"/>#可以不写
    <field name="arch" type="xml">#必须
        <!-- view content: <form>, <tree>, <graph>, ... -->
    </field>
</record>

上边4各字段是视图的共有标签其中:

priority  加载该类型的视图时,priority值最低的view记录会被返回。【例如:模型定义了多个form视图,在通过action打开时,可以设置priority使得某个form视图优先被加载显示。】

arch 是视图层的描述,type为xml时表示视图会被解析为xml,因为有的时候会用html写。

树状视图(列表视图)

树视图,也称为列表视图,以表格形式显示记录。

它们的根元素是<tree>。树状视图的最简单形式只是列出表中要显示的所有字段(每个字段作为一列):

<tree string="Idea list">
    <field name="name"/>
    <field name="inventor_id"/>
</tree>

tree视图部分功能:

A动态显示隐藏列

字段后加上optional参数:“show”,“hide”

B列表能否被编辑

tree元素后加上multi_edit:1能,0不能

C字段只读

字段后加上readonly=“1”

D字段必填

字段后加上required=“1”

示例参照如下:

<record id="view_chong_demo_tree" model="ir.ui.view">
    <field name="name">chong.demo.tree</field> 
    <field name="model">chong.demo</field>
    <field name="arch" type="xml">
        <tree string="" multi_edit="1">  <!-- tree:列表,multi_edit:列表能否编辑,1能,0不能 -->
            <field name="name" optional="show"/>
              <!-- py里定义的字段,可以不展示 -->
            <field name="text" readonly="1" optional="show"/>
            <field name="date" optional="show"/>
            <field name="datetime" optional="hide"/>
            <field name="count" required="1" optional="show"/>
            <field name="fraction" optional="hide"/>
            <field name="state" optional="show"/>
            <field name="is_choose" widget="toggle_boolean" optional="show"/>
            <field name="chong_id" optional="show"/>
            <field name="chong_ids" widget="many2many_tags" optional="show"/>  <!-- widget:样式 -->
        </tree>
    </field>
</record>

界面查看字段是hide还是show

试试是否都可以编辑

multi_edit表示全部都可以编辑,在此基础上使用readonly和required时:

表单视图

表单用于创建和编辑单个记录。

它们的根元素是<form>。它们由高级结构元素(group、notebook)和交互元素(button和field)组成:

<form string="Idea form">
    <group colspan="4">#把页面分成4列
        <group colspan="2"col="2">#这个group占页面左边2列
            <separator string="General stuff"colspan="2"/>
            <field name="name"/>
            <field name="inventor_id"/>
        </group>
        <group colspan="2"col="2">#这个group占页面右边2列
            <separator string="Dates"colspan="2"/>
            <field name="active"/>
            <field name="invent_date"readonly="1"/>
        </group>
        <notebook colspan="4">#这个notebook占页面4列,会排到第二行
            <page string="Description">#notebook下的Tab页
                <field name="description"nolabel="1"/>
            </page>
        </notebook>
        <field name="state"/>
    </group>
</form>

表单视图可以用html写,以展示更丰富的布局,举例:

<form string="Idea Form">
    <header>
        <button string="Confirm" type="object" name="action_confirm" states="draft" class="oe_highlight"/>
        <button string="Mark as done" type="object" name="action_done" states="confirmed" class="oe_highlight"/>
        <button string="Reset to draft" type="object" name="action_draft" states="confirmed,done"/>
        <field name="state" widget="statusbar"/>
    </header>
    <sheet>
        <div class="oe_title">
            <label for="name" class="oe_edit_only" string="Idea Name"/>
            <h1><field name="name"/></h1>
        </div>
        <separator string="General" colspan="2"/>
        <group colspan="2" col="2">
            <field name="description" placeholder="Idea description..."/>
        </group>
    </sheet>
</form>

搜索视图

搜索视图可以自定义与列表视图(或其他聚合视图)关联的搜索字段。它们的根元素是<search>,由定义可以在哪些字段上搜索的字段组成:

<search>
    <field name="name"/>
    <field name="inventor_id"/>
</search>

如果不定义模型的搜索视图,Xodoo也会默认生成一个只允许在name字段上搜索的视图。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DTCloud4

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值