⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit2.pas

📁 PosEasy收银系统源码,Pos机前后台管理代码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -