📄 departmenttakeunit.pas
字号:
unit DepartmentTakeUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, Buttons, Grids, DBGrids;
type
TfrmDepartmentTake = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
ComboBox1: TComboBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
GroupBox2: TGroupBox;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
procedure FormCreate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure Edit7Exit(Sender: TObject);
procedure Edit4Exit(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure DBGrid1ColEnter(Sender: TObject);
private
procedure LoadDepartmentData();//加载班级信息
procedure LoadBookData();//加载教材信息
procedure initializtionfrm();//清空填 写的数据
public
{ Public declarations }
end;
var
frmDepartmentTake: TfrmDepartmentTake;
Dep:TADOTable;
book:TADODataSet;
StudentTakeBook:TADOStoredProc;
bookID,award,publishDate,orderDepartmentName,UsingWay,About,author:string;
implementation
uses DataModuleUnit, MainUnit;
{$R *.dfm}
//清空输入的数据
procedure TfrmDepartmentTake.initializtionfrm();
var
i:integer;
begin
for i:=0 to self.ComponentCount-1 do
begin
if self.Components[i] is TCustomEdit then
(self.Components[i] as TCustomEdit).Text:='';
if self.Components[i] is TCheckBox then
(self.Components[i] as TCheckBox).Checked:=false;
if self.Components[i] is TCombobox then
(self.Components[i] as TCombobox).Text:='';
end;
end;
//加载教材信息
procedure TfrmDepartmentTake.LoadBookData();
begin
with book do
begin
//Locate('bookName',trim(Edit4.Text),[loCaseInsensitive]);
Edit7.Text:='0';
Edit9.Text:='0';
Edit4.Text:=FieldByName('BookName').AsString;
Edit5.Text:=FieldByName('press').AsString;//出版社
edit6.Text:=FieldByName('BookAmount').AsString; //人数
Edit8.Text:=FieldByName('price').AsString; //单价
Edit10.Text:=frmMain.OperatorInfo.OperatorName;//经办人
Edit11.Text:=FieldByName('About').AsString; //库存
BookID:=FieldByName('ISBN').Value; //书号
award:=FieldByName('award').Value; //获奖
publishDate:=FieldByName('publishDate').Value; //出版日期
orderDepartmentName:=FieldByName('orderDepartmentName').Value;//订书院系
usingway:=FieldByName('usingway').AsString; //使用说明
about:=FieldByName('about').AsString;//说明
author:=FieldByName('Author').AsString;//作者
end;
end;
//加载院系信息
procedure TfrmDepartmentTake.LoadDepartmentData();
var
fee:real;
begin
with Dep do
begin
Locate('DepartmentName',ComboBox1.Text,[loCaseInsensitive]);
Edit1.Text:=FieldByName('totalfee').Value;
Edit2.Text:=FieldByName('charger').Value;
Edit3.Text:=FieldByName('chargerPhone').Value;
fee:=strtoFloatDef(edit1.Text,0);
if fee>0 then
edit4.Enabled:=true
else
edit4.Enabled:=false;
end;
end;
//初始化
procedure TfrmDepartmentTake.FormCreate(Sender: TObject);
var
i:integer;
begin
//领书存储过程建立
StudentTakeBook:=TADOStoredProc.Create(nil);
StudentTakeBook.Connection:=frmDataModule.Connection;
StudentTakeBook.ProcedureName:='StudentTakeBook';
//教材信息表初始化
Book:=TADODataSet.Create(nil);
Book.CommandType:=cmdText;
book.Connection:=frmDataModule.Connection;
Datasource1.DataSet:=book;
dbGrid1.DataSource:=DataSource1;
//院系信息表初始化
Dep:=TADOTable.Create(nil); //班级表
with Dep do
begin
Connection:=frmDataModule.Connection;
TableName:='Departments';
Active:=true;
for i:=0 to RecordCount-1 do
begin
comboBox1.Items.Add(Fields[0].Value);
Next;
end;
end;
end;
//加载院系信息
procedure TfrmDepartmentTake.ComboBox1Change(Sender: TObject);
begin
self.initializtionfrm;
self.LoadDepartmentData;
end;
procedure TfrmDepartmentTake.Edit7Exit(Sender: TObject);
var
TotalFee,BookFee,Price:real;
AMount:integer;
begin
TotalFee:=StrToFloatDef(Edit1.Text,0); //书费
Price:=StrToFloatDef(Edit8.Text,0);//单价
AMount:=StrToIntDef(Edit7.Text,0); //领书数量
BookFee:=Amount*Price;//费用
Edit9.Text:=FloatToStr(BookFee);
if AMount>0 then
bitbtn1.Enabled:=true
else
bitbtn1.Enabled:=false;
if TotalFee<BookFee then
begin
Application.MessageBox('书费不足,请及时交纳书费!','出错提示',mb_ok);
Edit7.SetFocus;
end;
end;
procedure TfrmDepartmentTake.Edit4Exit(Sender: TObject);
begin
with book do
begin
close;
{ Parameters.Clear;
Parameters.CreateParameter('@BookName',ftstring,pdinput,50,Edit4.Text);
//Parameters[0].Value:=Edit4.Text;
CommandText:='select * from books where bookName=:bookName';}
CommandText:='select * from books where bookName like '+quotedstr('%'+Edit4.text+'%');
Active:=true;
if RecordCount>0 then
begin
self.LoadBookData;
Edit7.Enabled:=true;
end;
end;
end;
//提交领书信息
procedure TfrmDepartmentTake.BitBtn1Click(Sender: TObject);
var
totalFee:real;
amount:integer;
begin // I:= StrToIntDef(aEdit.Text, 0); 这样当转换不成功时,第二个参数就会赋给I。类似的函数还有strToInt64Def,StrToFloatDef等等。
if strtointdef(edit7.Text,1)>strtointdef(edit6.Text,0)then
begin
Application.MessageBox('库存量不足,请少领些!','出错提示',mb_ok);
edit7.SetFocus;
abort;
end;
if strtofloatdef(edit9.Text,1.0)>strtofloatdef(edit1.Text,0.0)then
begin
Application.MessageBox('书费不足,请去补交书费!','出错提示',mb_ok);
edit9.SetFocus;
abort;
end;
with StudentTakeBook do //设置领书存储过程的参数
begin
Parameters.CreateParameter('@whoTake_1',ftstring,pdinput,20,Combobox1.Text);
Parameters.CreateParameter('@bookID_2 ',ftstring,pdinput,13,bookID);
Parameters.CreateParameter('@bookName_3',ftstring,pdinput,50,Edit4.Text);
Parameters.CreateParameter('@press_4',ftstring,pdinput,50,Edit5.Text);
Parameters.CreateParameter('@author_5',ftstring,pdinput,8,Author);
Parameters.CreateParameter('@award_6',ftstring,pdinput,50,award);
Parameters.CreateParameter('@publishDate_7',ftDateTime,pdinput,8,publishDate);
Parameters.CreateParameter('@orderDepartmentName_8',ftstring,pdinput,20,orderDepartmentName);
Parameters.CreateParameter('@handler_9',ftstring,pdinput,8,edit10.Text);
Parameters.CreateParameter('@lastAmount_10',ftInteger,pdinput,4,Edit6.Text);
Parameters.CreateParameter('@theAmount_11',ftInteger,pdinput,4,Edit7.Text);
Parameters.CreateParameter('@nowAmount_12',ftInteger,pdinput,4,strtointdef(Edit6.Text,0)-STRTOINTDef(Edit7.Text,0));
Parameters.CreateParameter('@price_13',ftFloat,pdinput,4,Edit8.Text);
Parameters.CreateParameter('@usingWay_14',ftstring,pdinput,50,usingWay);
Parameters.CreateParameter('@about_16',ftstring,pdinput,50,about);
Parameters.CreateParameter('@operatorID_17',ftstring,pdinput,8,frmMain.OperatorInfo.OperatorID);//'fdsa;f;sdla'
Parameters.CreateParameter('@ClassName_1',ftstring,pdinput,20,combobox1.Text);
totalfee:=strtoFloatDef(edit1.Text,0)-strtofloatDef(edit9.Text,0);
amount:=StrtointDef(Edit6.Text,0)-StrtointDef(edit7.Text,0);
//showmessage(floattostr(totalfee));
Parameters.CreateParameter('@totalfee_2',ftFloat,pdinput,4,totalfee);
Parameters.CreateParameter('@bookAmount_2',ftinteger,pdinput,4,amount);
try
ExecProc;
Application.MessageBox('领书信息填写成功!','提示',mb_ok);
book.Close;
self.initializtionfrm;
//edit7.Text:='0';
except
Application.MessageBox('领书信息填写失败!','出错提示',mb_ok);
end;
end;
end;
procedure TfrmDepartmentTake.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TfrmDepartmentTake.DBGrid1ColEnter(Sender: TObject);
begin
self.LoadBookData;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -