19.08.2010, 17:22 | #1 |
Участник
|
Сортировка и вывод полей в lookUp-е
Доброго времени суток. Возникла проблема, никак не поборю )))
Нужно создать лукап, в который выводятся данные из таблицы Месяцы (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); |
|