Поскольку у меня были некоторые проблемы с созданием кнопки печати, я бы хотел, чтобы здесь были доступны сценарии для создания кнопки печати.Я надеюсь, что это поможет одному или другому: -)
Вам нужно только интегрировать три сценария и изменить идентификатор в соответствующих сценариях.
Сценарий Suitelet (vc_print_button_suitelet.js):
define(['N/render', 'N/record', 'N/xml'], function(render, record, xml)
{
function onRequest(context) {
var custom_id = context.request.parameters.custom_id;
var pdfFileName = "vendorcredit";
var renderer = render.create();
var content = renderer.addRecord({
templateName: 'record',
record: record.load({
type: record.Type.VENDOR_CREDIT,
id: custom_id
})
});
renderer.setTemplateByScriptId("CUSTTMPL_112_5298640_SB1_621");
context.response.setHeader({
name: 'content-disposition',
value: 'inline; filename="' + pdfFileName + '_' + custom_id + '.pdf"'
});
context.response.writeFile(renderer.renderAsPdf());
}
return {
onRequest: onRequest
}
})
Сценарий клиента (vc_print_button_client.js):
define(['N/url', 'N/currentRecord'], function(url, currentRecord) {
var exports = {};
function pageInit(context) {
// TODO
}
function onButtonClick() {
var suiteletUrl = url.resolveScript({
scriptId: 'customscript_vc_print_button_suitelet',
deploymentId: 'customdeploy_vc_print_button_suitelet',
returnExternalUrl: false,
params: {
custom_id: currentRecord.get().id,
},
});
window.open(suiteletUrl);
}
exports.onButtonClick = onButtonClick;
exports.pageInit = pageInit;
return exports;
});
Сценарий события (vc_print_button_event.js):
define([], function() {
var exports = {};
function beforeLoad(context) {
context.form.addButton({
id: "custpage_vcpb",
label: "Print",
functionName: "onButtonClick"
});
context.form.clientScriptModulePath = "SuiteScripts/vcPrintButton/vc_print_button_client.js";
}
exports.beforeLoad = beforeLoad;
return exports;
});