Каким образом вывести кнопку в панель по правой кнопке мыши?
Описание panel-функций в документации
Для этого в коде форматирования надо использовать префикс p1=:
вместо стандартного f1=:
.
С этим префиксом работают не все функции форматирования, а только panel-функции
:
panelButtons — размещает на панели дополнительные кнопки.
panelImg — размещает на панели изображение.
panelHtml — отображает на панели html.
p0=: panelHtml(html: $strpanel)
strpanel: str`"Физически на Складе<b>" ++ $flat ++ "</b>из которых" ++ $block ++ "в резерве."`
flat: select(table: 'goods'; field: 'count'; where: 'id' = #name)
block: select(table: 'goods'; field: 'block'; where: 'id' = #name)
p1=: panelButtons(condition: $block != 0; button: $b1; refresh: true)
b1: rowCreate(field: "text" = "ПОСМОТРЕТЬ РЕЗЕРВЫ"; field: "code" = "show_block")
p2=: panelButtons(button: $b2; refresh: true)
b2: rowCreate(field: "text" = "ПОСМОТРЕТЬ ДВИЖЕНИЕ"; field: "code" = "show_move")
panel-функции могут быть вызваны из секции f?
Нет, только из p
.
Секция f и p имеют сквозную нумерацию?
Нет у них собственные раздельные нумерации.
Хорошим оформлением кода является ставить p
секцию после того как закончились все f
— не смешивая.
Можно ли ограничить показ кнопки по условиям?
Конечно, для этого в panelButtons и прочих panel-функциях
есть параметр condition
.
Вызывает ли срабатывание кнопки refresh в текущей таблице?
Нет — если кнопка выполняет действие в текущей таблице, то появится уведомление о том, что таблица была изменена.
Что бы автоматическа сделать refresh
таблице необходимо передать refresh: true
в panelButtons
.
Какого вида необходимо передать row, чтобы сформировать кнопку?
Обязательные ключи это text
и code
:
=: rowCreate(field: "text" = "ПОСМОТРЕТЬ РЕЗЕРВЫ"; field: "code" = "show_block")
Каким образом можно передать код для выполнения в “code”?
В code
передается строка. Например:
=: rowCreate(field: "text" = "ПО УМОЛЧАНИЮ"; field: "code" = $code)
code: "=: set(table: $#ntn; field: 'field_name' = 100)"
Также в качестве code
можно передать name
поля в текущей таблице из которого будет взят код-действия.
=: rowCreate(field: "text" = "ПО УМОЛЧАНИЮ"; field: "code" = "field_name")
И третий способ, когда вы хотите передать многострочный код и иметь к нему доступ в этом же окне:
```totum
=: rowCreate(field: "text" = "ПО УМОЛЧАНИЮ"; field: "code" = $code)
```code:totum
=: set(table: $#ntn; field: 'field_name' = $default)
default: 100
```
Этот блок при сохранении сохраняется как текст.
Если указано :totum
— то будет активирована подсветка totum-кода.
Названия строк и ссылок на строки $default
исключены из подсветки текущего кода и никак не пересекаются с именами вне выделенной области!
Какие переменные окружения передаются в выполняемый код?
$#ntn
, $#nci
, $#nth
, #id
(и прочие строчные поля).
Если вам нужно передать в код дополнительные переменные, то надо передать row
в параметр vars
.