пример с вложенной временной таблицей
Это классная задача, которая решается при помощи параметра hide: true
функции linkToDataTable. Если этого параметра нет, то linkToDataTable открывает окно, а если есть hide: true
— то окно не открывается, а функция вернет назад hash
созданной временной таблицы.
Те получается так:
Вызывается временная таблица, которая должна заполниться по insert
— подробнее про автозаполнение.
h_insert
взывает еще одну временную с параметром hide: true
.
Несмотря на то, что linkToDataTable является функцией действия ее можно выполнить из кода.
Вложенная временная делает нужное вычисление.
h_insert
получив hash
вложенной временной забирает из нее данные.
Все это упаковывается в код h_insert
примерно так:
=: selectList(table: 'tmp_table_2'; hash: $linkto; field: 'id')
linkto: linkToDataTable(table: 'tmp_table_2'; params: $row; hide: true)
row: rowCreate()
пример открыть вложенную временную кнопкой и действием вернуть данные в первую
Вы можете вызвать временную таблицу и передать в нее хэш временной таблицы, который получается через выполняемую только во временной таблице переменную $#nth
.
Используя эту переменную в функциях типа set в параметре hash
можно передать значение именно в ту версию временной таблицы из которой была открыта вторая.
Порядок реализации такой:
Кнопкой в первой временной открываем вторую временную таблицу.
=: linkToDataTable(table: 'tmp_table_2'; title: "Complex data"; params: $row; refresh: true)
row: rowCreate(field: "hash" = $#nth)
Вносим в нее данные.
Кнопкой настраиваем возврат данных из второй временной таблицы в первую.
=: set(table: 'tmp_table_1'; hash: #hash; field: 'data' = #data)
пример для строки добавления
В строке добавления нет триггеров, поэтому код-действия можно выполнить только из Кнопки
.
По умолчанию кнопки в строке добавления заблокированы, но их можно разблокировать параметром Включить кнопку в строке добавления.
Вы можете вызвать временную таблицу и передать в нее хэш строки добавления, который получается через выполняемую только в коде переменную $#ih
.
Используя эту переменную в функциях типа set в параметре hash
можно передать значение именно в строку добавления открытую у пользователя.
Порядок реализации такой:
Кнопкой в строке добавления открываем временную таблицу.
=: linkToDataTable(table: 'tmp_table'; title: "Complex data"; params: $row; refresh: true)
row: rowCreate(field: "insert_hash" = $#ih)
Вносим в нее комплексные данные.
Кнопкой настраиваем возврат данных из временной таблицы в строку добавления.
=: set(table: 'table'; hash: #insert_hash; field: 'data' = #data)