СписокЭлементов.Сортировать (ListView.Sort) Метод

Синтаксис

Сортировать(<Колонка>, <Порядок>)

Параметры

Колонка (обязательный)
Тип: Колонка (ColumnHeader).
Объект Колонка (ColumnHeader) по которому выполняется сортировка содержимого СписокЭлементов (ListView).
Порядок (обязательный)
Тип: ПорядокСортировки (SortOrder).
Одно из значений перечисления ПорядокСортировки (SortOrder).

Возвращаемое значение

Описание

Сортирует элементы в СписокЭлементов (ListView).

Примечание

Пример

СписокЭлементов1.Сортировать(СписокЭлементов1.Колонки.Элемент(0), Ф.ПорядокСортировки.ПоУбыванию);
Полный пример кода

Копировать     Выделить всё

ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptForms\OneScriptForms\bin\Debug\OneScriptForms.dll"); Ф = Новый ФормыДляОдноСкрипта(); Форма1 = Ф.Форма(); Форма1.Ширина = 700; Форма1.Высота = 520; Форма1.Отображать = Истина; Форма1.Показать(); Форма1.Активизировать(); СписокЭлементов1 = Форма1.ЭлементыУправления.Добавить(Ф.СписокЭлементов()); СписокЭлементов1.Стыковка = Ф.СтильСтыковки.Заполнение; СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.Подробно; // подготовим мелкие значки СписокИзображений1 = Ф.СписокИзображений(); СписокИзображений1.РазмерИзображения = Ф.Размер(16, 16); СписокЭлементов1.СписокМаленькихИзображений = СписокИзображений1; СтрКартинка1 = "AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD"; Для А = 1 По 1365 Цикл СтрКартинка1 = СтрКартинка1 + "/"; КонецЦикла; СтрКартинка1 = СтрКартинка1 + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="; СписокЭлементов1.ПриостановитьРазмещение(); Колонки1 = СписокЭлементов1.Колонки; Колонка1 = Ф.Колонка("Текст", 200, 1); Колонка1.ТипСортировки = Ф.ТипСортировки.Текст; Колонка2 = Ф.Колонка("Число", 80, 1); Колонка2.ТипСортировки = Ф.ТипСортировки.Число; Колонка3 = Ф.Колонка("Дата", 150, 1); Колонка3.ТипСортировки = Ф.ТипСортировки.ДатаВремя; Колонка4 = Ф.Колонка("Булево", 70, 1); Колонка4.ТипСортировки = Ф.ТипСортировки.Булево; Колонки1.Добавить(Колонка1); Колонки1.Добавить(Колонка2); Колонки1.Добавить(Колонка3); Колонки1.Добавить(Колонка4); М3 = СтрРазделить(Ф.СвойстваОбъекта(Ф.Цвет()), Символы.ПС); Для А = 0 По 20 Цикл//М3.ВГраница() Картинка1 = Ф.Картинка(СтрКартинка1); М4 = СтрРазделить(М3[А], " "); ИмяЦвета = М4[0]; Попытка Цв = Ф.Цвет().ИзИмени(ИмяЦвета); Исключение Продолжить; КонецПопытки; Dec = (Цв.ЗначениеКрасный * 65536) + (Цв.ЗначениеЗеленый * 256) + Цв.ЗначениеСиний; АтрибутыКартинки1 = Картинка1.Блокировать(); М1 = Картинка1.ПолучитьБайты(АтрибутыКартинки1); Если Картинка1.ФорматПикселей = Ф.ФорматПикселей.Бит32АКЗС Тогда А5 = 0; Пока А5 < М1.Количество Цикл М1.Установить(А5 + 0, Цв.ЗначениеСиний); М1.Установить(А5 + 1, Цв.ЗначениеЗеленый); М1.Установить(А5 + 2, Цв.ЗначениеКрасный); М1.Установить(А5 + 3, Цв.ЗначениеАльфа); А5 = А5 + 4; КонецЦикла; КонецЕсли; Картинка1.УстановитьБайты(АтрибутыКартинки1, М1); Картинка1.Разблокировать(АтрибутыКартинки1); СписокИзображений1.Изображения.Добавить(Картинка1); Элементы = СписокЭлементов1.Элементы; Элемент1 = Ф.ЭлементСпискаЭлементов(ИмяЦвета, СписокИзображений1.Изображения.Количество - 1); Элемент1.ИспользоватьСтильДляПодэлементов = Ложь; Элементы.Добавить(Элемент1); Подэлементы1 = Элемент1.Подэлементы; Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(Dec)); Дата1 = Дата( (Ф.Математика().НаибольшееЦелое(Ф.Математика().Случайное() * 10) + 1900), // год (12 - Ф.Математика().НаибольшееЦелое(Ф.Математика().Случайное() * 10)), // месяц (Ф.Математика().НаибольшееЦелое(Ф.Математика().Случайное() * 10) + 10), // день (Ф.Математика().НаибольшееЦелое(Ф.Математика().Случайное() * 10) + 10), // час (Ф.Математика().НаибольшееЦелое(Ф.Математика().Случайное() * 10) + 10), // минута (Ф.Математика().НаибольшееЦелое(Ф.Математика().Случайное() * 10) + 10) // секунда ); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(Дата1)); Если Ф.Математика().Четное(А) Тогда Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(Истина)); Иначе Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(Ложь)); КонецЕсли; КонецЦикла; Эл = СписокЭлементов1.Элементы.Элемент(1); Эл = Эл.Подэлементы.Элемент(0, Ф.ПодэлементСпискаЭлементов(Неопределено)); // если поставлено значение Неопределено в колонку с ТипСортировки (SortType) равным Текст Эл = СписокЭлементов1.Элементы.Элемент(2); Эл = Эл.Подэлементы.Элемент(1, Ф.ПодэлементСпискаЭлементов(Неопределено)); // если поставлено значение Неопределено в колонку с ТипСортировки (SortType) равным Число Эл = СписокЭлементов1.Элементы.Элемент(3); Эл = Эл.Подэлементы.Элемент(2, Ф.ПодэлементСпискаЭлементов(Неопределено)); // если поставлено значение Неопределено в колонку с ТипСортировки (SortType) равным ДатаВремя Эл = СписокЭлементов1.Элементы.Элемент(4); Эл = Эл.Подэлементы.Элемент(3, Ф.ПодэлементСпискаЭлементов(Неопределено)); // если поставлено значение Неопределено в колонку с ТипСортировки (SortType) равным Булево Эл = СписокЭлементов1.Элементы.Элемент(5); Эл = Эл.Подэлементы.Элемент(0, Ф.ПодэлементСпискаЭлементов(55555)); // если поставлено значение другого типа в колонку с ТипСортировки (SortType) равным Текст Эл = СписокЭлементов1.Элементы.Элемент(6); Эл = Эл.Подэлементы.Элемент(1, Ф.ПодэлементСпискаЭлементов("ааааа")); // если поставлено значение другого типа в колонку с ТипСортировки (SortType) равным Число Эл = СписокЭлементов1.Элементы.Элемент(7); Эл = Эл.Подэлементы.Элемент(2, Ф.ПодэлементСпискаЭлементов("ббббб")); // если поставлено значение другого типа в колонку с ТипСортировки (SortType) равным ДатаВремя Эл = СписокЭлементов1.Элементы.Элемент(8); Эл = Эл.Подэлементы.Элемент(3, Ф.ПодэлементСпискаЭлементов(12345)); // если поставлено значение другого типа в колонку с ТипСортировки (SortType) равным Булево СписокЭлементов1.ВозобновитьРазмещение(); СписокЭлементов1.Сортировать(СписокЭлементов1.Колонки.Элемент(0), Ф.ПорядокСортировки.ПоУбыванию); Ф.ЗапуститьОбработкуСобытий();

Тестовый код

Копировать     Выделить всё

ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptForms\OneScriptForms\bin\Debug\OneScriptForms.dll"); Ф = Новый ФормыДляОдноСкрипта(); Форма1 = Ф.Форма(); Форма1.Ширина = 700; Форма1.Высота = 520; Форма1.Отображать = Истина; Форма1.Показать(); Форма1.Активизировать(); СписокЭлементов1 = Форма1.ЭлементыУправления.Добавить(Ф.СписокЭлементов()); СписокЭлементов1.Стыковка = Ф.СтильСтыковки.Заполнение; СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.Подробно; // подготовим мелкие значки СписокИзображений1 = Ф.СписокИзображений(); СписокИзображений1.РазмерИзображения = Ф.Размер(16, 16); СписокЭлементов1.СписокМаленькихИзображений = СписокИзображений1; СтрКартинка1 = "AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD"; Для А = 1 По 1365 Цикл СтрКартинка1 = СтрКартинка1 + "/"; КонецЦикла; СтрКартинка1 = СтрКартинка1 + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="; СписокЭлементов1.ПриостановитьРазмещение(); Колонки1 = СписокЭлементов1.Колонки; Колонка1 = Ф.Колонка("Текст", 200, 1); Колонка1.ТипСортировки = Ф.ТипСортировки.Текст; Колонка2 = Ф.Колонка("Число", 80, 1); Колонка2.ТипСортировки = Ф.ТипСортировки.Число; Колонка3 = Ф.Колонка("Дата", 150, 1); Колонка3.ТипСортировки = Ф.ТипСортировки.ДатаВремя; Колонка4 = Ф.Колонка("Булево", 70, 1); Колонка4.ТипСортировки = Ф.ТипСортировки.Булево; Колонки1.Добавить(Колонка1); Колонки1.Добавить(Колонка2); Колонки1.Добавить(Колонка3); Колонки1.Добавить(Колонка4); М3 = СтрРазделить(Ф.СвойстваОбъекта(Ф.Цвет()), Символы.ПС); Для А = 0 По 20 Цикл//М3.ВГраница() Картинка1 = Ф.Картинка(СтрКартинка1); М4 = СтрРазделить(М3[А], " "); ИмяЦвета = М4[0]; Попытка Цв = Ф.Цвет().ИзИмени(ИмяЦвета); Исключение Продолжить; КонецПопытки; Dec = (Цв.ЗначениеКрасный * 65536) + (Цв.ЗначениеЗеленый * 256) + Цв.ЗначениеСиний; АтрибутыКартинки1 = Картинка1.Блокировать(); М1 = Картинка1.ПолучитьБайты(АтрибутыКартинки1); Если Картинка1.ФорматПикселей = Ф.ФорматПикселей.Бит32АКЗС Тогда А5 = 0; Пока А5 < М1.Количество Цикл М1.Установить(А5 + 0, Цв.ЗначениеСиний); М1.Установить(А5 + 1, Цв.ЗначениеЗеленый); М1.Установить(А5 + 2, Цв.ЗначениеКрасный); М1.Установить(А5 + 3, Цв.ЗначениеАльфа); А5 = А5 + 4; КонецЦикла; КонецЕсли; Картинка1.УстановитьБайты(АтрибутыКартинки1, М1); Картинка1.Разблокировать(АтрибутыКартинки1); СписокИзображений1.Изображения.Добавить(Картинка1); Элементы = СписокЭлементов1.Элементы; Элемент1 = Ф.ЭлементСпискаЭлементов(ИмяЦвета, СписокИзображений1.Изображения.Количество - 1); Элемент1.ИспользоватьСтильДляПодэлементов = Ложь; Элементы.Добавить(Элемент1); Подэлементы1 = Элемент1.Подэлементы; Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(Dec)); Дата1 = Дата( (Ф.Математика().НаибольшееЦелое(Ф.Математика().Случайное() * 10) + 1900), // год (12 - Ф.Математика().НаибольшееЦелое(Ф.Математика().Случайное() * 10)), // месяц (Ф.Математика().НаибольшееЦелое(Ф.Математика().Случайное() * 10) + 10), // день (Ф.Математика().НаибольшееЦелое(Ф.Математика().Случайное() * 10) + 10), // час (Ф.Математика().НаибольшееЦелое(Ф.Математика().Случайное() * 10) + 10), // минута (Ф.Математика().НаибольшееЦелое(Ф.Математика().Случайное() * 10) + 10) // секунда ); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(Дата1)); Если Ф.Математика().Четное(А) Тогда Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(Истина)); Иначе Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(Ложь)); КонецЕсли; КонецЦикла; Эл = СписокЭлементов1.Элементы.Элемент(1); Эл = Эл.Подэлементы.Элемент(0, Ф.ПодэлементСпискаЭлементов(Неопределено)); // если поставлено значение Неопределено в колонку с ТипСортировки (SortType) равным Текст Эл = СписокЭлементов1.Элементы.Элемент(2); Эл = Эл.Подэлементы.Элемент(1, Ф.ПодэлементСпискаЭлементов(Неопределено)); // если поставлено значение Неопределено в колонку с ТипСортировки (SortType) равным Число Эл = СписокЭлементов1.Элементы.Элемент(3); Эл = Эл.Подэлементы.Элемент(2, Ф.ПодэлементСпискаЭлементов(Неопределено)); // если поставлено значение Неопределено в колонку с ТипСортировки (SortType) равным ДатаВремя Эл = СписокЭлементов1.Элементы.Элемент(4); Эл = Эл.Подэлементы.Элемент(3, Ф.ПодэлементСпискаЭлементов(Неопределено)); // если поставлено значение Неопределено в колонку с ТипСортировки (SortType) равным Булево Эл = СписокЭлементов1.Элементы.Элемент(5); Эл = Эл.Подэлементы.Элемент(0, Ф.ПодэлементСпискаЭлементов(55555)); // если поставлено значение другого типа в колонку с ТипСортировки (SortType) равным Текст Эл = СписокЭлементов1.Элементы.Элемент(6); Эл = Эл.Подэлементы.Элемент(1, Ф.ПодэлементСпискаЭлементов("ааааа")); // если поставлено значение другого типа в колонку с ТипСортировки (SortType) равным Число Эл = СписокЭлементов1.Элементы.Элемент(7); Эл = Эл.Подэлементы.Элемент(2, Ф.ПодэлементСпискаЭлементов("ббббб")); // если поставлено значение другого типа в колонку с ТипСортировки (SortType) равным ДатаВремя Эл = СписокЭлементов1.Элементы.Элемент(8); Эл = Эл.Подэлементы.Элемент(3, Ф.ПодэлементСпискаЭлементов(12345)); // если поставлено значение другого типа в колонку с ТипСортировки (SortType) равным Булево СписокЭлементов1.ВозобновитьРазмещение(); СписокЭлементов1.Сортировать(СписокЭлементов1.Колонки.Элемент(0), Ф.ПорядокСортировки.ПоУбыванию); Сообщить(?( Истина , "", "!!! ") + "СписокЭлементов.Сортировать (ListView.Sort) Метод" + " " + ТекущаяДата());

Смотрите также

СписокЭлементов (ListView) Класс | Библиотека OneScriptForms