28. Керування видимістю та доступністю кнопок файлових та табличних атрибутів.

        Для файлових та табличних атрибутів можна керувати станом кнопок під час виконання: видимістю, доступністю кнопок управління (як нативних кнопок так і кнопок створених зі скриптового модуля). Для керування кнопкою спочатку звертаємося до елемента керування getNodeControl(‘ID атрибута’), потім до самої кнопки getButton(‘код кнопки’). Коди кнопок наведені в меню “Дії з файлами” при виборі атрибута в конструкторі типу документа/форми завдання. Об’єкт доступу до кнопки має такі методи:

  • hidden – логічне значення, що вказує, чи ця кнопка прихована
  • hide() – функція, що приховує цю кнопку, якщо вона не прихована
  • show() – функція, яка показує цю кнопку, якщо вона прихована
  • disabled- логічне значення, що вказує, чи ця кнопка відключена; Примітка: кнопка може бути відключена за власною логікою (не можна видалити підпис, якщо вона відсутня, наприклад) не тільки з модуля скрипту
  • enable() – функція включення цієї кнопки, якщо вона не прихована та відключена
  • disable() – функція, що відключає цю кнопку, якщо вона не прихована та не відключена   

hidden, hide(), show(), disabled, enable(), disable() можно використовувати для файлових атрибутів; hidden, hide(), show() для табличних атрибутів.

28.64. Файловий атрибут. Перед збереженням приховати кнопку “Завантажити”, якщо завантажено документ.

module.exports = {

async beforeSave(event)
{
const docImageFile = event.document.getNativeFileAttribute()
const docImageControl = event.form.getNodeControl(’31’//код атбрибута

// проверка загружен документ или нет, если загружен скрываем кнопку “Завантажити”
if (docImageFile.isUploaded)
{docImageControl.getButton(
‘download’).hide()}
}
}

28.65. Файловий атрибут. Перед збереженням відключаємо кнопку “Підписати файл”, якщо документ уже підписано. Відключаємо кнопку “Завантажити підписи”, якщо кнопку “Підписати файл” відключено.

const {showErrorWindow} = require(‘@unitybase/ub-pub’)  // необходимо для отображения уведомлений

module.exports = {

async beforeSave(event)
{
const docImageFile = event.document.getNativeFileAttribute()
const docImageControl = event.form.getNodeControl(’31’)  //ID атрибута Образ документа

if (!docImageFile.isSigned) //проверяем подписан ли документ
{ docImageControl.getButton(
‘signDoc’).enable()  //если нет выводим сообшение “Підпишіть документ” и не сохраняем
showErrorWindow(
‘Підпишіть документ’)
event.cancelSave() }
else {
docImageControl.getButton(
‘signDoc’).disable()  //если да скрываем кнопку “Підписати файл”
}
},
async saved(event) //после сохранения документа отключаем кнопку “Завантажити підписи” если кнопка “Підписати файл” отключена.
{
const docImageControl = event.form.getNodeControl(’31’)  //ID атрибута Образ документа

if (docImageControl.getButton(‘signDoc’).disabled)
{docImageControl.getButton(
‘uploadSignatures’).disable()}
else {
docImageControl.getButton(
‘uploadSignatures’).enable()
}
}
}

28.66. Файловий атрибут. Приховуємо/показуємо кнопки “Видалити”, “Завантажити” під час переходу станів, дозволяємо скачати вкладення по натисканню на кнопку, якщо кнопка “Завантажити” прихована.

module.exports = {
action_executed_d2(event) {   
//d2 код действия перехода состояния
event.form.getNodeControl(
’31’).getButton(‘remove’).hide()     //’31’ – ID атрибута Образ документа
event.form.getNodeControl(
’31’).getButton(‘download’).hide()
},
action_executed_d3(event) {   
//d3 код действия перехода состояния
event.form.getNodeControl(
’31’).getButton(‘remove’).show()
event.form.getNodeControl(
’31’).getButton(‘download’).show()
},
form_33_click(event) { 
// 33 – id атрибута Кнопка, разрешаем скачать вложении при скрытой кнопке “Завантажити”      
if (event.form.getNodeControl(’31’).getButton(‘download’).hidden)
{event.form.getNodeControl(
’31’).downloadFile()}
}
}

28.67. Табличний атрибут. Ховаємо кнопки “Імпортувати”, “Додати” при завантаженні форми, показуємо кнопки при зміні стану, при натисканні на кнопку “Зберегти” показуємо статус кнопок.

const {showErrorWindow} = require(‘@unitybase/ub-pub’)  // необходимо для отображения уведомлений

module.exports = {
form_32_mounted(event)  
//прячем кнопки при загрузке формы
{
const docImageControl = event.form.getNodeControl(’32’)  //ID табличного атрибута

docImageControl.getButton(‘addNew’).hide()
docImageControl.getButton(
‘import’).hide()
},
action_executed_d2(event) {   
//d2 код действия перехода состояния, показываем кнопки при переходе

const docImageControl = event.form.getNodeControl(’32’)  //ID табличного атрибута
docImageControl.getButton(
‘addNew’).show()
docImageControl.getButton(
‘import’).show()
},

async saved(event) //после сохранения документа показываем статус кнопок.
{
const docImageControl = event.form.getNodeControl(’32’)  //ID табличного атрибута

if (docImageControl.getButton(‘addNew’).hidden && docImageControl.getButton(‘import’).hidden)
{showErrorWindow(
‘Кнопки приховані’)}
else {showErrorWindow(‘Кнопки активні’)}
}
}

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

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