ustudent.~pas
来自「一.录入学生信息(预计有81个学生」· ~PAS 代码 · 共 145 行
~PAS
145 行
unit uStudent;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, DBGridEh, DB, ADODB;
type
TfrmStudent = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Panel2: TPanel;
cmdAppend: TBitBtn;
cmdEdit: TBitBtn;
cmdDelete: TBitBtn;
cmdClose: TBitBtn;
DBGridEh1: TDBGridEh;
DataSource1: TDataSource;
dsQuery: TADODataSet;
DBGridEh2: TDBGridEh;
dsStudent: TADODataSet;
DataSource2: TDataSource;
Function ReadyData():Boolean;
Function ReadyList():Boolean;
procedure cmdCloseClick(Sender: TObject);
procedure dsQueryAfterScroll(DataSet: TDataSet);
procedure cmdAppendClick(Sender: TObject);
procedure cmdEditClick(Sender: TObject);
procedure DBGridEh2DblClick(Sender: TObject);
procedure cmdDeleteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Function ShowStudent():Boolean;
implementation
uses uDM,uPub,uStudentEdit;
{$R *.dfm}
Function ShowStudent():Boolean;
var
frmStudent: TfrmStudent;
begin
Result:=False;
frmStudent:=TfrmStudent.Create(nil);
if Not frmStudent.ReadyData then
begin
frmStudent.Free;
Exit;
end;
frmStudent.ShowModal;
frmStudent.Free;
Result:=True;
end;
Function TfrmStudent.ReadyData():Boolean;
var TmpSQL:String;
begin
Result:=False;
TmpSQL:='select * from TClass Order by ClassCode';
dsQuery.Close;
dsQuery.CommandText:=TmpSQL;
Try
dsQuery.Open;
Except
ShowMessage('读取本地数据文件发生错误!');
Exit;
End;
Result:=True;
end;
Function TfrmStudent.ReadyList():Boolean;
var TmpSQL:String;
begin
Result:=False;
if dsQuery.IsEmpty then Exit;
TmpSQL:='Select * from TStudent Where ClassCode='+''''+dsQuery.fieldByName('ClassCode').AsString+''''+
' Order by SName';
GroupBox2.Caption:='班级 ['+dsQuery.fieldByName('ClassName').AsString+'] 的学生信息列表!';
dsStudent.Close;
dsStudent.CommandText:=TmpSQL;
Try
dsStudent.Open;
Except
ShowMessage('读取本地数据文件发生错误!');
Exit;
End;
Result:=True;
end;
procedure TfrmStudent.cmdCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmStudent.dsQueryAfterScroll(DataSet: TDataSet);
begin
ReadyList;
end;
procedure TfrmStudent.cmdAppendClick(Sender: TObject);
begin
if dsQuery.IsEmpty then Exit;
if Not ShowStudentEdit(-1,dsQuery.fieldByName('ClassCode').AsString,
dsQuery.fieldByName('ClassName').AsString) then Exit;
ReadyList;
end;
procedure TfrmStudent.cmdEditClick(Sender: TObject);
begin
if dsQuery.IsEmpty then Exit;
if dsStudent.IsEmpty then Exit;
if Not ShowStudentEdit(dsStudent.fieldByName('ID').AsInteger,dsQuery.fieldByName('ClassCode').AsString,
dsQuery.fieldByName('ClassName').AsString) then Exit;
ReadyList;
end;
procedure TfrmStudent.DBGridEh2DblClick(Sender: TObject);
begin
cmdEditClick(nil);
end;
procedure TfrmStudent.cmdDeleteClick(Sender: TObject);
begin
if dsQuery.IsEmpty then Exit;
if dsStudent.IsEmpty then Exit;
if MessageDlg('您确认删除选定的学生信息记录吗?',mtWarning,[mbYes,mbNo],0)=mrNo then Exit;
Try
dsStudent.Delete;
Except
ShowMessage('指定学生信息可能已经被使用,不能删除,您可以标示为不在校状态!');
Exit;
End;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?