VissionListFormToPDF
4 years ago in Plain Text
// Данные с БД для формирования отчёта
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
}
}
}