**使用Netsuite的高级 PDF/HTML 模板功能**
DECEMBER
**背景**
在项目上,客户可能会提出一些打印模版的需求,例如PO打印、SO打印、发票打印等。这种需求也比较常见。我们可以通过两种方式实现:1.技术开发实现;2.使用Netsuite系统标准的高级PDF功能实现。若是一些比较简单的打印,各个项目可以考虑使用NetSuite的高级
PDF/HTML 功能。本文将给大家简单分享一下如何通过使用NetSuite的高级 PDF/HTML 功能配置打印模板~如有不足,请望指教。
**一、启用高级pdf/html功能**
路径:设置>>公司>>启用功能
在SuiteCloud页签下,勾选“高级 PDF/HTML 模板”勾选框,即可在Netsuite使用高级pdf/html功能。
图一
**二、新建高级PDF/HTML(以采购订单模板打印为例)**
路径:自定义>>表单>>高级 PDF/HTML 模板
找到需要打印的单据类型(支持打印事务处理单据、自定义记录),点击单据类型前面的“自定义”链接(图2),新建模板。即可跳转到高级PDF模板的编辑界面。
图二
**三、配置高级PDF/HTML的两种方式**
Ø 方式一:使用模板编辑器设计文件模板
操作比较简单,就和我们平时使用Word/Excel的操作差不多。可以添加字段、图像和表格,或文本、页码、分页符、横线、页眉和页脚等打印元素.但是模版编辑器的功能也存在局限性,例如无法直接在模板编辑器中添加子列表、交易行字段,需要在源代码中添加;
Ø 方法二:使用源代码设计文件模板
可以在源代码中完成模板编辑器不支持的功能。需要要求顾问掌握一下编程语言知识,了解源代码的一些基础设计逻辑(如果掌握了源代码编辑逻辑,缺点会变成优点)。
建议在设计文件模板时,方式一和方式二结合使用,效率会更高。
**四、使用模板编辑器设计文件模板**
“新元素”的工具栏还是比较强大的,可以满足很多基本需求。工具栏所支持的功能如图:
图3
**1.当打印文件中的内容来源于记录的某个字段,可使用模板编辑器添加此字段:**
在“新元素”工具栏中,点击加号的方框(如图4),将会跳出显示字段选择器,在搜索框里输入需要添加的字段(如图5).
但是有一些字段无法在字段选择器里选择,如子列表、交易行字段。因此这些类型的字段需要在源代码中添加。下文会说明使用源代码添加字段的格式。
图4
图5
**2.在打印文件中添加公司logo/图片**
大部分客户都希望在订单模版中显示公司的logo,这个有两种方式可以实现,
Ø 方式一:通过添加字段的方式实现:
即在字段选择器中“子公司标识(表单)”,添加到pdf所需显示logo的地方(如图6)。为了实现这个效果,请在子公司界面的[子公司标识(表单)]字段提前上传好公司Logo的图片(如图7),路径:设置>>公司>>子公司。
图6
图7
Ø 方式二:直接在pdf里添加公司logo的图片:
在“新元素”工具栏里,点击图片的按钮,弹出图像属性框,我们需要在 URL
字段中,输入图片文件在文件柜中url地址。同时,还可以在这里设置图片的宽度、边框、高度等。(如图8)
图8
**3.在模版编辑器对文件内容调整字体样式等**
如果要调整pdf文件中的一些字体格式、表的列宽等,调整字体样式建议使用模版编辑器完成,与word操作一致,相对简单。
图9
在模板编辑器中,选中其中一个表格,然后右键,有‘表格属性”选项(图10),可以在这里调整这个表格的格式:宽、高、是否需要边框等(图11)。若在“单元格”选项中选择“单元格属性”,则可以设置单元格的背景颜色、是否在单元格内自动换行等(图12)。
图10
图11
图12
**五、使用源代码设计文件模板**
**1.切换至“源代码”编辑模式;**
切换至源代码编辑模式,如图13:
图13
**2.添加模版编辑器选不到的字段。**
对于大部分字段说,在源代码中的格式都是:${对象/来源.字段id}.
l 添加当前记录上获取一个正文字段,格式:${record.fieldId}
l 添加子列表/货品行的字段,格式:${item.amount}
a. ${item.item@label}
b. ${item.id}
c. ${item.item}
d. ${item.quantity}
l 字段类型为选项(而不是子列表),可包括来自与当前交易记录相关的记录的字段,格式:${record.related_record.fieldId}
例如:获取当前记录供应商的邮箱,使用语法:${record.entity.email}
l ${object.fieldId@label}:指示应打印字段的标签。
l ${record@title}:指示应打印交易记录类型的名称,例如,采购订单的“Purchase
Order”。这仅可用于记录对象,对于其他对象,它会返回空白字符串。
l 添加链接。
a. ${record.hyperlink} 返回可链接网址;
b. ${record.hyperlink@url} 返回以下内容:url网址,但是不可链接;
**3.使用源代码在文件模板添加表。以添加货品明细表为例.**
上述也提到,模版编辑器中无法选到货品行字段,若需要获取po行货品行作为pdf等一个表明细,则需要使用源代码来完成。(所有的表都可以参考以下格式在源代码中添加)
图14
最终文件体现出来的明细表效果是:
图15
下面对源代码的标签属性做了一些简单的说明,便于业务顾问更好的理解源代码、自己编辑源代码:
(1) 是一个双标签,定义文件中的一个表,是表开始的标签,是表结束的标签;
PS:在编辑源代码的时候,需要注意有开始,就有结束,标签需要成双成对出现。
(2)开始标签,定义表格中的 每一行;
(3)开始标签,定义表格中的 每一列;
(4)开始标签,定义表示 每一列的标题;
(5)align定义表格段落是居中对齐、靠右对齐、靠左对齐;
(6)colspan定义当前单元格横跨的列数;
(7)style定义当前单元格的字体大小,单元格格式等;
**六、使用已完成的高级PDF模板。(以采购订单为例)**
**1.先在采购订单的自定义表单里配置已完成的高级PDF模板;**
**操作:**
(1) 转到自定义 > 表单 > 事务处理表单;
(2) 在“自定义交易表单”页面上,点击自定义表单的编辑链接,或点击标准表单的自定义链接;
在自定义表单的“编辑”页面上,选择打印类型、打印模板;
图16
**2.在采购订单界面打印高级PDF模板;**
图17
最终打印出来的一个效果图:
图18
** 七、小总结 **
1\. 高级PDF的优点
a. 不同的自定义表单可以设置不同的高级PDF模版(一个自定义表单对应一个PDF模版)。可以根据客户需求配置不同模版。
b. 无需技术程序开发。业务顾问可以使用高级PDF功能,配置模版取值简单的模版。
c. 不仅是在记录界面上可以使用到高级PDF模版,工作流发送邮件、搜索发送邮件等,都可以配置高级PDF模版。
d. 一些事务处理单据,高级PDF支持自动生成条形码。
2\. 高级PDF的缺点
a. 若配置复杂高级PDF的模版,存在一些难度,此功能点局限性还需要再探究一下。
(1) 从业务顾问的角度上看,有些功能模版编辑器无法实现,编辑源代码也比较花费时间,若模版复杂,不建议使用高级PDF功能。
(2) 从技术的角度上看,高级PDF的源代码编辑器相较于技术自己的编程软件来说,不是那么灵活。
** 3.待研究: **
a. 是否可以在模版里直接进行一些金额计算。在Netsuite Help中未找到明确答案及示例,还待研究。
在源代码中添加字段时,字段钻取层数是否有限制,还待研究。
**END**
作者:杨梦婷
审核:于 慧
编辑:朱思聪