06.11.2013, 14:12 | #1 |
Участник
|
Непонятный Id у поля
Добрый день!
Выполняю приведенный ниже код, у таблицы InventDim fieldId поля InventLocationId принимает некое странное значение, не соответствующее имеющемуся в таблице. Если же использовать закомментированный код, все работает. Хотелось бы понять причину. X++: for(i=1; i<=qbdsInventDim.rangeCount(); i++) { qbr = qbdsInventDim.range(i); if( qbr.field() == fieldnum(InventDim, InventLocationId) && //fieldid2name(qbr.table(), qbr.field()) == fieldid2name(tablenum(InventDim), fieldnum(InventDim, InventLocationId)) && qbr.value() ) { queryRunSum.query().dataSourceTable(tablenum(InventSumDateFinancialDim_RU)).addRange(fieldnum(InventSumDateFinancialDim_RU, InventLocationId)).value(qbr.value()); } } |
|
06.11.2013, 14:24 | #2 |
Участник
|
Возможно у вас расширенный ид используется.
см. fieldExt2Id fieldExt2Idx fieldId2Ext класса Global |
|
|
За это сообщение автора поблагодарили: byte (1). |
06.11.2013, 14:44 | #3 |
Участник
|
А у вас qbr.table() равен tablenum(InventDim)?
|
|
06.11.2013, 15:06 | #4 |
Участник
|
|
|
06.11.2013, 15:12 | #5 |
Участник
|
|
|
06.11.2013, 15:12 | #6 |
Участник
|
По-моему qbr.field() возвращает расширенный id
Попробуйте оперировать fieldExt2Id( qbr.field() ) - его уже можно сравнивать с результатом fieldNum(...) |
|
06.11.2013, 15:14 | #7 |
Участник
|
опоздал
В диалогах используется расширенный идентификатора. видимо чтобы отделять индексные поля одни от других. т.е. Dimension[1] и Dimension[2] будут иметь разные расширенные ид |
|
06.11.2013, 15:16 | #8 |
Участник
|
Спасибо!
|
|