On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 225
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 21.08.11 15:36. Заголовок: Отбор документов


Вопрос общий, но так как делаю все в MINIGUI , пишу здесь. Есть таблица,из которой выводится на экран: Дата Документа, № документа, Покупатель .Обычно в таких случаях принято фильтровать данные по дате.Я так и хочу- создаю индексы:
dtos(DataDoc)+NomerDoc и dtos(DataDoc)+Name.Далее, устанавливаю Scope. Но как в этом случае искать документы ( по номеру или имени Покупателя). Seek работать не будет, только Locate.
У кого какие соображения или практика по этому вопросу есть- подскажите.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 10 [только новые]







Пост N: 49
Зарегистрирован: 22.09.09
ссылка на сообщение  Отправлено: 21.08.11 17:22. Заголовок: Первое, что приходит..


Первое, что приходит в голову - иметь соответствующие индексы по NomerDoc и Name.
Далее:
- dbSetOrder() или OrdSetFocus() на соответствующий индекс
- непосредственно сам поиск
- dbSetOrder() или OrdSetFocus() на основной индекс
Как-то так.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 226
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 22.08.11 06:17. Заголовок: Это общий просмотр. ..


Это общий просмотр. С этим все понятно. А вот если установить интервал видимости по дате..... Я раньше делал отбор в пределах месяца.
Индекс начинался с Left(dtos(DataDoc),6)

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 50
Зарегистрирован: 22.09.09
ссылка на сообщение  Отправлено: 22.08.11 07:20. Заголовок: Тогда еще раз: - как..


Тогда еще раз:
- какой индекс управляющий при просмотре?
- по какому полю необходим поиск?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 227
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 22.08.11 13:50. Заголовок: Хотелось бы так dtos..


Хотелось бы так
dtos(DataDoc)+NomerDoc
ищем по номеру документа ( символьное поле)
или
dtos(DataDoc)+Name
ищем по наименованию организации
В первом случае номера не повторяются . NomerDoc - УНИКАЛЬНЫЕ
Во втором одинаковые организации не будут стоять друг за другом, если документы оформлены в разные дни

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1866
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.08.11 18:43. Заголовок: Vlad04 пишет: Seek ..


Vlad04 пишет:

 цитата:
Seek работать не будет


Будет, если сделать несколько индексных файлов. И переключайся между ними...

Можешь сделать условную индексацию, тоже очень быстро поиск происходит.
Locate - это очень долго...

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 51
Зарегистрирован: 22.09.09
ссылка на сообщение  Отправлено: 22.08.11 18:43. Заголовок: Vlad04 пишет: Обычн..


Vlad04 пишет:

 цитата:
Обычно в таких случаях принято фильтровать данные по дате.


ПРИНЯТО или НЕОБХОДИМО фильтровать по дате?
Как Вы хотите показать результат поиска документа (организации):
- в отдельном окне;
- в том же окне, убирая с экрана лишние записи;
- в том же окне в той же таблице, делая активной найденную запись?

Как вариант, предлагаю сделать три индекса:
1 - основной = дата+...то, что необходимо при обычном промотре
2 - дополнительный = номер документа+дата
3 - дополнительный = заказчик + дата

Первый индекс использовать при просмотре таблицы. Второй и третий - служат для поиска данных.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 228
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 23.08.11 05:42. Заголовок: ПРИНЯТО или НЕОБХОДИ..



 цитата:
ПРИНЯТО или НЕОБХОДИМО фильтровать по дате?


Необходимо.

 цитата:

- в отдельном окне;
- в том же окне, убирая с экрана лишние записи;
- в том же окне в той же таблице, делая активной найденную запись?


Это уже детали.

Во всех распространенных системах такие функции фильтрации и поиска есть -
1)отбор документов в интервале дат или
2)отбор документов на заданную дату или
3)отбор документов позднее заданной даты.
В первом и третьем случае Seek искать не будет, так как чтобы найти, нужно ввести в стороку поиска первую часть индекса, т.е дату ,а она неизвестна, а потом собственно объект поиска.


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 52
Зарегистрирован: 22.09.09
ссылка на сообщение  Отправлено: 23.08.11 08:04. Заголовок: Vlad04 пишет: Во вс..


Vlad04 пишет:

 цитата:
Во всех распространенных системах такие функции фильтрации и поиска есть


А кто мешает задать фильтр? См. dbSetFilter.

Vlad04 пишет:

 цитата:
В первом и третьем случае Seek искать не будет, так как чтобы найти, нужно ввести в стороку поиска первую часть индекса, т.е дату ,а она неизвестна, а потом собственно объект поиска.


Вы упорно не обращаете внимание на возможность создания вспомогательного индекса для поиска (№ док-та + дата). В этом случае легко решаются описанные выше 1 и 3 случаи.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 53
Зарегистрирован: 22.09.09
ссылка на сообщение  Отправлено: 23.08.11 08:15. Заголовок: Да, и хочу еще раз о..


Да, и хочу еще раз обратить Ваше внимание на

Andrey пишет:

 цитата:
Можешь сделать условную индексацию



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 229
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 23.08.11 10:27. Заголовок: ок. Попробую все вар..


ок.
Попробую все варианты

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 18
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет