$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 codeDirectualEngine.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 codeDirectualEngine.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 codeDirectualEngine.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.
$D.saveBase64File = function(base64, suffix)
$D.saveBase64File = function(base64, suffix)//example codeDirectualEngine.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'.
Результат выполнения функции — ссылка на файл.
$D.sheet.exportDataByLinkField = function(jsObject)
Суть метода заключается в том, чтобы возвращать загруженный в платформу .xlsшаблон с заполненными данными из структуры и возможностью его форматирования.
Порядок работы с методом:
Загружаем .xls шаблон в FileUpload
Инициализируем функцию. Параметр path должен содержать значения поля типа arrayLink, которые будут ссылаться на поля, из которых будет сформирован .xls документ.
Результат обработки функции: ссылка .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 документа.