자꾸 어드레스 에러가 납니다.
처음 한 번은 되다가 두번째 부터 에러가 납니다. 도와 주세요!!
소스입니다.
unit Usearch1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, DBCtrls, Grids, DBGrids, Db, DBTables;
type
TForm8 = class(TForm)
Panel1: TPanel;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
BitBtn3: TBitBtn;
Query1: TQuery;
DataSource1: TDataSource;
Query1Comdate: TStringField;
Query1Comuse: TStringField;
Query1Comname: TStringField;
Query1Comcode: TStringField;
Query1Comcity: TStringField;
Query1Comgun: TStringField;
Query1Comdong: TStringField;
Query1Comaddr: TStringField;
Query1Comtel1: TStringField;
Query1Comtel2: TStringField;
Query1Comhpone: TStringField;
Query1Comhpone1: TStringField;
Query1Comneedcar: TStringField;
Query1Compay: TStringField;
Query1Comjobyn: TStringField;
Query1Comstart: TStringField;
Query1Comend: TStringField;
Query1Comhday: TStringField;
Query1Comjobrule: TStringField;
Query1Comfuel: TStringField;
Query1Comoil: TStringField;
Query1Comeat: TStringField;
Query1Comroad: TStringField;
Query1Compark: TStringField;
Query1Comroom: TStringField;
Query1Comage: TStringField;
Query1Commainjob: TStringField;
Query1Comchange: TStringField;
Query1Combussy: TStringField;
Query1Comjobdate: TStringField;
Query1Comstyle: TStringField;
Query1Comwork: TStringField;
StaticText1: TStaticText;
sortbox: TComboBox;
GroupBox2: TGroupBox;
sortsel1: TRadioButton;
sortsel2: TRadioButton;
fil1: TPanel;
Label5: TLabel;
Edit1: TEdit;
Label6: TLabel;
ComboBox1: TComboBox;
Panel2: TPanel;
Label7: TLabel;
Label8: TLabel;
procedure setfilter(Sender: TObject);
procedure orderby(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure fil1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
procedure Car_com_Edit;
{ Private declarations }
public
{ Public declarations }
end;
SearchIF = record
select : boolean;
state : string;
end;
var
Form8: TForm8;
Ostring : string;
SIF : array [1..5] of SearchIF;
implementation
uses Ucar_com, UQrydlg1, Uqrydlg;
{$R *.DFM}
procedure TForm8.orderby(Sender: TObject);
var i:integer;
qstring:string;
begin
qstring := '';
case sortbox.ItemIndex of
0: qstring := ' order by comdate ';
1: qstring := ' order by comname ';
2: qstring := ' order by comcode ';
end;
if sortsel1.Checked then qstring := qstring + 'ASC';
if sortsel2.Checked then qstring := qstring + 'DESC';
screen.Cursor := crhourglass;
ostring := qstring;
with Query1 do begin
qstring := '';
disablecontrols;
close;
sql.clear;
sql.add('select * from car_com');
for i:=1 to 5 do begin
if (sif[i].select = true) then begin
if qstring = '' then
qstring := sif[i].state
else
qstring := (qstring) + 'and' + (sif[i].state);
end;
end;
if qstring <> '' then begin
sql.Add(' where ');
sql.Add(qstring);
end;
sql.Add(ostring);
open;
enablecontrols;
end;
screen.Cursor := crdefault;
end;
procedure TForm8.Car_com_Edit;
begin
carcom.Edit1.Text := Query1.FieldByName('Comcity').AsString;
carcom.Edit2.Text := Query1.FieldByName('Comgun').AsString;
carcom.Edit3.Text := Query1.FieldByName('Comdong').AsString;
carcom.Edit4.Text := Query1.FieldByName('Comdate').AsString;
carcom.Edit5.Text := Query1.FieldByName('Comjobdate').AsString;
carcom.Edit6.Text := Query1.FieldByName('Comname').AsString;
carcom.Edit7.Text := Query1.FieldByName('Comaddr').AsString;
carcom.Edit8.Text := Query1.FieldByName('Comtel1').AsString;
carcom.Edit9.Text := Query1.FieldByName('Comhpone1').AsString;
carcom.Edit10.Text := Query1.FieldByName('Comtel2').AsString;
carcom.Edit11.Text := Query1.FieldByName('Comwork').AsString;
carcom.Edit12.Text := Query1.FieldByName('Commainjob').AsString;
carcom.Edit13.Text := Query1.FieldByName('Comchange').AsString;
carcom.Edit14.Text := Query1.FieldByName('Combussy').AsString;
carcom.Edit15.Text := Query1.FieldByName('Comcode').AsString;
carcom.Edit16.Text := Query1.FieldByName('Comneedcar').AsString;
carcom.ComboBox1.Text := Query1.FieldByName('Comuse').AsString;
carcom.ComboBox2.Text := Query1.FieldByName('Comstyle').AsString;
carcom.ComboBox3.Text := Query1.FieldByName('Compay').AsString;
carcom.ComboBox4.Text := Query1.FieldByName('Comjobyn').AsString;
carcom.ComboBox5.Text := Query1.FieldByName('Comstart').AsString;
carcom.ComboBox6.Text := Query1.FieldByName('Comend').AsString;
carcom.ComboBox7.Text := Query1.FieldByName('Comhday').AsString;
carcom.ComboBox8.Text := Query1.FieldByName('Comjobrule').AsString;
carcom.ComboBox9.Text := Query1.FieldByName('Comage').AsString;
carcom.ComboBox10.Text := Query1.FieldByName('Comhpone').AsString;
if Query1.FieldByName('Comfuel').AsString = '제공' then
carcom.CheckBox1.Checked := True
else carcom.CheckBox1.Checked := False;
if Query1.FieldByName('Comoil').AsString = '제공' then
carcom.CheckBox2.Checked := True
else carcom.CheckBox2.Checked := False;
if Query1.FieldByName('Comeat').AsString = '제공' then
carcom.CheckBox3.Checked := True
else carcom.CheckBox3.Checked := False;
if Query1.FieldByName('Comroad').AsString = '제공' then
carcom.CheckBox4.Checked := True
else carcom.CheckBox4.Checked := False;
if Query1.FieldByName('Compark').AsString = '제공' then
carcom.CheckBox5.Checked := True
else carcom.CheckBox5.Checked := False;
if Query1.FieldByName('Comroom').AsString = '제공' then
carcom.CheckBox6.Checked := True
else carcom.CheckBox6.Checked := False;
end;
procedure TForm8.BitBtn1Click(Sender: TObject);
begin
close;
end;
procedure TForm8.DBGrid1DblClick(Sender: TObject);
begin
close;
end;
procedure TForm8.DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key >= 33) and (key <=40) then
Car_com_Edit;
if key = 13 then
close;
end;
procedure TForm8.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (Button = mbLeft) then
Car_com_Edit;
end;
procedure TForm8.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Query1.Close;
close;
end;
procedure TForm8.FormCreate(Sender: TObject);
var
i : integer;
begin
sortbox.ItemIndex := 0;
sortsel1.Checked := true;
for i:=1 to 5 do begin
sif[i].select := false;
sif[i].state := '';
end;
orderby(sender);
ostring := 'order by comdate ASC';
fil1.color := clFuchsia; fil1.font.color := clwhite;
end;
procedure TForm8.fil1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
fil1.color := clFuchsia; fil1.font.color := clwhite;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from car_com');
Query1.SQL.Add('order by comdate');
Query1.Open;
end;
procedure TForm8.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then begin
if Edit1.Text <> '' then begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from car_com');
Query1.SQL.Add('where comname like "%'+Edit1.text+'%"');
Query1.Open;
fil1.color := clbtnface; fil1.font.color := clblack;
end else
orderby(sender);
end;
Edit1.SetFocus;
end;
procedure TForm8.setfilter(Sender: TObject);
var
lok :word;
i : integer;
qstring : string;
begin
Tqrydlg1.Create(self);
case ComboBox1.ItemIndex of
0 : Qrydlg1.Label1.Caption := '접수일';
1 : Qrydlg1.Label1.Caption := '업체명';
2 : Qrydlg1.Label1.Caption := '동이름';
3 : Qrydlg1.Label1.Caption := '차종';
4 : Qrydlg1.Label1.Caption := '업종코드';
end;
lok := Qrydlg1.ShowModal;
if lok=mrOk then begin
case ComboBox1.ItemIndex of
0 : begin
sif[1].select := true;
sif[1].state := 'comdate like "%'+Qrydlg1.edit1.text+'%"';
end;
1 : begin
sif[2].select := true;
sif[2].state := 'comname like "%'+Qrydlg1.edit1.text+'%"';
end;
2 : begin
sif[3].select := true;
sif[3].state := 'comdong like "%'+Qrydlg1.Edit1.Text+'%"';
end;
3 : begin
sif[4].select := true;
sif[4].state := 'comneedcar like "%'+Qrydlg1.Edit1.Text+'%"';
end;
4 : begin
sif[5].select := true;
sif[5].state := 'comcode like "%'+Qrydlg1.Edit1.Text+'%"';
end;
end;
if lok=mrIgnore then begin
case ComboBox1.ItemIndex of
0 : begin
sif[1].select := false;
sif[1].state := '';
end;
1 : begin
sif[2].select := false;
sif[2].state := '';
end;
2 : begin
sif[3].select := false;
sif[3].state := '';
end;
3 : begin
sif[4].select := false;
sif[4].state := '';
end;
4 : begin
sif[5].select := false;
sif[5].state := '';
end;
end;
end;
Qrydlg1.Free;
if (ComboBox1.ItemIndex = 0) or (ComboBox1.ItemIndex = 1) or
(ComboBox1.ItemIndex = 2) or (ComboBox1.ItemIndex = 3) or
(ComboBox1.ItemIndex = 4) then begin
with Query1 do begin
qstring := '';
disablecontrols;
close;
SQL.Clear;
SQL.Add('select * from car_com');
for i := 1 to 5 do begin
if sif[i].select = true then begin
if qstring = '' then
qstring := sif[i].state
else
qstring := (qstring) + 'and' + (sif[i].state);
end;
end;
if qstring <> ''then begin
SQL.Add('where');
SQL.Add(qstring);
end else begin
fil1.OnClick(sender);
end;
SQL.Add(ostring);
open;
enablecontrols;
end;
screen.Cursor := crdefault;
end;
end;
end;
end.