Как на OnPrepare окна задать что бы EnumControl (не завязанным на Data) был пустым
Так нужно для того что бы парсить дату которую получаем с БД, а по нажатию Ок писать дату, с которой мы по сути берем месяц и год
Код на OnPrepare

var Dataset = dlData.Dataset;  
        var DisposalDate = Dataset('DisposalDate');
        if (!IsEmptyValue(DisposalDate)) {
        enmMothDisposal.Value = enmMothDisposal.Enum.ItemsByID(String(new Date(DisposalDate).getMonth()));
        enmYearDisposal.Value = enmYearDisposal.Enum.ItemsByID(String(new Date(DisposalDate).getYear()));      
        }
        else
        {
        enmMothDisposal.Value = /*тут придумать так что бы было пусто*/;
        enmYearDisposal.Value = /*тут придумать так что бы было пусто*/;
        }

Просьба перед Вашим ответом убедиться самим что

enmYearDisposal.Value = null;
enmYearDisposal.Value = '';
enmYearDisposal.Value = new Object();
enmYearDisposal.Value = [];
enmYearDisposal.Value = 'undefined';
enmYearDisposal.Value = GUID_NULL;

Не работаеют, а свойства IsNull у EnumControl - не работает

Код на Ok

        var Dataset = dlData.Dataset;
       
        if (!IsEmptyValue(enmMothDisposal.Value) && IsEmptyValue(enmYearDisposal.Value)) {     
        MessageBox('Please fill Year);
        return;
        }
       
        if (IsEmptyValue(enmMothDisposal.Value) && !IsEmptyValue(enmYearDisposal.Value)) {     
        MessageBox('
Please fill Month');
        return;
        }
       
        if (!IsEmptyValue(enmMothDisposal.Value) && !IsEmptyValue(enmYearDisposal.Value)) {    
        var DisposalDate = new Date(String(enmYearDisposal.Value.ID),String(enmMothDisposal.Value.ID),1);
        Dataset('
DisposalDate') = DisposalDate.getVarDate();
        }

Без кода /*тут придумать так что бы было пусто*/ не обойтись так как OnPrepare срабатывает один раз и если 1 раз выбрать зн. тогда при открытии еще раз карточки значения подтянуться с предыдущей

Заранее спасибо
Бинарные файлы 3.3.2.288

Нравится

5 комментариев

P.S. Поле Value в EnumControl является объектом

Внимание, правильный ответ: enmYearDisposal.Value = System.EmptyValue

Вот, кстати, здесь Наташа когда-то писала.

Дмитрий, если будет настроение поискать: была тема когда-то на форуме, где обсуждалось как сделать Месяц и Год для задания даты. Если найдете, мой скрипт будет правильным дополнением

Альфа, ок, спасибо.

Показать все комментарии

Помогите пожалуйста,
Использую компонент EnumControl , заполняю его AddEnumItem(Enum, i, i, DatasetUsers.Values('Name'));. Когда выбран один из элементов выпадающего списка, как получить его код(номер) в скрипт? версия Terrasoft 3.02

Нравится

Поделиться

1 комментарий

Добрый день!

edtControlName.Value.KeyValue - Индентификатор
edtControlName.Value.Code - Код
edtControlName.Value.Caption - Название
Показать все комментарии