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

📄 unit2.pas

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