VK Video
Что произойдет, если строка на которую ссылался Селект будет удалена?
Если в поле селекта было выбрано значение строки, которая была удалена — вы увидите зачеркнутое основание
.
Как быть если значение было выбрано когда оно было доступно по условиям, а потом оно показывается зачеркнутым тк условие не выполняется?
Аналогично зачеркнутое основание
будет отображаться, если по условиям текущей выборки это значение стало недоступным. Что бы этого избежать селект строится не напрямую через where
, а через id
с добавлением в этот список текущего значения:
=: selectRowListForSelect(table: 'table'; field: 'name'; where: 'id' = $listAdd)
listAdd: listAdd(list: $list; item: $#nfv)
list: selectList(table: 'table'; field: 'id'; where: 'condition' = #condition_field)
Что такое скрытие вместо удаления и как отображаются такие строки?
Иногда настройка таблицы может предполагать, что строки будут скрываться, а не удаляться — в этом случае их можно восстановить и данные из этих строк остаются доступными по select
с условием where: 'id' = ...
.
Когда в селекте выбрано значение удаленной строки будет отображаться зачеркнутое отображение
!
Именно за это зачеркивание и отвечает параметр is_del: true
, который встречался нам ранее.
Что будет, если построить селект по селекту?
В этом случае мы увидим в качестве отображений
— значения
второго селекта. Как быть, если вы в первом селекте выбираете доступные значения, а во втором уже конкретные:
=: selectRowListForSelect(table: 'table'; field: 'name'; where: 'id' = #first_select)
// это код-селекта для второго (ведомого) селекта
// table и для первого и для второго селекта одна и таже
Те мы выбираем из таблицы источника только те значения, которые выбраны в первом селекте.