Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2007, 16:33   #1
Aleksandr
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 511
По умолчанию Переход по букве на нужную строчку в DBGrid

Как осуществить переход в DBGrid как в 1С. Т.е ввожу букву и в таблице курсор устанавливается на строчке которая начинается на эту букву.
Aleksandr вне форума Ответить с цитированием
Старый 16.08.2007, 05:34   #2
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Цитата:
Сообщение от Aleksandr Посмотреть сообщение
Как осуществить переход в DBGrid как в 1С. Т.е ввожу букву и в таблице курсор устанавливается на строчке которая начинается на эту букву.
Для компонента TTable:

1. Таблица должна быть проиндексирована по этому полю. Индекс во время поиска включить.

2. Поиск по базе осуществляется методом FindNearest. Он пытается отыскать запись в которой индексные поля соответствуют указанным значениям. Если такая запись найдена, указатель перемещается на нее. Если не найдена - на ближайшую запись с большим значением индекса.

3. В компоненте, где набирают значение, напиши обработчик на событие OnKeyPress. В ктором используй метод FindNearest для поиска.

Все...
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 16.08.2007, 08:51   #3
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию !

Ну, ты можешь использовать ,как тебе выше написали , FindKey или FindNearest, можно использовать фильтрацию , а можно использовать Locate или Lookup....
Locate(поле гдеискать, что искать, параметры)
lookup(где искать, что , результирующее поле)

Filter:='поле=''Значение''' или Table1.filter:='поле='+QuotedStr(зн ачение)


Если тебе нужно перейти на запись, которая была найдена, то тебе нужно Locate

Можно похимичить с запросами.... Просто передать Фокус DbGrid после выполнения...
можно использовать запросы для поиска... Тоесть тут есть где разгуляться

Вот пример : select * from Table1 where ПОЛЕ like 'А%'; Тут выдаст все значения , начинающиеся на букву "А"
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp

Последний раз редактировалось Pitbull; 16.08.2007 в 08:55.
Pitbull вне форума Ответить с цитированием
Старый 24.08.2007, 23:06   #4
Detka
Чайник :D
Пользователь
 
Регистрация: 22.12.2006
Сообщений: 65
По умолчанию

Помогите, пожалуйста!!! Я только начинаю программить на Делфи. У меня горит курсач. Вот вкратце о нем: есть главная таблицас данными о сотрудниках (ФИО, код должности, подразделение); есть рассчетная ведомость (фио, начислено, подоходный, отчисл. в пенс. фонд, к выплате), в которой высчитывается зарплата каждого сотрудника. Ведомость должна выводиться по каждому подразделению. Есть две проблемы.
1. Как вывести ведомость по подразделениям? Я пыталась использовать DBLookupComboBox, но никак не могу правильно соединить его с главной таблицей и ведомостью.
2. Никак не могу правильно прописать синтаксис для loCaseInsensitive и loPartialKey в поиске по главной таблице.
Помогите кто чем может. Буду очень признательна.
Мы все учились по-немногу
Чему-нибудь и как-нибудь...

Пушкин А.С.
Detka вне форума Ответить с цитированием
Старый 27.08.2007, 09:59   #5
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Цитата:
Сообщение от Detka Посмотреть сообщение
Помогите, пожалуйста!!! Я только начинаю программить на Делфи. У меня горит курсач. Вот вкратце о нем: есть главная таблицас данными о сотрудниках (ФИО, код должности, подразделение); есть рассчетная ведомость (фио, начислено, подоходный, отчисл. в пенс. фонд, к выплате), в которой высчитывается зарплата каждого сотрудника. Ведомость должна выводиться по каждому подразделению. Есть две проблемы.
1. Как вывести ведомость по подразделениям? Я пыталась использовать DBLookupComboBox, но никак не могу правильно соединить его с главной таблицей и ведомостью.
2. Никак не могу правильно прописать синтаксис для loCaseInsensitive и loPartialKey в поиске по главной таблице.
Помогите кто чем может. Буду очень признательна.
зай, я уже твою тему вижу во многих разделах =) пришли свое задание на Sergienkoss@mail.ru двоишница
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Старый 19.08.2009, 13:51   #6
mavlon_m
Форумчанин
 
Регистрация: 04.08.2009
Сообщений: 101
По умолчанию

))))))))))))))))))))))))))))))))) )))
mavlon_m вне форума Ответить с цитированием
Старый 19.08.2009, 14:41   #7
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Можно по KeyPress пробегать по всему гриду и считывать первый символ внужном поле грида
Arkuz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рразъясните строчку. Amen Помощь студентам 11 30.08.2008 02:45
Как с поиощью hiew вставить в файл строчку, "раздвинуть" файл и вставить туда строчку? barand Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 28.06.2008 10:58
Запустить строчку как код. Dj_smart Общие вопросы Delphi 12 21.04.2008 21:58
Как к какой либо букве привезать определенное действие? LuMax Помощь студентам 4 25.11.2007 14:06
DBLookupComboBox на первую строчку Inbox БД в Delphi 7 29.10.2007 13:26