📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, ExtCtrls, ComCtrls, DB, ADODB;
type
Toutfm = class(TForm)
inpl: TPanel;
Label15: TLabel;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
clmcbox: TComboBox;
clbhedit: TEdit;
clplbox: TComboBox;
sledit: TEdit;
dwbox: TComboBox;
zjeEdit: TEdit;
GroupBox2: TGroupBox;
Label8: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label14: TLabel;
lhrbox: TComboBox;
jsrbox: TComboBox;
hwedit: TEdit;
djbhedit: TEdit;
GroupBox3: TGroupBox;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
Label7: TLabel;
Label9: TLabel;
ckrqbox: TDateTimePicker;
shrbox: TComboBox;
lhrqbox: TDateTimePicker;
ADOQuery: TADOQuery;
procedure SpeedButton5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure clmcboxChange(Sender: TObject);
procedure dwboxChange(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure djbheditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
price:integer;
{ Private declarations }
public
{ Public declarations }
end;
var
outfm: Toutfm;
implementation
uses mainut;
{$R *.dfm}
procedure Toutfm.SpeedButton5Click(Sender: TObject);
begin
close;
end;
procedure Toutfm.FormCreate(Sender: TObject);
var
mypath:string;
begin
mypath:=extractfilepath(paramstr(0));
ADOquery.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+mypath+'data\kcgl.mdb;Persist Security Info=False';
ADOquery.active:=true;
with adoquery do
begin
close;
sql.Clear;
sql.Add('select * from bhb');
open;
first;
while not eof do
begin
clmcbox.Items.Add(fieldbyname('名称').AsString);
next;
end;
end;
with adoquery do
begin
close;
sql.Clear;
sql.Add('select * from gzyb');
open;
first;
while not eof do
begin
if fieldbyname('职务').AsString='领货员' then
lhrbox.Items.Add(fieldbyname('姓名').AsString);
if fieldbyname('职务').AsString='检验员' then
shrbox.Items.Add(fieldbyname('姓名').AsString);
next;
end;
end;
jsrbox.Text:=mainfm.username;
end;
procedure Toutfm.clmcboxChange(Sender: TObject);
begin
with adoquery do
begin
close;
sql.Clear;
sql.Add('select * from bhb where 名称=:mc');
Parameters.ParamByName('mc').Value:=trim(clmcbox.Text);
open;
clbhedit.Text:=fieldbyname('编号').AsString;
clplbox.Text:=fieldbyname('品类').AsString;
price:=fieldbyname('单位价格').AsInteger;
hwedit.Text:=fieldbyname('货位').AsString;
end;
end;
procedure Toutfm.dwboxChange(Sender: TObject);
begin
if sledit.Text='' then
begin
showmessage('请输入数量!');
exit;
end;
zjeedit.Text:=inttostr(price*strtoint(sledit.Text));
end;
procedure Toutfm.SpeedButton1Click(Sender: TObject);
var
str:string;
num:integer;
sl,je:integer;
begin
num:=0;
if (clmcbox.Text='') or (sledit.Text='') or (zjeedit.Text='') or (lhrbox.Text='') or (jsrbox.Text='') or (djbhedit.Text='') then
begin
showmessage('请输入完整信息!');
exit;
end;
try
with adoquery do
begin
close;
sql.Clear;
sql.Add('select * from kcb where 编号=:bh');
Parameters.ParamByName('bh').Value:=trim(clbhedit.Text);
open;
if recordcount<1 then
begin
showmessage('缺货,请查询核对!!');
exit;
end;
num:=fieldbyname('数量').AsInteger;
sl:=num-strtoint(sledit.Text);
je:=fieldbyname('总金额').AsInteger-strtoint(sledit.Text)*price;
end;
if num<strtoint(sledit.Text) then
begin
showmessage('提示:库存不足,当前库存:'+inttostr(num)+'件!');
exit;
end;
with adoquery do
begin
close;
sql.Clear;
sql.Add('update kcb set 数量=:sl,总金额=:je where 编号=:bh');
Parameters.ParamByName('bh').Value:=trim(clbhedit.Text);
Parameters.ParamByName('sl').Value:=sl;
Parameters.ParamByName('je').Value:=je;
execsql;
end;
with adoquery do
begin
close;
sql.Clear;
str:='insert into ckb (名称,编号,品类,数量,单位,总金额';
str:=str+',领货人,领货日期,经手人,出库日期,货位,单据编号,审核人)';
str:=str+' values(:clmc,:clbh,:pl,:sl,:dw,:zje,:lhr,:lhrq,:jsr,:ckrq,:hw,:djbh,:shr)';
sql.Add(str);
Parameters.ParamByName('clmc').Value:=trim(clmcbox.Text);
Parameters.ParamByName('clbh').Value:=trim(clbhedit.Text);
Parameters.ParamByName('pl').Value:=trim(clplbox.Text);
Parameters.ParamByName('sl').Value:=trim(sledit.Text);
Parameters.ParamByName('dw').Value:=trim(dwbox.Text);
Parameters.ParamByName('zje').Value:=trim(zjeedit.Text);
Parameters.ParamByName('lhr').Value:=trim(lhrbox.Text);
Parameters.ParamByName('lhrq').Value:=datetostr(lhrqbox.date);
Parameters.ParamByName('jsr').Value:=trim(jsrbox.Text);
Parameters.ParamByName('ckrq').Value:=datetostr(ckrqbox.date);
Parameters.ParamByName('hw').Value:=trim(hwedit.Text);
Parameters.ParamByName('djbh').Value:=trim(djbhedit.Text);
Parameters.ParamByName('shr').Value:=trim(shrbox.Text);
execsql;
showmessage('出库成功!');
end;
except
showmessage('出库失败!');
end;
clbhedit.Clear;
sledit.Clear;
zjeedit.Clear;
hwedit.Clear;
djbhedit.Clear;
end;
procedure Toutfm.SpeedButton2Click(Sender: TObject);
begin
clbhedit.Clear;
sledit.Clear;
zjeedit.Clear;
hwedit.Clear;
djbhedit.Clear;
end;
procedure Toutfm.SpeedButton4Click(Sender: TObject);
begin
print;
end;
procedure Toutfm.djbheditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
SpeedButton1.Click;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -