Формы. Как сделать поиск для поля, т.е. список с поиском через обращение к БД (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

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK