Есть DBGrid, столбцы "Дата", "Наименование СИ", "Заводской номер", "Тип СИ", тип Date.
При нажатии на кнопку проверяется, истекла ли дата (данные столбца выводятся в DateTimePicker), и если да, то вылезает сообщение.
Вот код:
procedure TForm2.Button4Click(Sender: TObject);
var
d1, d2: TDate;
begin
DateTimePicker2.DateTime:=Form5.DBGrid2.DataSource.DataSet.FieldByName('Дата последней поверки).AsVariant;
d1 := Date ();
d2 := DateTimePicker2.Date;
if d1 > d2 then
ShowMessage('Дата истекла ');
end;
Как сделать так, чтобы это делалось автоматически при запуске программы, и в сообщении указывались данные из столбцов "Наименование СИ", "Заводской номер", "Тип СИ" ?
И ещё вопрос: как сделать нормальный поиск в DBGrid? Чтобы после ввода слова или буквы в Edit при нажатии на кнопку в DBGrid оставались только те записи, которые подходят под условие?
Сейчас использую этот код, но он просто указатель перемещает на нужную строку. А если есть несколько строк с одинаковым названием, надо чтобы он только их показывал.
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
if not DBGrid1.DataSource.DataSet.Locate('Наименование СИ',Edit1.Text,[])
then ShowMessage('Поиск не дал результатов');
end;
Примечание:
фильтр через DataSet не работает, появляется ошибка.
Вот код, который я использую:
procedure TForm8.Button1Click(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.Filter:='Наименование СИ='+Edit1.Text;
DBGrid1.DataSource.DataSet.Filtered := true ;
end;
Появляется ошибка "Table1.Field 'H' not found"
Излазил множество сайтов, везде практически одинаковый код, но ошибка у меня все та же.
Как исправить можно?
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.