移除打印格式中的描述

问题:

我想从打印格式中移除描述,因为它占用了太多空间:

但是当我使用打印格式生成器这样做时,我同时也丢失了物料编码和名称。如何解决这个问题?

答案:

这是因为你在打印设置中启用了紧凑物料打印选项。

你可以禁用此选项,然后在打印格式生成器中取消勾选描述。这应该能解决你的问题。

自定义打印格式中的字段可见性

每笔交易都有一个标准打印格式。在标准格式中,默认只显示某些字段。如果用户希望在标准格式中显示特定字段,可以使用自定义表单工具进行定制。

假设在销售订单中,我们需要让“收货地址”字段在标准打印格式中可见。

步骤 1:前往自定义表单

首页 > 自定义 > 表单自定义 > 自定义表单

步骤 2:文档类型

根据我们的场景,将选择“销售订单”作为文档类型。

步骤 3:禁用打印隐藏

点击打开要在标准打印格式中显示的字段。禁用打印隐藏字段。

步骤 4:更新

更新自定义表单以保存更改。重新加载您的 ERPNext 账户,然后检查打印格式以确认。

在打印格式生成器中自定义表格

您可以通过以下导航路径自定义打印格式生成器中的“项目”列:

  1. 点击“设置”按钮,然后选择“自定义”,创建您的自定义打印格式。
  2. 为您正在创建的新自定义打印格式添加一个相关的名称。
  3. 进入新打印格式后,您可以点击“项目(表格)”字段中的“选择列”按钮。

打开表格后,您将看到打印格式标准模板中已有的列列表,如下所示:

您在此处选择的选项将显示在打印格式中。

选择您希望在为自定义打印格式创建的表格中保留的列。您可以根据需要调整列的宽度和顺序。

选择好您希望打印格式包含的列后,点击“更新”,并在对打印格式进行进一步修改后“保存”所做的更改。

刷新屏幕,然后选择新创建的打印格式。在本例中,它是“采购收货单”。

点击您新创建的打印格式后,更改将显示在项目表格中。

要查看标准打印格式与您刚刚创建的格式之间的区别,您只需点击现有的打印格式模板即可。

添加/移除打印格式字段

为了说明,我们以采购订单为例,该订单在打印格式中包含以下字段。这里,我想在“供应商名称”下添加“供应商联系人姓名”,并从项目表中移除“每单位重量”列。

步骤 1: 导航到您想要更改打印格式的文档的打印视图 -> 菜单 (…) -> 自定义

步骤 2: 按名称搜索字段,并将其添加到所需位置

使用相同的拖放方法也可以移除字段。

步骤 3: 要添加/移除文档子表中的字段:定位到该表 -> 选择列 -> 根据需要勾选/取消勾选。

结果:

打印格式中的自定义翻译

通过自定义翻译,用户可以用客户的本地语言打印客户和供应商的文档。

例如,如果您有来自德国和法国的客户,他们希望以德语和法语获取报价单,那么使用自定义翻译功能即可实现。

1. 设置语言

在客户主数据中,选择默认语言。例如,客户的默认语言是西班牙语

同样,您也可以在供应商主数据中设置默认语言。

1.1 以对方语言打印预览

在交易的打印预览中,数值将翻译成对方的语言。

以客户默认语言显示的客户报价单打印预览。

以供应商默认语言显示的供应商报价单打印预览。

1.2 在预览中更改打印语言

用户可以选择在打印视图中切换为其他语言。

2. 自定义翻译

用户可以使用自定义翻译表单设置自己的翻译。例如,如果用户希望将产品描述设置为客户的语言(西班牙语),则可以创建一个语言为西班牙语的新翻译,输入源数据和翻译后的信息。

首页 > 自定义 > 其他 > 自定义翻译 > 新建

当用户在供应商报价单的打印预览中选择西班牙语时,翻译便会生效。请注意,第二个项目的描述没有应用翻译,因为它在翻译列表中尚未创建。

  1. 地址模板
  2. 报价单
  3. 销售订单

自定义打印格式

打印格式是当您想要打印或通过电子邮件发送交易时生成的布局。

此功能适用于 ERPNext 中的所有交易,例如所有销售和采购交易、人力资源文档等。

在 ERPNext 中,有三种类型的打印格式,即标准打印格式、自定义打印格式和 HTML 打印格式。

标准打印格式

ERPNext 中的每个可打印文档类型都有其自己的标准打印格式,该格式由 Frappe 框架生成。标准打印格式中的字段位置取决于文档中相应字段的位置。

对标准打印格式所做的任何更改都必须通过自定义表单来完成。您还可以查看在打印格式中添加字段。

自定义打印格式

您还可以使用名为打印格式生成器的工具创建自己的自定义打印格式。此工具将帮助您通过拖放字段,按照您的偏好格式制作简单的自定义打印格式。

为了创建自定义打印格式,ERPNext 提供了几种预定义的模板,分为三种样式:现代、单色和经典。

要创建您的版本,请从以下位置打开现有模板:

构建 > 视图 > 打印格式

要编辑/更新您的打印和 PDF 设置,请前往:

设置 > 打印设置

HTML 打印格式

要创建 HTML 打印格式,您需要具备一些 HTML、CSS 和 Python 知识。以下是一个如何设计具有非常特定格式的打印格式的示例。

打印格式在服务器端使用 Jinja 模板语言提供。所有表单都可以访问 doc 对象,该对象包含有关正在格式化的文档的信息。您还可以通过 frappe 模块访问常用工具。在创建基于 HTML 的打印格式时,如需支持,您可以参考 ERPNext 社区论坛,或为您的查询发布新帖子。

对于样式,提供了 Bootstrap CSS 框架,您可以享受完整的类范围。

参考

  1. Jinja 模板语言:参考
  2. Bootstrap CSS 框架

示例

<h3>{{ doc.select_print_heading or "Invoice" }}</h3>
<div class="row">
    <div class="col-md-3 text-right">Customer Name</div>
    <div class="col-md-9">{{ doc.customer_name }}</div>
</div>
<div class="row">
    <div class="col-md-3 text-right">Date</div>
    <div class="col-md-9">{{ doc.get_formatted("invoice_date") }}</div>
</div>

        {%- for row in doc.items -%}

        {%- endfor -%}
    <table class="table table-bordered">
    <tbody>
        <tr>
            <th>Sr</th>
            <th>Item Name</th>
            <th>Description</th>
            <th class="text-right">Qty</th>
            <th class="text-right">Rate</th>
            <th class="text-right">Amount</th>
        </tr><tr>
            <td style="width: 3%;">{{ row.idx }}</td>
            <td style="width: 20%;">
                {{ row.item_name }}
                {% if row.item_code != row.item_name -%}
                <br>Item Code: {{ row.item_code}}
                {%- endif %}
            </td>
            <td style="width: 37%;">
                <div style="border: 0px;">{{ row.description }}</div>
            </td>
            <td style="width: 10%; text-align: right;">
                {{ row.qty }} {{ row.uom or row.stock_uom }}
            </td>
            <td style="width: 15%; text-align: right;">
                {{ row.get_formatted("rate", doc) }}
            </td>
            <td style="width: 15%; text-align: right;">
                {{ row.get_formatted("amount", doc) }}
            </td>
        </tr></tbody>
</table>

备注

  1. 要获取日期和货币格式化值,请使用 doc.get_formatted("fieldname")
  2. 对于可翻译字符串,请使用 {{ _("This string is translated") }}

原始打印

从版本 12 开始引入

直接以打印机原生语言向打印机发送一串命令,这被称为原始打印。

许多热敏打印机需要接收这些原始命令才能执行诸如条码打印、收据打印、标签打印等功能。原始打印在大多数情况下会绕过打印机驱动程序,因此速度非常快且可靠。原始打印还能实现一些高级功能,例如切纸、弹出钱箱等。

1. 在 ERPNext 中设置原始打印

1.1 在客户端计算机上安装 QZ Tray 应用程序

在连接热敏打印机的计算机上下载并安装 QZ Tray 应用程序。此应用程序可在其官方网站找到。目前,QZ Tray 支持 Windows、macOS 和 Linux。安装过程中,如果尚未安装 Java,系统会提示您安装,请安装 Java 以完成安装。

有关安装 QZ Tray 应用程序的更多说明,请参见此处。

1.2 创建原始命令打印格式

要能够向打印机发送原始命令,您需要首先创建一个使用原始命令的打印格式。与 HTML 自定义打印格式一样,原始命令中使用 Jinja 模板语言。

要为原始打印创建新的打印格式:

  1. 转到打印格式列表:首页 > 设置 > 打印 > 打印格式
  2. 点击新建。
  3. 选择相关的文档类型。
  4. 勾选自定义格式原始打印选项。
  5. 原始命令字段中填写要发送给打印机的所需原始命令。
  6. 点击保存。

目前,任何基于字符串的打印机语言都可以在打印格式的 Raw Commands 字段中使用。编写原始命令需要了解打印机厂商提供的打印机原生语言。请参考打印机厂商提供的开发手册,了解如何编写其原生命令。

1.3 在打印设置中启用原始打印

要启用原始打印:

  1. 转到:首页 > 设置 > 打印 > 打印设置 > 原始打印
  2. 勾选启用原始打印选项。
  3. 保存。

2. 在 ERPNext 中使用原始打印的方法

有两种方法可以将原始打印命令发送到您的打印机。

2.1 在打印预览页面点击打印

从文档打印预览页面打印原始命令打印格式:

  1. 选择适当的打印格式。对于使用原始命令的打印格式,打印预览位置会显示“无可用预览”消息。
  2. 点击打印按钮。
  3. 请允许 QZ Tray 针对您启动的操作弹出连接提示(键盘快捷键:Alt + A)。
  1. 系统可能会要求您选择“打印格式 – 打印机映射”。
  • 此映射用于将打印命令发送到相应的打印机。
  • 打印机需要安装在您的计算机上,才能将其映射到打印格式。
  • 此映射存储在本地计算机上,并且需要在每台客户端机器上进行设置。
  • 您也可以通过点击打印机设置按钮来编辑此映射。

2.2 从客户端脚本调用原始打印函数

通常需要在某个事件(如提交、保存、修订等)发生时发出打印命令。可以编写一个客户端脚本为您执行此操作。

以下是相关的原始打印函数:

  1. 函数:frappe.ui.form.qz_connect
  • 一个连接包装器,用于与 QZ Tray 应用程序建立连接。
  • 返回一个 promise,在成功建立连接时解决。
  • 允许活动和非活动连接无论如何都能解决。因此,每次发送命令前都可以调用它。
  • 使用示例:
 frappe.ui.form.qz_connect()
 .then(function () {
 return qz.print(config, data);
 })
 .then(frappe.ui.form.qz_success)
 .catch(err => {
 frappe.ui.form.qz_fail(err);
 });

这里,qz 是由 qz-tray.js 库提供的全局对象。

  1. 函数:frappe.ui.form.qz_get_printer_list
  • 提供 QZ Tray 应用程序可用的打印机列表。
  • 返回一个 promise,该 promise 解决为一个打印机列表。

使用示例:

 frappe.ui.form.qz_get_printer_list().then(
 // Required action on getting the printer list.
 // Note: Printer list is a array of strings.
 );
  1. 函数:frappe.ui.form.qz_success
  • 向用户显示“打印已发送到打印机!”的提示。可以在打印命令成功后调用。
  1. 函数:frappe.ui.form.qz_fail
  • 向用户显示错误消息。应在 QZ Tray 连接失败时调用。

您也可以通过 qz 对象直接访问 qz-tray.js 库提供的函数。点击此处查看 qz-tray.js 库文档。注意:qz 对象仅在首次调用 frappe.ui.form.qz_connect 后才初始化。如果您在此之前需要 qz 对象,可以使用 frappe.ui.form.qz_init

  1. 打印设置
  2. 打印格式
  3. 打印样式

支票打印模板

支票打印模板允许定义银行支票的模板。

业务涉及向供应商和员工等各方付款。付款可以通过多种方式完成,例如现金、NEFT 或支票。如果您通过支票付款,您还可以根据付款条目在 ERPNext 中创建用于打印支票的打印格式。

要访问支票打印模板,请转到:> 首页 > 会计 > 支票打印模板

使用支票打印模板,您可以生成新的支票打印格式。它将根据您的银行提供的支票格式创建。

一个支票示例:

  1. 如何创建支票打印模板

  1. 转到支票打印模板列表,点击新建。
  2. 您可以设置支票上各项内容的位置。
  3. 保存。

在支票打印模板中,每个值(例如收款人、日期)都根据其在支票上应打印的位置提供了精确坐标。坐标以厘米为单位提供。以下是结构的表示:

1.1 通过扫描创建新格式

为了加快创建新支票打印格式的速度,您可以上传支票的扫描图像。根据支票的扫描图像,系统会自动更新每个值的坐标,例如对方名称、金额、日期、大写金额等。

1.2 手动创建新打印格式

如果预览看起来不错,请点击创建打印格式按钮,为打印支票创建新的打印格式。根据支票打印模板中提供的值,系统将自动为支票的打印格式生成 HTML 脚本。

您可以根据希望在支票上打印的位置手动提供每个值的坐标,并使用 HTML/CSS 进行自定义。

预览

根据为所有值提供的坐标,将显示这些值在支票上打印效果的预览。

1.3 打印支票

为支票生成的新打印格式将在付款条目表单中可见。创建付款条目后,您将能够在支票上打印交易详情。

  1. 地址模板
  2. 条款与条件模板

打印标题

打印标题是您可以给交易单据指定的名称/标题。

这些交易单据包括销售发票、供应商报价单等。您可以为不同的业务通信创建名称列表。

如果您想重命名交易单据在打印时的显示方式,可以通过打印标题来实现。例如,报价单也可以称为“提案”、“估算”或“形式发票”。

要访问打印标题,请前往:

首页 > 设置 > 打印标题

1. 如何创建打印标题

  1. 前往打印标题列表,点击新建。
  2. 输入将显示在文档上的标题。
  3. 保存。

要使用打印标题,请在交易单据的“打印标题”字段中选择已创建的打印标题,如下所示:

打印标题更改的示例如下所示:

2. 视频

3. 相关主题

  1. 打印格式
  2. 打印样式
  3. 信头
  4. 支票打印模板
  5. 报价单