Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];
Внизкак правильно задать фильтр Найти похожие ветки
← →
ЛИЯ (2008-04-09 11:03) [0]Добрый день! Подскажите, пожалуйста, как правильно задать фильтр.
Я сделала так:unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBClient, ComCtrls,
StdCtrls;
type
TForm1 = class(TForm)
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
MonthCalendar1: TMonthCalendar;
Button1: TButton;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
MonthCalendar1.Date := Now;
ClientDataSet1.Filter := FormatDateTime("dd/mm/yyyy",Now);
ClientDataSet1.Filtered := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
If not ClientDataSet1.Locate("Номер",Edit1.text,[]) then
begin
MessageDlg("Номер не найден!", mtError, [mbOK], 0);
Edit1.SetFocus;
end;
If ClientDataSet1.Locate("Номер",Edit1.text,[]) then
begin
DBGrid1.SetFocus;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ClientDataSet1.post;
end;
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
ClientDataSet1.edit;
ClientDataSet1.Fields[1].AsString := FormatDateTime("dd/mm/yyyy",Now);
end;
end.
При запуске выдает сообщение: "Project Project1.exe raised exception class EDatabaseError with message "Invalid filter expression character:".". Process stopped. Use Step or Run to continue."
А еще ругается при закрытие окна, если не внести изменения в таблицу.
Таблица простая, состоит всего из двух столбцов: номера и даты. Еще есть календарь MonthCalendar1. Хочу чтобы программа, при изменение даты в календаре, отображала в таблице только те данные, которые были внесены в базу именно в эту дату.
Все упирается в фильтр! Подскажите, если не сложно, как он пишется.
Заранее благодарнa!
← →
Kolan © (2008-04-09 11:05) [1]> ClientDataSet1.Filter := FormatDateTime("dd/mm/yyyy",Now)
> ;
Прочтите справку по этому свойству.
← →
Плохиш © (2008-04-09 11:07) [2]
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> MonthCalendar1.Date := Now;
> ClientDataSet1.Filter := FormatDateTime("dd/mm/yyyy",Now);
>
> ClientDataSet1.Filtered := True;
> end;
Вообще-то филтер обычно задаётся в формате <поле>=<значение>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> If not ClientDataSet1.Locate("Номер",Edit1.text,[]) then
> begin
> MessageDlg("Номер не найден!", mtError, [mbOK], 0);
> Edit1.SetFocus;
> end;
> If ClientDataSet1.Locate("Номер",Edit1.text,[]) then
> begin
> DBGrid1.SetFocus;
> end;
> end;
Хм, стоит справку по if прочитать, в частности, про словo else.
← →
Плохиш © (2008-04-09 11:08) [3]
> филтер
Блин, долго смотрел на слово... потом понял, что оно означает :-)))
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c