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 + -
显示快捷键?