SaveItem - процедура сохранения формы
SaveItem - хранимая процедура сохранения данных формы.
CREATE PROCEDURE [dbo].[fm_metric_saveItem]
@username nvarchar(256),
@itemID int,
@parameters ExtendedDictionaryParameter READONLY
AS BEGIN
declare @pcode nvarchar(max), @ptitle nvarchar(max)
select @pcode = Value2 from @parameters where [key]='code' -- всегда Value2, а не Value
select @ptitle = Value2 from @parameters where [key]='title'
update as_mt_metrics set code = @pcode, title = @ptitle
where id = @itemID
-- SELECT 1 select 1 Result, '' Msg, '' Icon, '' RefreshContainer, 10000 AlertDelay,
0 EnableSaveAlert, '' SuccessUrl, 0 HideFormAfterSubmit
-- SELECT 2 Внешние действия
-- select 'notification' type, 'text1' text , 'demo1' [to], 'ticketExecutor' typeCode, 'http///' url, 'add111' additional select 'email' type, 'ru@rudensoft.ru' [to], 'sub1' subject, 'body1' body
END
Входные параметры:
- @username - текущий пользователь
- @itemID - переданный параметр itemID
- @parameters - коллекция параметров из URL (Key, Value)
Примечание: в @parameters используйте Key, Value2, помимо полей формы там находятся еще следующие параметры:
- buttonType - код кнопки сохранения (если используется множесто кнопок сохранения на форме)
- confirmCode - код подтвержения операции (для спец режима работы формы по подтверждению действия)
- referrer - URL страницы, на которой расположена форма
- langID - ID языка пользователя
- falconGuid -Guid посетителя из куки (в том числе и неавторизованного).
- falconFR - первый внешний источник, откуда пришел пользователь.
- falconFP - первая посещенная страница нашего сайта.
- userIP - IP пользователя
- userPort - порт, по которому обратился пользователь (обычно это 443 или 80)
- domain - домен сайта (в случае если используем несколько доменов для одного и того же сайта).
Первый запрос (SELECT 1) возвращает модель:
- Msg - задает текст сообщения о результате операции (Если передать 1 пробел ' ', то сообщение не будет выводиться. Если пустая строка - то результат по умолчанию),
- Result - если 1 то операция успешно выполнена,
- ItemID - переданный начальный ItemID в форму,
- SuccessUrl - если непустая строка, то после выполнения операции осуществляется переход по этому адресу,
- HideFormAfterSubmit - если 1, то форма скрывается после сохранения (а модальное окно закрывается),
- RefreshContainer - селектор контейнера, который надо обновить (например, можно ставить глобальный контейнер на странице ‘.pHtml’). В итоге после сохранения происходит обновление других компонентов в рамках указанного контейнера,
- Refresh - если 1, то выполняется обновление компонента после операции.
- Actions - JSON для действий в браузере.
- EnableSaveAlert - если 1, то результат будет всегда выдаваться во всплывающем окне справа наверху (даже несмотря на то, что есть {form-result}),
- Icon - если указано, то будет выводиться данная иконка в сообщении справа вверху. Пример: fa-cube (подробнее о стилизации иконок можно почитать здесь, об анимации иконок здесь),
- AlertDelay - задержка показа окна результата в мс. По умолчанию 30000,
- Type - цветовое решение окна: danger, success, warning, info, primary и т.д.,
- Confirm - JSON объект для вывода окна подтверждения выполнения действия (поля title,text, btnText, confirmCode, system). См. Как сделать окно подтверждения действия формы.
- ReplaceContainer и ReplaceContainerHtml - если есть задача заменить HTML в каком-то блоке, то указываем селектор в ReplaceContainer и разметку в ReplaceContainerHtml.
- RunAction - задается разметка кнопки (например, с as-form-modal), которая будет активирована (событие click) после успешного выполнения SaveItem.
Второй запрос (SELECT 2) это вызов внешнего действия. См. вызов внешних действий
Примечание: ранее использовался способ передачи колонок формы как параметров хранимой процедуры поля @fieldXXX вместо коллекции @parameters (он оставлен для совместимости). В настоящий момент используется коллекция @parameters для передачи колонок (также в рамках этой коллекции дополнительно передаются langID и falconGuid).
Страница-источник на сайте falconspace.ru
-
Начало работы
-
Основа Falcon Space
-
Руководства
-
Возможности
-
Коммуникация пользователей
-
Таблицы
-
Формы
Работа с формами Настройка полей формы Список типов полей формы GetItem - вывод данных формы CheckItem - процедура проверка введенных данных на форме SaveItem - процедура сохранения формы SaveField - сохранение одиночного поля на форме CheckItemFIeld - процедура реагирования на изменения поля dict - процедура для значений списковых полей формы Progress - процедура отображения статуса заполнения формы Как вывести форму во всплывающем окне рядом с кнопкой (popover) Загрузка формы по ссылке Как принимать в форму не 1 параметр (itemID), а несколько входящих параметров? data-param-p1 Как сделать модальную форму Как добавить коллбек после загрузки формы и после сохранения формы. Как показывать на форме прогресс заполнения (прогресс заполнения формы) Как сделать форму в виде мастера шагов Как сделать подтверждение действия в СМС (SMS) в форме Как установить поля в форме по умолчанию при загрузке Как показывать изменяющуюся информацию при изменении полей Формы. Как сделать в форме более 1 кнопки действий (несколько кнопок действий на форме) Как правильно обрабатывать цены (дробные числа) на форме Как передать в форму скрытый параметр Как в форме добавить примеры заполнения полей (example) Как сделать окно подтверждения действия формы Как выбрать значение списка через справочник в модальном окне Динамическое изменение itemID у формы в зависимости от других элементов страницы Как скрывать/показывать, обновлять область на странице при изменении поля формы Как добавить новый элемент, если в списке на форме его нет Как перезагрузить страницу после сохранения формы Как вывести списковые данные или таблицу внутри формы Как сделать зависимые поля в форме (Страна, Город) Как сделать кастомную HTML разметку для формы (jsRender) Как создать кастом форму с подтверждением действия по Email или SMS (JS метод) Установка фоновой панели для формы Как сделать задержку при сохранении формы (saveDelay) Подсказки-ограничители длины для полей в форме Как динамически изменять тип поля формы Как сохранить значение поля в браузере, чтобы каждый раз его не вбивать при загрузке (оставлять последнее сохраненное). Запоминание поля формы в браузере Как выводить разные данные на одной форме для разных ролей Как сделать форму с сохранением состояния Как сделать поля с анимацией значений Использование Google Recaptcha в формах Как обновить таблицу после сохранения формы в модальном окне Как указать произвольную маску для поля ввода в форме Кастом проверка полей формы через JS Как в выборе даты (datepicker) задать доступные даты Как создать форму для редактирования сущности Загрузка формы в выпадающем окне (dropdown) Добавление смайликов (emoji) в поля форм Как у формы сделать progress bar при загрузке формы Работа с датами в формах Показ количества символов рядом с полем в форме Кнопка очистки формы Reset Контроль заполнения ключевых форм на сайте Как сделать форму с простым подтверждением действия (confirm) Как поменять соотношение длины метки и поля Как при сохранении формы вывести сообщение printlog, а не alert Выпадающая панель в форме рядом с названием dropdownPanel
-
Поля формы
-
Лендинги
-
Дизайн, стилизация, юзабилити
-
Интеграции
-
Универсальный API
-
Каталоги
-
Навигация
-
Документы
-
Дополнительные компоненты
-
Продвижение, SEO
-
Системные моменты
-
Системное администрирование
-
HOWTO
-
Загрузка файлов, картинок
-
HOWTO SQL
-
HOWTO JS
-
HOWTO Верстка
-
Решение проблем
-
Советы по реализации