| Программирование под linux, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
PickList и единицы измерения..., PickList и единицы измерения... Расчет полей fkCalculated, проблема :( Первое поле в таблице, Порядковый номер записей...??? Lookup Field, создать программно ВЫборка данных из запроса, InterBase & FIBPlus текст из строки и столбца компонента TDBGridEh интерфейс проблема с ado Подсчитать кол-во записей в ClientDataSet, Если поле Key - примари индекс FIBDataSet и DBComboBox Создание индекса, Проблема с созданием индекса CxGrid. никак не разберусь ..:-(, Колонка типа Image qreport, как скачать qreport Нет доступа после обрыва связи, SQLserver2000, ADO Народ! Отцу пиво проспорю! Insufficient memory for operation, снова :) Ошибки при попытке подключения к MySQL. Firewall на Delphi, Firewall на Delphi Транзакции и блокировки в MySQL, MySQL - DbExpress - Delphi Как создать событие наячейку DBGrid, Если можно, то ссылку на Литературу... Создание таблиц, Как создать таблицу из Delphi обновление данных Фильтрация данных, продолжение темы Проблема с Locate BDE - "Insufficient memory for operation" Как прочитать базу данных с Досовским шрифтом, Помогите!! Чтение, запись в MS Access (*.mdb), как это делается? DAO или ADO? Подскажите, Что я сделал неправильно Почему в DBGrid нельзя статически менять, свойства атрибутов Как открыть базу для просмотра с CD Активация индексов в связанны БД не по полям связи, Может пробовать Query? Связь *.xls файла с TTable Проблема с подключением ADOConnection Как Вы относитесь к курящим девушкам? Delphi + MySQL (Знаю, что обсуждалось, но у меня с сохранение картинки на SQL сервере Надобно базу написать... не представляю как и чем, вобщем, смотрите ник Как создать итогове поле? SoundBlaster Резервное копирование таблиц БД, BDE, Paradox Как реализовать "Выделить все" с TBookmark ADO плавный скролл в DBGrid, DBGrid Работы с RaveReport БД, БД Вопрос на тему: Ehlib, как правильно его установить? Как взять из базы данных определенные её части Как сохранить изменения в базе данных, Как сохронить изменения при нажатии Качественные визуальные компаненты, доступа к БД Как граммотно на русский язык, перевести Handle? Исключения в БД полю не задается значение по умолчанию :( индексы Как отфильтровать данные, помогите новичку Xml, как сделать и затем загрузить имя БД Сетевой подключение к SQLServer2000, Иногда программа не запускается вообще. Изображения в DBGrid Удаление данных из BLOB-поля, как сделать? Копия данных из одного DataSet в другой Проблема при сохранении файла из БД, Посмотрите что может быть не так База данных Помогите, очень срочно!!!, Как загрузить картинку в поле sql запросы и рекурсия, рекурсия и бд. создание required поля, через sql Выборка записей через ADOQuery изменение содержимого OLE-containera, сохранить изменения в БД Interbase, backup и restore, сервак вылетает :( снова sql, create table RecordCount, Считает количество записей 1 мин. |
Платные хостинги Раскрутка сайта Книги по программированию Как отфильтровать данные, помогите новичку
- На форме присутствуют компоненты DBGrid1, Table1, DataSource1, Edit1. Я написал следующий код для фильтрации в DBGrid1:procedure TForm1.Edit1Change(Sender: TObject);begin if Length(Edit1.Text)>0 then Table1.Filtered:=true else Table1.Filtered:=false; Table1.Filter:='Famil>'''+FindEdit.Text+'''';end;Проблема вот в чем. Разные глюки идут. Подскажите как лучше осуществить фильтрацию. P.S. 1). Токо прошу подсказать при условии что Qyeru1 на форму не добовлять. 2). Или как грамотно добавить Qyeru1 и подключить как для осуществления фильтрации. - По-моему надо сначало задавать фильтр, а потом свойство Filtered в True или FalseКод Table1.Filter:='Famil>'''+FindEdit.Text+'''';if Length(Edit1.Text)>0 thenTable1.Filtered:=trueelseTable1.Filtered:=false;highlightSyntax('delphiA4ZGU4','delphi'); - Попробую правда не знаю что получиться? А как еще можно задать фильтрацию кроме указанного способа, подскажите? Лучше с примером. - Ну как вариант, чтобы не заптаться с опострофами:Код Table1.Filter:='Famil>' + chr( 39 ) + Edit1.Text + chr( 39 );highlightSyntax('delphiWIyZjg','delphi'); - У меня при всех вариантах что то фильтруется, но при этом фигня какаято выскакивает. А именно. Когда я отфилтровал по первому значению все ОК. Когда фильтрую по второму то остается и первое и второе отфильтрованное значение как будто фильтрация предыдущих значений гдето сохраняется. Люди - программисты помогите справиться с этой бедой. !! Плиз! - Покажи код двух фильтраций - Скорее всего после первой фильтрации ты не приводишь таблицу к первоначальному виду и фильтруешь уже оставшиеся записи. Или нет? - bFilterFilials - глобальная переменнаяесли true, то можно фильтровать procedure TfmMain.tZayFilterRecord(DataSet: TDataSet; var Accept: Boolean);begin if bFilterFilials then Accept := DataSet['ZFilial'] = lcbFilials.KeyValue;end;procedure TfmMain.tZayFilterRecord(DataSet: TDataSet; var Accept: Boolean);begin if DataSet['ZFilial'] = 'филиал' then Accept := true;end;если Accept = true, то запись попадет в набор данныхи так попадут в набор данных все записи, которые имеют значение 'филиал' в поле 'ZFilial' это событие срабатывает тогда, когда ты выполняешь фильтрацию, причем в свойсвеFilter не обязательно должно быть выражение фильтрации, просто выполняешьКод Table1.Filtered:=True т.е. здесь можно фильтровать записи с помощью язывка высокого уровня, а не пятью операторами SQL http://forum.vingrad.ru/index.php?showtopi...ead=1&hl=фильтр - Вот и у меня то-же самое... - Коця, покажи код - procedure TForm1.Edit1Change(Sender: TObject);beginTable1.Filtered:=false;Table1.Filter:='FIO>'''+Edit1.Text+'''';if Length(Edit1.Text)>0 thenTable1.Filtered:=trueelseTable1.Filtered:=false;end; - динамическая фильтрацияКод procedure TForm1.Edit1Change(Sender: TObject);begin Table1.Filtered:=False; Table1.Filter:='LAST_NAME = '+QuotedStr(Edit1.Text+'*'); Table1.Filtered:=true;end;highlightSyntax('delphiGMzMDk','delphi'); Это сообщение отредактировал dsergey - 17.2.2005, 16:25 - чтоб при удалении символов с Едита фильтрация отменялать нада добавить procedure TListClients.Edit1Change(Sender: TObject);begin Form1.Table1.Filtered:=False; Form1.Table1.Filter:='LAST_NAME = '+QuotedStr(Edit1.Text+'*');if Length(Edit1.Text)>0 then Table1.Filtered:=true else Table1.Filtered:=false;end; - А можно просто запросами, правда если у тебя таблица подключена через QuerybeginQuery1.Active :=False;Query1.TextSQL :='SELECT Телефон FROM NAME WHERE Телефон =:Edit1.Text';Query1.Active :=True;end;Писал по памяти, так как дельфи под рукой нет, возможны ошибки. Добавлено @ 11:12 Да забыл сказать, в самом Query нужно очищать список!Query1.SQLText.Create; - вроде так - Код procedure TfmFind.bbFindClick(Sender: TObject);Var S,dom,kv:String;begin with fmMain do begin if edFind.Text='' then begin beep; ShowMessage('Отсутствует текст для поиска'); edFind.SetFocus; end else begin sbFilter.SimpleText:='Идет фильтрация...'; tPhone.Close; dsPhone.DataSet:=qFilter; qFilter.DisableControls; //заменяем знак звезды на знак процента s:=AnsiUpperCase(StringReplace(edFind.Text,'*', '%', [rfReplaceAll])); Case cbFind.ItemIndex of 0: begin qFilter.Close; qFilter.SQL.Clear; qFilter.SQL.Add('SELECT ID, TEL, NAM, UL, D, K, MEMO FROM "Tel_db.DB" Tel_db WHERE UPPER(tel) LIKE '+QuotedStr(s)); qFilter.Prepare; qFilter.Open; end; 1: begin qFilter.Close; qFilter.SQL.Clear; qFilter.SQL.Add('SELECT ID, TEL, NAM, UL, D, K, MEMO FROM "Tel_db.DB" Tel_db WHERE UPPER(nam) LIKE '+QuotedStr(s)); qFilter.Prepare; qFilter.Open; end; 2: begin if edDom.Text = '' then edDom.Text:='*'; if edKvart.Text = '' then edKvart.Text:='*'; dom:=StringReplace(edDom.Text,'*', '%', [rfReplaceAll]); kv:=StringReplace(edKvart.Text,'*', '%', [rfReplaceAll]); qFilter.Close; qFilter.SQL.Clear; qFilter.SQL.Add('SELECT ID, TEL, NAM, UL, D, K, MEMO FROM "Tel_db.DB" Tel_db WHERE UPPER(ul) LIKE '+QuotedStr(s)+' AND D LIKE '+QuotedStr(Dom)+ ' AND K LIKE '+QuotedStr(kv)); qFilter.Prepare; qFilter.Open; end; 3: begin qFilter.Close; qFilter.SQL.Clear; qFilter.SQL.Add('SELECT ID, TEL, NAM, UL, D, K, MEMO FROM "Tel_db.DB" Tel_db WHERE UPPER(D) LIKE '+QuotedStr(s)); qFilter.Prepare; qFilter.Open; end; 4: begin qFilter.Close; qFilter.SQL.Clear; qFilter.SQL.Add('SELECT ID, TEL, NAM, UL, D, K, MEMO FROM "Tel_db.DB" Tel_db WHERE UPPER(K) LIKE '+QuotedStr(s)); qFilter.Prepare; qFilter.Open; end; end;//case qFilter.EnableControls; sbFilter.SimpleText:='Фильтрация закончена'; end; end;end;highlightSyntax('delphiVhZjUy','delphi'); |