|
|
#1 |
|
Участник
|
fieldnum и map custVendTrans - как получить идентификатор поля таблицы по мапу?
Дурной вопрос. Понял, что я не знаю красивого ответа. Может подскажете?
Есть: = код, в котором объявлена переменная типа map CustVendTrans = запрос, который содержит либо custTrans, либо vendTrans в зависимости от внешних = метод, который устанавливает range в этом запросе = для range нужно получить fieldnum вопрос: а как проще и красивше получить fieldnum? X++: CustVendTrans custVendTrans = custVendTransStatic.custVendTrans();
Query q;
QueryBuildDataSource qbds;
;
switch( _journalTable.JournalModule)
{
case ModuleCustVend::Cust:
q = new Query(querystr(myCustQuery));
break;
case ModuleCustVend::Vend:
q = new Query(querystr(myVendQuery));
break;
default:
throw Error::unsupportedEnumValue(_journalTable.JournalModule);
}
qbds = q.dataSourceTable(custVendTrans.TableId);
// здесь возвращает fieldid из мапа = 39, а нужно для CustTrans = 41, а для VendTrans = 78
SysQuery::findOrCreateRange(qbds, fieldnum(custVendTrans, ExchRate) ).value(myValue);
// есть еще много критериев. как бы красиво оформить?
SysQuery::findOrCreateRange(qbds, fieldnum(custVendTrans, ....
SysQuery::findOrCreateRange(qbds, fieldnum(custVendTrans, ....
SysQuery::findOrCreateRange(qbds, fieldnum(custVendTrans, ....
SysQuery::findOrCreateRange(qbds, fieldnum(custVendTrans, ....понятно, что можно через DictField, но получается слишком длинный код, когда критериев (range) достаточно много. есть еще какой-нибудь способ? Последний раз редактировалось mazzy; 13.08.2015 в 11:07. |
|
|
| Теги |
| ax2012, map, законченный пример, как правильно |
|
|
|