今天尝试使用render使用非custom form默认的PDF模板来打印一个销售订单的PDF文件。此代码片段来自一段user event脚本。
let myFile = render.create();
myFile.setTemplateById(PDF_TEMPLATE_ID);
myFile.addRecord('record', record.load({
type: 'salesorder',
id: newRec.id
}));
myFile.addRecord('subsidiary', record.load({
type: 'subsidiary',
id: subsidiary
}));
let invoicePdf = myFile.renderAsPdf();
invoicePdf.name = newRec.getValue({fieldId: 'tranid'}) + '.pdf'
注意PDF_TEMPLATE_ID必须是myFile.addRecord的记录类型一致。比如template的类型是sales order,则addRecord的类型必须是sales order。
此外,注意需要加载subsidiary,否则可能会造成引用subsidiary部分的模板不能正常加载,例如header中放置的对应subsidiary的logo。
myFile.addRecord('subsidiary', record.load({
type: 'subsidiary',
id: subsidiary
}));
最后,不要忘记设置文件名。
invoicePdf.name = newRec.getValue({fieldId: 'tranid'}) + '.pdf'
Comments