|
23.02.2015, 21:12 | #1 |
Читатель
|
Тестировали норм
\Data Dictionary\Maps\CustVendTrans\exchRateCurToMst
X++: public ExchRate exchRateCurToMst() { ExchRate combinedRate; CustTrans custTrans; VendTrans vendTrans; switch (this.TableId) { case tableNum(CustTrans): combinedRate = custTrans.exchRateCurToMst(); break; case tableNum(VendTrans): combinedRate = vendTrans.exchRateCurToMst(); break; default: Debug::assert(false); } return combinedRate; } Последний раз редактировалось b_nosoff; 23.02.2015 в 21:16. |
|
10.03.2015, 17:30 | #2 |
Молодой, подающий надежды
|
2012 R3 (думаю в прошлых версиях аналогично)
Если делать лукап по временной таблице на основе постоянной и при этом не вставить никаких записей во времянку, что-то типа X++: InventTable inventTableTmp; SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(InventTable), _ctrl); inventTableTmp.setTmp() /* заполняем времянку по какому-то алгоритму, но записей не нашли и ничего не вставили */ sysTableLookup.addLookupfield(fieldNum(InventTable, ItemId)); sysTableLookup.parmTmpBuffer(inventTableTmp); sysTableLookup.performFormLookup(); Берем напильник, чиним класс SysTableLookupBase. Заводим глобальную переменную boolean useTmpBuffer X++: Common parmTmpBuffer(Common _buffer = tmpBuffer) { tmpBuffer = _buffer; //--> if (! prmisDefault(_buffer)) { useTmpBuffer = true; } //<-- return tmpBuffer; } protected FormRun formRun() { //...строка 55 //--> //if(useLookupValue && !tmpBuffer) if(useLookupValue && ! tmpBuffer && ! useTmpBuffer) //<-- { } //...строка 117 //--> //if (tmpBuffer) if (tmpBuffer || useTmpBuffer) //<-- }
__________________
Кононов Пётр |
|
|
За это сообщение автора поблагодарили: gl00mie (5), Kabardian (4). |
10.03.2015, 20:28 | #3 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: pedrozzz (4). |