book.pas
上传用户:blmaxia
上传日期:2010-02-17
资源大小:657k
文件大小:5k
源码类别:

Delphi/CppBuilder

开发平台:

Delphi

  1. unit book;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, ExtCtrls, StdCtrls, ComCtrls, Data, DB, DBCtrls, Mask;
  6. type
  7.   Tbookform = class(TForm)
  8.     PageControl1: TPageControl;
  9.     TabSheet1: TTabSheet;
  10.     TabSheet2: TTabSheet;
  11.     GroupBox1: TGroupBox;
  12.     StaticText1: TStaticText;
  13.     codeedit: TEdit;
  14.     StaticText2: TStaticText;
  15.     NameEdit: TEdit;
  16.     StaticText3: TStaticText;
  17.     StaticText4: TStaticText;
  18.     StaticText5: TStaticText;
  19.     StaticText6: TStaticText;
  20.     StaticText7: TStaticText;
  21.     StaticText8: TStaticText;
  22.     AuthorEdit: TEdit;
  23.     PressEdit: TEdit;
  24.     OuttimeEdit: TEdit;
  25.     CostEdit: TEdit;
  26.     Memo1: TMemo;
  27.     Button1: TButton;
  28.     Button2: TButton;
  29.     GroupBox2: TGroupBox;
  30.     StaticText9: TStaticText;
  31.     StaticText10: TStaticText;
  32.     StaticText11: TStaticText;
  33.     StaticText12: TStaticText;
  34.     StaticText13: TStaticText;
  35.     StaticText14: TStaticText;
  36.     StaticText15: TStaticText;
  37.     StaticText16: TStaticText;
  38.     ComboBox1: TComboBox;
  39.     DBName: TDBEdit;
  40.     DBAuthor: TDBEdit;
  41.     DBPress: TDBEdit;
  42.     DBOutDate: TDBEdit;
  43.     DBCost: TDBEdit;
  44.     DBMemo: TDBMemo;
  45.     DataSource1: TDataSource;
  46.     Button4: TButton;
  47.     procedure TabSheet1Show(Sender: TObject);
  48.     procedure Button1Click(Sender: TObject);
  49.     procedure Button2Click(Sender: TObject);
  50.     procedure TabSheet2Show(Sender: TObject);
  51.     procedure ComboBox1Change(Sender: TObject);
  52.     procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;
  53.       Shift: TShiftState);
  54.   private
  55.     { Private declarations }
  56.   public
  57.     { Public declarations }
  58.   end;
  59. var
  60.   bookform: Tbookform;
  61. implementation
  62. {$R *.dfm}
  63. procedure Tbookform.TabSheet1Show(Sender: TObject);
  64. begin
  65.   codeedit.SetFocus ;
  66.   CodeEdit.SelectAll ;
  67.   NameEdit.Text :='';
  68.   AuthorEdit.Text :='';
  69.   OutTimeEdit.Text :='';
  70.   CostEdit.Text :='';
  71.   PressEdit.Text :='';
  72.   Memo1.Lines.Clear ;
  73. end;
  74. procedure Tbookform.Button1Click(Sender: TObject);
  75. begin
  76.   //检查新入库图书的书号是否长度是否为10
  77.   if Length(CodeEdit.Text )<>10 then
  78.   begin
  79.     messagedlg('书号不正确',mtError,[mbok],0);
  80.     CodeEdit.SetFocus ;
  81.     exit;
  82.   end;
  83.   //检查书号是否已经存在
  84.   with dataModuleAdo.adoquery1 do
  85.   begin
  86.     sql.clear;
  87.     sql.Add('select code from book where code=:code');
  88.     parameters.ParamByName('code').Value :=codeedit.Text ;
  89.     open;
  90.     if recordcount<>0 then
  91.     begin
  92.       messagedlg('书号<'+codeedit.Text+'>已经存在',mtError,[mbok],0);
  93.       codeedit.SetFocus ;
  94.       exit;
  95.     end;
  96.     close;
  97.   end;
  98.   
  99.   try
  100.    with datamoduleado.ADOQuery1 do
  101.    begin
  102.      sql.Clear;
  103.      sql.Add('insert into book(code,name,author,press,outdate,cost,memo0)'+
  104.      'values(:code,:name,:author,:press,:outdate,:cost,:MMEMO)');
  105.      parameters.ParamByName('code').Value :=codeedit.Text ;
  106.      parameters.ParamByName('name').Value :=nameedit.Text ;
  107.      parameters.ParamByName('author').Value :=authoredit.Text ;
  108.      parameters.ParamByName('press').Value :=pressedit.Text ;
  109.      try
  110.        parameters.ParamByName('outdate').Value :=strtodate(outtimeedit.Text) ;
  111.      except
  112.        messagedlg('参数<出版时间>设置错误',mtError,[mbok],0);
  113.        exit;
  114.      end;
  115.      try
  116.        parameters.ParamByName('cost').Value :=strtofloat(costedit.Text) ;
  117.      except
  118.        messagedlg('参数<价格>设置错误',mtError,[mbok],0);
  119.        exit;
  120.      end;
  121.      try
  122.        parameters.ParamByName('MMEMO').Value :=memo1.Text  ;
  123.      except
  124.        messagedlg('memo erro',mterror,[mbok],0);
  125.        exit;
  126.      end;
  127.      execSQL;
  128.    end;
  129.    Tabsheet1show(sender);
  130.   except
  131.     messagedlg('入库错误',mtError,[mbok],0);
  132.   end;
  133. end;
  134. procedure Tbookform.Button2Click(Sender: TObject);
  135. begin
  136.  close;
  137. end;
  138. procedure Tbookform.TabSheet2Show(Sender: TObject);
  139. var
  140.   i:integer;
  141. begin
  142.   combobox1.Items.Clear ;
  143.   with datamoduleado.ADOQuery1 do
  144.   begin
  145.     sql.Clear ;
  146.     sql.Add('select code from book');
  147.     open;
  148.     first;
  149.     for i:=0 to recordcount-1 do
  150.     begin
  151.       combobox1.Items.Add(fieldbyname('code').AsString );
  152.       next;
  153.     end;
  154.     close;
  155.   end;
  156. end;
  157. procedure Tbookform.ComboBox1Change(Sender: TObject);
  158. begin
  159.   if length(combobox1.Text )=10 then
  160.   begin
  161.     try
  162.       with datamoduleAdo.ADOTable1 do
  163.       begin
  164.         tablename:='book';
  165.         dbname.DataField :='Name';
  166.         dbauthor.DataField :='Author';
  167.         dbpress.DataField :='press';
  168.         dboutdate.DataField :='outdate';
  169.         dbcost.DataField :='cost';
  170.         dbmemo.DataField :='memo0';
  171.         active:=true;
  172.         if  locate('code',combobox1.Text ,[]) then
  173.          edit
  174.         else
  175.          showmessage('not found ' );
  176.       end;
  177.     except
  178.       messagedlg('数据操作出错',mtError,[mbok],0);
  179.     end;
  180.   end;
  181. end;
  182. procedure Tbookform.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  183.   Shift: TShiftState);
  184. begin
  185.   if key=13 then
  186.    combobox1change(sender);
  187.    
  188. end;
  189. end.