📄 unit4.~pas
字号:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, DBGrids, ExtCtrls, Db, DBTables, Buttons, Mask, DBCtrls;
type
TForm4 = class(TForm)
Panel1: TPanel;
Label1: TLabel;
verifyBT: TButton;
Label2: TLabel;
snameEdit: TEdit;
oldcreditEdit: TEdit;
Label3: TLabel;
Panel2: TPanel;
DBGrid1: TDBGrid;
Panel3: TPanel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
selectBT: TButton;
delBT: TButton;
searchcnoEdit: TEdit;
Label7: TLabel;
searchBT: TButton;
Query1: TQuery;
returnBT: TBitBtn;
Table1: TTable;
DataSource1: TDataSource;
DataSource2: TDataSource;
Query2: TQuery;
Query3: TQuery;
Query4: TQuery;
Query5: TQuery;
Label8: TLabel;
DataSource3: TDataSource;
DBedit1: TDBEdit;
DBEdit2: TDBEdit;
snoedit: TEdit;
Label9: TLabel;
StringGrid1: TStringGrid;
Edit1: TEdit;
Table1Cno: TStringField;
Table1Cname: TStringField;
Table1Credit: TSmallintField;
Table1Quota: TSmallintField;
Table1Ctime: TSmallintField;
Query2Cno: TStringField;
Query2Cname: TStringField;
Query2Credit: TSmallintField;
Query2Quota: TSmallintField;
Query2Ctime: TSmallintField;
procedure verifyBTClick(Sender: TObject);
procedure searchBTClick(Sender: TObject);
procedure snoeditEnter(Sender: TObject);
procedure selectBTClick(Sender: TObject);
procedure delBTClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.DFM}
var
col,row :integer;
acno :array[1..5,1..4] of string ;
snum : integer ;
procedure TForm4.verifyBTClick(Sender: TObject);
begin
table1.open;
try
snum:=strtoint(snoedit.text);
except
begin
showmessage('输入有误');
exit ;
end
end ;
Query1.close;
query1.sql.Clear;
query1.sql.add('select sname from student');
query1.sql.add('where sno='+snoedit.text);
query1.open;
if query1.fieldbyname('sname').asstring='' then
showmessage('学号有误')
else
begin
snameEdit.text:=query1.fieldbyname('sname').value;
query1.close;
query1.sql.Clear;
query1.sql.add('select sum(credit) from sc,course');
query1.sql.add('where sno=' + snoedit.text);
query1.sql.add('and sc.cno=course.cno and grade>=60');
query1.open;
oldcreditedit.text:=query1.Fields[0].asstring;
query5.close;
query5.ParamByName('sno').value:=snum;
query5.open;
query2.close;
query2.ParamByName('sno').value:=snum;
query2.open;
While not query2.EOF do
Begin
col:=query2ctime.value div 10;
row:=query2ctime.value-col*10 ;
stringGrid1.Cells[col,row]:=query2cname.value ;
acno[col,row]:=query2cno.value;
query2.Next;
End;
selectBT.enabled:=true;
delBT.enabled:=true;
end ;
end;
procedure TForm4.searchBTClick(Sender: TObject);
begin
if not table1.locate('Cno', SearchCnoEdit.text,[ ]) then
showmessage('指定的课号不存在');
SearchCnoEdit.text:='';
end;
procedure TForm4.FormShow(Sender: TObject);
begin
stringGrid1.Cells[0,1]:= '第一节' ;
stringGrid1.Cells[0,2]:= '第二节' ;
stringGrid1.Cells[0,3]:= '第三节' ;
stringGrid1.Cells[0,4]:= '第四节' ;
stringGrid1.Cells[1,0]:= '星期一' ;
stringGrid1.Cells[2,0]:= '星期二' ;
stringGrid1.Cells[3,0]:= '星期三' ;
stringGrid1.Cells[4,0]:= '星期四' ;
stringGrid1.Cells[5,0]:= '星期五' ;
snoedit.SetFocus;
end;
procedure TForm4.snoeditEnter(Sender: TObject);
begin
snoedit.text:='';
snameedit.text:='';
oldcreditedit.text:='';
query2.close;
query5.close;
selectBT.enabled:=false;
delBt.enabled:=false;
end;
procedure TForm4.selectBTClick(Sender: TObject);
begin
if table1quota.value=0 then
begin
showmessage('没有名额'); exit;
end ;
col:=table1ctime.value div 10;
row:=table1ctime.value - col*10 ;
if stringGrid1.Cells[col,row]<>'' then
begin
showmessage('时间冲突'); exit;
end ;
try
query3.close;
query3.parambyname('sno').value:=snum ;
query3.parambyname('cno').value:=table1cno.value;
query3.execsql;
except
showmessage('该课程已修');
exit;
end;
stringGrid1.Cells[col,row]:=table1cname.value;
acno[col,row]:=table1cno.value;
Table1.Edit ;
Table1quota.value:=table1quota.value-1;
Table1.Post ;
query5.close;
query5.open;
end;
procedure TForm4.delBTClick(Sender: TObject);
begin
if stringGrid1.Cells[col,row]='' then
begin showmessage('请选择退选课程');
exit;
end ;
query4.close;
query4.parambyname('sno').value:=snum;
query4.parambyname('cno').value:=acno[col,row];
query4.execsql;
table1.locate('cno',acno[col,row],[]);
Table1.Edit ;
Table1quota.value:=table1quota.value+1;
Table1.Post ;
stringGrid1.Cells[col,row]:='' ;
acno[col,row]:='' ;
query5.close;
query5.open;
end;
procedure TForm4.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
col:=acol;
row:=arow;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -