⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 departmenttakeunit.pas

📁 是一个Delphi的教材管理系统,内容很全面详细
💻 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 + -