?? parentform.pas
字號:
unit ParentForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, ComCtrls, ToolWin, StdCtrls, Buttons, ExtCtrls, DB,
ADODB, Grids, DBGrids;
type
TParent = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
BitBtn1: TBitBtn;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
ImageList1: TImageList;
DBGrid1: TDBGrid;
Panel2: TPanel;
ADOTable1: TADOTable;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
ADOCommand1: TADOCommand;
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure ToolButton10Click(Sender: TObject);
procedure ToolButton11Click(Sender: TObject);
procedure ToolButton13Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure SetButton(val:integer);
end;
var
Parent: TParent;
implementation
{$R *.dfm}
//顯示數據表中當前數據的數量
procedure TParent.DataSource1DataChange(Sender: TObject; Field: TField);
begin
//顯示數據數量
label2.Caption:=inttostr(adotable1.RecordCount);
end;
//----------------轉到第一條記錄------------------------
procedure TParent.ToolButton1Click(Sender: TObject);
begin
datasource1.DataSet.First;
end;
//----------------轉到上一條記錄------------------------
procedure TParent.ToolButton2Click(Sender: TObject);
begin
datasource1.DataSet.Prior;
end;
//----------------轉到下一條記錄------------------------
procedure TParent.ToolButton3Click(Sender: TObject);
begin
datasource1.DataSet.Next;
end;
//----------------轉到最后一條記錄------------------------
procedure TParent.ToolButton4Click(Sender: TObject);
begin
datasource1.DataSet.Last;
end;
//----------------新增記錄------------------------
procedure TParent.ToolButton6Click(Sender: TObject);
begin
datasource1.DataSet.Append;
SetButton(0);
end;
//----------------編輯記錄------------------------
procedure TParent.ToolButton7Click(Sender: TObject);
begin
datasource1.Edit;
SetButton(0);
end;
//----------------刪除記錄------------------------
procedure TParent.ToolButton8Click(Sender: TObject);
begin
if application.MessageBox('是否刪除記錄?','確認',MB_OKCANCEL)=IDOK then
datasource1.DataSet.Delete;
end;
//----------------提交操作------------------------
procedure TParent.ToolButton10Click(Sender: TObject);
begin
if datasource1.DataSet.State in [dsEdit,dsInsert] then
begin
datasource1.DataSet.Post;
SetButton(1);
end;
end;
//----------------取消操作------------------------
procedure TParent.ToolButton11Click(Sender: TObject);
begin
datasource1.DataSet.Cancel;
SetButton(1);
end;
//----------------關閉窗體------------------------
procedure TParent.ToolButton13Click(Sender: TObject);
begin
close;
end;
//----------------設置按鈕狀態------------------------
procedure TParent.SetButton(val: integer);
begin
if val=0 then
(*將新增,修改,刪除以及首記錄,上記錄,下記錄,尾記錄等按鈕enable設置為false
而將保存,取消兩按鈕enable屬性設置為true*)
begin
toolbutton1.Enabled:=false;
toolbutton2.Enabled:=false;
toolbutton3.Enabled:=false;
toolbutton4.Enabled:=false;
toolbutton6.Enabled:=false;
toolbutton7.Enabled:=false;
toolbutton8.Enabled:=false;
toolbutton10.Enabled:=true;
toolbutton11.Enabled:=true;
//打開板上數據庫控件的enable屬性
panel2.Enabled:=true;
//鎖定數據表
dbgrid1.Enabled:=false;
end
else
(*將新增,修改,刪除以及首記錄,上記錄,下記錄,尾記錄等按鈕enable設置為true
而將保存,取消兩按鈕enable屬性設置為false*)
begin
toolbutton1.Enabled:=true;
toolbutton2.Enabled:=true;
toolbutton3.Enabled:=true;
toolbutton4.Enabled:=true;
toolbutton6.Enabled:=true;
toolbutton7.Enabled:=true;
toolbutton8.Enabled:=true;
toolbutton10.Enabled:=false;
toolbutton11.Enabled:=false;
//關閉板上數據庫控件的enable屬性
panel2.Enabled:=false;
dbgrid1.Enabled:=true;
end;
end;
//----------設置關閉窗體時的動作--------------
procedure TParent.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
//----------根據窗口中查詢條件的設置來查詢--------------
procedure TParent.BitBtn1Click(Sender: TObject);
var
(*設置一個整數,其二進制的三位分別代表查詢條件1到3
當某一個查詢條件可見,也就是要使用這個條件時,相應的位置為1,否則置0
例如第1,2個條件要使用而第3個不使用時,該整數二進制的值為110,也就是6*)
condition:integer;
begin
//初始化該參數,設為7,二進制數為111
condition:=7;
//如果第1個條件不可用,則將該位置0,方法是和整數3(二進制011)進行與操作
if label3.Visible=false then
condition:=(condition)and(3);
//如果第2個條件不可用,則將該位置0,方法是和整數5(二進制101)進行與操作
if label4.Visible=false then
condition:=(condition)and(5);
//如果第3個條件不可用,則將該位置0,方法是和整數6(二進制110)進行與操作
if label5.Visible=false then
condition:=(condition)and(6);
if condition=7 then//三個查詢條件都存在的情況
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from '+adotable1.TableName);
adoquery1.SQL.Add(' where('+label3.Caption+' like ''%'+edit1.Text+'%'')');
adoquery1.SQL.Add('and('+label4.Caption+' like ''%'+edit2.Text+'%'')');
adoquery1.SQL.Add('and('+label5.Caption+' like ''%'+edit3.Text+'%'')');
adoquery1.Open;
//將查詢得到的數據通過clone命令復制到adotable中去
adotable1.Clone(adoquery1,ltUnspecified);
end;
if condition=6 then//只存在兩個查詢條件的情況
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from '+adotable1.TableName);
adoquery1.SQL.Add(' where('+label3.Caption+' like ''%'+edit1.Text+'%'')');
adoquery1.SQL.Add('and('+label4.Caption+' like ''%'+edit2.Text+'%'')');
adoquery1.Open;
//將查詢得到的數據通過clone命令復制到adotable中去
adotable1.Clone(adoquery1,ltUnspecified);
end;
if condition=4 then //只存在一個查詢條件的情況
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from '+adotable1.TableName);
adoquery1.SQL.Add(' where('+label3.Caption+' like ''%'+edit1.Text+'%'')');
adoquery1.Open;
//將查詢得到的數據通過clone命令復制到adotable中去
adotable1.Clone(adoquery1,ltUnspecified);
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -