Автор | Сообщение |
|
| постоянный участник
|
Пост N: 1977
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.01.12 15:45. Заголовок: Сортировка по алфавиту ???
Всем привет. Постановка задачи такая: Есть справочник-улиц (street.dbf) типа: Kstreet - Street 1 - Махалина ул. 2 - Федорова ул. ..... 990 - Алтуфьевское шоссе ..... В основной базе "списка адресов" (допустим dogovor.dbf) записывается код улицы Kstreet. При выборке из базы (использую условный индекс) выводиться нужный мне список. Задаю сортировку по коду улицы (Kstreet). Получаю отсортированный список не по алфавиту улиц. А как решить вопрос с сортировкой по алфавиту базы (таблицы) "списка адресов" ? Чтобы список показывался по алфавиту ???
|
|
|
Ответов - 57
, стр:
1
2
3
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 1989
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.01.12 18:44. Заголовок: Петр пишет: Предлож..
Петр пишет: цитата: | Предложение WHILE не сохраняется в индексном файле |
| Спасибо....
|
|
|
|
| постоянный участник
|
Пост N: 2785
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.04.13 13:45. Заголовок: Привет всем ! Столк..
Привет всем ! Столкнулся с такой проблемой - в базе есть поле НОМЕР_ДОМА ( С 5,0 ) Допустим список домов "1", "2", "3", "17в", "15", "11" и т.д. При сортировке получаю ерунду 1 11 15 17в 2 3 Как бы правильно отсортировать это поле, чтобы дома правильно стояли ? Можно конечно и через 2 поля (сделать разборку поля НОМЕР_ДОМА) - но не желательно...
|
|
|
|
| |
Пост N: 2960
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.04.13 14:00. Заголовок: попробуй PADL(твой к..
попробуй PADL(твой ключ,длина,"0")
|
|
|
|
| постоянный участник
|
Пост N: 2786
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.04.13 14:11. Заголовок: Dima пишет: попробу..
Dima пишет: цитата: | попробуй PADL(твой ключ,длина,"0") |
| А как быть с 17в ? У меня таких домов очень много 58а, 58б, 19а и т.д. .....
|
|
|
|
| |
Пост N: 2961
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.04.13 14:25. Заголовок: Andrey пишет: А как..
Andrey пишет: А куда он встал при такой сортировке с padl ?
|
|
|
|
| |
Пост N: 92
Зарегистрирован: 19.05.05
|
|
Отправлено: 08.04.13 16:01. Заголовок: Я думаю, где-то в 3-..
Я думаю, где-то в 3-х значные номера домов. Очевидно здесь в лоб PADL нельзя использовать. Необходим анализ, если последний символ номера буква - PADL, иначе к номеру в конце добавить пробел, тогда сортировка будет правильная
|
|
|
|
| |
Пост N: 32
Зарегистрирован: 24.02.11
|
|
Отправлено: 08.04.13 16:34. Заголовок: index on str(val(dom..
index on str(val(dom))+dom красиво отрабатывает, в том числе и штучки типа 10/1, 10-1.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 08.04.13 21:13. Заголовок: PADL(val(charonly('0123456789',dom)),5,'0')+charrem('0123456789',dom)
..... index on fdom() to test .... Function fdom() Static cifr:='0123456789' return PADL(val(charonly(cifr,dom)),5,'0')+charrem(cifr,dom)
|
|
|
|
| постоянный участник
|
Пост N: 2788
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.04.13 23:04. Заголовок: vvv пишет: index on..
vvv пишет: цитата: | index on str(val(dom))+dom красиво отрабатывает, в том числе и штучки типа 10/1, 10-1. |
| Спасибо БОЛЬШОЕ ! Это самое изящное решение проблемы !
|
|
|
|
| постоянный участник
|
Пост N: 2790
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.04.13 19:49. Заголовок: vvv пишет: index on..
vvv пишет: цитата: | index on str(val(dom))+dom красиво отрабатывает, в том числе и штучки типа 10/1, 10-1. |
| Что-то не правильно сортирует ! 9 11 12 .... 16Б ... 89А .... 97 97К 100 100 100 102Б 102Б 102Б 16 13 13 19/2 19/2 73 11 9Б 11 Как нужно делать тогда ?
|
|
|
|
| постоянный участник
|
Пост N: 2791
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.04.13 19:57. Заголовок: Пардон, извиняюсь.....
Пардон, извиняюсь... Все правильно сортирует, там еще улица в сортировке присутствует !
|
|
|
|
|
| постоянный участник
|
Пост N: 5466
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.17 20:38. Заголовок: Pasha пишет: Вместо..
Pasha пишет: цитата: | Вместо KSTREET поставить STREET->STREET и сделать set relation, как я написал |
| От set relation в МиниГуи пришлось отказаться. Поставил спец.функцию показа - Say_Dbf( (cAlias)->KSTREET, "STREET", "STREET" ) Как теперь сделать сортировку столбца/колонки по улице в алфавитном порядке ?
|
|
|
|
| |
Пост N: 6524
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.08.17 21:31. Заголовок: Andrey пишет: Как т..
Andrey пишет: цитата: | Как теперь сделать сортировку столбца/колонки по улице в алфавитном порядке ? |
| По индексу однако или юзать что то свое в плане set relation , и да МиниГуи тут не при чем Andrey пишет: цитата: | Поставил спец.функцию показа - Say_Dbf |
| Телепаты уже в пути
|
|
|
|
| постоянный участник
|
Пост N: 5468
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.08.17 16:24. Заголовок: Dima пишет: юзать ч..
Dima пишет: цитата: | юзать что то свое в плане set relation , и да МиниГуи тут не при чем |
| МиниГуи здесь ещё как причем ! Я уже писал об этом: при использовании set relation в Tsbrowse неправильно отображаются записи, при использовании(показе) ДВУХ Tsbrowse. Если убрать set relation то всё отлично. Dima пишет: Постановка задачи такая: Есть справочник-улиц (street.dbf) типа: Kstreet - Street 1 - Махалина ул. 2 - Федорова ул. ..... 990 - Алтуфьевское шоссе ..... В основной базе "списка адресов" (допустим TEST.dbf) записывается код улицы Kstreet. Создаю индекс по коду улицы (Kstreet) в основной базе. Получаю отсортированный список не по алфавиту улиц, а по коду. Как решить вопрос с сортировкой по алфавиту базы (таблицы) "списка адресов", чтобы список показывался по алфавиту ???
|
|
|
|
| |
Пост N: 1121
Зарегистрирован: 20.02.11
|
|
Отправлено: 06.08.17 17:24. Заголовок: Andrey пишет: Мини..
Andrey пишет: цитата: | МиниГуи здесь ещё как причем |
| Андрей, минигуи, а именно TSbrows отражает в ячейке то что вернет блок выборки. Тот что по умолчанию у меня терял алиас ( мож сейчас все нормально, давно использую свой) Но то что минигуи не может влиять на работу драйвера баз данных и на его установки по set relation это точно. Так что проблема не в минигуи, а в том что от него просят. Уверен если скормить минигуи свой правильный блок то с реляцией проблем не возникнет По второму вопросу- делай локальный индекс в выражение которого по коду возвращает название улицы, или загоняй массив что нужно и сортируй как хочется или используй SQL и получая склейку через JOIN и ORDER BY показывай уже отсортированно. Самый простой - это по массиву или mem: базе, заполнил проиндексировал и показывай.
|
|
|
|
| постоянный участник
|
Пост N: 726
Зарегистрирован: 13.10.05
|
|
Отправлено: 07.08.17 11:44. Заголовок: Andrey Я делаю так..
Andrey Я делаю так База1 и БАЗА2 СОЕДИнены set relation . Далее создаю индекс, который не должен автоматически открываться ( в другое место его помещаю) В индексное выражение включаю поля Базы2. цитата: | INDEX ON UPPER(Fam+IM+Ot+dTOS(kLIENT->bIRTH_DATE) ) Tag "ONE" TO (Par1+"TempIndex.cdx") |
| Поля Базы2 показываю в Бровсе1 совместно с полями Базы1. Двух Tsbrowse здесь не должно быть всё Ок
|
|
|
|
| постоянный участник
|
Пост N: 5471
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.08.17 13:02. Заголовок: Vlad04 пишет: Я дел..
Vlad04 пишет: цитата: | Я делаю так База1 и БАЗА2 СОЕДИнены set relation . |
| НЕ МОГУ делать через set relation !!! Уже писал об этом - глючет показ Tsbrowse в МиниГуи (как исправить не знаю). Нужно найти решение без set relation. Можно сделать вариант с пере открытием базы улиц, но мне это не подходит. Я все базы открываю при запуске задачи.
|
|
|
|
| постоянный участник
|
Пост N: 727
Зарегистрирован: 13.10.05
|
|
Отправлено: 07.08.17 17:07. Заголовок: а пример небольшой ..
а пример небольшой ?
|
|
|
|
| постоянный участник
|
Пост N: 5472
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.08.17 18:10. Заголовок: Vlad04 пишет: а при..
|
|
|
|
| |
Пост N: 1122
Зарегистрирован: 20.02.11
|
|
Отправлено: 07.08.17 20:22. Заголовок: Andrey пишет: Вот п..
Andrey пишет: Ответил в почту
|
|
|
Ответов - 57
, стр:
1
2
3
All
[только новые]
|
|