base组件,该组件引入了系统所需的唯一的数据库tsxs,Database组件的DatabaseName属性设置为tsckgl。tsxs数据库已在ODBC配置程序中进行了设置。其他的数据存取组件都是基于此数据库组件创建的,这样做的好处是,当数据库的别名或者其他信息改变之后,只需修改Tdatabase组件的AliasName属性即可。 另外,在本系统的数据模块窗体图中,我大多采用的AODQuery组件而没有采用BDE组,这主要是基于对ADO组件的了解。在Delphi的学习中我对ADO组件了解的更加清楚,使用也较BDE更为熟练,而且,ADO组件的功能也较BDE更为强大,所以在这里大多采用ADO组件来进行数据库联接。同时我也使用了BDE组件中的Table,因为在某些时候BDE有着其自身特有的优越性。 主窗体功能模块的实现 file://主窗体程序代码 public file://在程序的起始部分,定义快捷按钮点击事件 Procedure Popup1Handler(Sender:Tobject); Procedure Popup2Handler(Sender:TObject); ********************************************************************** procedure Tmainform.Popup1Handler(Sender: TObject); begin file://快捷按钮1(点“按出版社分类”按钮产生)的点击事件 with datamoduleform.MainQuery do begin file://打开数据模块窗体的MainQuery,对BookRecord表进行操作 close; file://关闭MainQuery SQL.Clear; file://清除SQL属性中的SQL命令语句 SQL.Add(‘select * from BookRecord where Publisher=:Pub‘); file://添加新的SQL语句 Parameters.ParamByName(‘Pub‘).Value:=(Sender as TMenuItem).Caption; open; file://重新打开MainQuery end; end; ********************************************************************** procedure Tmainform.SpeedButton1Click(Sender: TObject); Var s1,s2,s3,s4,s5 :String; file://设立5个变量以方便实现模糊查询 begin file://主窗口库存查询按钮事件 with datamoduleform.MainQuery do begin close; SQL.Clear; SQL.Add(‘select * from BookRecord‘); SQL.Add(‘where BookID Like :BookID and BookName Like :Name and Author Like :Author and Publisher Like :pub and BookType Like :BookType‘); file://使用Like语句来实现模糊查询 if Edit1.Text<>‘‘ then s1:=‘%‘+Edit1.Text+‘%‘ else s1:=‘%‘; Parameters.ParamByName(‘BookID‘).Value:=s1; file://给变量s1赋值 if Edit2.Text<>‘‘ then s2:=‘%‘+Edit2.Text+‘%‘ else s2:=‘%‘; Parameters.ParamByName(‘Name‘).Value:=s2; file://给变量s2赋值 if Edit3.Text<>‘‘ then s3:=‘%‘+Edit3.Text+‘%‘ else s3:=‘%‘; Parameters.ParamByName(‘Author‘).Value:=s3; file://给变量s2赋值 if Edit4.Text<>‘‘ then s4:=‘%‘+Edit4.Text+‘%‘ else s4:=‘%‘; Parameters.ParamByName(‘Pub‘).Value:=s4; file://给变量s2赋值 if Edit5.Text <>‘‘ then s5:=‘%‘+Edit5.Text+‘%‘ else s5:=‘%‘; Parameters.ParamByName(‘BookType‘).Value:=s5; file://给变量s2赋值 open; if FieldValues[‘BookID‘]=NULL file://判断是否找到记录 then begin Messagedlg(‘没有找到你所需要的记录!‘,mtInformation,[mbOK],0); Edit1.Text:=‘‘;Edit2.Text:=‘‘;Edit3.Text:=‘‘;Edit4.Text:=‘‘;Edit5.Text:=‘‘; close; SQL.Clear; SQL.Add(‘select * from BookRecord‘); file://这里相当于一个刷新功能 open; end;end; end; ********************************************************************** procedure Tmainform.SpeedButton3Click(Sender: TObject); begin file://库存表刷新按钮事件 with datamoduleform.MainQuery do begin close; SQL.Clear; SQL.Add(‘select * from BookRecord‘); open; end; end; ********************************************************************** procedure Tmainform.SpeedButton11Click(Sender: TObject); var PopupItem:TMenuItem; begin file://自动生成快捷按钮1的内容 with datamoduleform.BookQuery do begin file://从数据库中选择出版社类型 close; SQL.Clear; SQL.Add(‘select distinct Publisher from BookRecord‘); open; PopupMenu1:=TPopupMenu.Create(Self); file://自动生成快捷菜单 PopupMenu1.AutoHotkeys:=maManual; file://自定义热键 while Not Eof do begin file://根据出版社内容生成菜单子项 PopupItem:=TMenuItem.Create(Self); PopupItem.Caption:=FieldByName(‘Publisher‘).AsString; PopupMenu1.Items.Add(PopupItem); PopupItem.onClick:=Popup1Handler; file://确定菜单子项的点击事件 Next; end; end; PopupMenu1.Popup(384,67); file://在指定位置显示快捷菜单1 end; ********************************************************************** procedure Tmainform.FormActivate(Sender: TObject); begin file://系统初始化,在进入mai 上一页 [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] 下一页
Tags:
|