13.08.2015, 11:05 | #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, законченный пример, как правильно |
|
|