IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> повторяющиеся данные в dbgrid - ?
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 205
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Подскажите пожалуйста, как можно сделать с помощью фильтра, чтобы при вводе в dbedit, например номера 128-ас, и если такой же номер уже есть в gride, то указывалось что этот номер уже существует?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Что значит "что такое"? Ну, смотри: в StringList-е данные хранятся в виде строк, так? Каждый sL.Strings[ i ] - отдельная строка. Как узнать, присутствует ли в СтрингЛисте определенная строка? Можно, конечно, сделать:

Found := -1; // Если искомой строки не будет, Found останется равным (-1)
for i := 0 to sL.Count do
begin
if sL.Strings[ i ] = 'нужная строка' then Found := i;
end;
// Вот теперь смотрим, если Found = -1, то 'нужная строка' в СтрингЛисте
// отсутствует, иначе Found содержит индекс того элемента Strings, в котором
// она содержится
Это все, конечно, хорошо, но у StringList-а есть готовый метод IndexOf, который получает строку, и выдает индекс элемента, в котором она хранится, или (-1), если строка не была найдена. То есть, код, написанный выше - это реализация того самого IndexOf. Теперь понятно, что значит Index? Это индекс элемента, который надо удалить. Да, это обычная переменная типа Integer, ее надо описывать.

Про Lines забудь, это мой недочет. Я просто проверял кое-что на Memo (для визуализации), а там, чтобы добраться до СтрингЛиста, надо обратиться к свойству Lines. Ну, и забыл удалить... Итого имеем:
var index: Integer;
...
Index := sL.IndexOf(удаляемая_строка);
if Index <> -1 then sL.Delete(Index);
 К началу страницы 
+ Ответить 

Сообщений в этой теме
1147   повторяющиеся данные в dbgrid - ?   20.07.2009 4:00
volvo   Проверяй наличие введенного значения в БД по событ…   20.07.2009 4:43
1147   при выходе из dbedita, данные заносятся в grid. та…   20.07.2009 5:28
volvo   Ага, особенно если при выходе ты проверишь и удали…   20.07.2009 16:12
volvo   Кстати, самый правильный вариант решения этой зада…   20.07.2009 22:44
1147   С индексируемым полем здесь как раз и не получится…   20.07.2009 23:46
volvo   Так тебе НИКТО не покажет, что такое значение уже …   20.07.2009 23:55
1147   Понятно.. может быть можно как нибудь таким образо…   21.07.2009 0:43
volvo   И чего тебе это даст? Вот в таком случае, например…   21.07.2009 0:59
1147   Просто с запятыми удобнее всего было в одну ячейку…   21.07.2009 2:56
volvo   Ну, смотри, чего я наваял: 1) в классе формы есть …   21.07.2009 4:45
1147   Все работает замечательно. 1 вопрос: когда обнару…   2.08.2009 21:11
volvo   Нет, но обозначить - не проблема: procedure TForm1…   2.08.2009 21:45
1147   Да, повторно введенные значения появляются в Label…   2.08.2009 22:21
volvo   Запрос на фильтрацию правильно составь... Вот это …   2.08.2009 22:59
1147   добавил в конце findsl.free; но похоже не правиль…   3.08.2009 0:21
volvo   Эта ошибка не связана с findSL. Что-то там у тебя …   3.08.2009 0:37
1147   Ошибка появляется при нажатии кнопки с кодом: if f…   3.08.2009 0:54
volvo   Слушай, а у тебя поле тоже txt называется? Или мож…   3.08.2009 1:16
1147   Совершенно верно :good: Ошибка возникала по этой …   3.08.2009 1:27
volvo   ADOQuery в помощь: // настроишь AdoQuery1 в Design…   3.08.2009 2:39
1147   Вынужден вернуться к первому вопросу( Обнаружились…   3.08.2009 5:31
volvo   Все, мои телепатические способности иссякли, я не …   3.08.2009 16:26
Гость   Большое спасибо, но проблему удалось решить своими…   3.08.2009 18:28
1147   Вопрос по дубликатам: при нажатии на кнопку появля…   6.08.2009 3:50
volvo   Добавить значение по умолчанию. Или в самой базе, …   6.08.2009 4:25
1147   Index-это получается столбец "Фамилия" н…   6.08.2009 17:50
volvo   Заметь, это ты написал: , откуда я знаю, что там у…   6.08.2009 19:14
1147   При обнаружении повторяющегося значения, программа…   26.08.2009 16:01
volvo   При удалении значения заодно просматривай список, …   26.08.2009 16:30
1147   удалять сразу в formshow или на кнопку удаления по…   26.08.2009 17:07
volvo   В тот момент, когда удаляешь значение из базы - уд…   26.08.2009 17:23
1147   Удалять значения из списка при удалении из базы не…   26.08.2009 18:27
1147   кто-нибудь объясните, что такое index и lines…   28.08.2009 22:26
volvo   Что значит "что такое"? Ну, смотри: в St…   28.08.2009 22:59
1147   Еще с удаляемой строкой не совсем понятно. В созда…   30.08.2009 0:36
volvo   Ну, ты ж выше написал:, то есть, значение, которое…   30.08.2009 0:41
1147   еще 1 вопрос по поводу дупликатов: в случае если е…   2.09.2009 7:46
volvo   Для начала неплохо бы объяснить, дубликаты ГДЕ буд…   2.09.2009 12:07
1147   Поля никак не связаны, поэтому искать нужно в кажд…   2.09.2009 12:25
volvo   Тогда не вижу проблемы. Почти... Потом поймешь, по…   2.09.2009 14:41
1147   Можно ли сделать так чтобы если например номер 555…   23.10.2009 22:57
volvo   Можно. Как - не спрашивай, я тебе ответить смогу в…   23.10.2009 23:07
1147   да это не я не научился. в процессе работы люди по…   23.10.2009 23:15
1147   Можно ли обновлять стринг лист нужного столбца что…   16.11.2009 20:15
volvo   Ну да, там в заголовке надо поменять: procedure Cr…   16.11.2009 20:52
1147   При вводе заведомо повторяющегося значения програм…   18.11.2009 5:20
1147   Такое впечатление что данные заносятся в SL не при…   18.11.2009 5:59
Крастb   If DataModule3.Table5.Locate('St_uch',…   30.11.2009 10:33


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 20:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name