报表打印格式

在 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 的博客):

示例:属性:

![](<%=profile_image_url%>)

**[<%=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. 示例

以下是总分类账报表的构建方式:

总分类账打印格式模板

报表效果如下:

注释:
  1. Bootstrap 样式表已预先加载。
  2. 您可以使用所有全局函数,如 fmt_money 和 dateutil。
  3. 可翻译的字符串应写成 __("text") 的形式。
  4. 您可以使用 {% include "templates/includes/formats/common_format" %} 创建模块并进行导入。