ustudentedit.pas

来自「一.录入学生信息(预计有81个学生」· PAS 代码 · 共 197 行

PAS
197
字号
unit uStudentEdit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DB, ADODB;

type
  TfrmStudentEdit = class(TForm)
    Panel1: TPanel;
    cmdEnsure: TButton;
    cmdCancel: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    dsQuery: TADODataSet;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    EditClassCode: TEdit;
    EditClassName: TEdit;
    EditSName: TEdit;
    EditSCode: TEdit;
    EditRoom: TEdit;
    EditAddress: TEdit;
    EditPostCode: TEdit;
    EditPatriarchy: TEdit;
    EditHomeTel: TEdit;
    EditWJContent: TMemo;
    cmbIsTY: TComboBox;
    cmbHasWJ: TComboBox;
    cmbIsActive: TComboBox;
    Function ReadyData():Boolean;
    Function SaveData():Boolean;

    procedure cmdCancelClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure cmdEnsureClick(Sender: TObject);
    procedure EditSCodeKeyPress(Sender: TObject; var Key: Char);
  private
    SelID:Integer;
    IsCancel:Boolean;

    SelClassCode,SelClassName:String;
    { Private declarations }
  public
    { Public declarations }
  end;

Function ShowStudentEdit(SelID:Integer;SelClassCode,SelClassName:String):Boolean;

implementation

uses uPub;

{$R *.dfm}

Function ShowStudentEdit(SelID:Integer;SelClassCode,SelClassName:String):Boolean;
var
  frmStudentEdit: TfrmStudentEdit;
begin
  Result:=False;
  frmStudentEdit:=TfrmStudentEdit.Create(nil);
  frmStudentEdit.SelID:=SelID;
  frmStudentEdit.SelClassCode:=SelClassCode;
  frmStudentEdit.SelClassName:=SelClassName;
  if Not frmStudentEdit.ReadyData then
  begin
    frmStudentEdit.Free;
    Exit;
  end;
  frmStudentEdit.ShowModal;
  Result:=Not frmStudentEdit.IsCancel;
  frmStudentEdit.Free;
end;

Function TfrmStudentEdit.ReadyData():Boolean;
var TmpSQL:String;
begin
  Result:=False;
  TmpSQL:='Select * from TStudent Where ID='+IntToStr(SelID);
  dsQuery.Close;
  dsQuery.CommandText:=TmpSQL;
  Try
    dsQuery.Open;
  Except
    ShowMessage('读取本地数据文件发生错误!');
    Exit;
  end;

  EditClassCode.Text:=SelClassCode;
  EditClassName.Text:=SelClassName;
  if Not dsQuery.IsEmpty then
  begin
    dsQuery.Edit;
    EditSName.Text:=dsQuery.fieldByName('SName').AsString;
    EditSCode.Text:=dsQuery.fieldByName('SNumber').AsString;
    EditRoom.Text:=dsQuery.fieldByName('Room').AsString;
    EditAddress.Text:=dsQuery.fieldByName('Address').AsString;
    EditPostCode.Text:=dsQuery.fieldByName('PostCode').AsString;
    EditPatriarchy.Text:=dsQuery.fieldByName('Patriarchy').AsString;
    EditHomeTel.Text:=dsQuery.fieldByName('HomeTel').AsString;
    EditWJContent.Text:=dsQuery.fieldByName('WJContent').AsString;
    cmbIsTY.ItemIndex:=dsQuery.fieldByName('IsTY').AsInteger;
    cmbHasWJ.ItemIndex:=dsQuery.fieldByName('HasWJ').AsInteger;
    cmbIsActive.ItemIndex:=dsQuery.fieldByName('IsActive').AsInteger;

  end
  else
  begin
    dsQuery.Append;
    dsQuery.Edit;
  end;
  Result:=True;
end;

Function TfrmStudentEdit.SaveData():Boolean;
begin
  Result:=False;
  if EditSName.Text='' then
  begin
    ShowMessage('学生姓名尚未输入!');
    EditSName.SetFocus;
    Exit;
  end;
  if EditSCode.Text='' then
  begin
    ShowMessage('学号尚未输入!');
    EditSCode.SetFocus;
    Exit;
  end;
  dsQuery.FieldByName('ClassCode').AsString:=EditClassCode.Text;
  dsQuery.FieldByName('SName').AsString:=EditSName.Text;
  dsQuery.FieldByName('SNumber').AsString:=EditSCode.Text;
  dsQuery.FieldByName('Room').AsString:=EditRoom.Text;
  dsQuery.FieldByName('Address').AsString:=EditAddress.Text;
  dsQuery.FieldByName('PostCode').AsString:=EditPostCode.Text;
  dsQuery.FieldByName('Patriarchy').AsString:=EditPatriarchy.Text;
  dsQuery.FieldByName('HomeTel').AsString:=EditHomeTel.Text;
  dsQuery.FieldByName('WJContent').AsString:=EditWJContent.Text;
  dsQuery.FieldByName('IsTY').AsInteger:=cmbIsTY.ItemIndex;
  dsQuery.FieldByName('HasWJ').AsInteger:=cmbHasWJ.ItemIndex;
  dsQuery.FieldByName('IsActive').AsInteger:=cmbIsActive.ItemIndex;   
  Try
    dsQuery.Post;
  Except
    ShowMessage('存储数据发生错误!');
    Exit;
  End;
  Result:=True;
end;


procedure TfrmStudentEdit.cmdCancelClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmStudentEdit.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  nextfocus(self.ActiveControl,Key,Shift);
end;

procedure TfrmStudentEdit.FormCreate(Sender: TObject);
begin
  IsCancel:=True;
  cmbIsTY.ItemIndex:=0;
  cmbHasWJ.ItemIndex:=0;
  cmbIsActive.ItemIndex:=1;
end;

procedure TfrmStudentEdit.cmdEnsureClick(Sender: TObject);
begin
  if Not SaveData then Exit;
  IsCancel:=False;
  Close;
end;

procedure TfrmStudentEdit.EditSCodeKeyPress(Sender: TObject;
  var Key: Char);
begin
  if Not (Key in ['0'..'9',#8]) then Key:=#0;
end;

end.

⌨️ 快捷键说明

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