📄 unitstudentquery.~pas
字号:
unit UnitStudentQuery;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
DB, ADODB, Grids, DBGrids, StdCtrls, QDialogs, DBTables, Mask,
DBCtrls, ExtCtrls, QuickRpt, QRCtrls;
type
TFormStudentQuery = class(TForm)
ButtonDelete: TButton;
ButtonUpdate: TButton;
ButtonLock: TButton;
ButtonUnlock: TButton;
ButtonClose: TButton;
ButtonFirst: TButton;
ButtonLast: TButton;
ButtonNext: TButton;
ButtonPrev: TButton;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Table1: TTable;
Table1ID: TSmallintField;
Table1Name: TStringField;
Table1Sex: TStringField;
Table1Birthday: TDateTimeField;
Table1Address: TStringField;
Table1Telephone: TStringField;
Table1ClassID: TIntegerField;
Table1Comment: TStringField;
Database1: TDatabase;
Edit1: TEdit;
ButtonQuery1: TButton;
ComboBox1: TComboBox;
Edit2: TEdit;
ButtonQuery2: TButton;
ComboBox2: TComboBox;
ButtonPreview: TButton;
ButtonPrint: TButton;
procedure FormResize(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ButtonFirstClick(Sender: TObject);
procedure ButtonNextClick(Sender: TObject);
procedure ButtonPrevClick(Sender: TObject);
procedure ButtonLastClick(Sender: TObject);
procedure ButtonDeleteClick(Sender: TObject);
procedure ButtonUpdateClick(Sender: TObject);
procedure ButtonLockClick(Sender: TObject);
procedure ButtonUnlockClick(Sender: TObject);
procedure ButtonCloseClick(Sender: TObject);
procedure EditIDKeyPress(Sender: TObject; var Key: Char);
procedure EditClassIDKeyPress(Sender: TObject; var Key: Char);
procedure ButtonQuery1Click(Sender: TObject);
procedure ButtonQuery2Click(Sender: TObject);
procedure ButtonPreviewClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormStudentQuery: TFormStudentQuery;
implementation
uses UnitStudentPrint;
{$R *.dfm}
//响应窗口显示事件
procedure TFormStudentQuery.FormShow(Sender: TObject);
begin
//调用FormResize()函数
FormResize(Sender);
//打开Table1(可以通过设置Table的Active属性为true来实现)
Table1.Open();
end;
//响应窗口大小改变事件
procedure TFormStudentQuery.FormResize(Sender: TObject);
begin
//设置表单宽度和高度
DBGrid1.Width :=FormStudentQuery.ClientWidth-2*DBGrid1.Left-80;
DBGrid1.Height :=FormStudentQuery.ClientHeight-DBGrid1.Top-50;
//设置底部按钮的位置
ButtonFirst.Top :=DBGrid1.Top+DBGrid1.Height+15;
ButtonNext.Top :=DBGrid1.Top+DBGrid1.Height+15;
ButtonPrev.Top :=DBGrid1.Top+DBGrid1.Height+15;
ButtonLast.Top :=DBGrid1.Top+DBGrid1.Height+15;
//设置右边按钮的位置
ButtonDelete.Left :=DBGrid1.Left+DBGrid1.Width+15;
ButtonUpdate.Left :=DBGrid1.Left+DBGrid1.Width+15;
ButtonLock.Left :=DBGrid1.Left+DBGrid1.Width+15;
ButtonUnlock.Left :=DBGrid1.Left+DBGrid1.Width+15;
ButtonPreview.Left:=DBGrid1.Left+DBGrid1.Width+15;
ButtonPrint.Left :=DBGrid1.Left+DBGrid1.Width+15;
ButtonClose.Left :=DBGrid1.Left+DBGrid1.Width+15;
end;
//响应窗口关闭事件
procedure TFormStudentQuery.FormClose(Sender: TObject;
var Action: TCloseAction);
var
Result: integer;
begin
//显示确认提示框
Result:= MessageBox(Handle,'你是否需要保存数据修改?','提示', MB_YESNO or MB_ICONQUESTION or MB_DEFBUTTON1);
//如果单击Yes
if result = IDYES then
//更新表(必须保证Table1的CachedUpdates属性为True)
Table1.ApplyUpdates();
//关闭表1
Table1.Close();
//关闭子窗口
Action:=caFree;
end;
//响应按钮'首记录'单击事件
procedure TFormStudentQuery.ButtonFirstClick(Sender: TObject);
begin
//移动到首记录
Table1.First();
end;
//响应按钮'下一记录'单击事件
procedure TFormStudentQuery.ButtonNextClick(Sender: TObject);
begin
//移动到下一记录
Table1.Next();
end;
//响应按钮'上一记录'单击事件
procedure TFormStudentQuery.ButtonPrevClick(Sender: TObject);
begin
//移动到上一记录
Table1.Prior();
end;
//响应按钮'尾记录'单击事件
procedure TFormStudentQuery.ButtonLastClick(Sender: TObject);
begin
//移动到尾记录
Table1.Last();
end;
//响应按钮'删除'单击事件
procedure TFormStudentQuery.ButtonDeleteClick(Sender: TObject);
var
Result: integer;
Name : string;
begin
//获取删除行的学号
Name:=Table1.FieldValues['Name'];
//显示确认提示框(添加'QDialogs'单元)
Result:= MessageDlg('你是否需要删除['+Name+']?', mtConfirmation, [mbYes, mbNo], 0, mbYes);
//如果单击OK
if result = 3 then
//删除记录
Table1.Delete();
end;
//响应按钮'保存'单击事件
procedure TFormStudentQuery.ButtonUpdateClick(Sender: TObject);
begin
//更新表
Table1.ApplyUpdates();
end;
//响应按钮'锁定'单击事件
procedure TFormStudentQuery.ButtonLockClick(Sender: TObject);
begin
//设置为只读状态
DBGrid1.ReadOnly:=true;
end;
//响应按钮'解锁'单击事件
procedure TFormStudentQuery.ButtonUnlockClick(Sender: TObject);
begin
//设置为可编辑状态
DBGrid1.ReadOnly:=false;
end;
//响应按钮'关闭'单击事件
procedure TFormStudentQuery.ButtonCloseClick(Sender: TObject);
begin
//关闭窗口
FormStudentQuery.Close();
end;
//响应'学号'编辑框按键事件
procedure TFormStudentQuery.EditIDKeyPress(Sender: TObject;
var Key: Char);
begin
if(Key>'9') or (Key<'0') and (Key<>#8)then
Key:=#0;
end;
//响应'班级编号'编辑框按键事件
procedure TFormStudentQuery.EditClassIDKeyPress(Sender: TObject;
var Key: Char);
begin
if(Key>'9') or (Key<'0') and (Key<>#8)then
Key:=#0;
end;
//响应'万能查询'按钮
procedure TFormStudentQuery.ButtonQuery1Click(Sender: TObject);
begin
//设置过滤条件
Table1.Filter:=Edit1.Text;
//数据表过滤
Table1.Filtered:=true;
end;
//响应'一般查询'按钮
procedure TFormStudentQuery.ButtonQuery2Click(Sender: TObject);
begin
//设置过滤条件
if(Combobox1.Text='学号')then
Table1.Filter:='ID'+ComboBox2.Text+Edit2.Text
else if(Combobox1.Text='姓名')then
Table1.Filter:='Name'+ComboBox2.Text+''''+Edit2.Text+''''
else if(Combobox1.Text='性别')then
Table1.Filter:='Sex'+ComboBox2.Text+''''+Edit2.Text+''''
else if(Combobox1.Text='出生日期')then
Table1.Filter:='Birthday'+ComboBox2.Text+''''+Edit2.Text+''''
else if(Combobox1.Text='家庭住址')then
Table1.Filter:='Address'+ComboBox2.Text+''''+Edit2.Text+''''
else if(Combobox1.Text='联系电话')then
Table1.Filter:='telephone'+ComboBox2.Text+''''+Edit2.Text+'''';
//数据表过滤
Table1.Filtered:=true;
end;
procedure TFormStudentQuery.ButtonPreviewClick(Sender: TObject);
begin
FormStudentPrint.Table1.Filter:=Table1.Filter;
FormStudentPrint.Table1.Filtered:=true;
FormStudentPrint.QuickRep1.Preview();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -