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

📄 f_loss.pas

📁 仓库管理系统 仓库管理系统
💻 PAS
字号:
unit f_loss;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, DB, ADODB, StdCtrls, ExtCtrls, Grids, DBGrids, Buttons,
  DBCtrls, Mask, DBGridEh;

type
  Tdfmloss = class(TForm)
    StatusBar1: TStatusBar;
    Panel2: TPanel;
    postbtn: TBitBtn;
    DataSource2: TDataSource;
    Atblbranch: TADOTable;
    ATblspec: TADOTable;
    DataSource3: TDataSource;
    DataSource4: TDataSource;
    AQryware: TADOQuery;
    BitBtn1: TBitBtn;
    ADOQuery1: TADOQuery;
    DataSource6: TDataSource;
    Panel1: TPanel;
    Panel3: TPanel;
    Label3: TLabel;
    DBLookupComboBox1: TDBLookupComboBox;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    DataSource1: TDataSource;
    ADOQuery2: TADOQuery;
    ADOQuery4: TADOQuery;
    Label1: TLabel;
    DateTimePicker1: TDateTimePicker;
    ADOQuery5: TADOQuery;
    ADOQuery6: TADOQuery;
    ADOQuery7: TADOQuery;
    ADOQuery3: TADOQuery;
    Label2: TLabel;
    DateTimePicker2: TDateTimePicker;
    DBGridEh1: TDBGridEh;
    DBGridEh2: TDBGridEh;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure postbtnClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure readycheck;
    procedure exequery;
    procedure delquery;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  dfmloss: Tdfmloss;
  fstr4,delstr:string;

implementation

uses dbmRainbowMis, chHeadUnit, dfm_updasto;

{$R *.dfm}

procedure Tdfmloss.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Atblbranch.Active := false;
  ATblspec.Active := false;
  action:=cafree;
end;

procedure Tdfmloss.FormCreate(Sender: TObject);
begin
  Atblbranch.Active := true;
  ATblspec.Active := true;
  DateTimePicker1.Date :=date();
  DateTimePicker2.Date :=date();  
end;

procedure Tdfmloss.FormKeyPress(Sender: TObject; var Key: Char);
begin
  chHeadUnit.tabventer(dfmloss,key);
end;

procedure Tdfmloss.postbtnClick(Sender: TObject);
begin
  readycheck; {准备好各项用于计算的表}
  ADOQuery2.close; {显示盘点汇总表}
  ADOQuery2.open;
  {显示损益表}
  with ADOQuery1 do
  begin
    Close;
    Parameters.ParamByName('vbmh').Value :=trim(DBLookupComboBox1.Text) ;
    Open ;
  end;
end;

procedure Tdfmloss.BitBtn1Click(Sender: TObject);
begin
  if ADOQuery2.IsEmpty = false then
  begin
    readycheck;
    If  Application.FindComponent('dfmupdasto')=Nil Then
      dfmupdasto:=Tdfmupdasto.Create(Application);
    dfmupdasto.Showmodal;
  end
  else
    Application.MessageBox('没有盘点信息,无法更新库存!','系统提示',MB_OK);
end;

procedure Tdfmloss.readycheck;
var
  fstr:string;
begin
  delstr:='delete * from t_check'; {清空盘点汇总表}
  delquery;
  delstr:='delete from t_checkdel';{清空盘点销售差异表}
  delquery;
  delstr:='delete from t_stoindel';{清空盘点进货差异表}
  delquery;
  delstr:='delete from t_stooutdel';{清空盘点出货差异表}
  delquery;
  {汇总要从盘点中减去的销售}
  fstr4:='insert into t_checkdel select bmh,clabel,spbh,sum(t_saledet.sl) as sl'
     +' from t_saledet'
     +' where t_saledet.bmh=''%s'' and t_saledet.rq>#%s# and t_saledet.rq<=#%s#'
     +' group by bmh,clabel,spbh';
  exequery;
  {汇总要从盘点差异的进货}
  fstr4:='insert into t_stoindel select cinceptbra,clabel,spbh,sum(t_stoin.sl) as sl'
     +' from t_stoin'
     +' where t_stoin.cinceptbra=''%s'' and t_stoin.cdate>#%s# and t_stoin.cdate<=#%s#'
     +' group by cinceptbra,clabel,spbh';
  exequery;
  {汇总盘点差异的出货}
  fstr4:='insert into t_stooutdel select csendbra,clabel,spbh,sum(t_stoout.sl) as sl'
     +' from t_stoout'
     +' where t_stoout.csendbra=''%s'' and t_stoout.cdate>#%s# and t_stoout.cdate<=#%s#'
     +' group by csendbra,clabel,spbh';
  exequery;
  {汇总出盘点总表}
  fstr:='insert into t_check select bmh,clabel,spbh,sum(cnumber) as cnumber,cdate'
     +' from t_checkin'
     +' where t_checkin.bmh=''%s'' and t_checkin.cdate=#%s#'
     +' group by cdate,bmh,clabel,spbh';
  with ADOQuery6 do
  begin
    close;
    sql.Clear ;
    sql.Add(Format(fstr,[trim(DBLookupComboBox1.text),datetostr(DateTimePicker1.Date)]));
    Prepared;
    ExecSql;
  end;
end;

procedure Tdfmloss.exequery;
begin
  with ADOQuery7 do
  begin
    close;
    sql.Clear ;
    sql.Add(Format(fstr4,[trim(DBLookupComboBox1.text),datetostr(DateTimePicker1.Date),datetostr(DateTimePicker2.Date)]));
    Prepared;
    ExecSql;
  end;
end;

procedure Tdfmloss.delquery;
begin
  with ADOQuery5 do
  begin
    SQL.Clear;
    SQL.Add(delstr);
    ExecSQL ;
  end;  
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -