Как известно, окна данных в PowerBuilder можно настроить таким образом, чтобы строки сортировались по значениям столбцов. Это прекрасно работает, если значения в этом столбце уникальны. Тем не мение; Я работаю над ситуацией, когда эти столбцы не всегда уникальны, и в результате, когда функция Sort() применяется к DataWindow, дубликаты упорядочены по отношению к другим строкам, но сами по себе не упорядочены.
Лучший способ сказать это было бы через диаграмму.
Представьте себе следующее окно данных:
Сортировка применяется один раз
ID DESCR ACTIVE
1 ABC 1
2 BCD 0
3 BCD 1
4 CDE 1
Сортировка применена дважды
ID DESCR ACTIVE
1 ABC 1
3 BCD 1
2 BCD 0
4 CDE 1
Сортировка применена трижды
ID DESCR ACTIVE
1 ABC 1
2 BCD 0
3 BCD 1
4 CDE 1
Если я применю сортировку по возрастанию к столбцу DESCR, две строки BCD поменяются местами. Помните, я применяю сортировку только в столбце DESCR. Похоже, что функция сортировки случайным образом присваивает позицию повторяющимся значениям. В моем примере, если я постоянно применяю функцию сортировки к этому окну данных с сортировкой по возрастанию в DESCR, строки BCD будут меняться местами.
На вопрос, который у меня есть, кто-нибудь знает, почему это работает таким образом? У меня есть идея, как решить эту проблему, применив вторичную сортировку к скрытому столбцу, который нумерует наборы повторяющихся значений. В моем случае ID 1 будет присвоено 1. ID 2 получит 1, а ID 3 получит двойку. Таким образом, значения BCD можно было отсортировать по DESCR, а затем по этому скрытому столбцу.
Тем не мение; это намного больше хлопот, чтобы просто сохранить строки в том же порядке. Просто опросите сообщество разработчиков PowerBuilder здесь, в стеке, чтобы узнать, сталкивались ли они с этим, исправили ли они это или точно знают, что PB просто случайным образом назначает порядок дублирования значений в отсортированной строке.
SetSort('DESCR a, ID a')
- person Seki   schedule 09.11.2011