Создание строки в таблице - FastCreate
В таблцие есть возможность добавиь кнопку для добавления строки в таблицу по 1 полю - пользователь вводит некий текст (например, название) и создается строка на основе этого текста.
У таблицы ставим галку Быстрое добавление.
За создание строки отвечает процедура FastCreate.
На входе:
- @text - строка, которую ввел пользователь,
- @username - текущий пользователь,
- @filters CRUDDictionaryParameter - фильтры таблицы (Key, Value) по аналогии с GetItems (необязательный параметр, обновление окт 2024).
Возвращает модель:
SELECT 1
- Msg - сообщение,
- Result - результат операции (bit),
- RedirectUrl - если непустой, то будет редирект на данный URL,
- Icon - иконка font awesome,
- RefreshContainer - обновление компонентов в данном контейнере.
- Actions - JSON для действий в браузере.
SELECT 2 Внешние действия
CREATE PROCEDURE [dbo].[crud_newTableTest_fastCreate]
@filters CRUDFilterParameter READONLY,
@text nvarchar(256),
@username nvarchar(32)
AS
BEGIN
-- создание сущности в таблице по 1 полю @text
-- извлечение параметров из URL
declare @filterItemID int
select @filterItemID = try_cast(Value as int) from @filters where [Key] = 'itemID'
-- проверки
declare @id int
select @id = id from as_trace where code = @text
if(@id>0) begin
select 'Элемент с таким кодом уже существует в таблице' Msg, 0 Result
return
end
-- добавление элемента в таблицу
insert into as_trace(header, code)
values(@text, @text )
-- SELECT 1
select 'Элемент создан' Msg, 1 Result
-- SELECT 2 Внешние действия
END
Если необходимо реализовать быстрое добавление с выбором данных из справочника (через поиск в autocomplete вместо текстового поля),
то необходимо установить в SELECT 3 GetItems параметр FastCreateSearch = 1 и реализовать (создать через Быстрые действия / RunSQL) дополнительно процедуру следующего вида:
-- имя содержит префикс _search
CREATE PROCEDURE [dbo].[crud_productsForSupplier_fastCreate_search]
/*На входе строка поиска username, itemID оставлен для
совместимости и неиспользуется*/
@q nvarchar(256),
@itemID nvarchar(128),
@username nvarchar(256)
AS
BEGIN
CREATE TABLE dbo.#result (id int, [text] nvarchar(256), [desc] nvarchar(1024), [type] nvarchar(256), [date] date)
insert into #result
select id, name, '', '', getdate()
from as_cat_products p
where name like '%'+@q+'%' and id >2
-- на выходе - модель id, text, desc, type, date
select * from #result
drop table #result
END
go
В процедуру FastCreate в итоге приходит не числовой внешний ключ выбранной сущности, а ее текстовое название.
Если нужен Textarea (многострочное поле) в FastCreate, то ставим в GetItems в SELECT 3 параметр FastCreateTextarea 1
Если нужен список с несколькими элементами для выбора, то ставим в GetItems в SELECT 3 параметр FastCreateSelectCol = название колонки с типом Список (тип редактирования).
Примечание:
-
Если выходной параметр RedirectUrl не пустой, то после успешного сохранения будет редирект на указанную страницу.
- Выходной параметр RefreshContainer задает селектор jQuery для обновления какой-то области на странице.
-
В процедуру search передается itemID - он заполняется из атрибута data-itemID от сниппета таблицы.
Кастомизация для FastCreate
Используйте в 3 запросе GetItems переменные для переименования основных меток:
-
fastCreateLinkText - текст кнопки Создать
-
fastCreateDialogHeader - заголовок диалогового окна
-
fastCreateDialogPlaceholder - текст подсказки
Страница-источник на сайте falconspace.ru
-
Начало работы
-
Основа Falcon Space
-
Руководства
-
Возможности
-
Коммуникация пользователей
-
Таблицы
Работа с таблицами Вывод данных в таблице - getItems Редактирование данных в колонках таблицы - updateField Удаление строки в таблице - deleteItem Создание строки в таблице - FastCreate Операции в таблице - на строку, групповые операции Настройка параметров таблицы Фильтрация данных в таблице Настройка колонок таблицы Настройка сниппета таблицы Как сделать сортировку в таблице Как реализовать подтаблицу (вложенная таблица), подформу в таблице Как сделать таблицу в модальном окне (открывается в диалоговом окне) Как связать 2 таблицы Кастомная разметка в таблице Выгрузка данных таблицы в XML, JSON, CSV JS коллбеки для таблицы Загрузка таблицы по ссылке Как связать таблицу и редактирование сущности (зависимая страница). Master-slave Как использовать комментарии в таблицах Как добавить в фильтре значение Не выбрано со значением Как установить ширину колонки в таблице Как добавить диапазон даты или чисел (слайдер) в фильтр Как сделать операции только для некоторых строк Как делать различный набор столбцов одной таблицы для разных ролей Как сделать Editable для галочки (Да/Нет) в AS CRUD Как редактировать колонку с датой Как скрыть строчные операции в таблице для определенных строк Как добавить коллбек после загрузки таблицы Отображение таблиц на смартфоне Как работать с галочками в таблице Частые ошибки при настройке таблицы (почему не работает таблица) Как обновить подтаблицу после выполнения некой операции Как обрабатывать групповые операции через модальную форму Как создать предустановленные фильтры для таблицы Как убрать показ количества строк результата в заголовке таблицы? Как сделать сворачивание таблицы (collapse table) Как убрать старые dict процедуры в формах и таблицах Как сделать фильтр с деревом галочек Как отключить сохранение состояния таблицы (фильтры) Как сделать ссылку на всю строку таблицы Как передать через URL значение фильтра Как сделать обрезание ячеек таблицы Сортировка строк в таблице Создание сущности с учетом значений фильтров Оптимизация запроса SQL - извлечение данных для таблицы Режим кастом вывода через JS (custom) Как настроить дополнительные шапку и подвал у таблицы Как сделать зависимые фильтры в таблице Импорт данных в формате файлов txt, csv, excel через компонент Таблица Как гибко управлять видимостью столбцов таблицы Как сделать раскрытие подстроки в таблице через любую ссылку Режим быстрой фильтрации строк без обращения на сервер Выпадающая панель рядом с названием таблицы dropdownPanel Как убрать при загрузке установку фокуса ввода на фильтр (data-nofocus)? Как сделать аналитику по периодам (таблица с интервалами дат) Кастомизация вида операций таблицы Стилизация фильтров таблицы Анализ данных в таблице через внешние сервисы (опция apiSendDataOptions)
-
Формы
-
Поля формы
-
Лендинги
-
Дизайн, стилизация, юзабилити
-
Интеграции
-
Универсальный API
-
Каталоги
-
Навигация
-
Документы
-
Дополнительные компоненты
-
Продвижение, SEO
-
Системные моменты
-
Системное администрирование
-
HOWTO
-
Загрузка файлов, картинок
-
HOWTO SQL
-
HOWTO JS
-
HOWTO Верстка
-
Решение проблем
-
Советы по реализации