Показать сообщение отдельно
Старый 18.12.2003, 10:37   #1  
tolik is offline
tolik
Участник
 
4 / 10 (1) +
Регистрация: 21.08.2003
Получение больше одного значения из Lookup
Доброе время суток.
Хочется получить > одного значения (полей) из Lookup формы (таблица EmplTable) (или доступ к ним, ведь где-то после выбора в лукап-форме спозиционировалась запись в EmplTable) имея такой код.
Не хочется потом по выбранному первичнику делать довыборку для получения остальных полей.

Query query = new Query();
QueryBuildDataSource ds;
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(Empltable), this);
FormRun fr;
;

sysTableLookup.parmTableId(tablenum(EmplTable));
sysTableLookup.addLookupfield(fieldnum(EmplTable, EmplId));
sysTableLookup.addLookupfield(fieldnum(EmplTable, Name));

ds = query.addDataSource(tablenum(EmplTable));
ds.addSortField(fieldnum(EmplTable, EmplId));

if (CS_OfficialsSetup.InputType == CS_OfficialsInputType::Storekeeper && element.getCurrentStore())
{
ds.joinMode(Joinmode::InnerJoin);
ds = ds.addDataSource(tablenum(CS_InventStorekeeper));
ds.addRange(fieldnum(CS_InventStorekeeper, inventlocationid)).value(element.getCurrentStore());
ds.addLink(fieldnum(EmplTable, EmplId), fieldnum(CS_InventStorekeeper, Emplid));
}
sysTableLookup.parmQuery(query);
fr = sysTableLookup.formRun();
this.performFormLookup(fr);