Odoo 12 报告样本
Odoo 12 report sample
我正在尝试进行报告,但没有使用 external_layout
或 internal_layout
,因为它们中有 header。我想拥有自己的 header 和页脚。
我尝试过使用 minimal_layout
,因为与其他布局相比,它似乎不那么繁忙。
但我一直出错body_parent = root.xpath('//main')[0] IndexError: list index out of range - - -
这是我的代码
<template id="applicant_contract_css">
<t t-call="web._assets_helpers"/>
<link rel="stylesheet" type="text/scss" href="/fhid_recruitment/static/src/css/applicant-contract.css"/>
</template>
<template id="minimal_layout" inherit_id="web.minimal_layout">
<xpath expr="//head" position="inside">
<t t-call-assets="fhid_recruitment.applicant_contract_css"/>
</xpath>
</template>
<template id="applicant_contract_offering">
<t t-call="web.minimal_layout">
<t t-foreach="docs" t-as="o">
<div class="header">
My Header
</div>
<div class="article">
Content
</div>
<div class="footer">
My footer
</div>
</t>
</t>
</template>
如何使用 minimal layout
?或者我应该使用其他布局吗?
您可以继承 external_layout
或 internal_layout
并使用您的自定义代码覆盖默认行为。并在您的报告中使用它。
当您想要创建模板报告时,您至少需要调用 "web.html_container"
调用 "web.report_layout"
定义 Minal Report layout
。
报告模板的所有 css
文件应添加到 report_assets_common
模板:
<template id="assets_common" name="a proper name for your template purpuse" inherit_id="web.report_assets_common">
<xpath expr="." position="inside">
<link rel="stylesheet" type="text/scss" href="/fhid_recruitment/static/src/css/applicant-contract.css"/>
</xpath>
</template>
最好将页眉和页脚提取到模板中,以便在多个报告中使用它们,例如 external_layout
,您可以查看 external_layout_standard
以获得基本想法。
<template id="external_layout">
<div class="header">
My Header
</div>
<!-- everything inside t-call="fhid_recruitment.external_layout" will be rendered here -->
<t t-raw="0" />
<div class="footer">
My footer
</div>
</template>
在模板中,只需在此处调用您的自定义外部布局:
<template id="applicant_contract_offering">
<t t-call="web.html_container">
<!-- because it's defined in this module "fhid_recruitment" -->
<t t-call="fhid_recruitment.external_layout">
<t t-foreach="docs" t-as="o">
<div call="page">
<div class="article">
Content
</div>
</div>
</t>
</t>
</t>
</template>
关于模板,您需要了解的最重要的事情之一是 <t t-raw="0" />
,例如,如果模板 x_template
有这个,当我们这样称呼它时:
<t t-call="x_template">
any_content
</t>
Qweb
引擎将做的是,在呈现报告时将 x_template
中的 <t t-raw="0" />
替换为 any_content
。
如果您打算只为一个模板使用页眉和页脚,为了简化事情:
<template id="applicant_contract_offering">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<div class="header">
My Header
</div>
<div class="article">
Content
</div>
<div class="footer">
My footer
</div>
</t>
</t>
</template>
我正在尝试进行报告,但没有使用 external_layout
或 internal_layout
,因为它们中有 header。我想拥有自己的 header 和页脚。
我尝试过使用 minimal_layout
,因为与其他布局相比,它似乎不那么繁忙。
但我一直出错body_parent = root.xpath('//main')[0] IndexError: list index out of range - - -
这是我的代码
<template id="applicant_contract_css">
<t t-call="web._assets_helpers"/>
<link rel="stylesheet" type="text/scss" href="/fhid_recruitment/static/src/css/applicant-contract.css"/>
</template>
<template id="minimal_layout" inherit_id="web.minimal_layout">
<xpath expr="//head" position="inside">
<t t-call-assets="fhid_recruitment.applicant_contract_css"/>
</xpath>
</template>
<template id="applicant_contract_offering">
<t t-call="web.minimal_layout">
<t t-foreach="docs" t-as="o">
<div class="header">
My Header
</div>
<div class="article">
Content
</div>
<div class="footer">
My footer
</div>
</t>
</t>
</template>
如何使用 minimal layout
?或者我应该使用其他布局吗?
您可以继承 external_layout
或 internal_layout
并使用您的自定义代码覆盖默认行为。并在您的报告中使用它。
当您想要创建模板报告时,您至少需要调用 "web.html_container"
调用 "web.report_layout"
定义 Minal Report layout
。
报告模板的所有 css
文件应添加到 report_assets_common
模板:
<template id="assets_common" name="a proper name for your template purpuse" inherit_id="web.report_assets_common">
<xpath expr="." position="inside">
<link rel="stylesheet" type="text/scss" href="/fhid_recruitment/static/src/css/applicant-contract.css"/>
</xpath>
</template>
最好将页眉和页脚提取到模板中,以便在多个报告中使用它们,例如 external_layout
,您可以查看 external_layout_standard
以获得基本想法。
<template id="external_layout">
<div class="header">
My Header
</div>
<!-- everything inside t-call="fhid_recruitment.external_layout" will be rendered here -->
<t t-raw="0" />
<div class="footer">
My footer
</div>
</template>
在模板中,只需在此处调用您的自定义外部布局:
<template id="applicant_contract_offering">
<t t-call="web.html_container">
<!-- because it's defined in this module "fhid_recruitment" -->
<t t-call="fhid_recruitment.external_layout">
<t t-foreach="docs" t-as="o">
<div call="page">
<div class="article">
Content
</div>
</div>
</t>
</t>
</t>
</template>
关于模板,您需要了解的最重要的事情之一是 <t t-raw="0" />
,例如,如果模板 x_template
有这个,当我们这样称呼它时:
<t t-call="x_template">
any_content
</t>
Qweb
引擎将做的是,在呈现报告时将 x_template
中的 <t t-raw="0" />
替换为 any_content
。
如果您打算只为一个模板使用页眉和页脚,为了简化事情:
<template id="applicant_contract_offering">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<div class="header">
My Header
</div>
<div class="article">
Content
</div>
<div class="footer">
My footer
</div>
</t>
</t>
</template>