pdgx1.pas

来自「思微POS连锁超市管理系统 (商业代码),几年前的东西了」· PAS 代码 · 共 115 行

PAS
115
字号
unit pdgx1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables, StdCtrls, Buttons, EHGrids, DBGridEh, ComCtrls, ExtCtrls,
  ADODB;

type
  Tpdgx = class(TForm)
    Bevel1: TBevel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label1: TLabel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Query1: TADOQuery;
    Query3: TADOQuery;
    Query2: TADOQuery;
    ProgressBar1: TProgressBar;
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  pdgx: Tpdgx;

implementation

uses MainForm1;

{$R *.DFM}

procedure Tpdgx.FormActivate(Sender: TObject);
begin
  Query1.close;
  Query1.sql.Clear;
  Query1.sql.add('select count(*) from pdzcb');
  Query1.open;
  if Query1.Fields[0].asinteger = 0 then
  begin
    Application.MessageBox('还没有建立盘点清单,不能进行此操作.', '提示', mb_ok + MB_ICONWARNING); close;
  end;
end;

procedure Tpdgx.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := cafree;
end;

procedure Tpdgx.BitBtn1Click(Sender: TObject);
begin
  if Application.MessageBox('现在就进行盘点更新吗?', '提示', MB_YESNO + MB_ICONQUESTION) = IDYES then
  begin
    Query1.close;
    Query1.sql.clear;
    Query1.sql.add('delete from pdykb');
    Query1.ExecSQL;
    Query1.close;
    Query1.sql.clear;
    Query1.sql.add('select * from pdzcb');
    Query1.open;
    ProgressBar1.Max := Query1.RecordCount;
    while not Query1.Eof do
    begin
      ProgressBar1.Position := ProgressBar1.Position + 1;
      Query2.close;
      Query2.sql.clear;
      Query2.sql.add('select kcsl from pdgx_v where spcode=:code and ckcode=:ck');
      Query2.Parameters[0].Value := Query1.fieldbyname('spcode').asstring;
      Query2.Parameters[1].Value := Query1.fieldbyname('ckcode').asstring;
      Query2.open;
      Query3.close;
      Query3.sql.clear;
      Query3.sql.add('insert into pdykb(spcode,zcsl,spsl,yksl,ckcode)');
      Query3.sql.add('values (:spcode,:zcsl,:spsl,:yksl,:ckcode)');
      Query3.Parameters[0].Value := Query1.fieldbyname('spcode').asstring;
      Query3.Parameters[1].Value := Query1.fieldbyname('sl').asfloat;
      Query3.Parameters[2].Value := Query2.fields[0].asfloat;
      Query3.Parameters[3].Value := Query2.fields[0].asfloat - Query1.fieldbyname('sl').asfloat;
      Query3.Parameters[4].Value := Query1.fieldbyname('ckcode').asstring;
      Query3.ExecSQL;
      if (query2.fields[0].IsNull) and (RadioButton2.Checked = true) then
      begin
        Query1.Next;
        continue;
      end;
      Query3.close;
      Query3.sql.clear;
      Query3.sql.add('update spkcda set kcsl=(:kcsl)+kcsl where spcode=:spcode and ckcode=:ck');
      Query3.Parameters[1].Value := Query1.fieldbyname('spcode').asstring;
      Query3.Parameters[2].Value := Query1.fieldbyname('ckcode').asstring;
      Query3.Parameters[0].Value := Query2.fields[0].asfloat - Query1.fieldbyname('sl').asfloat;
      Query3.ExecSQL;
      Query1.Next;
    end;
    Application.MessageBox('盘点更新成功', '提示', MB_OK + MB_ICONASTERISK);
    close;
  end;
end;

procedure Tpdgx.BitBtn2Click(Sender: TObject);
begin
  close;
end;

end.

⌨️ 快捷键说明

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