24. Файлові атрибути. Додавання власних кнопок та дій по їх натисканню.

24.41. Приклад використання additionalActions. У вказаному прикладі до Образу документа додається Кнопка і при натисканні в консоль виводиться інформація про файл. AdditionalActions спрацьовує при відкритті, створенні документа, відповідно якщо що-небудь вказати відразу під additionalActions воно буде виконано при зазначених діях. Те, що написано всередині handler спрацьовує безпосередньо при натисканні кнопки.

module.exports = {
form_6_additionalActions(event) { 
// 6 – id атрибута. additionalActions – добавление кнопки
return [
{
code: 
‘button1’// Внутренний код кнопки
label: 
‘Інфоромація про файл’// Подсветка кнопки
icon: 
‘u-icon-bell’// Иконка кнопки. Можно брать примеры из Ярлыков
handler() {     
// Событие при нажатии на кнопку
const docFile = event.document.getNativeFileAttribute() // Взять информацию об атрибуте
const fileName = docFile.fileInfo.fileName
console.log(‘Образ документа:’,fileName)
}
}
]
}
}  

24.42. Приклад використання additionalActions, beforeAction. У вказаному прикладі до Образу документа додається Кнопка і при її натисканні спочатку виконується перевірка файлу, і лише потім, коли перевірка пройдена виконується дія натискання на кнопку, в даному випадку – скачування файлу.

const {showErrorWindow} = require(‘@unitybase/ub-pub’)

module.exports = {
form_6_additionalActions(event) {
return [
{
code: 
‘button2’,
label: 
‘Выгрузить файл’,
icon: 
‘fas fa-arrow-down’,
handler() {
const fileAttributeNodeID = 6
const fileAttributeControl = event.form.getNodeControl(fileAttributeNodeID)
fileAttributeControl.downloadFile() 
// Выгрузка файла
}
}
]
},
form_6_beforeAction_button2(event) {
const fileAttr = event.document.getNativeFileAttribute()
if (!fileAttr.fileInfo) {
event.cancelAction()
showErrorWindow(
‘Файл должен быть загружен’)
return
}

if (!fileAttr.isSigned) {
event.cancelAction()
showErrorWindow(
‘Файл должен быть подписан’)
return
}

if (fileAttr.fileInfo.contentType !== ‘application/pdf’) {
event.cancelAction()
showErrorWindow(
‘Файл должен быть формата pdf’)
}
}
}

24.43. Приклад використання additionalActions, actionExecuted. У вказаному прикладі до Образу документа додається Кнопка і при її натисканні виконується процедура, якщо процедура виконалася і помилок немає, то виконуються дії після натискання кнопки: actionExecuted. Якщо процедура не виконалася, відбулися помилки, наприклад, то actionExecuted не буде виконано. Наприклад, якщо написати вираз await UB.connection.query({entity: ‘frm_Attribute’, method: ‘selectIsUsed’, execParams: {ID: aaaaaaa}}) , то при натисканні на кнопку буде помилка, і як наслідок actionExecuted виконано не буде.

const {connection} = require(‘@unitybase/ub-pub’)

module.exports = {
form_6_additionalActions(event) {
return [
{
code: 
‘button3’,
label: 
‘Выгрузить файл’,
icon: 
‘fas fa-arrow-down’,
async handler() {
await UB.connection.query({entity: ‘frm_Attribute’, method: ‘selectIsUsed’, execParams: {ID: 12}})
}
}
]
},
form_6_actionExecuted_button3(event) {
const fileAttributeNodeID = 6
const fileControl = event.form.getNodeControl(fileAttributeNodeID)
fileControl.downloadFile()
}
}

24.44. Для атрибуту додатки документа/колекція файлів можливе додавання кнопок карусель або діалогове вікно. У прикладі додаємо кнопки, по натисканню виводимо повідомлення.

const {showErrorWindow} = require(‘@unitybase/ub-pub’)

module.exports = {
form_4_additionalActions(event) {    
// 4 – ID атрибута приложения документов
return [
{
code: 
‘carousel’,
label: 
‘Кастомный атрибут в карусели’,
icon: 
‘u-icon-key’,
handler() {
showErrorWindow(
‘Нажата кнопка в карусели’)
},
carousel: 
true
},

{
code: ‘dialog’,
label: 
‘Кастомный атрибут в диаловогом окне’,
icon: 
‘u-icon-close’,
handler() {
showErrorWindow(
‘Нажата кнопка в диалоговом окне’)
},
dialog: 
true,
availableInReadonlyMode: 
true
}
]
}
}

        В цілому additionalActions використовується для того, щоб оголосити кнопку, а також виконати будь-які дії під час натискання кнопки. beforeAction використовується для того, щоб задати якісь умови, які повинні бути виконані до натискання кнопки, якщо умови не виконані, то відповідно то дії при натисканні не виконуються. actionExecuted запускає виконання дій після натискання кнопки. Кнопка необов’язково задається за допомогою additionalActions, вона може бути задана програмним кодом, і тоді, наприклад, управління кнопкою зі скрипта виконується за допомогою beforeAction і actionExecuted.

        Скрипт керує лише кастомними кнопками, заданими програмним кодом або за допомогою скрипта, і не керує стандартними кнопками.

        Скрипт може бути застосований до Образу документа, Файлового атрибута документа, Файлового атрибута таблиці документа, атрибута колекція документа, атрибута програми документів. Достатньо лише підставити відповідне id атрибута.

Отримайте персональну пропозицію

    Цей сайт захищено reCAPTCHA, а також застосовуються Політика конфіденційності та Умови надання послуг Google.
    +38 (044) 323 00 86