Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Как сделать зависимые поля в форме (Страна, Город)
Т.е. при обновлении одного поля, необходимо, чтобы другое также меняло свое состояние.
- Ставим у колонки поле Зависимые поля (dependentCols) списком через запятую (указываем те поля, которые должны обновляться при изменении данного поля).
- В процедуре Источника будет необязательный параметр @fields DictionaryParameter, который передает текущее состояние формы (он должен быть необязательный как в примере). ВАЖНО! Он используется только в зависимых столбцах. В обычных элементах с выбором из списка не нужно его указывать.
Ведущий запрос (Страны). fields можно здесь не использовать в параметрах (если использовать, то по умолчанию ‘’).
CREATE PROCEDURE [dbo].[fm_user_country_dict]
@username nvarchar(256),
@itemID int
AS
BEGIN
select 'Не выбрано' Text, 0 Value, 0 Selected
union
select name Text, id Value, 0 Selected from as_geo_regions
where typeID = 1
order by Text
END
Ведомый запрос (города). Важно соблюсти все нюансы использования fields+ искать и по id и по name через or как в примере.
CREATE PROCEDURE [dbo].[fm_user_country_dict]
@username nvarchar(256),
@itemID int,
@fields DictionaryParameter READONLY
AS
BEGIN
declare @country nvarchar(128)
select @country = Value from @fields where [key] = 'country'
exec dbo.as_print @str = @country
select 'Не выбрано' Text, 0 Value, 0 Selected
union
select name Text, id Value, 0 Selected from as_geo_regions where typeID = 1 and
(cast(parentID as nvarchar) = @country or isnull(@country, '') = '' or parentID in (select id from as_geo_regions where name = @country))
order by Text
END
- Разметка в форме любая, можно использовать например такую:
<label>Страна / город </label> {colcontrol-country} {colcontrol-city}
- В процедуре GetItem устанавливайте значения для обоих полей.
isnull((select name from as_geo_regions where id = (select parentID from as_geo_regions where id = regionID)), 'Не указан') country, isnull((select name from as_geo_regions where id = regionID), 'Не указан') city
- В итоге поля будут работать как зависимые.
Рабочий пример - https://demo.web-automation.ru/list/watch/zavisimye-polya---32
Примечание:
Зависимые столбцы работают не только для списковых элементов, но и для полей типа text и др.
Для этого указываем также зависимые поля и устанавливаем не для спискового значения хранимку значений, которая должна возвращать 1 строку с Text и Value:
- Text - устанавливает значение элемента.
- Value - если 0, то прячет элемент.
Пример:
CREATE PROCEDURE [dbo].[fm_user_email_dict]
@username nvarchar(256),
@itemID nvarchar(128),
@fields DictionaryParameter READONLY --- если нужно сделать зависимые столбцы (в
коллекции передаются состояние всех столбцов)
AS
BEGIN
DECLARE @skype nvarchar(128)
SELECT @skype = Value FROM @fields WHERE [Key] = 'skype'
if(@skype<>'')BEGIN
SELECT 'Есть скайп' Text, 1 Value, 0 Selected
END else BEGIN
SELECT '' Text, 0 Value, 0 Selected
END
END
ВАЖНО. Скрытие видимости не будет действовать для списковых полей!
Примечание:
Для поля типа select-search не будет работать как зависимое дочернее поле, но при этом может быть родительским полем.
Поля chosen и chosenMultiple могут быть как зависимые поля (как родительским, так и дочерним элементом).
Google поиск по нашей документации
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта