📄 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 + -