📄 unit2.pas
字号:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, Grids, DBGrids, StdCtrls, Buttons, Db, DBTables, PrintAtOnces;
type
TForm2 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
DBGrid1: TDBGrid;
Label1: TLabel;
Labeldate: TLabel;
Label3: TLabel;
DataSource1: TDataSource;
Query2: TQuery;
Query3: TQuery;
Labeldep: TLabel;
PrintAtOnce1: TPrintAtOnce;
Database1: TDatabase;
Query1: TQuery;
Query4: TQuery;
Query5: TQuery;
Image1: TImage;
SpeedButton5: TSpeedButton;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton6: TSpeedButton;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses unit1,unit3,unit4, Unit5;
{$R *.DFM}
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
printatonce1.Preview;
end;
procedure TForm2.SpeedButton4Click(Sender: TObject);
begin
form2.Close;
form2.Release;
end;
procedure TForm2.SpeedButton2Click(Sender: TObject);
begin
Operator:=InputBox('输入','请输入操作员姓名:','');
if Operator='' then
begin
exit;
end;
application.CreateForm(Tform3,form3);
form3.showmodal;
//form2.Hide;
end;
procedure TForm2.SpeedButton5Click(Sender: TObject);
var
tmpsql:string;
tmppkce,tmpint:integer;
tmpkcshje,tmpreal:real;
flag:boolean;
tmpid:integer;
begin
if messageBox(Handle,'这项操作将改变商品基本库和应付帐款平衡库中的相应字段,您确定吗?','警告',MB_OKCANCEL+MB_ICONINFORMATION)=IDOK then
begin
//显示进度条
Application.CreateForm(TFrmProgress,FrmProgress);
FrmProgress.Show;
Application.ProcessMessages;
//调整商品基本库
with query4 do
begin
tmpsql:='select 品名,牌号,规格,盘库差额 from GoodsCheckTempBase where 部门编码='''+labeldep.Caption+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
open;
end;
while not query4.Eof do
begin
tmpint:=0;
tmpreal:=0;
flag:=false;
with query2 do
begin
tmpsql:='select 当前库存,进价,库存结算金额,id from goodsbase where 品名='''+query4['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query4['牌号']+''' and 规格='''+query4['规格']+''' and 销售部门='''+labeldep.Caption+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
open;
end;
while not query2.eof do
begin
if flag=true then
break
else
begin
if (query2['当前库存']>0) and (query4['盘库差额']<>null) and (query4['盘库差额']>0) then
with query3 do
begin
//计算当前库存
if query4['盘库差额']=null then
tmppkce:=0
else
tmppkce:=query4['盘库差额'];
//tmppkce:=query2['当前库存']-tmppkce;
{
//处理当前库存是否为负
if tmppkce<0 then
begin
tmpint:=tmpint+abs(tmppkce);
tmppkce:=0;
end
else
begin
tmppkce:=tmppkce+tmpint;
flag:=true;
end;
}
//计算库存结算金额
//if query2['库存结算金额']=null then
// tmpkcshje:=0
//else
//tmpkcjsje:=query2['库存结算金额'];
tmpkcshje:=tmppkce*query2['进价'];
{
//处理库存结算金额是否为负
if tmpkcjsje<0 then
begin
tmpreal:=tmpreal+abs(tmpkcjsje);
tmpkcjsje:=0;
end
else
begin
tmpkcjsje:=tmpkcjsje+tmpreal;
end;
}
tmpid:=query2['id'];
tmpsql:='Update Goodsbase set 库存损耗数量='''+inttostr(tmppkce)+''',';
tmpsql:=tmpsql+'库存损耗金额='+floattostr(tmpkcshje)+' where id='''+inttostr(tmpid)+''' and 品名='''+query4['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query4['牌号']+''' and 规格='''+query4['规格']+''' and 销售部门='''+labeldep.Caption+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
execsql;
end;
end;
FrmProgress.ProgressBar.StepIt;
query2.Next;
end;
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
query4.Next;
end;
{ //调整应付帐款平衡库
with query4 do
begin
tmpsql:='select 品名,牌号,规格,盘库差额 from GoodsCheckTempBase where 部门编码='''+labeldep.Caption+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
open;
end;
while not query4.Eof do
begin
tmpint:=0;
flag:=false;
with query2 do
begin
tmpsql:='select 进价,供货商 from goodsbase where 品名='''+query4['品名']+'''';
tmpsql:=tmpsql+' and 牌号='''+query4['牌号']+''' and 规格='''+query4['规格']+''' and 销售部门='''+labeldep.Caption+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
open;
end;
while not query2.eof do
begin
with query3 do
begin
tmpsql:='select 库存结算金额 from CopeBalanceBase where 供货商='''+query2['供货商']+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
open;
end;
if flag=true then
break
else
begin
if (query4['盘库差额']<>null) and (query4['盘库差额']>0) then
with query5 do
begin
tmppkce:=query4['盘库差额'];
//计算库存结算金额
if query3['库存结算金额']=null then
tmpkcjsje:=0
else
tmpkcjsje:=query3['库存结算金额'];
tmpkcjsje:=tmpkcjsje-tmppkce*query2['进价'];
//处理库存结算金额是否为负
if tmpkcjsje<0 then
begin
tmpreal:=tmpreal+abs(tmpkcjsje);
tmpkcjsje:=0;
end
else
begin
tmpkcjsje:=tmpkcjsje+tmpreal;
flag:=true;
end;
tmpsql:='Update CopeBalancebase set 库存结算金额='+floattostr(tmpkcjsje)+'';
tmpsql:=tmpsql+' where 供货商='''+query2['供货商']+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
execsql;
end;
end;
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
query2.Next;
end;
FrmProgress.ProgressBar.StepIt;
if FrmProgress.ProgressBar.Position=FrmProgress.ProgressBar.Max then FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Min;
query4.Next;
end;
}
//写入盘点纪录库
with query4 do
begin
tmpsql:='Insert Into GoodsCheckBase select * from GoodsCheckTempBase where 部门编码='''+labeldep.Caption+'''';
close;
sql.Clear;
sql.add(tmpsql);
prepare;
execsql;
end;
//进度完成
FrmProgress.ProgressBar.Position:=FrmProgress.ProgressBar.Max;
FrmProgress.Close;
messagebox(handle,'写入完成!','提示',MB_OK+MB_ICONINFORMATION);
end;
end;
procedure TForm2.SpeedButton7Click(Sender: TObject);
var
tmpsql:string;
begin
{ with query4 do
begin
tmpsql:='Insert Into GoodsCheckBase select * from GoodsCheckTempBase where 部门编码='''+labeldep.Caption+'''';
close;
sql.Clear;
sql.add(tmpsql);
prepare;
execsql;
end;
messagebox(handle,'写入完成!','提示',MB_OK+MB_ICONINFORMATION);
}
end;
procedure TForm2.SpeedButton3Click(Sender: TObject);
begin
application.CreateForm(Tform4,form4);
form4.showmodal;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -