在 4.1 版本中,我们引入了报表打印格式。这些是 HTML 模板,您可以使用它们来格式化查询报表数据以供打印。
1. 创建新的打印格式
要创建新的打印格式,只需在查询报表的文件夹中放入一个 .html 文件。例如,对于 ERPNext 中的总分类账报表,您可以在 .js 和 .py 文件旁边放入一个名为 general_ledger.html 的文件。
erpnext/accounts/general_ledger 的目录结构
general_ledger/
├── __init__.py
├── general_ledger.html
├── general_ledger.js
├── general_ledger.json
└── general_ledger.py
2. 模板语法
对于模板,我们使用了 John Resig 的微模板脚本的改编版本。如果您了解 Javascript,那么掌握这种模板语言会非常容易。
以下是一些示例(来自 John Resig 的博客):
示例:属性:

**[<%=from_user%>](<%=from_user%>):** <%=text%>
示例:代码结构、循环
<% for ( var i = 0; i < users.length; i++ ) { %>
- [<%=users[i].name%>](<%=users[i].url%>)
<% } %>
注意:请务必注意,您不应在模板中使用单引号(’),因为引擎无法有效处理它们。
3. 数据
模板可用的数据如下:
data:这是一个记录列表,每条记录是一个对象,其属性由标签转换为 slug 格式。例如,“过账日期”变为“posting_date”filters:报表中设置的筛选条件report:报表视图对象
4. 示例
以下是总分类账报表的构建方式:
总分类账打印格式模板
报表效果如下:
注释:
- Bootstrap 样式表已预先加载。
- 您可以使用所有全局函数,如
fmt_money和 dateutil。 - 可翻译的字符串应写成
__("text")的形式。 - 您可以使用
{% include "templates/includes/formats/common_format" %}创建模块并进行导入。