⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formreward.pas

📁 Delphi数据库编程
💻 PAS
字号:
unit FormReward;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, DBCtrls, ExtCtrls, StdCtrls, Mask, Grids, DBGrids;

type
  TfrmReward = class(TForm)
    Label1: TLabel;
    Label5: TLabel;
    dbgReward: TDBGrid;
    btnQuit: TButton;
    dbeStudentID: TDBEdit;
    dbnReward: TDBNavigator;
    dbeRecDate: TDBEdit;
    dsReward: TDataSource;
    tblReward: TTable;
    dbrgReward: TDBRadioGroup;
    dbmDesc: TDBMemo;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    dbtName: TDBText;
    tblStudent: TTable;
    dsStudent: TDataSource;
    dbtSex: TDBText;
    dbtBirthday: TDBText;
    dbtClass: TDBText;
    tblClass: TTable;
    dsClass: TDataSource;
    dbtMaster: TDBText;
    procedure btnQuitClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure tblRewardAfterScroll(DataSet: TDataSet);
    procedure dbnRewardClick(Sender: TObject; Button: TNavigateBtn);
    procedure tblRewardBeforeDelete(DataSet: TDataSet);
    procedure tblRewardBeforePost(DataSet: TDataSet);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  Private
    procedure ToggleMode;
  Public
    { Public declarations }
  end;

var
  frmReward: TfrmReward;

implementation

{$R *.dfm}

procedure TfrmReward.FormShow(Sender: TObject);
begin
  tblReward.Active := true;
  tblStudent.Active := true;
  tblClass.Active := true;
  ToggleMode
end;

procedure TfrmReward.btnQuitClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmReward.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  tblReward.Active := false;
  tblStudent.Active := false;
  tblClass.Active := false;
end;

procedure TfrmReward.tblRewardAfterScroll(DataSet: TDataSet);
begin
  ToggleMode;
end;

procedure TfrmReward.dbnRewardClick(Sender: TObject; Button: TNavigateBtn);
begin
  ToggleMode;
end;

procedure TfrmReward.ToggleMode;
  procedure EnableInput(Enabled: Boolean);
  begin
    dbgReward.Enabled := not Enabled;
    dbeStudentID.Enabled := Enabled;
    dbeRecDate.Enabled := Enabled;
    dbrgReward.Enabled := Enabled;
    dbmDesc.Enabled := Enabled;
  end;
begin
  case tblReward.State of
    dsInsert, dsEdit:
      begin
        EnableInput(true);
        dbnReward.VisibleButtons := [nbPost, nbCancel];
        dbeStudentID.SetFocus;
      end;
  else
    EnableInput(false);
    dbnReward.VisibleButtons := [nbFirst, nbPrior, nbNext, nbLast,
      nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh];
  end;
end;

procedure TfrmReward.tblRewardBeforeDelete(DataSet: TDataSet);
var
  strMsg: string;
begin
  strMsg := Format('确定要删除学生“%s”的奖励记录吗?'#13, [tblReward['StudentID']]);
  strMsg := strMsg + Format('  姓名:%s'#13, [tblStudent['Name']]);
  strMsg := strMsg + Format('  时间:%s'#13, [tblReward['RecDate']]);
  strMsg := strMsg + Format('  奖励:%s', [tblReward['Reward']]);
  if MessageDlg(strMsg, mtConfirmation, [mbYes, mbNo], 0) <> mrYes then
    Abort;
end;

procedure TfrmReward.tblRewardBeforePost(DataSet: TDataSet);
begin
  if tblStudent.Eof then
  begin
    ShowMessage('学号输入错误,没有这个学生!');
    dbeStudentID.SetFocus;
    Abort;
  end;
  if dbeRecDate.Text  = '' then begin
    ShowMessage('请输入记录日期!');
    dbeRecDate.SetFocus;
    Abort;
  end;
  if dbrgReward.Value  = '' then begin
    ShowMessage('请输入奖励种类!');
    dbrgReward.SetFocus;
    Abort;
  end;

  dbmDesc.Text := Trim(dbmDesc.Text);
  dbmDesc.Text := StringReplace(dbmDesc.Text, '''', '', [rfReplaceAll]);
  dbmDesc.Text := StringReplace(dbmDesc.Text, ' ', '', [rfReplaceAll]);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -