Доброго времени суток. Возникла проблема, никак не поборю )))
Нужно создать лукап, в который выводятся данные из таблицы Месяцы (inf_Months) по условию для одного поля. Условие не меняется все время работы с лукапом.
Таблица хранит месяца работы (ежемесячные периоды), открытые или закрытые.
Структура таблицы следующая:
1. PeriodDate - тип Date, заполняется как первое число каждого месяца в виде 01.08.2010
2. MonthID - текстовое значение периода в виде "2010 Август"
3. PeriodStatus - признак Открыт/Закрыт (тип Enum)
так вот нужно в лукапе вывести ТОЛЬКО MonthID, но отсортированное по значению PeriodDate. Текст лукапа должен содержать также MonthID.
Трудность состоит в сортировке... При первом открытии списка все хорошо, после выбора значения и повторном открытии с сортировкой какая-то беда. Ни по индексу не хочет сортировать, ни по полю. Сортирует верно только если поле сортировки (PeriodDate) добавляется с признаком _returnItem = True, но выводить в текст нужно другое поле.
Заранее спасибо за помыщь
Код:
Query q = new query();
QueryBuildDataSource qbds = q.addDataSource(tablenum(inf_Months));
SysTableLookup stl = SysTableLookup::newParameters(tablenum(inf_Months), this);
inf_Months tblM;
FormRun fr;
;
qbds.addRange(fieldnum(inf_Months, PeriodStatus)).value(SysQuery::value(inf_PeriodStatus::Open));
stl.parmQuery(q).dataSourceNo(1).addSortIndex(indexnum(inf_Months, PK_inf_Months));
stl.addLookupfield(fieldnum(inf_Months, PeriodDate));
stl.addLookupfield(fieldnum(inf_Months, MonthID));
fr = stl.formRun();
this.performFormLookup(fr);