?? unit3.pas
字號:
unit Unit3;
interface
(* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*)
{銷售窗體}
(* bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb*)
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, unit2, StdCtrls, DB, ADODB, XPMenu;
type
TForm3 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Edit5: TEdit;
Label6: TLabel;
Edit6: TEdit;
Label7: TLabel;
Edit7: TEdit;
Label8: TLabel;
Edit8: TEdit;
Label9: TLabel;
Edit9: TEdit;
Label10: TLabel;
Edit10: TEdit;
Button1: TButton;
ComboBox1: TComboBox;
XPMenu1: TXPMenu;
procedure FormCreate(Sender: TObject);
procedure ComboBox1Select(Sender: TObject);
procedure Edit2Exit(Sender: TObject);
procedure Edit9Exit(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
procedure nxt(var msg:tmessage);MESSAGE wM_NCHitTest;// message wm_char;
procedure wmchar(var age:twmchar);message wm_char;
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure tform3.nxt; //磁性窗體
begin
inHerited; //繼承,窗體可以繼續處理以后的事件
// if msg.Result=vk_return then postmessage(self.Handle,vk_tab,0,0);
if MSG.Result=htclient then
MSG.Result := htcaption;
end;
procedure tform3.wmchar;
begin
if age.charcode=13 then
postmessage(self.handle,wm_NEXTDLGCTL,0,0);
end;
procedure TForm3.FormCreate(Sender: TObject);
var
lst:tADOquery;
begin //將型號加入到復選框中
combobox1.Items.Clear;
lst:=TADOquery.Create(nil);
lst.Connection:=dbs.ADOConnection1 ;
lst.SQL.Add('select * from 庫存詳單');
lst.Open;
lst.First;
while (not lst.Eof) do
begin
combobox1.Items.Add(lst.FieldValues['型號']);
lst.Next;
end;
lst.Free;//釋放資源。
edit8.Text:=datetostr(now); //將當前日期寫銷售時間表中。
end;
procedure TForm3.ComboBox1Select(Sender: TObject);
var lst1:TADOquery;
s:string;
begin
//從庫存表中取出符合同型號的價格。
lst1:=Tadoquery.Create(nil);
lst1.Connection:=dbs.ADOConnection1;
s:=combobox1.Text;
lst1.close;
lst1.SQL.add('select * from 庫存詳單');
lst1.SQL.Add('where 型號=');
lst1.SQL.Add(''''+combobox1.text+'''');
lst1.SQL.add('and 進貨時間=(select min(進貨時間) from 庫存詳單');
lst1.SQL.add('where 型號='''+combobox1.text+''')');
lst1.Open;
lst1.First;
edit6.Text:=lst1.FieldValues['進價']; //取價
lst1.Free;
end;
procedure TForm3.Edit2Exit(Sender: TObject);
{根據串號來從進貨表中獲取這臺小靈通的詳細資料}
var lst:tADOquery;
begin
lst:=tADOquery.Create(nil);
lst.Connection:=dbs.ADOConnection1;
lst.Close;
lst.SQL.Add('select * from 進貨詳單');
lst.SQL.add('where 串號=');
lst.sql.add(''''+edit2.Text+'''');
lst.Open;
try
//首先判斷這個串號是不是存在;如果不存在當然不可以了。
if lst.IsEmpty then begin
showmessage ('我以為這個串號是不存在的,請查閱');
edit2.clear;
exit;
end;
//第一次離開時有可能引發異常。
edit3.Text:=lst.FieldValues['進貨時間'];
edit4.Text:=lst.FieldValues['供貸方'];
edit5.text:=lst.FieldValues['進價'];
finally
lst.Free;
end;
end;
procedure TForm3.Edit9Exit(Sender: TObject);
begin //失去焦點時計算利潤
edit10.Text:=floattostr(strtofloat(edit9.Text)-strtofloat(edit6.Text));
end;
procedure TForm3.Button1Click(Sender: TObject);
var cn:integer;
lst1,lst2:tadoquery;
begin
//先判斷這臺是否在進貨表中,并且要確定不在銷售表上;
lst1:=tadoquery.Create(nil);
lst1.Connection:=dbs.ADOConnection1;
lst2:=tadoquery.Create(nil);
lst2.Connection:=dbs.ADOConnection1; //初始化兩表
lst1.SQL.Clear;
lst2.SQL.Clear;
lst1.SQL.add(format('select * from 進貨詳單 where 串號=''%s'' and 型號=''%s''',
[edit2.text,combobox1.text]));
lst2.SQL.Add(format('select * from 銷售情況 where 串號=''%s'' and 型號=''%s''',
[edit2.text,combobox1.text]));
lst1.Open;
lst2.Open;
if lst1.IsEmpty or (not lst2.IsEmpty) then //進貨表中不存在,或銷售表中已有,不合法
begin
showmessage('是不是沒有進這臺啊。或者這臺已經賣出?');
exit;
end;
if messagedlg('你確定要賣出此臺?',mtconfirmation,[mbyes,mbno],0)=mrno then exit;
dbs.db3.Edit;
dbs.db3.Append;
try
//將數據進入到銷售情況表中
dbs.db3.FieldValues['型號']:=combobox1.Text;
dbs.db3.FieldValues['串號']:=edit2.Text;
dbs.db3.FieldValues['進貨時間']:=edit3.Text;
dbs.db3.FieldValues['供貨方']:=edit4.Text;
dbs.db3.FieldValues['進價1']:=edit5.Text;
dbs.db3.FieldValues['進價2']:=edit6.Text;
dbs.db3.FieldValues['買主']:=edit7.Text;
dbs.db3.FieldValues['銷售時間']:=edit8.Text;
dbs.db3.FieldValues['銷售價']:=edit9.Text;
dbs.db3.FieldValues['利潤']:=edit10.Text;
except
showmessage('請檢查輸入是否正確');
dbs.db3.Cancel;
end;
{庫存中此型號的產品應該少一件}
dbs.db2.SQL.Clear;
dbs.db2.SQL.Add('select * from 庫存詳單 where 型號='''+combobox1.Text+'''');
dbs.db2.Open;
dbs.db2.First;
dbs.db2.Edit;
cn:=dbs.db2.FieldValues['數量'];
dbs.db2.FieldValues['數量']:=cn-1; //從庫存中刪除一件該型號產品。
dbs.db2.Post;//向庫存提交;
cn:=dbs.db2.FieldValues['數量'];
dbs.db3.Post; //提交
if cn<=0 then dbs.db2.Delete; //如果沒有貨就將其從庫存中刪除;
showmessage('交易完成,謝謝!');
edit2.Clear;
self.Close;
end;
procedure TForm3.FormShow(Sender: TObject);
begin
self.FormCreate(nil);
end;
procedure TForm3.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then postmessage(handle,wm_nextdlgctl,0,0);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -