Инкрементный поиск

Вопросы использования сторонних (не входящих в состав FPC и Lazarus) утилит и библиотек.

Модератор: Модераторы

Инкрементный поиск

Сообщение VAshot » 15.01.2008 16:20:56

Не подскажите, как более правильно реализовать инкрементный поиск по справочнику (2 Alexs: Будеn ли он в RxDBLookUpCombo ?):

предположительно, DBGrid+Edit, при вводе символа в поле Edit должен происходить полный цикл
закрыть датасет+
изменить запрос (например + '.... like ....')+
открыть датасет
?

Или это более грамотно выполняется?
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Сообщение Attid » 15.01.2008 16:30:54

если я посажу дерево, для того чтоб собрать яблоки мне его водой поливать или не парится и собирать с него виноград ? =)


А сервер то какой может там и like то нет в принципе =)


если данных не много, то лучше локально на клиенте с помощью алексдатасета или его грида.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение alexs » 15.01.2008 20:33:11

VAshot
Он там есть, только из-за приколов lcl пока по целочисленным полям - в компоненту не доходят события о нажатии не цифровых клавиш :cry:
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение VAshot » 15.01.2008 22:24:13

2 alexs
А он должен не только по совпадению всего числа (Integer) (со строкой (String) из чисел всё нормально) менять фокус или инкриментно (если есть такой термин)? И то, что не отображается вводимый текст в поле ввода - это тоже глюк или так должно быть?

Attid
Упс... lazarus 0.9.25, firebird 2, RxDB, "alexsDataSet".
(like как пример был)

лучше локально

Это про это:
C:=TRxColumn(RxDBGridL.Columns[i]);
C.Filter.ValueList.Add.........

А как с условием или маской фильтр тут поставить?
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Сообщение Attid » 15.01.2008 22:49:50

нет примерно так :

Код: Выделить всё
procedure TfmCardsManeger.btFilterClick(Sender: TObject);
begin
  dsCM.Filtered := False;
  dsCM.Filtered := True;
end;


procedure TfmCardsManeger.dsCMFilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
var id, fid : integer;
begin
  Accept := ((Length(Trim(edFName.Text))=0) or (pos(UpperCase(edFName.Text),UpperCase(DataSet.FieldByName('fname').AsString))>0))
        and ((Length(Trim(edLName.Text))=0) or (pos(UpperCase(edLName.Text),UpperCase(DataSet.FieldByName('lname').AsString))>0))
        and ((Length(Trim(edAddress.Text))=0) or (pos(UpperCase(edAddress.Text),UpperCase(DataSet.FieldByName('adress').AsString))>0))
        and ((not cbBD.Checked) or (DataSet.FieldByName('birthday').AsDateTime = edBD.Date))
        and ((Length(Trim(edCode.Text))=0) or (pos(UpperCase(edCode.Text),UpperCase(DataSet.FieldByName('code').AsString))>0))
        and ((Length(Trim(edNum.Text))=0) or (UpperCase(edNum.Text)=UpperCase(DataSet.FieldByName('cardno').AsString)));
end;
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение VAshot » 28.01.2008 11:10:52

Спасибо, вот только не понял, почему при несоответствии ни одной записи условию, одна "левая для условия" запись всё же отображается?
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Сообщение Attid » 28.01.2008 14:10:07

у меня все ок. если тестовый пример на БД employer сделаешь то можно обсудить.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение VAshot » 28.01.2008 15:18:02

Мдя... оказалось глюк RxDBGrid.
Может и не глюк, но с DBGrid такого нет.

Может какое свойство виновато?
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Сообщение Attid » 28.01.2008 16:36:57

RxDBGrid

в нем тоже фильтр есть, без alexsDataSet.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение VAshot » 28.01.2008 17:10:00

Attid писал(а):
RxDBGrid

в нем тоже фильтр есть, без alexsDataSet.


не понял.
как сделать фильтр с выпадающими значениями на основе данных (RxDBGrid+alexsDataSet) знаю.
А вот как сделать инкриментный поиск в RxDBGrid, без глюка с оставшейся записью не совсем понял, вернее совсем не понял, грид же он только отображает в данном случае.
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Сообщение Attid » 28.01.2008 17:32:12

VAshot
я им не пользуюсь, но должен уметь ищи подобные свойства.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение alexs » 28.01.2008 23:45:10

VAshot
Глюк есть, а вот кто виноват - RxDBGrid или FBDataSet ещё не понял
буду копать
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Attid » 29.01.2008 00:10:57

alexs
а мне кажется или в сортировка регистрозависима ? это лечется ?
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение alexs » 29.01.2008 01:34:48

Attid писал(а): регистрозависима

в чём именно? если ты о FBDataSet - то проблема с функцией UpperCase - в линухе она на русские символы не работает (как мне кажется)
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение VAshot » 29.01.2008 07:38:38

alexs писал(а):VAshot
Глюк есть, а вот кто виноват - RxDBGrid или FBDataSet ещё не понял
буду копать

Раз глюк, значит пока не будем переходить на DBGrid.

alexs
а мне кажется или в сортировка регистрозависима ? это лечется ?

Да и в винде UpperCase кирилицу не переводит.
Тупо поменял на AnsiUpperCase - работает, но как будет с не 1251 даже не подозреваю.
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

След.

Вернуться в Сторонние средства

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Рейтинг@Mail.ru