今天尝试使用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'
Last modified: 31/01/2024

Author

Comments

Write a Reply or Comment

Your email address will not be published.