Формы. Как сделать поиск для поля, т.е. список с поиском через обращение к БД (autocomplete. search-select)

В настройках столбца формы указываем Список-поиск (select-search).

В GetItem поле извлекается как название сущности, а не ключ.

Реализуем процедуру вида fm_formCode_fieldCode_dict (редактируем через интерфейс).

CREATE PROCEDURE [dbo].[fm_isp_region_dict]
  @username nvarchar(256),
  @itemID nvarchar(128),
  @q nvarchar(128) = ''

AS
BEGIN
    if(isnull(@q, '')='') begin  -- (для обычного select)
        select ' Не выбрано ' Text, 0 Value, 0 Selected
        union
        SELECT gr.name Text, gr.id Value, 0 Selected
        FROM dbo.as_geo_regions gr        
        order by Text
    end
    else begin
        select ' Не выбрано ' Text, 0 Id, getdate() date, '' [desc], 0 type
        union
        SELECT gr.name Text, gr.id id, getdate() date, '' [desc], 0 type
        FROM dbo.as_geo_regions gr
    where name like '%'+@q+'%'
    order by Text
    end
END

Важное отличие - сюда дополнительно передается необязальный параметр @q nvarchar(128)=’’.

ВНИМАНИЕ! Здесь модель выходного SELECT в dict процедуре отличается от стандартной - вместо text, value используется text,id,date, desc, type.

В сохранении поля SaveItem нам передается название сущности (а не внешний ключ число):

CREATE PROCEDURE [dbo].[fm_profile_saveItem]
   @username nvarchar(256),
   @itemID  nvarchar(256),
   @fieldemail nvarchar(256) = '',
   @fieldphone nvarchar(256) = '',
   @fieldcity nvarchar(256) = '' -- на входе текст а не ключ-число
AS
BEGIN
    update as_users
    set
        email=@fieldemail,
        phone=@fieldphone,
        regionID=(select top 1 id from as_geo_regions where name=@fieldcity)
    select 1 Result, 'Сохранено' Msg
END

В итоге поле можно задавать через поиск значения в форме и регулировать как будут формироваться данные в этом поиске.

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом

Это быстрое внесение изменений

по ходу эксплуатации программы. Как создается функционал на платформе

Это простой удобный интерфейс

адаптация под мобильные устройства. Про юзабилити платформы

Нужна бесплатная консультация?
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.
Сайт использует Cookie. Правила конфиденциальности OK