Сортировка реестра по полю номер с использованием маски
Добрый день.
Используя материалы статьи https://community.terrasoft.ru/blogs/8395
сделал нумерацию в раздела с использованием маски, однако при отображении реестра наблюдается не корректная сортировка по номеру (в следствие того, что номер является строкой) вида:
Есть ли способ исправить данную проблему с некорректной сортировкой?
Заранее спасибо.
Нравится
Здравствуйте!
Для решения Вашей задачи рекомендую сделать следующее:
1) Создать поле с типом целое число и назвать его "Номер заявки".
2) Скрыть текущее поле "Номер заявки" с фильтра (чтобы пользователей не смущало два поля с номером заявки).
Таким образом, фильтрация будет производится по целочисленному полю.
"Демьяник Алексей Олегович" написал:Таким образом, фильтрация будет производится по целочисленному полю.
А как система узнает, что по именно по этому полю нужно сортировать?
"Мотков Илья" написал:Игорь, сортировать можно в реестре раздела по определенной колонке
Да это понятно.
Но как сделать сортировку по умолчанию по скрытому полю?
Игорь, уточню.
Есть два поля с идентичными заголовками, но с разными названиями:
Номер заявки (поле с типом целое число)
Номер заявки (поле с типом строка).
Для того, чтобы не путать пользователя, Вы скрываете текстовое поле с фильтра. Таким образом, пользователь будет всегда фильтровать по корректному полю.
Каким образом я могу скрыть поле из фильтра. И как я могу установить поле для сортировки по умолчанию?
Какая в таком случае польза от маски номера если её нельзя отобразить в реестре?
Я сделал целочисленное поле NumberDecimal, теперь мне нужно по нему отсортеровать реестр.
Подскажите как это сделать? При этом поле номер должно присутствовать в реестре.
Игорь, добрый день!
Насколько я понимаю, Вы хотите, чтобы реестр по умолчанию сортировался по добавленному Вами полю? Это можно реализовать переопределением метода getGridDataColumns в Вашем разделе:
getGridDataColumns: function() { var columnsConfig = this.callParent(arguments); columnsConfig.NumberDecimal = { path: "NumberDecimal", orderPosition: 10, orderDirection: 1 }; return columnsConfig; }
В параметр orderPosition можно подставить любое число, главное, чтобы оно было больше максимально возможного количества колонок с сортировкой.
В результате, если в реестре не установлена другая сортировка, реестр всегда будет отсортирован по Вашему полю. Как только пользователь установит в реестре сортировку по другой колонке, система будет сортировать реестр сначала по установленной колонке, а уже потом по полю NumberDecimal.
Данное поле не обязательно добавлять в настройки колонок реестра, для сортировки достаточно вышеописанных изменений.