Показать сообщение отдельно
Старый 14.11.2007, 10:19   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Можно попробовать класс-коллекцию Set, в которую вставлять суммы со знаком минус. Получится требуемый порядок сортировки. А при последующем извлечении минус, естественно, "убирать". Если у вас возможны повторяющиеся значения сумм, то можно попробовать вставлять в Set контейнеры типа [-очередная сумма; очередное значение последовательного уникального счетчика].
X++:
static void TestQuasiSelectTop(Args _args)
{
    SetEnumerator en;
    int a, b;
    set s = new set (types::Container);

    s.add([-100,1]);
    s.add([-700,2]);
    s.add([-200,3]);
    s.add([-500,4]);
    s.add([-200,5]);

    en = s.getEnumerator();
    while (en.moveNext())
    {
        [a,b] = en.current();
        info(strfmt('%1 %2', -a,b));
    }
}
В инфологе видим (нас, естественно, интересует только первая колонка):

700 2
500 4
200 3
200 5
100 1