// Данные с БД для формирования отчёта var workplace = "ВЛ 10 кВ ТП №265- ТП № 240"; // Наименование места осмотра var organization_name = "Филиал \"СЭС\""; // Наименование организации var subdivision_name = "Пушкинский РЭС"; // Наименование подразделения var timeOfVission = "17.10.2020"; // Дата осмотра var timeOfConsent = "18.10.2020"; // Дата одобрения мастера var nameWorker = "Саввин В.С."; // Имя электромонтёра var nameMaster = "Перегуда А.И."; // Имя мастера // Данные для таблицы - <Имя объекта> <Дефекты> <Срок устранения> var externalDataRetrievedFromServer = [ { 'Наименование объекта:': 'Place 1', 'Выявленные дефекты:': 'deffect 1', 'Срок устранения:': 10 }, { 'Наименование объекта:': 'Place 2', 'Выявленные дефекты:': 'deffect 2', 'Срок устранения:': 20 }, { 'Наименование объекта:': 'Place 3', 'Выявленные дефекты:': 'deffect 3', 'Срок устранения:': 30 }, { 'Наименование объекта:': 'Place 4', 'Выявленные дефекты:': 'deffect 4', 'Срок устранения:': 40 } ]; // Функция для построения таблицы основанной на данных из БД function buildTableBody(data, columns) { var body = []; body.push(columns); data.forEach(function(row) { var dataRow = []; columns.forEach(function(column) { dataRow.push(row[column].toString()); }); body.push(dataRow); }); return body; } // Функция, возвращающая построенную таблицу для вставки в развёртку файла function table(data, columns) { return { table: { headerRows: 1, body: buildTableBody(data, columns), }, layout: { fillColor: function (rowIndex, node, columnIndex) { return (rowIndex == 0) ? '#CCCCCC' : null; } } }; } // Развёртка самого файла PDF var docDefinition = { content: [ { text: "Организация: " + organization_name, style: 'SubTitleBold' }, { text: "Подразделение: " + subdivision_name, style: 'SubTitleBold' }, '\n', { text: "ЛИСТОК ОСМОТРА ВЛ", style: 'TitleBold', alignment: 'center' }, { text: workplace, alignment: 'center' }, '\n', table(externalDataRetrievedFromServer, ['Наименование объекта:', 'Выявленные дефекты:', 'Срок устранения:']), '\n', '\n', '\n', { text: "Осмотр произведён: " + timeOfVission + " _____________________(" + nameWorker + ")" }, '\n', { text: "Принял мастер: " + timeOfConsent + " _____________________(" + nameMaster + ")" } ], styles: { TitleBold: { fontSize: 14, bold: true }, SubTitleBold: { fontSize: 14, bold: true } } }