📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, ComCtrls, ToolWin, Menus, DB, DBCtrls,
ExtCtrls, ADODB;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
ToolBar1: TToolBar;
Label1: TLabel;
GroupBox1: TGroupBox;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
Label4: TLabel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label5: TLabel;
Edit3: TEdit;
Label6: TLabel;
Edit4: TEdit;
Label7: TLabel;
Edit5: TEdit;
Label8: TLabel;
Edit6: TEdit;
Label9: TLabel;
Edit7: TEdit;
GroupBox2: TGroupBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
CheckBox5: TCheckBox;
CheckBox6: TCheckBox;
CheckBox7: TCheckBox;
CheckBox8: TCheckBox;
CheckBox9: TCheckBox;
CheckBox10: TCheckBox;
GroupBox3: TGroupBox;
Label10: TLabel;
Edit8: TEdit;
Label11: TLabel;
Edit9: TEdit;
Label12: TLabel;
Edit10: TEdit;
Label13: TLabel;
Edit11: TEdit;
Label14: TLabel;
Edit12: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
DataSource2: TDataSource;
DBComboBox1: TDBComboBox;
DBNavigator1: TDBNavigator;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
Button9: TButton;
procedure DBComboBox1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Tform1.formcreate(Sender:TObject);
begin
ADOQuery2.Open;
while not ADOQuery2.Eof do
begin
DBComboBox1.Items.Add(ADOQuery2.FieldByName('班级').AsString);
ADOQuery2.Next;
end;
DBComboBox1.ItemIndex:=0;
ADOQuery1.Parameters.ParamValues['cid']:=trim(DBComboBox1.Text);
ADOQuery1.Open;
Form1.ReadRec;
end;
procedure TForm1.ReadRec;
begin
with form1 do
begin
if ADOQuery1.FieldValues['t_stud_detail.学号']=Null then
Labelededit2.Text:=''
else LabeledEdit2.Text:=ADOQuery1.FieldValues['t_stud_detail.学号'];
if ADOQuery1.FieldValues['姓名']=Null then
Labelededit1.Text:=''
else LabeledEdit1.Text:=ADOQuery1.FieldValues['姓名'];
if (AdoQuery1.FieldValues['性别']=Null) or (AdoQuery1.FieldValues['性别']='男') then
RadioButton1.Checked:=true
else RadioButton2.Checked;
if ADOQuery1.FieldValues['EMAIL']=Null then
Labelededit6.Text:=''
else LabeledEdit6.Text:=ADOQuery1.FieldValues['EMAIL'];
if ADOQuery1.FieldValues['电话']=Null then
Labelededit4.Text:=''
else LabeledEdit4.Text:=ADOQuery1.FieldValues['电话'];
if ADOQuery1.FieldValues['地址']=Null then
Labelededit5.Text:=''
else LabeledEdit5.Text:=ADOQuery1.FieldValues['地址'];
LabeledEdit3.Text:=DBcombobox1.Text;
LabeledEdit7.Text:=ADOQuery2.FieldValues['专业'];
if ADOQuery1.FieldValues['课代表']=Null then
Labelededit8.Text:=''
else LabeledEdit8.Text:=ADOQuery1.FieldValues['课代表'];
//由于在学生成绩表中,成绩允许为“空”,但“Null”类型在转换为
//“String”类型时会产生异常,故通过下面处理来消除异常
if ADOQuery1.FieldValues['平时成绩']=Null then
Labelededit9.Text:=''
else LabeledEdit9.Text:=ADOQuery1.FieldValues['平时成绩'];
if ADOQuery1.FieldValues['理论成绩']=Null then
Labelededit10.Text:=''
else LabeledEdit10.Text:=ADOQuery1.FieldValues['理论成绩'];
if ADOQuery1.FieldValues['实验成绩']=Null then
Labelededit11.Text:=''
else LabeledEdit11.Text:=ADOQuery1.FieldValues['实验成绩'];
if ADOQuery1.FieldValues['总评成绩']=Null then
Labelededit12.Text:=''
else LabeledEdit12.Text:=ADOQuery1.FieldValues['总评成绩'];
if ADOQuery1.FieldValues['备注']=Null then
Labelededit13.Text:=''
else LabeledEdit13.Text:=ADOQuery1.FieldValues['备注'];
end;
if Adoquery1.Fields[15].Value='√' then CheckBox1.Checked:=true else CheckBox1.Checked:=false;
if Adoquery1.Fields[16].Value='√' then CheckBox2.Checked:=true else CheckBox2.Checked:=false;
if Adoquery1.Fields[17].Value='√' then CheckBox3.Checked:=true else CheckBox3.Checked:=false;
if Adoquery1.Fields[18].Value='√' then CheckBox4.Checked:=true else CheckBox4.Checked:=false;
if Adoquery1.Fields[19].Value='√' then CheckBox5.Checked:=true else CheckBox5.Checked:=false;
if Adoquery1.Fields[20].Value='√' then CheckBox6.Checked:=true else CheckBox6.Checked:=false;
if Adoquery1.Fields[21].Value='√' then CheckBox7.Checked:=true else CheckBox7.Checked:=false;
if Adoquery1.Fields[22].Value='√' then CheckBox8.Checked:=true else CheckBox8.Checked:=false;
if Adoquery1.Fields[23].Value='√' then CheckBox9.Checked:=true else CheckBox9.Checked:=false;
if Adoquery1.Fields[24].Value='√' then CheckBox10.Checked:=true else CheckBox10.Checked:=false;
end;
procedure TForm1.WriteRec;
begin
with form1 do
begin
ADOQuery1.FieldValues['t_stud_detail.学号']:=LabeledEdit2.Text;
ADOQuery1.FieldValues['t_stud_total.学号']:=LabeledEdit2.Text;
ADOQuery1.FieldValues['t_stud_check.学号']:=LabeledEdit2.Text;
ADOQuery1.FieldValues['姓名']:=LabeledEdit1.Text;
if RadioButton1.Checked=true then
AdoQuery1.FieldValues['性别']:='男'
else AdoQuery1.FieldValues['性别']:='女';
ADOQuery1.FieldValues['EMAIL']:=LabeledEdit6.Text;
ADOQuery1.FieldValues['电话']:=LabeledEdit4.Text;
ADOQuery1.FieldValues['地址']:=LabeledEdit5.Text;
ADOQuery1.FieldValues['班级']:=LabeledEdit3.Text;
ADOQuery1.FieldValues['课代表']:=LabeledEdit8.Text;
if Labelededit9.Text='' then ADOQuery1.FieldValues['平时成绩']:=Null
else ADOQuery1.FieldValues['平时成绩']:=strtoint(Labelededit9.Text);
if Labelededit10.Text='' then ADOQuery1.FieldValues['理论成绩']:=Null
else ADOQuery1.FieldValues['理论成绩']:=strtoint(Labelededit10.Text);
if Labelededit11.Text='' then ADOQuery1.FieldValues['实验成绩']:=Null
else ADOQuery1.FieldValues['实验成绩']:=strtoint(Labelededit11.Text);
if Labelededit12.Text='' then ADOQuery1.FieldValues['总评成绩']:=Null
else ADOQuery1.FieldValues['总评成绩']:=strtoint(Labelededit12.Text);
ADOQuery1.FieldValues['备注']:=Labelededit13.Text;
end;
if CheckBox1.Checked=true then Adoquery1.Fields[15].Value:='√' else Adoquery1.Fields[15].Value:='△';
if CheckBox2.Checked=true then Adoquery1.Fields[16].Value:='√' else Adoquery1.Fields[16].Value:='△';
if CheckBox3.Checked=true then Adoquery1.Fields[17].Value:='√' else Adoquery1.Fields[17].Value:='△';
if CheckBox4.Checked=true then Adoquery1.Fields[18].Value:='√' else Adoquery1.Fields[18].Value:='△';
if CheckBox5.Checked=true then Adoquery1.Fields[19].Value:='√' else Adoquery1.Fields[19].Value:='△';
if CheckBox6.Checked=true then Adoquery1.Fields[20].Value:='√' else Adoquery1.Fields[20].Value:='△';
if CheckBox7.Checked=true then Adoquery1.Fields[21].Value:='√' else Adoquery1.Fields[21].Value:='△';
if CheckBox8.Checked=true then Adoquery1.Fields[22].Value:='√' else Adoquery1.Fields[22].Value:='△';
if CheckBox9.Checked=true then Adoquery1.Fields[23].Value:='√' else Adoquery1.Fields[23].Value:='△';
if CheckBox10.Checked=true then Adoquery1.Fields[24].Value:='√' else Adoquery1.Fields[24].Value:='△';
end;
procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
ADOQUERY1.Close;
ADOQuery1.Parameters.ParamValues['cid']:=trim(DBComboBox1.Text);
ADOQuery1.open;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.First;
form1.ReadRec;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
ADOQuery1.Last;
form1.ReadRec;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery1.Prior;
form1.ReadRec;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery1.Next;
form1.ReadRec;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Button5.Enabled:=false;
Button7.Enabled:=false;
Button9.Enabled:=false;
Edit1.Enabled:=true;
Adoquery1.Insert;
Form1.ReadRec;
Button6.Enabled:=true;
Button8.Enabled:=true;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Adoquery1.Edit;
Form1.WriteRec;
Adoquery1.Post;
Form1.ReadRec;
Button6.Enabled:=false;
Button8.Enabled:=false;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
try
FORM1.WriteRec;
Adoquery1.Post;
except
showmessage('学号不能为空,成绩必须为数字');
Adoquery1.Cancel;
end;
Labelededit2.Enabled:=false;
Button5.Enabled:=true;
Button7.Enabled:=true;
Button9.Enabled:=true;
Button6.Enabled:=false;
Button8.Enabled:=false;
form1.ReadRec;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Adoquery1.Cancel;
form1.ReadRec;
Labelededit2.Enabled:=false;
Button5.Enabled:=true;
Button7.Enabled:=true;
Button9.Enabled:=true;
Button6.Enabled:=false;
Button8.Enabled:=false;
end;
procedure TForm1.Button9Click(Sender: TObject);
Var SQLStr:LPStr;
begin
if ADOQuery1.CanModify then
begin
if MessageDlg('确实要删除该记录吗? 记录删除将无法恢复!',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
try
ADOQuery1.Close;
SQLStr:=ADOQuery1.SQL.GetText();
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('delete from t_stud_check where 学号="'+trim(LabeledEdit2.Text)+'"');
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('delete from t_stud_detail where 学号="'+trim(LabeledEdit2.Text)+'"');
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('delete from t_stud_total where 学号="'+trim(LabeledEdit2.Text)+'"');
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(SQLStr);
ADOQuery1.Parameters.ParamValues['cid']:=trim(DBComboBox1.Text);
ADOQuery1.Open;
except
ADOQuery1.Cancel;
showmessage('删除记录出错!');
end;
end;
end;
end;
end;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
ReadRec();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -