OpenERP视图元素基础

Action (动作)

写道
动作(Action):用户操作系统时(如点击菜单、点击画面右边的工具条上的按钮等),系统的响应动作。
将菜单和对应的对象、视图关联起来的是Action。
当点击菜单时,触发Action,Action调用对象的Search方法,从数据库取得记录,Action又创建视图,显示取得的数据.
一个Action包含一个对象,包含若干个视图View,通常每个Action都包含列表和表单两个视图。当Action被触发时,相应的视图被调出,展示响应的对象的数据。Action有多种类型,最常见的是Act_Window(窗口类型),窗口类型跳出一个窗口以显示数据。此外还有Report(报表)、Wizard(向导)等类型。

例如,当打开一个财务凭证时(对象account.invoice),客户端发生的动作链是:
1)激发一个Action,Action要求打开account.invoice对象。Action中包含了对象、视图、域条件(Domain,如只显示未支付
的凭证)等数据
2)客户端询问服务端(通过XML-RPC)凭证对象定义了哪些视图,以及应显示什么数据
3)客户端呈现视图,展示数据
<record model="ir.actions.act_window" id="openacademy_training_act">
    <field name="name">Training</field>
    <field name="res_model">openacademy.training</field>
    <field name="view_type">form</field>
    <field name="view_mode">tree,form</field>
</record>

 

MenuItem (菜单)

<menuitem name="Tools" id="tools_menu" />
<menuitem name="OpenAcademy" id="openacademy_training_menu" parent="openacademy.tools_menu" action="openacademy_training_act" />

 

Widgets

• <field />
    ComboBox
    CheckBox
    Date
    Text
    Integer, Float
• <label />
• <separator />
• <button />
• <notebook />
• <group />

 

-- field:

<form>
    ...
    <field name="field_name" />
    ...
</form>

• 系统会根据要显示的字段的类型,自动选择默认的Widgets

 

 -- label

<form>
    ...
    <label string=“我的标签" />
    ...
</form>

-- Separator

<form>
    ...
    <separator string=“标题 Separator"/>
    ...
</form>

-- Button

# object_view.xml
<form>
    ...
    <button type="object" name="python_function" string="Label" />
    <button type="workflow" name="workflow_signal" string="Label"/>
    <button type="action" name="%(wizard_id)d" string="Label"/>
    ...
</form>

# object_wizard.xml
<wizard id="wizard_id"
keyword="client_action_multi"
model="openacademy.training"
name="openacademy.training.do_something"
multi="True"
string="Label"/>

• type – 可选值有 workflow (default), object, action
workflow表示点击按钮,发送name属性指定的signal。object 表示点击按钮,调用name属
性指定的对象方法。action 表示点击按钮,调用name属性指定的动作(ir.actions.actions)
• special – 目前只有一个值:cancel,表示本按钮关闭画面,不做任何进一步动作。注意:
special 和name 是互斥的,不能同时出现。
• name – 指定哪个signal被发送,哪个方法被调用,哪个action被触发。
• confirm – 点击按钮时弹出一个确认Message
• string – 按钮的显示名
• icon – 按钮的显示图标
• states, attrs, invisible, default_focus – 与fields的属性含义一致。

-- Notebook

<form>
    ...
    <notebook>
         <page string="First page">
         ...
         </page>
         <page string="Second page">
         ...
        </page>
    </notebook>
...
</form>

-- Group

<form>
    ...
    <group>
         <field name="state" />
        <button />
        <button />
    </group>
    ...
</form>

View – Attributes

• select :可选值
    1 -> 一级过滤项目
    2 -> 二级(扩展)过滤项目
•string – 字段显示名
•password – 本字段内容是否以*号显示
•mode="tree,graph":one2many等复杂字段的编辑模式
•nolabel – 不显示标签
•colspan – 列宽
•col – 本字段的列宽
•default_focus – 本字段是否获得默认焦点
•states – 指定什么状态下本字段可编辑,如 states="draft,confirm"
•domain – 用于 (many2one, many2many) 关系中过滤关系对象
•eval – 通过一个Python表达式计算本字段的值
•required – 本字段是否必须的
•readonly – 本字段是否只读
•Invisible – 本字段是否可见
•widget – 本字段的界面元素

Relate Window

•Example:

<act_window id="openacademy_instructor_relate_its_training"
name="Trainings"
src_model="openacademy.instructor"
res_model="openacademy.training"
domain="[(instructor_id', '=', active_id)]"
/>

#该实例弹出窗口,显示当前培训师所有的课程

猜你喜欢

转载自xiaolin0199.iteye.com/blog/2034391