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

       Можливе додавання кнопок у три місця: toolbar, toolbar меню та контекстне меню.

25.45. Додавання кнопки на toolbar.

module.exports = {
form_4_additionalActions(event) {
return [
{
code: 
‘code1’,
label: 
‘Кнопка 1’,
icon: 
‘u-icon-key’,
handler() {
console.log(‘Нажатие Кнопки 1’)
},
showForSelectedRow: 
true
}

]
}
}

25.46. Додавання декількох кнопок на toolbar.

module.exports = {
form_4_additionalActions(event) {
return [
{
code: 
‘code1’,
label: 
‘Кнопка 1’,
icon: 
‘u-icon-message’,
handler() {
console.log(‘Нажатие Кнопки 1’)
},
showForSelectedRow: 
true
},
{
code: 
‘code2’,
label: 
‘Кнопка 2’,
icon: 
‘u-icon-grid’,
handler() {
console.log(‘Нажатие Кнопки 2’)
},
showForSelectedRow: 
true
},
{
code: 
‘code3’,
label: 
‘Кнопка 3’,
icon: 
‘u-icon-book-alt’,
handler() {
console.log(‘Нажатие Кнопки 3’)
},
showForSelectedRow: 
true
}
]
}
}

25.47. Додавання декількох кнопок на toolbar та їх сортування (розміщення) в toolbar (sortOrder).

ortOrder:sortOrder:

module.exports = {
form_4_additionalActions(event) {
return [
{
code: 
‘code1’,
label: 
‘Кнопка 1’,
icon: 
‘u-icon-message’,
sortOrder: 30,
handler() {
console.log(‘Нажатие Кнопки 1’)
},
showForSelectedRow: 
true
},
{
code: 
‘code2’,
label: 
‘Кнопка 2’,
icon: 
‘u-icon-grid’,
sortOrder: 20,
handler() {
console.log(‘Нажатие Кнопки 2’)
},
showForSelectedRow: 
true
},
{
code: 
‘code3’,
label: 
‘Кнопка 3’,
icon: 
‘u-icon-book-alt’,
sortOrder: 10,
handler() {
console.log(‘Нажатие Кнопки 3’)
},
showForSelectedRow: 
true
}
]
}
}

25.48. До кнопки toolbar можна додати обробник рядка таблиці, яка виділена. Приклад: взяти значення атрибута з рядка таблиці sortOrder.

rtOrder:sortOrder:sortOrder:

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

module.exports = {
form_4_additionalActions(event) {
return [
{
code: 
‘code1’,
label: 
‘Кнопка 1’,
icon: 
‘u-icon-message’,
async  handler({rowID}) {
const entry = await Repository(‘dfx_DocumentItem’).attrs(‘attrValues.a003’).selectById(rowID)
console.log(‘Значение атрибута:’,entry)
},
showForSelectedRow: 
true
}
]
}
}

25.49. Приклад аналогічний до попереднього. Тільки в даному випадку виконується видалення рядка таблиці ortOrder.

sortOrder:sortOrder:sortOrder:

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

module.exports = {
form_4_additionalActions(event) {
return [
{
code: 
‘code1’,
label: 
‘Удалить запись’,
icon: 
‘u-icon-key’,
async  handler({rowID}) {
await connection.run({
entity: 
‘dfx_DocumentItem’,
method: 
‘delete’,
execParams: {ID: rowID}
})
event.form.getNodeControl(4).refreshData()
},
showForSelectedRow: 
true
}
]
}
}

24.50. Додавання пункту в меню інструменту. Для пунктів цього меню неможливе використання операцій над рядком таблиці Order.

:

module.exports = {
form_4_additionalActions(event) {
return [
{
code: 
‘code1’,
label: 
‘Кнопка 1’,
icon: 
‘u-icon-key’,
handler() {
console.log(‘Нажатие Кнопки 1’)
},
toolbar: 
true
}
]
}
}

24.51. Додавання декількох пунктів у меню toolbar та їх сортування.

er:sortOrder:sortOrder:

module.exports = {
form_4_additionalActions(event) {
return [
{
code: 
‘code1’,
label: 
‘Кнопка 1’,
icon: 
‘u-icon-key’,
sortOrder: 40,
handler() {
},
toolbar: 
true
},
{
code: 
‘code2’,
label: 
‘Кнопка 2’,
icon: 
‘u-icon-key’,
sortOrder: 30,
handler() {
},
toolbar: 
true
},
]
}
}

24.52. Додавання пункту до контекстного меню. Для пунктів цього меню неможливе використання операцій над рядком таблиціOrder.

:sortOrder:sortOrder:

module.exports = {
form_4_additionalActions(event) {
return [
{
code: 
‘code1’,
label: 
‘Кнопка 1’,
icon: 
‘u-icon-key’,
handler() {
console.log(‘Нажатие Кнопки 1’)
},
contextMenu: 
true
}
]
}
}

24.53. Додавання кількох пунктів у контекстне меню та їх сортування.

:sortOrder:sortOrder:

module.exports = {
form_4_additionalActions(event) {
return [
{
code: 
‘code1’,
label: 
‘Кнопка 1’,
icon: 
‘u-icon-key’,
sortOrder: 40,
handler() {
},
contextMenu: 
true
},
{
code: 
‘code2’,
label: 
‘Кнопка 2’,
icon: 
‘u-icon-key’,
sortOrder: 30,
handler() {
},
contextMenu: 
true
},
]
}
}

24.54. Для кнопки с табличним атрибутом також можно використовувати form_ID_beforeAction_<actionCode>, form_ID_actionExecuted_<actionCode> по аналогії з файловим атрибутом. Приклад використання form_ID_beforeAction_<actionCode>.

:sortOrder:

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

module.exports = {
form_4_additionalActions(event) {
return [
{
code: 
‘button2’,
label: 
‘Выгрузить файл’,
icon: 
‘fas fa-arrow-down’,
handler() {
const fileAttributeNodeID = 6
const fileAttributeControl = event.form.getNodeControl(fileAttributeNodeID)
fileAttributeControl.downloadFile() 
// Выгрузка файла
},
showForSelectedRow: 
true
}
]
},
form_4_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.54. Додавання кнопки в табличний атрибут, після натискання якої встановлюється значення атрибута у виділеному рядку

 

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

module.exports = {

form_33_additionalActions(event) {    // 33 – код табличного атрибута на форме документа
return [
{
code: 
‘code1’,
label: 
‘Обновить ms1’,
icon: 
‘u-icon-key’,
async  handler({rowID}) {
await connection.update({
entity: 
‘dfx_DocumentItem’,
execParams: {
ID: rowID,
‘attrValues.ms01’‘newValue’   //код атрибута и значение, которое будет установлено
},
__skipOptimisticLock: 
true
},
event.form.getNodeControl(33).refreshData())},   
// обновление данных в таблице
showForSelectedRow: 
true

}
]
}
}

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

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