03.01.2006, 14:17 | #1 |
Участник
|
Почему при запросе field() из Range функция возвращает не тот ID, который в таблице..
Пример: Код: dictField = new DictField( tableNum(LedgerTable), qbds.range(iRange).field() ); Код: qbr = queryRun.query().dataSourceNo(1).addRange(fieldnum(LedgerTable,AccountPlType)); qbr.value( '!'+enum2str(LedgerAccountType::Heading) ); PPS: То что я пытюсь сделать, это сгрупировать все значения всех полей и потом выводить в отчёте.. Код: qbds = this.query().dataSourceTable(tableNum(LedgerTable)); if ( qbds.rangeCount()!=0 ) { for ( iRange=1; iRange<=qbds.rangeCount(); iRange++ ) { oldValue = ''; oldLabel = ''; fieldId = strfmt( '%1_%2', qbds.range(iRange).table(), qbds.range(iRange).field() ); if ( mapRanges.exists(fieldId) ) { [oldLabel,oldValue] = mapRanges.lookup(fieldId); mapRanges.remove(fieldId); } if (!oldLabel) { dictField = new DictField( tableNum(LedgerTable), qbds.range(iRange).field() ); oldLabel = dictField.label(); } if ( oldValue ) oldValue += ', '; oldValue += qbds.range(irange).value(); rangeData = [oldLabel,oldValue]; mapRanges.insert( fieldId, rangeData ); } } |
|