Сохранение объектов

Сохранить объект/несколько объектов

$D.saveObject = function(structName, obj, sendEvent, changeEventForRealChangedData)

$D.saveObject = function(structName, obj, sendEvent, changeEventForRealChangedData)
//$D.saveObject("Users",1,true)

Где: structName (String): SysName структуры, в которой нужно сохранить объект obj (js-объект, либо массив js-объектов), obj: может содержать ID объектов sendEvent (boolean): порождение события при сохранении объекта (по умолчанию false); changeEventForRealChangedData (boolean) - если true, то при сохранении объекта перезаписываются только те поля, значение которых было изменено (т.е. не совпадает с предыдущим значением). Если false, то все сохраняемые поля считаются изменёнными.

Функция сохранения указанных полей

$D.store.save = function(structName, obj, createEvent)

Метод $D.save должен сохранять не весь объект, а только указанные в obj поля. Может применяться для запуска сценариев, которые реагируют на изменения определенных полей объекта.

//example code
DirectualEngine.addEventListener(AppEvents.START, function(context){
var templateID = null;
templateID = $D.getValueFromTemplate("{{id}}")
$D.store.save("storeSave", {"id":templateID,"stringF":"Changed string value"},true)
// Будет изменено поле stringF на указанное значение.
// ID останется прежним
return true;
});

Событие будет создано на каждое переданное поле вне зависимости от того, изменилось поле или нет на самом деле.

Сохранение текста в файл на сервере

$D.saveTextToFile = function(text)

$D.saveTextToFile = function(text)
//example code
DirectualEngine.addEventListener(AppEvents.START, function(context){
//получаем значение ID текущего объекта
var templateID = null;
templateID = $D.getValueFromTemplate("{{id}}");
//получаем значение глобальной переменной
var textTemplate = $D.getValueByID("GlobalVariables","textTemplate","value")
//выполняем функцию
var saveTextToFile = $D.saveTextToFile(textTemplate);
//добавляем резльтирующее значение в текущий объект
$D.saveObject("saveTextToFile",{id:templateID,saveTextToTextfileResult:saveTextToFile});
return true;
});

Результат выполнения функции — ссылка на файл .txt.

Сохранение картинки в файл на сервере

$D.saveBase64Image = function(base64Value)

Функция конвертирует base64 код в изображение.

//example code
DirectualEngine.addEventListener(AppEvents.START, function(context){
//получаем значение ID текущего объекта
var templateID = null;
templateID = $D.getValueFromTemplate("{{id}}");
//получаем значение глобальной переменной
var base64image = $D.getValueByID("GlobalVariables","base64image","value")
//выполняем функцию
var saveBase64Image = $D.saveBase64Image(base64image);
//добавляем в текущий объект значение в поле
$D.saveObject("saveBase64Image",{id:templateID,saveBase64ImageResult:saveBase64Image});
return true;
});

Результат выполнения функции — ссылка на файл .jpeg.

Сохранение base64 текста в файл на сервере

$D.saveBase64File = function(base64, suffix)

$D.saveBase64File = function(base64, suffix)
//example code
DirectualEngine.addEventListener(AppEvents.START, function(context){
//получаем значение ID текущего объекта
var templateID = null;
templateID = $D.getValueFromTemplate("{{id}}");
//получаем значение глобальной переменной
var base64DOCX = $D.getValueByID("GlobalVariables","base64DOCX","value")
//выполняем функцию
var saveBase64File = $D.saveBase64File(base64DOCX,'docx');
//добавляем в текущий объект значение в поле
$D.saveObject("saveBase64File",{id:templateID,saveBase64FileResult:saveBase64File});
return true;
});

base64: текст для сохранения. suffix: опциональный параметр. Применяется для задания расширения сохраняемого файла. Если значение параметра не задано, произойдет попытка автоматически определить тип файла, в случае неудачи используется значение по умолчанию '.bin'.

Результат выполнения функции — ссылка на файл.

Экспорт объектов указанного в path массива в xls

$D.sheet.exportDataByLinkField = function(jsObject)

Суть метода заключается в том, чтобы возвращать загруженный в платформу .xlsшаблон с заполненными данными из структуры и возможностью его форматирования.

Порядок работы с методом:

  1. Загружаем .xls шаблон в FileUpload

  2. Инициализируем функцию. Параметр path должен содержать значения поля типа arrayLink, которые будут ссылаться на поля, из которых будет сформирован .xls документ.

  3. Результат обработки функции: ссылка .xls файл, который будет сохранён в FileUpload.

$D.sheet.exportDataByLinkField = function(jsObject)

Значения ключей объекта:

  • structName: структура, в которой располагается объект с полем arrayLink.

  • id: ID объекта с полем arrayLink.

  • path: путь для поиска поля arrayLink.

  • fieldList: системные имена полей для экспорта, если нет, будут выгружены все.

  • startX: номер ячейки по оси X (для заполнения шаблона).

  • startY: номер ячейки по оси Y (для заполнения шаблона).

  • showHeader: показывать ли заголовки полей (true - показывать, false - скрывать).

  • templateOverrideHeight: высота строки шаблона.

  • templateField: поле, которое несет в себе имя шаблона.

  • templateSheetIndex: индекс страницы, где находится страница с шаблоном.

  • alignRight: перечисление массива полей, которые нужно выравнивать по правому краю ячейки.

  • alignCenter : перечисление массива полей, которые нужно выравнивать по центру ячейки.

  • dateFormat: шаблон для формата дат.

  • order: указывается название поля, по которому таблица будет отсортирована.

  • border: задать оформление границ ячеек.

  • templateURL: адрес шаблона для заполнения.

Пример объекта:

structName:"structure",
id: "1",
path: "array",
fields: ['id','string','number','boolean','decimal','date','array','phone','email','link','arrayLink'],
startX:1,
startY:4,
showHeader: true,
alignRight:['id', 'string'],
alignCenter:['id', 'date'],
dateFormat: "MM:dd:yyyy/tt",
templateURL: link,
order:'name',
border:2

Результат выполнения: URL адрес xls документа.