📄 mainform.pas
字号:
end;
if length(ED_Num.Text)>1 then
if not (key in [#8]) then
begin
key:=#0;
end;
end;
procedure TForm_main.ED_NumChange(Sender: TObject);
begin
str_Num:=format('%.2d',[strtoint(ED_Num.Text)]);
Lab_Insert_StuID.Caption:=str_Grade+str_SType+str_BRtype+str_class+str_Num;
end;
procedure TForm_main.CB_ClassChange(Sender: TObject);
begin
str_class:=inttostr(CB_Class.itemindex+1);
Lab_Insert_StuID.Caption:=str_Grade+str_SType+str_BRtype+str_class+str_Num;
end;
procedure TForm_main.ED_lend_BIDKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['1','2','3','4','5','6','7','8','9','0',#8]) then
begin
key:=#0;
end;
if length(ED_lend_BID.Text)>7 then
if not (key in [#8]) then
begin
key:=#0;
end;
end;
procedure TForm_main.ED_lend_BIDChange(Sender: TObject);
begin
bool_lend_bookid:=False;
if Length(ED_lend_BID.Text)=8 then
begin
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('select * from BookInfo where BID='+QuotedStr(ED_lend_BID.Text));
DM.ADOQuery2.Open;
if DM.ADOQuery2.IsEmpty=True then
begin
ShowMessage('书本不存在或书号错误');
Lab_lend_BType.Caption:='';
Lab_lend_press.Caption:='';
Lab_lend_price.Caption:='';
Lab_lend_writer.Caption:='';
Lab_lend_BName.Caption:='';
end
else
begin
if DM.ADOQuery2.FieldByName('BBool').AsString='False' then
begin
bool_lend_bookid:=True;
Lab_lend_BType.Caption:=DM.ADOQuery2.fieldbyname('BType').AsString;
Lab_lend_press.Caption:=DM.ADOQuery2.fieldbyname('BPress').AsString;
Lab_lend_price.Caption:=DM.ADOQuery2.fieldbyname('BPrice').AsString;
Lab_lend_writer.Caption:=DM.ADOQuery2.fieldbyname('BWriter').AsString;
Lab_lend_BName.Caption:=DM.ADOQuery2.fieldbyname('BName').AsString;
end
else
begin
ShowMessage('书本已经借出!');
end;
end;
end;
end;
procedure TForm_main.ED_return_BIDKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['1','2','3','4','5','6','7','8','9','0',#8]) then
begin
key:=#0;
end;
if length(ED_return_BID.Text)>7 then
if not (key in [#8]) then
begin
key:=#0;
end;
end;
procedure TForm_main.ED_return_BIDChange(Sender: TObject);
begin
bool_return_bookid:=False;
if Length(ED_return_BID.Text)>=8 then
begin
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('select * from BookInfo where BID='+QuotedStr(ED_return_BID.Text));
DM.ADOQuery2.Open;
if DM.ADOQuery2.IsEmpty=True then
begin
ShowMessage('书本不存在或书号错误');
Lab_return_BType.Caption:='';
Lab_return_press.Caption:='';
Lab_return_price.Caption:='';
Lab_return_writer.Caption:='';
Lab_return_BName.Caption:='';
end
else
begin
if DM.ADOQuery2.FieldByName('BBool').AsString='True' then
begin
bool_return_bookid:=True;
Lab_return_BType.Caption:=DM.ADOQuery2.fieldbyname('BType').AsString;
Lab_return_press.Caption:=DM.ADOQuery2.fieldbyname('BPress').AsString;
Lab_return_price.Caption:=DM.ADOQuery2.fieldbyname('BPrice').AsString;
Lab_return_writer.Caption:=DM.ADOQuery2.fieldbyname('BWriter').AsString;
Lab_return_BName.Caption:=DM.ADOQuery2.fieldbyname('BName').AsString;
end
else
begin
ShowMessage('图书还没借出!');
end;
end;
end;
end;
procedure TForm_main.ED_lend_stuIDChange(Sender: TObject);
var
s:TStrings;
str:String;
begin
bool_lend_stuid:=False;
if Length(ED_lend_stuID.Text)=10 then
begin
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('select * from StuInfo where StuID='+QuotedStr(ED_lend_stuID.Text));
DM.ADOQuery2.Open;
if DM.ADOQuery2.IsEmpty=True then
begin
ShowMessage('学生不存在或学号错误');
Lab_lend_StuName.Caption:='';
Lab_lend_Classinfo.Caption:='';
Lab_lend_StuSex.Caption:='';
Lab_lend_StuBook.Caption:='';
end
else
begin
bool_lend_stuid:=True;
Lab_lend_StuName.Caption:=DM.ADOQuery2.fieldbyname('StuName').AsString;
Lab_lend_Classinfo.Caption:=DM.ADOQuery2.fieldbyname('ClassInfo').AsString;
if DM.ADOQuery2.fieldbyname('StuSex').AsString='True' then
begin
Lab_lend_StuSex.Caption:='男';
end
else
begin
Lab_lend_StuSex.Caption:='女';
end;
str:=DM.ADOQuery2.fieldbyname('StuBook').AsString;
if str<>'' then
begin
s:=TStringList.Create;
s.Delimiter:='|';
s.DelimitedText:=str;
Lab_lend_StuBook.Caption:=inttostr(s.Count-1)+'本';
end;
end;
end;
end;
procedure TForm_main.ED_lend_stuIDKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['1','2','3','4','5','6','7','8','9','0',#8]) then
begin
key:=#0;
end;
if length(ED_lend_stuID.Text)=10 then
if not (key in [#8]) then
begin
key:=#0;
end;
end;
procedure TForm_main.ED_return_StuIDKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['1','2','3','4','5','6','7','8','9','0',#8]) then
begin
key:=#0;
end;
if length(ED_return_StuID.Text)=10 then
if not (key in [#8]) then
begin
key:=#0;
end;
end;
procedure TForm_main.ED_return_StuIDChange(Sender: TObject);
var
s:TStrings;
str:String;
begin
bool_return_stuid:=False;
if Length(ED_return_StuID.Text)>=10 then
begin
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('select * from StuInfo where StuID='+QuotedStr(ED_return_stuID.Text));
DM.ADOQuery2.Open;
if DM.ADOQuery2.IsEmpty=True then
begin
ShowMessage('学生不存在或学号错误');
Lab_return_StuName.Caption:='';
Lab_return_Classinfo.Caption:='';
Lab_return_StuSex.Caption:='';
Lab_return_StuBook.Caption:='';
end
else
begin
bool_return_stuid:=True;
Lab_return_StuName.Caption:=DM.ADOQuery2.fieldbyname('StuName').AsString;
Lab_return_Classinfo.Caption:=DM.ADOQuery2.fieldbyname('ClassInfo').AsString;
if DM.ADOQuery2.fieldbyname('StuSex').AsString='True' then
begin
Lab_return_StuSex.Caption:='男';
end
else
begin
Lab_return_StuSex.Caption:='女';
end;
str:=DM.ADOQuery2.fieldbyname('StuBook').AsString;
if str<>'' then
begin
s:=TStringList.Create;
s.Delimiter:='|';
s.DelimitedText:=str;
Lab_return_StuBook.Caption:=inttostr(s.Count-1)+'本';
end;
end;
end;
end;
procedure TForm_main.BTN_stu_insertClick(Sender: TObject);
begin
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('select * from Stu where StuGrade+StuSeries+StuBranch+StuClass+StuNum='+QuotedStr(Lab_Insert_StuID.Caption));
DM.ADOQuery2.Open;
if DM.ADOQuery2.RecordCount=0 then
begin
try
DM.ADOConnection1.BeginTrans;
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('insert into Stu(StuName,StuSex,StuGrade,StuSeries,StuBranch,StuClass,StuNum)');
DM.ADOQuery2.SQL.Add(' values (:StuName,:StuSex,:StuGrade,:StuSeries,:StuBranch,:StuClass,:StuNum)');
DM.ADOQuery2.Parameters.ParamByName('StuName').Value:=ED_stu_name.Text;
DM.ADOQuery2.Parameters.ParamByName('StuSex').Value:=int_Sex;
DM.ADOQuery2.Parameters.ParamByName('StuGrade').Value:=str_Grade;
DM.ADOQuery2.Parameters.ParamByName('StuSeries').Value:=str_SType;
DM.ADOQuery2.Parameters.ParamByName('StuBranch').Value:=str_BRtype;
DM.ADOQuery2.Parameters.ParamByName('StuClass').Value:=str_class;
DM.ADOQuery2.Parameters.ParamByName('StuNum').Value:=Format('%.2d',[strtoint(str_num)]);
DM.ADOQuery2.ExecSQL;
DM.ADOConnection1.CommitTrans;
except
ShowMessage('出错回滚');
DM.ADOConnection1.RollbackTrans;
end;
DM.ADOQuery1.SQL.Clear;
DM.ADOQuery1.SQL.Add('select * from StuInfo');
DM.ADOQuery1.Open;
DBGrid1Lenght;
end
else
begin
ShowMessage('已经存在');
end;
end;
procedure TForm_main.CB_SexChange(Sender: TObject);
begin
if CB_Sex.Items.Strings[CB_Sex.ItemIndex]='男' then
begin
int_Sex:=1;
end
else
int_Sex:=0;
begin
end;
end;
procedure TForm_main.Bit_returnClick(Sender: TObject);
var
substr:TStrings;
i:Integer;
Bool_flag:Boolean;
strtemp:string;
double_Bookmoney:double;
integer_BookDays:Integer;
str_bookname:string;
str_bookID:string;
str_stuname:string;
str_strID:string;
begin
Form_main.ED_return_BID.OnChange(ED_return_BID);
Form_main.ED_return_StuID.OnChange(ED_return_StuID);
if (bool_return_bookid) and(bool_return_stuid) then
begin
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('select * from StuInfo where StuID='+QuotedStr(ED_return_StuID.Text));
DM.ADOQuery2.Open;
str_bookID:=ED_return_stuID.text;
str_strID:=ED_return_BID.text;
str_stuname:=DM.ADOQuery2.FieldByName('StuName').AsString;
substr:=TStringList.Create;
substr.Delimiter:='|';
substr.DelimitedText:=DM.ADOQuery2.fieldbyname('StuBook').AsString;
Bool_flag:=False;
for i:=0 to substr.Count-1 do
begin
if substr[i]=ED_return_BID.Text then
begin
Bool_flag:=True;
Break;
end;
end;
if Bool_flag=False then
begin
ShowMessage('该学生没有借这本书!');
end;
if bool_flag=True then
begin
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('select * from BookInfo where BID='+QuotedStr(ED_return_BID.Text));
DM.ADOQuery2.Open;
double_Bookmoney:=DM.ADOQuery2.fieldbyname('money').AsFloat;
integer_BookDays:=DM.ADOQuery2.fieldbyname('BDays').AsInteger;
str_bookname:=DM.ADOQuery2.FieldByName('BName').AsString;
if double_Bookmoney<0 then
begin
ShowMessage('你借的书已经过期'+inttostr(integer_BookDays)+'天,请付'+FloatToStr(double_Bookmoney)+'元');
end;
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('update Book'
+' set BBool=0 ,BStuID=null,BLendDate=null where BType+BNum='
+QuotedStr(ED_return_BID.text));
DM.ADOQuery2.ExecSQL;
strtemp:='';
for i:=1 to substr.Count-1 do
begin
if (substr[i]<>ED_return_BID.text) then
begin
strtemp:=strtemp+'|'+substr[i];
end;
end;
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('update stuInfo set stubook='+
QuotedStr(strtemp)+'where StuID='+QuotedStr(ED_return_StuID.Text));
DM.ADOQuery2.ExecSQL;
{Memo_return.Lines.Add('还书 '+str_memo_bookID+str_memo_bookname+str_memo_strID+str_memo_stuname+format('%25s',[DateToStr(date)])+' '+TimeToStr(now));
ShowMessage('还书成功'); }
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('insert into return_log(type,bookid,bookname,stuid,stuname,logtime)');
DM.ADOQuery2.SQL.Add(' values (:type,:bookid,:bookname,:stuid,:stuname,:logtime)');
DM.ADOQuery2.Parameters.ParamByName('type').Value:='还书';
DM.ADOQuery2.Parameters.ParamByName('bookid').Value:=str_bookID;
DM.ADOQuery2.Parameters.ParamByName('bookname').Value:=str_bookname;
DM.ADOQuery2.Parameters.ParamByName('stuid').Value:=str_strID;
DM.ADOQuery2.Parameters.ParamByName('stuname').Value:=str_stuname;
DM.ADOQuery2.Parameters.ParamByName('logtime').Value:=DateToStr(date)+' '+TimeToStr(now);
DM.ADOQuery2.ExecSQL;
Application.MessageBox('还书成功!','成功',MB_OK+MB_ICONASTERISK);
ED_lend_BID.Text:='';
ED_lend_stuID.Text:='';
end;
end
else
begin
Application.MessageBox('信息有错或未完整','错误',MB_OK+MB_ICONWARNING);
end;
end;
procedure TForm_main.Bit_lossClick(Sender: TObject);
var
float_price:Double;
integer_loss:Integer;
substr:TStrings;
i:Integer;
Bool_flag:Boolean;
strtemp:string;
str_bookname:string;
str_bookID:string;
str_stuname:string;
str_strID:string;
begin
Form_main.ED_return_BID.OnChange(ED_return_BID);
Form_main.ED_return_StuID.OnChange(ED_return_StuID);
if (bool_return_bookid) and(bool_return_stuid) then
begin
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('select * from StuInfo where StuID='+QuotedStr(ED_return_StuID.Text));
DM.ADOQuery2.Open;
str_bookID:=ED_return_stuID.text;
str_strID:=ED_return_BID.text;
str_stuname:=DM.ADOQuery2.FieldByName('StuName').AsString;
substr:=TStringList.Create;
substr.Delimiter:='|';
substr.DelimitedText:=DM.ADOQuery2.fieldbyname('StuBook').AsString;
Bool_flag:=False;
for i:=0 to substr.Count-1 do
begin
if substr[i]=ED_return_BID.Text then
begin
Bool_flag:=True;
Break;
end;
end;
if Bool_flag=False then
begin
ShowMessage('该学生没有借这本书!');
end;
if bool_flag=True then
begin
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('select * from BookInfo where BID='+QuotedStr(ED_return_BID.Text));
DM.ADOQuery2.Open;
str_bookname:=DM.ADOQuery2.FieldByName('BName').AsString;
float_price:=DM.ADOQuery2.fieldbyname('BPrice').AsFloat;
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('select * from setup');
DM.ADOQuery2.Open;
integer_loss:=DM.ADOQuery2.fieldbyname('Loss').AsInteger;
//showmessage(format('本书原价%f元,索赔倍数为%d,你应付%f元',[float_price,integer_loss,float_price*integer_loss]));
if Application.MessageBox(Pchar(format('本书原价%f元,索赔倍数为%d,你应付%f元',[float_price,integer_loss,float_price*integer_loss])),'are you sure?',MB_OKCANCEL+MB_ICONWARNING)=1 then
begin
strtemp:='';
for i:=1 to substr.Count-1 do
begin
if (substr[i]<>ED_return_BID.text) then
begin
strtemp:=strtemp+'|'+substr[i];
end;
end;
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('update stuInfo set stubook='+
QuotedStr(strtemp)+'where StuID='+QuotedStr(ED_return_StuID.Text));
DM.ADOQuery2.ExecSQL;
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('delete from book where BType+BNum='+QuotedStr(ED_return_BID.Text));
DM.ADOQuery2.ExecSQL;
Application.MessageBox('报失成功','成功',MB_OK);
//Memo_return.Lines.Add('报失 '+str_memo_bookID+str_memo_bookname+str_memo_strID+str_memo_stuname+format('%25s',[DateToStr(date)])+' '+TimeToStr(now));
DM.ADOQuery2.SQL.Clear;
DM.ADOQuery2.SQL.Add('insert into return_log(type,bookid,bookname,stuid,stuname,logtime)');
DM.ADOQuery2.SQL.Add(' values (:type,:bookid,:bookname,:stuid,:stuname,:logtime)');
DM.ADOQuery2.Parameters.ParamByName('type').Value:='报失';
DM.ADOQuery2.Parameters.ParamByName('bookid').Value:=str_bookID;
DM.ADOQuery2.Parameters.ParamByName('bookname').Value:=str_bookname;
DM.ADOQuery2.Parameters.ParamByName('stuid').Value:=str_strID;
DM.ADOQuery2.Parameters.ParamByName('stuname').Value:=str_stuname;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -