|
|
#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 );
}
} |
|
|