|
Сортировка по возрастанию в макете печатной формы | ☑ | ||
---|---|---|---|---|
0
Mitka90
16.02.18
✎
10:47
|
Здравствуйте! Возник такой вопрос: нужно в макете печатной формы вывести абонентов и их адреса, но чтобы адрес шёл в порядке возрастания.
Проблема состоит в том, что сортировка идёт неправильно: например, в таком порядке: "100", "101", "102", "103", "1", "2", "3" и т.д. Как сделать так, чтобы всё-таки номера квартир в адресе шли именно так: "1", "2", "3"... "100", "101", "102", "103"? Код прилагается: Процедура ПечатьНажатие(Элемент) // Вставить содержимое обработчика. Макет = Справочники.Абоненты.ПолучитьМакет("График"); //Макет = ПолучитьМакет("График"); ТабДок = Новый ТабличныйДокумент(); ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ТабДок.АвтоМасштаб=Истина; Шапка = Макет.ПолучитьОбласть("Шапка"); Область1 = Макет.ПолучитьОбласть("Строка"); // ТабДок.Вывести(Шапка); для Каждого стр из ТабличноеПоле1 Цикл ЭлементыФормы.ТабличноеПоле1.Значение.Сортировать("Адрес Возр"); // ТабличноеПоле1.Сортировать("Адрес Возр"); Область1.Параметры.Абонент = стр.Абонент; Область1.Параметры.Адрес = стр.адрес; // сообщить(ТипЗнч(стр.Абонент)); //Сообщить(стр.Абонент.ФИО); ТабДок.Вывести(Область1); КонецЦикла; // ТабДок.ОтображатьСетку = Ложь; ТабДок.Показать(); КонецПроцедуры |
|||
1
Cool_Profi
16.02.18
✎
10:50
|
выгрузить в тз, преобразовать в число, отсортировать, выводить
|
|||
2
Darych
16.02.18
✎
10:51
|
номер квартиры - число
|
|||
3
Малыш Джон
16.02.18
✎
10:53
|
(0) Добить лидирующими нулями
|
|||
4
Cool_Profi
16.02.18
✎
10:56
|
(2) Обманываешь. Иначе сортировалось бы правильно
|
|||
5
Darych
16.02.18
✎
10:58
|
(4) че?.. в 0 строка, а ч говорю, что число нужно
|
|||
6
Cool_Profi
16.02.18
✎
10:59
|
(5) А, спутал тебя с ТС. именно про такое я и сказаль в (1)
|
|||
7
DrZombi
гуру
16.02.18
✎
11:01
|
(0) Ввести в БД реквизит "Порядковый номер".
Заполнять тем, чем получится получить из адреса. Сортируйте за здравие :) |
|||
8
DrZombi
гуру
16.02.18
✎
11:01
|
(1) Щас окажется, что адрес произвольный :)
|
|||
9
Chameleon1980
16.02.18
✎
11:02
|
можно и не в бд
постобработка тз перед выводом добавление кв (число) вытягивание ищ адреса кв, сортировка вперед на печать |
|||
10
Cool_Profi
16.02.18
✎
11:02
|
(8) trash in - trash out
|
|||
11
Дремучий
16.02.18
✎
11:10
|
Только выдернуть из БД надо все поля и сортировать по всем полям по очереди, иначе после "Ленина, 1" будет "Минина, 2".
|
|||
12
Mitka90
19.02.18
✎
10:51
|
Хорошо, понял.
Допустим, что нужно преобразовать строку в число. А как быть, если квартира имеет ещё и буквенное значение (например, 3пом)? Как в таком случае отсортировать как нужно? Ещё и есть, допустим, данные, где номер дома и квартира повторяются, а ФИО абонентов разные. В общем, они сортируются так: сначала (вне сортировки) выходит Иванов И.И., дом 15, кв. 17, далее идут квартиры 1, 10, 11 ... далее Петров П.П., дом 15 кв. 17, потом 2, 20... и т.д. |
|||
13
catena
19.02.18
✎
11:27
|
(12) Строковые переменные сравниваются посимвольно, т.е. "2" всегда будет больше, чем "10", "100" и даже "1000". Когда строковые переменные желают сравнивать, как числовые, им можно добавить лидирующие нули. Когда в строковых значениях встречаются нечисловые приписки, которые хочется сортировать по своему разумению, а не "по алфавиту" - вводят дополнительный реквизит сортировки, который и заполняют значениями в нужном порядке.
|
|||
14
Mitka90
20.02.18
✎
10:49
|
Ага, теперь понятно.
Но в данном случае тогда как можно перевести строку в число? Хотя бы на примере моего кода, а то непонятно это как-то... |
|||
15
catena
20.02.18
✎
10:57
|
(14)Какому числу должна соответствовать ваша квартира "3пом"?
|
|||
16
Йохохо
20.02.18
✎
10:57
|
(14) ТЧ вывести в ТЗ добавить три колонки, заполнить, отсортировать,вывести
|
|||
17
Mitka90
20.02.18
✎
11:20
|
Числу "3".
То есть, отдельно разделить адрес на три колонки, а потом совершить подобный алгоритм действий? |
|||
18
Mitka90
21.02.18
✎
08:16
|
Никто не знает?
|
|||
19
catena
21.02.18
✎
08:23
|
(18)Кроме тебя никто не знает, как тебе нужно сортировать. Все советы уже даны. Нужен готовый код, чтоли?
|
|||
20
Mitka90
21.02.18
✎
08:25
|
Я же указал, как.
Хотя бы приблизительный код, чтобы понятнее стало. |
|||
21
Chameleon1980
21.02.18
✎
09:13
|
(20) ну и отвентили уже как
|
|||
22
Mitka90
21.02.18
✎
10:48
|
Но примера кода нет.
|
|||
23
SSSSS_AAAAA
21.02.18
✎
10:51
|
(22) Примера кода чего? Перевода строки в число? Синтаксис-помощник уже не работает? Прочитать про функцию Число() религия не позволяет?
|
|||
24
mistеr
21.02.18
✎
10:52
|
(22) Придется разобрать адреса на компоненты, И хранить их раздельно. Это наполовину ручная работа. Либо воспользоваться платным сервисом (есть такие). В любом случае затраты приличные.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |