Автор | Сообщение |
|
| постоянный участник
|
Пост N: 225
Зарегистрирован: 13.10.05
|
|
Отправлено: 21.08.11 15:36. Заголовок: Отбор документов
Вопрос общий, но так как делаю все в MINIGUI , пишу здесь. Есть таблица,из которой выводится на экран: Дата Документа, № документа, Покупатель .Обычно в таких случаях принято фильтровать данные по дате.Я так и хочу- создаю индексы: dtos(DataDoc)+NomerDoc и dtos(DataDoc)+Name.Далее, устанавливаю Scope. Но как в этом случае искать документы ( по номеру или имени Покупателя). Seek работать не будет, только Locate. У кого какие соображения или практика по этому вопросу есть- подскажите.
|
|
|
Новых ответов нет
[см. все]
|
|
|
| |
Пост N: 49
Зарегистрирован: 22.09.09
|
|
Отправлено: 21.08.11 17:22. Заголовок: Первое, что приходит..
Первое, что приходит в голову - иметь соответствующие индексы по NomerDoc и Name. Далее: - dbSetOrder() или OrdSetFocus() на соответствующий индекс - непосредственно сам поиск - dbSetOrder() или OrdSetFocus() на основной индекс Как-то так.
|
|
|
|
| постоянный участник
|
Пост N: 226
Зарегистрирован: 13.10.05
|
|
Отправлено: 22.08.11 06:17. Заголовок: Это общий просмотр. ..
Это общий просмотр. С этим все понятно. А вот если установить интервал видимости по дате..... Я раньше делал отбор в пределах месяца. Индекс начинался с Left(dtos(DataDoc),6)
|
|
|
|
| |
Пост N: 50
Зарегистрирован: 22.09.09
|
|
Отправлено: 22.08.11 07:20. Заголовок: Тогда еще раз: - как..
Тогда еще раз: - какой индекс управляющий при просмотре? - по какому полю необходим поиск?
|
|
|
|
| постоянный участник
|
Пост N: 227
Зарегистрирован: 13.10.05
|
|
Отправлено: 22.08.11 13:50. Заголовок: Хотелось бы так dtos..
Хотелось бы так dtos(DataDoc)+NomerDoc ищем по номеру документа ( символьное поле) или dtos(DataDoc)+Name ищем по наименованию организации В первом случае номера не повторяются . NomerDoc - УНИКАЛЬНЫЕ Во втором одинаковые организации не будут стоять друг за другом, если документы оформлены в разные дни
|
|
|
|
| постоянный участник
|
Пост N: 1866
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.08.11 18:43. Заголовок: Vlad04 пишет: Seek ..
Vlad04 пишет: Будет, если сделать несколько индексных файлов. И переключайся между ними... Можешь сделать условную индексацию, тоже очень быстро поиск происходит. Locate - это очень долго...
|
|
|
|
| |
Пост N: 51
Зарегистрирован: 22.09.09
|
|
Отправлено: 22.08.11 18:43. Заголовок: Vlad04 пишет: Обычн..
Vlad04 пишет: цитата: | Обычно в таких случаях принято фильтровать данные по дате. |
| ПРИНЯТО или НЕОБХОДИМО фильтровать по дате? Как Вы хотите показать результат поиска документа (организации): - в отдельном окне; - в том же окне, убирая с экрана лишние записи; - в том же окне в той же таблице, делая активной найденную запись? Как вариант, предлагаю сделать три индекса: 1 - основной = дата+...то, что необходимо при обычном промотре 2 - дополнительный = номер документа+дата 3 - дополнительный = заказчик + дата Первый индекс использовать при просмотре таблицы. Второй и третий - служат для поиска данных.
|
|
|
|
| постоянный участник
|
Пост N: 228
Зарегистрирован: 13.10.05
|
|
Отправлено: 23.08.11 05:42. Заголовок: ПРИНЯТО или НЕОБХОДИ..
цитата: | ПРИНЯТО или НЕОБХОДИМО фильтровать по дате? |
| Необходимо. цитата: | - в отдельном окне; - в том же окне, убирая с экрана лишние записи; - в том же окне в той же таблице, делая активной найденную запись? |
| Это уже детали. Во всех распространенных системах такие функции фильтрации и поиска есть - 1)отбор документов в интервале дат или 2)отбор документов на заданную дату или 3)отбор документов позднее заданной даты. В первом и третьем случае Seek искать не будет, так как чтобы найти, нужно ввести в стороку поиска первую часть индекса, т.е дату ,а она неизвестна, а потом собственно объект поиска.
|
|
|
|
| |
Пост N: 52
Зарегистрирован: 22.09.09
|
|
Отправлено: 23.08.11 08:04. Заголовок: Vlad04 пишет: Во вс..
Vlad04 пишет: цитата: | Во всех распространенных системах такие функции фильтрации и поиска есть |
| А кто мешает задать фильтр? См. dbSetFilter. Vlad04 пишет: цитата: | В первом и третьем случае Seek искать не будет, так как чтобы найти, нужно ввести в стороку поиска первую часть индекса, т.е дату ,а она неизвестна, а потом собственно объект поиска. |
| Вы упорно не обращаете внимание на возможность создания вспомогательного индекса для поиска (№ док-та + дата). В этом случае легко решаются описанные выше 1 и 3 случаи.
|
|
|
|
| |
Пост N: 53
Зарегистрирован: 22.09.09
|
|
Отправлено: 23.08.11 08:15. Заголовок: Да, и хочу еще раз о..
Да, и хочу еще раз обратить Ваше внимание на Andrey пишет: цитата: | Можешь сделать условную индексацию |
|
|
|
|
|
| постоянный участник
|
Пост N: 229
Зарегистрирован: 13.10.05
|
|
Отправлено: 23.08.11 10:27. Заголовок: ок. Попробую все вар..
ок. Попробую все варианты
|
|
|
|