📄 ureg.~pas
字号:
unit uReg;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, ComCtrls, ExtCtrls, ImgList, Buttons,
Mask, DBCtrls;
type
TFrmReg = class(TForm)
Panel1: TPanel;
Panel3: TPanel;
DBGrid1: TDBGrid;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
ImageList1: TImageList;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
dbName: TDBEdit;
dbMember: TDBEdit;
dbAge: TDBEdit;
dbDate: TDBEdit;
dbMemo: TDBEdit;
Groupclass: TGroupBox;
ListBox1: TListBox;
btnNew: TSpeedButton;
btnEdit: TSpeedButton;
btnDel: TSpeedButton;
btnYes: TSpeedButton;
btnCancel: TSpeedButton;
btnClose: TSpeedButton;
dbTerm: TDBEdit;
ComboBox1: TComboBox;
Edit1: TEdit;
ComboBox2: TComboBox;
dbbID: TDBEdit;
Label8: TLabel;
Label9: TLabel;
Edit3: TEdit;
Label10: TLabel;
Edit4: TEdit;
Label11: TLabel;
Label12: TLabel;
Edit2: TEdit;
Label13: TLabel;
ComboBox3: TComboBox;
Label14: TLabel;
GroupBox2: TGroupBox;
Panel2: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
SpeedButton5: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure btnNewClick(Sender: TObject);
procedure btnYesClick(Sender: TObject);
procedure btnEditClick(Sender: TObject);
procedure btnDelClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
formmode:string;
procedure BtnMode;
procedure InsertMode;
Procedure UpdateMode;
Procedure NormalMode;
public
{ Public declarations }
end;
var
FrmReg: TFrmReg;
implementation
uses MainD,UTIL,ureportreg;
{$R *.dfm}
procedure TFrmReg.BtnMode;
begin
BtnNew.Enabled := False;
BtnEdit.Enabled := False;
BtnDel.Enabled := False;
BtnYes.Enabled := False;
BtnCancel.Enabled := False;
BtnClose.Enabled := False;
Groupclass.Enabled := False;
DBGrid1.Enabled := False;
combobox2.Enabled := False;
pagecontrol1.Pages[0].Enabled := False;
if formmode = 'nor' then
begin
combobox2.Enabled := True;
BtnNew.Enabled := True;
BtnEdit.Enabled := True;
BtnDel.Enabled := True;
BtnYes.Enabled := False;
BtnCancel.Enabled := False;
Groupclass.Enabled := True;
DBGrid1.Enabled := True;
BtnClose.Enabled := true;
pagecontrol1.Pages[0].Enabled := True;
end else if (formmode='ins') or (formmode = 'edt') then begin
if formmode='ins' then
combobox2.Enabled := true;
BtnNew.Enabled := False;
BtnEdit.Enabled := False;
BtnDel.Enabled := False;
BtnYes.Enabled := True;
BtnCancel.Enabled := True;
Groupclass.Enabled := False;
DBGrid1.Enabled := False;
BtnClose.Enabled := False;
pagecontrol1.Pages[0].Enabled := False;
end;
end;
procedure TFrmReg.FormCreate(Sender: TObject);
var
I:integer;
begin
combobox1.Clear;
for i:=0 to 5 do
begin
combobox1.Items.Add(inttostr(i+2002)+'年春');
combobox1.Items.Add(inttostr(i+2002)+'年秋');
end;
with MainDFrm do
begin
Qclass.SQL.Clear;
Qclass.SQL.Add('SELECT * FROM regdate');
Qclass.SQL.Add('order by bID');
UQclass.InsertSQL.Clear;
UQclass.InsertSQL.Add('INSERT INTO Reginfo');
UQclass.InsertSQL.Add('(bID,member,age,rterm,rDate,Memo)');
UQclass.InsertSQL.Add('VALUES');
UQclass.InsertSQL.Add('(:bID,:member,:age,:rterm,:rDate,:Memo)');
UQclass.ModifySQL.Clear;
UQclass.ModifySQL.Add('UPDATE Reginfo SET');
UQclass.ModifySQL.Add('member=:member,age=:age,rterm=:rterm,rDate=:rDate,Memo=:Memo');
UQclass.ModifySQL.Add('WHERE bID=:bID');
UQclass.DeleteSQL.Clear;
UQclass.DeleteSQL.Add('DELETE FROM Reginfo');
UQclass.DeleteSQL.Add('WHERE bID=:bID');
Qclass.Close;
Qclass.Open;
listbox1.Clear;
Qgrant.SQL.Clear;
Qgrant.SQL.Add('select * from Classinfo');
Qgrant.Close;
Qgrant.Open;
Qgrant.First;
while not Qgrant.Eof do
begin
listbox1.Items.Add(Qgrant.Fields.Fields[0].AsString+
'@'+Qgrant.Fields.Fields[1].AsString);
Qgrant.Next;
end;
end;
normalmode;
end;
procedure TFrmReg.InsertMode;
begin
formmode := 'ins';
btnMode;
end;
procedure TFrmReg.NormalMode;
begin
formmode := 'nor';
btnMode;
end;
procedure TFrmReg.UpdateMode;
begin
formmode := 'edt';
btnMode;
end;
procedure TFrmReg.btnNewClick(Sender: TObject);
begin
if listbox1.ItemIndex<0 then
begin
showmessage('请选择班级!');
exit;
end;
if combobox1.Text='' then
begin
showmessage('请选择学期!');
exit;
end;
if MaindFrm.CheckPermission(UserID,'reg002')=False then exit;
InsertMode;
MainDFrm.Qclass.Append;
with MainDFrm do
begin
Qclass.FieldByName('bID').AsString :='';
Qclass.FieldByName('member').AsString :='';
Qclass.FieldByName('age').AsString :='';
Qclass.FieldByName('rterm').AsString :=combobox1.Text;
Qclass.FieldByName('rDate').AsString :=Datetostr(date);
Qclass.FieldByName('Memo').AsString :='';
end;
end;
procedure TFrmReg.btnYesClick(Sender: TObject);
begin
if dbName.Text='' then
begin
showmessage('请输入姓名!');
exit;
end;
if dbTerm.Text='' then exit;
with MainDFrm do
begin
if formmode = 'ins' then
begin
if ChecktbID('Arcinfo','bName',dbName.Text)=False then
begin
showmessage('很抱歉,没有['+dbName.Text+']相关信息,不能注册!'
+#13+'请录入[学生信息]后再进行注册!');
exit;
end;
dbbID.Text :=Qgrant.Fields.Fields[0].AsString;
Qgrant.SQL.Clear;
Qgrant.SQL.Add('select bID from Reginfo');
Qgrant.SQL.Add('where bID='''+dbbID.Text+'''');
Qgrant.SQL.Add('and rTerm='''+dbTerm.Text+'''');
Qgrant.Close;
Qgrant.Open;
if not Qgrant.Eof then
begin
showmessage('该生已经注册了,请选择其他学生!');
exit;
end;
end;
try
Qclass.Post;
Qclass.Database.StartTransaction;
Qclass.ApplyUpdates;
Qclass.CommitUpdates;
Qclass.Database.Commit;
except
Qclass.Database.Rollback;
Qclass.CancelUpdates;
showmessage('存盘失败!');
end;
Qclass.Close;
Qclass.Open;
end;
NormalMode;
end;
procedure TFrmReg.btnEditClick(Sender: TObject);
begin
if MaindFrm.CheckPermission(UserID,'reg003')=False then exit;
UpdateMode;
MainDFrm.Qclass.Edit;
end;
procedure TFrmReg.btnDelClick(Sender: TObject);
begin
if MaindFrm.CheckPermission(UserID,'reg004')=False then exit;
if MessageBox(Application.Handle,'确认要删除吗?','删除提示',
mb_ICONInformation+mb_YESNO+mb_DEFbutton2)=mryes then
with MainDFrm do
begin
UQclass.DeleteSQL.Clear;
UQclass.DeleteSQL.Add('DELETE FROM Reginfo');
UQclass.DeleteSQL.Add('WHERE bID='''+dbbID.Text+'''');
UQclass.DeleteSQL.Add('and rTerm='''+dbTerm.Text+'''');
try
Qclass.Delete;
Qclass.Database.StartTransaction;
Qclass.ApplyUpdates;
Qclass.CommitUpdates;
Qclass.Database.Commit;
except
Qclass.Database.Rollback;
Qclass.CancelUpdates;
showmessage('存盘失败!');
end;
end;
end;
procedure TFrmReg.btnCancelClick(Sender: TObject);
begin
if messagebox(0,'确定不更新本条数据?','提示',
mb_ICONInformation+mb_yesno+mb_defbutton2)= mryes then
begin
MainDFrm.Qclass.Cancel;
NormalMode;
end;
end;
procedure TFrmReg.ListBox1Click(Sender: TObject);
var
tmpstr:string;
i:integer;
begin
tmpstr :=Listbox1.Items[Listbox1.itemindex];
tmpstr :=trim(tmpstr);
i := pos('@',tmpstr);
tmpstr :=copy(tmpstr,1,i-1);
with MainDFrm do
begin
Qgrant.SQL.Clear;
Qgrant.SQL.Add('select bID,bName from Arcinfo');
Qgrant.SQL.Add('where cID='''+tmpstr+'''');
// Qgrant.SQL.Add('and Classinfo.cClass=''' );
// Qgrant.SQL.Add(+'''');
try
Qgrant.close;
Qgrant.Open;
except
exit;
end;
QGrant.First;
combobox2.Clear;
// combobox2.Items.Add(tmpstr);
while not Qgrant.Eof do
begin
combobox2.Items.Add(Qgrant.Fields.Fields[1].asstring);
Qgrant.Next;
end;
end;
end;
procedure TFrmReg.ComboBox2Change(Sender: TObject);
begin
if combobox2.ItemIndex<0 then exit;
dbName.Text := combobox2.Items[combobox2.itemindex];
with MainDFrm do
begin
Qgrant.SQL.Clear;
Qgrant.SQL.Add('select bID from Arcinfo');
Qgrant.SQL.Add('where bName='''+dbName.Text+'''');
Qgrant.Close;
Qgrant.Open;
if not Qgrant.Eof then dbbID.Text := Qgrant.Fields.Fields[0].AsString;
end;
end;
procedure TFrmReg.ComboBox1Change(Sender: TObject);
begin
if combobox1.ItemIndex<0 then exit;
dbTerm.Text := combobox1.Items[combobox1.itemindex];
end;
procedure TFrmReg.SpeedButton1Click(Sender: TObject);
var
tmp: array[1..9] of string;
str:string;
i:integer;
begin
tmp[1] := edit3.Text;
tmp[2] := edit4.Text;
tmp[3] := edit5.Text;
tmp[4] := edit6.Text;
tmp[5] := edit2.Text;
tmp[6] := edit7.Text;
tmp[7] := trim(combobox3.Text);
tmp[8] := trim(combobox1.Text);
if listbox1.itemindex < 0 then
begin
showmessage('请选择班级再查询!');
exit;
end else
tmp[9] := listbox1.Items[listbox1.itemindex];
i := pos('@',tmp[9]);
delete(tmp[9],1,i);
str:='';
if tmp[1]<> '' then
str :=str + 'and bID>='''+tmp[1]+'''';
if tmp[2]<>'' then
str := str +'and bID<='''+tmp[2]+'''';
if tmp[3]<> '' then
str := str +'and age>='+tmp[3];
if tmp[4]<>'' then
str := str +'and age<='+tmp[4];
if tmp[5]<>'' then
str := str +'and bName='''+tmp[5]+'''';
if tmp[6]<>'' then
str := str+'and rDate='''+tmp[6]+'''';
if tmp[7]<>'' then
str := str +'and member='''+tmp[7]+'''';
if tmp[8] <>'' then
str := str+ 'and rterm='''+tmp[8]+'''';
with MainDFrm do
begin
Qclass.SQL.Clear;
Qclass.SQL.Add('select * from regdate');
Qclass.SQL.add('where cClass='''+tmp[9]+'''');
Qclass.sql.Add(str);
Qclass.Close;
Qclass.Open;
end;
end;
procedure TFrmReg.SpeedButton2Click(Sender: TObject);
var
FrmRegstd: TFrmRegstd;
begin
if MaindFrm.CheckPermission(UserID,'reg005')=False then exit;
FrmRegstd := TFrmRegstd.Create(Application);
try
finally
FrmRegstd.Free;
end;
end;
procedure TFrmReg.SpeedButton3Click(Sender: TObject);
var
FrmRegstd: TFrmRegstd;
begin
if MaindFrm.CheckPermission(UserID,'reg005')=False then exit;
FrmRegstd := TFrmRegstd.Create(Application);
try
finally
FrmRegstd.Free;
end;
end;
procedure TFrmReg.SpeedButton4Click(Sender: TObject);
begin
close;
end;
procedure TFrmReg.SpeedButton5Click(Sender: TObject);
var
FrmRegstd: TFrmRegstd;
begin
FrmRegstd := TFrmRegstd.Create(Application);
try
FrmRegstd.ShowModal;
finally
FrmRegstd.Free;
end;
end;
procedure TFrmReg.btnCloseClick(Sender: TObject);
begin
close;
end;
procedure TFrmReg.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
canClose := True;
if (formmode = 'ins') or (formmode = 'edt') then
begin
MessageBox(application.Handle,'请先结束输入模式后再离开','警告',
mb_ICONWarning+mb_OK);
canClose := False;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -