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