📄 uspckxx.pas
字号:
unit USPCKXX;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, ComCtrls;
type
TSPCKXX = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Edit1: TEdit;
ComboBox1: TComboBox;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
DateTimePicker1: TDateTimePicker;
Edit6: TEdit;
Memo1: TMemo;
GroupBox3: TGroupBox;
SpeedButton1: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
procedure SpeedButton5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox1DropDown(Sender: TObject);
procedure Edit5Exit(Sender: TObject);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
procedure Edit6KeyPress(Sender: TObject; var Key: Char);
procedure Edit6Change(Sender: TObject);
procedure Edit5Change(Sender: TObject);
procedure Memo1Change(Sender: TObject);
private
{ Private declarations }
public
procedure GetAll; //获得所有数据
procedure posting; //提交数据
Function CanSave: Boolean; //判断是否保存
procedure bh; //自动编号
Procedure tr; //去除空字符
{ Public declarations }
end;
var
SPCKXX: TSPCKXX;
implementation
uses UDM, UMAIN;
{$R *.dfm}
procedure TSPCKXX.tr;
var
i:integer;
begin
for i:=ComponentCount - 1 downto 0 do
if(Components[i] is TEdit) then
TEdit(Components[i]).Text:=trim(TEdit(Components[i]).Text);
end;
procedure TSPCKXX.GetAll;//获得所有数据
begin
Edit1.Text:=DM.DSOSPCKXX.FieldByName('出库编号').AsString;
ComboBox1.Text:=DM.DSOSPCKXX.FieldByName('商品编号').AsString;
Edit2.Text:=DM.DSOSPCKXX.FieldByName('商品名称').AsString;
Edit3.Text:=DM.DSOSPCKXX.FieldByName('商品单位').AsString;
Edit4.Text:=DM.DSOSPCKXX.FieldByName('商品单价').AsString;
Edit5.Text:=DM.DSOSPCKXX.FieldByName('商品数量').AsString;
DateTimePicker1.DateTime:=DM.DSOSPCKXX.FieldByName('出库日期').AsDateTime;
Edit6.Text:=DM.DSOSPCKXX.FieldByName('经手人').AsString;
Memo1.Text:=DM.DSOSPCKXX.FieldByName('备注').AsString;
end;
procedure TSPCKXX.Posting; //提交数据
begin
if ActionCD='N' then
begin
with DM.QSPCKXX do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO 商品出库信息(商品编号,商品名称,商品单位,商品单价,商品数量,出库日期,经手人,备注,出库编号)');
SQL.Add('Values(:商品编号,:商品名称,:商品单位,:商品单价,:商品数量,:出库日期,:经手人,:备注,:出库编号)');
Parameters.Items[0].Value:=ComboBox1.Text;
Parameters.Items[1].Value:=Edit2.Text;
Parameters.Items[2].Value:=Edit3.Text;
Parameters.Items[3].Value:=Edit4.Text;
Parameters.Items[4].Value:=Edit5.Text;
DateTimePicker1.Date:=date();
Parameters.Items[5].Value:=FormatDateTime('yyyy-mm-dd' ,DateTimePicker1.Date);
Parameters.Items[6].Value:=Edit6.Text;
Parameters.Items[7].Value:=Memo1.Text;
Parameters.Items[8].Value:=Edit1.Text;
Prepared:=True;
ExecSQL;
end;
end;
end;
function TSPCKXX.CanSave: Boolean;//判断是否保存
begin
if ComboBox1.Text='' then
begin
Result:=False;
Application.MessageBox('商品编号不能为空!','提示信息',0+MB_ICONINFORMATION);
exit;
end;
if Edit1.Text='' then
begin
Result:=False;
Application.MessageBox('出库编号不能为空!','提示信息',0+MB_ICONINFORMATION);
exit;
end;
if Edit2.Text='' then
begin
Result:=False;
Application.MessageBox('商品名称不能为空!','提示信息',0+MB_ICONINFORMATION);
exit;
end;
if Edit3.Text='' then
begin
Result:=False;
Application.MessageBox('商品单位不能为空!','提示信息',0+MB_ICONINFORMATION);
exit;
end;
if Edit4.Text='' then
begin
Result:=False;
Application.MessageBox('商品单价不能为空!','提示信息',0+MB_ICONINFORMATION);
exit;
end;
if Edit5.Text='' then
begin
Result:=False;
Application.MessageBox('商品数量不能为空!','提示信息',0+MB_ICONINFORMATION);
exit;
end;
if Edit6.Text='' then
begin
Result:=False;
Application.MessageBox('经手人不能为空!','提示信息',0+MB_ICONINFORMATION);
exit;
end;
end;
procedure TSPCKXX.BH; //自动编号
var
s,m:string;
i:integer;
begin
s:= 'CK'+ FormatDateTime('yyyymmdd',Now());
With DM.QSPRKXX do
begin
Close;
SQL.Clear;
SQL.Add('select max(出库编号) as ss From 商品出库信息 ');
Open;
end;
If DM.DSOSPCKXX.FieldByName('出库编号').Value = null then
s := s + '001'
else
begin
DM.DSOSPCKXX.Last;
m:= Trim(DM.DSOSPCKXX.FieldByName('出库编号').Value) ;
i:= StrToInt(Trim(Copy(m,11,8))) ;
if i<9 then
s:= s + '00'+ InttoStr(i +1)
else if i<99 then
s:= s + '0'+ InttoStr(i +1)
else
s:= s +InttoStr(i +1);
end;
Edit1.Text := s;
end;
procedure TSPCKXX.SpeedButton5Click(Sender: TObject);
begin
ActionCD:='';
Close;
end;
procedure TSPCKXX.FormCreate(Sender: TObject);
begin //创建窗体时打开数据库表
with DM.QSPCKXX do
begin
Close;
SQL.Clear;
SQL.Add('select * from 商品出库信息');
Open;
end;
DM.DSOSPCKXX.Open;
end;
procedure TSPCKXX.FormShow(Sender: TObject);
begin //判断按钮是否选中状态
GroupBox1.Enabled:=False;
if ActionCD = 'M' then
GetAll
else if ActionCD = 'N' then
begin
GroupBox1.Enabled:=False;
end;
end;
procedure TSPCKXX.SpeedButton1Click(Sender: TObject);
begin //单击添加按钮,控件初始化
GroupBox1.Enabled:=True;
SpeedButton3.Enabled:=True;
SpeedButton4.Enabled:=True;
ComboBox1.Clear;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
DateTimePicker1.DateTime:=now;
Memo1.Clear;
ActionCD:= 'N';
bh;
ComboBox1.SetFocus;
SpeedButton1.Enabled:=False;
end;
procedure TSPCKXX.SpeedButton3Click(Sender: TObject);
begin
if (cansave) then
begin
Posting; // 提交存盘
GroupBox1.Enabled:=False;
DM.DSOSPCKXX.Close;
DM.DSOSPCKXX.Open;
with DM.QSPCKXX do //刷新数据表
begin
Close;
SQL.Clear;
SQL.Add('Select * from 商品出库信息');
Open;
end;
Application.MessageBox('保存成功!','提示!',64);
actioncd:='';
SPCKXX.Close;
end;
end;
procedure TSPCKXX.SpeedButton4Click(Sender: TObject);
begin
SpeedButton1.Enabled:=True; //单击取消,控件按钮可用状态
SpeedButton3.Enabled:=False;
SpeedButton4.Enabled:=False;
GroupBox1.Enabled:=False;
ActionCD:='';
GetAll;
end;
procedure TSPCKXX.ComboBox1Change(Sender: TObject);
begin //通过商品编号,将商品名称、单位、商品单价等信息显示在相对应的EDIT中
Edit2.Clear;
with DM.QSPRKXX do
begin
Close;
SQL.Clear;
SQL.Add('Select 商品名称 from 商品入库信息 where 入库编号='+''''+ComboBox1.Text+'''');
Open;
end;
Edit2.Text:=DM.QSPRKXX.FieldByName('商品名称').Value;
Edit3.Clear;
with DM.QSPRKXX do
begin
Close;
SQL.Clear;
SQL.Add('Select 商品单位 from 商品入库信息 where 入库编号='+''''+ComboBox1.Text+'''');
Open;
end;
Edit3.Text:=DM.QSPRKXX.FieldByName('商品单位').Value;
Edit4.Clear;
with DM.QSPRKXX do
begin
Close;
SQL.Clear;
SQL.Add('Select 商品单价 from 商品入库信息 where 入库编号='+''''+ComboBox1.Text+'''');
Open;
end;
Edit4.Text:=DM.QSPRKXX.FieldByName('商品单价').Value;
Edit5.SetFocus;
end;
procedure TSPCKXX.ComboBox1DropDown(Sender: TObject);
var //将商品编号显示在ComboBox1中
i:integer;
begin
ComboBox1.Clear;
with DM.QSPRKXX do
begin
SQL.clear;
SQl.Text := 'select 入库编号 from 商品入库信息';
Close;
Active := False;
prepared := False;
prepared := True;
Active := True;
if (recordcount > 0) then
first;
for i := 0 to recordcount - 1 do
begin
combobox1.Items.add(FieldByName('入库编号').asstring);
next;
end;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
end;
end;
procedure TSPCKXX.Edit5Exit(Sender: TObject);
begin //判断出库数量与库存数据,出库数量大于库存数量,退出。否则进行数据计算
with DM.QKCB do
begin
Close;
SQL.Clear;
SQL.Add('Select 商品数量,商品单价,商品规格,商品单位 from 库存表 where 商品名称='+''''+Edit2.Text+'''');
Open;
end;
if DM.QKCB.FieldByName('商品数量').Value<Edit5.Text then
begin
Application.MessageBox('出库数量不能大于库存数量!','提示!',64);
Edit5.Clear;
Edit5.SetFocus;
exit;
end
else
begin
DM.QKCB.Edit;
DM.QKCB.FieldByName('商品数量').Value:=DM.QKCB.FieldByName('商品数量').Value-strtoint(Edit5.Text);
DM.QKCB.UpdateRecord;
DM.QKCB.Post;
end;
end;
procedure TSPCKXX.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in[#13]) then
key:=#0;
if key=#13 then
Edit5.SetFocus;
end;
procedure TSPCKXX.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#13,#8]) then
key:=#0;
if key=#13 then
DateTimePicker1.SetFocus;
end;
procedure TSPCKXX.DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Edit6.SetFocus;
end;
procedure TSPCKXX.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if key in['a'..'z','A'..'Z','0'..'9'] then
key:=#0;
if key=#13 then
Memo1.SetFocus;
end;
procedure TSPCKXX.Edit6Change(Sender: TObject);
begin
tr;
end;
procedure TSPCKXX.Edit5Change(Sender: TObject);
begin
tr;
end;
procedure TSPCKXX.Memo1Change(Sender: TObject);
begin
Memo1.Text:=Trim(Memo1.Text);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -