📄 unit2.pas
字号:
procedure TForm2.SpeedButton6Click(Sender: TObject);
var
tmpsql:string;
tmpkcsl:integer;
begin
application.CreateForm(Tform1,form1);
form1.showmodal;
if IsOK=true then
begin
//显示进度条
Application.CreateForm(TFrmProgress,FrmProgress);
FrmProgress.Show;
Application.ProcessMessages;
//先把本部门在盘点临时库中的数据清空
with query1 do
begin
tmpsql:='delete from GoodsCheckTempBase where 部门编码='''+form1.EditDepcode.Text+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
execsql;
end;
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
//先把商品基本信息写入盘点临时库
with query1 do
begin
tmpsql:='Insert Into GoodsCheckTempBase(品名,牌号,规格,分类编码,损耗限额比,部门编码)';
tmpsql:=tmpsql+'select distinct 品名,牌号,规格,分类,损耗限额比,销售部门 from goodsbase where 销售部门='''+form1.EditDepcode.Text+'''';
close;
sql.Clear;
sql.add(tmpsql);
prepare;
execsql;
end;
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
//从盘点临时库中取数据,生成循环条件
with query1 do
begin
tmpsql:='select 品名,牌号,规格 from GoodsCheckTempBase where 部门编码='''+form1.EditDepcode.Text+'''';
close;
sql.Clear;
sql.add(tmpsql);
prepare;
open;
end;
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
//循环操作把每种商品的库存数量,进货数量,销售数量写入盘点临时库
while not query1.Eof do
begin
with query2 do
begin
tmpsql:='Update GoodsCheckTempBase set 操作日期='''+formatdatetime('yyyy-mm-dd',now)+''',库存数量=(select sum(当前库存) from Goodsbase where 品名='''+query1['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query1['牌号']+''' and 规格='''+query1['规格']+''' and 部门编码='''+form1.EditDepcode.Text+'''),';
tmpsql:=tmpsql+'进货数量=(select sum(进货数量) from Goodsbase where 品名='''+query1['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query1['牌号']+''' and 规格='''+query1['规格']+''' and 部门编码='''+form1.EditDepcode.Text+'''),';
tmpsql:=tmpsql+'销售数量=(select sum(销售数量) from Goodsbase where 品名='''+query1['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query1['牌号']+''' and 规格='''+query1['规格']+''' and 部门编码='''+form1.EditDepcode.Text+''')';
tmpsql:=tmpsql+' where 品名='''+query1['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query1['牌号']+''' and 规格='''+query1['规格']+''' and 部门编码='''+form1.EditDepcode.Text+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
execsql;
end;
//进度条。。。。
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
query1.Next;
end;
//与大库库存比较
with query1 do
begin
tmpsql:='select 品名,牌号,规格,库存数量 from GoodsCheckTempBase';
close;
sql.clear;
sql.add(tmpsql);
prepare;
open;
end;
while not query1.Eof do
begin
with query2 do
begin
tmpsql:='select sum(大库库存) as 大库库存 from storebase where 品名='''+query1['品名']+''' and 牌号='''+query1['牌号']+''' and 规格='''+query1['规格']+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
open;
end;
if query2['大库库存']<>null then
with query3 do
begin
tmpkcsl:=query1['库存数量']-query2['大库库存'];
tmpsql:='Update GoodsCheckTempBase set 库存数量='''+inttostr(tmpkcsl)+''' where 品名='''+query1['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query1['牌号']+''' and 规格='''+query1['规格']+'''';
close;
sql.Clear;
sql.add(tmpsql);
prepare;
execsql;
end;
//进度条
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
query1.Next;
end;
//进度完成
FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Max;
FrmProgress.Close;
//显示数据
speedbutton1.Enabled:=true;
speedbutton2.Enabled:=true;
speedbutton3.Enabled:=true;
speedbutton4.Enabled:=true;
speedbutton5.Enabled:=true;
labeldep.Caption:=form1.EditDepcode.Text;
labeldate.Caption:='日期:'+formatdatetime('yyyy-mm-dd',now);
//labeldate.Align:=alRight;
with query1 do
begin
tmpsql:='select * from GoodsCheckTempBase where 部门编码='''+form1.EditDepcode.Text+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
open;
end;
dbgrid1.Columns.Items[0].FieldName:='品名';
dbgrid1.Columns.Items[1].FieldName:='牌号';
dbgrid1.Columns.Items[2].FieldName:='规格';
dbgrid1.Columns.Items[3].FieldName:='库存数量';
dbgrid1.Columns.Items[4].FieldName:='盘库结果';
dbgrid1.Columns.Items[5].FieldName:='盘库差额';
dbgrid1.Columns.Items[6].FieldName:='备注';
end;
end;
procedure TForm2.BitBtn1Click(Sender: TObject);
var
tmpsql:string;
tmpkcsl:integer;
begin
application.CreateForm(Tform1,form1);
form1.showmodal;
if IsOK=true then
begin
//显示进度条
Application.CreateForm(TFrmProgress,FrmProgress);
FrmProgress.Show;
Application.ProcessMessages;
//先把本部门在盘点临时库中的数据清空
with query1 do
begin
tmpsql:='delete from GoodsCheckTempBase where 部门编码='''+form1.EditDepcode.Text+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
execsql;
end;
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
//先把商品基本信息写入盘点临时库
with query1 do
begin
tmpsql:='Insert Into GoodsCheckTempBase(品名,牌号,规格,分类编码,损耗限额比,部门编码)';
tmpsql:=tmpsql+'select distinct 品名,牌号,规格,分类,损耗限额比,销售部门 from goodsbase where 销售部门='''+form1.EditDepcode.Text+'''';
close;
sql.Clear;
sql.add(tmpsql);
prepare;
execsql;
end;
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
//从盘点临时库中取数据,生成循环条件
with query1 do
begin
tmpsql:='select 品名,牌号,规格 from GoodsCheckTempBase where 部门编码='''+form1.EditDepcode.Text+'''';
close;
sql.Clear;
sql.add(tmpsql);
prepare;
open;
end;
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
//循环操作把每种商品的库存数量,进货数量,销售数量写入盘点临时库
while not query1.Eof do
begin
with query2 do
begin
tmpsql:='Update GoodsCheckTempBase set 操作日期='''+formatdatetime('yyyy-mm-dd',now)+''',库存数量=(select sum(当前库存) from Goodsbase where 品名='''+query1['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query1['牌号']+''' and 规格='''+query1['规格']+''' and 部门编码='''+form1.EditDepcode.Text+'''),';
tmpsql:=tmpsql+'进货数量=(select sum(进货数量) from Goodsbase where 品名='''+query1['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query1['牌号']+''' and 规格='''+query1['规格']+''' and 部门编码='''+form1.EditDepcode.Text+'''),';
tmpsql:=tmpsql+'销售数量=(select sum(销售数量) from Goodsbase where 品名='''+query1['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query1['牌号']+''' and 规格='''+query1['规格']+''' and 部门编码='''+form1.EditDepcode.Text+''')';
tmpsql:=tmpsql+' where 品名='''+query1['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query1['牌号']+''' and 规格='''+query1['规格']+''' and 部门编码='''+form1.EditDepcode.Text+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
execsql;
end;
//进度条。。。。
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
query1.Next;
end;
//与大库库存比较
with query1 do
begin
tmpsql:='select 品名,牌号,规格,库存数量 from GoodsCheckTempBase';
close;
sql.clear;
sql.add(tmpsql);
prepare;
open;
end;
while not query1.Eof do
begin
with query2 do
begin
tmpsql:='select sum(大库库存) as 大库库存 from storebase where 品名='''+query1['品名']+''' and 牌号='''+query1['牌号']+''' and 规格='''+query1['规格']+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
open;
end;
if query2['大库库存']<>null then
with query3 do
begin
tmpkcsl:=query1['库存数量']-query2['大库库存'];
tmpsql:='Update GoodsCheckTempBase set 库存数量='''+inttostr(tmpkcsl)+''' where 品名='''+query1['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query1['牌号']+''' and 规格='''+query1['规格']+'''';
close;
sql.Clear;
sql.add(tmpsql);
prepare;
execsql;
end;
//进度条
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
query1.Next;
end;
//进度完成
FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Max;
FrmProgress.Close;
//显示数据
speedbutton1.Enabled:=true;
speedbutton2.Enabled:=true;
speedbutton3.Enabled:=true;
speedbutton4.Enabled:=true;
speedbutton5.Enabled:=true;
labeldep.Caption:=form1.EditDepcode.Text;
labeldate.Caption:='日期:'+formatdatetime('yyyy-mm-dd',now);
//labeldate.Align:=alRight;
with query1 do
begin
tmpsql:='select * from GoodsCheckTempBase where 部门编码='''+form1.EditDepcode.Text+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
open;
end;
dbgrid1.Columns.Items[0].FieldName:='品名';
dbgrid1.Columns.Items[1].FieldName:='牌号';
dbgrid1.Columns.Items[2].FieldName:='规格';
dbgrid1.Columns.Items[3].FieldName:='库存数量';
dbgrid1.Columns.Items[4].FieldName:='盘库结果';
dbgrid1.Columns.Items[5].FieldName:='盘库差额';
dbgrid1.Columns.Items[6].FieldName:='备注';
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
speedbutton1.Enabled:=false;
speedbutton2.Enabled:=false;
speedbutton3.Enabled:=false;
speedbutton4.Enabled:=true;
speedbutton5.Enabled:=false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -