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

📄 thwhunt.pas

📁 商品销售系统完全的功能SQL和JAVA
💻 PAS
字号:
unit thwhunt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ComCtrls, Grids, DBGridEh, StdCtrls, Buttons, ExtCtrls,
  BaseGrid, AdvGrid;

type
  Tthwhfrm = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn3: TBitBtn;
    GroupBox1: TGroupBox;
    GroupBox4: TGroupBox;
    Label1: TLabel;
    Edit3: TEdit;
    BitBtn2: TBitBtn;
    AdvStringGrid1: TAdvStringGrid;
    AdvStringGrid2: TAdvStringGrid;
    Timer1: TTimer;
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormActivate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  thwhfrm: Tthwhfrm;
implementation
  uses data;
{$R *.dfm}

procedure Tthwhfrm.BitBtn5Click(Sender: TObject);
var
 m:integer;
begin
   if edit3.Text='' then exit;
   with dataman.dbxQuery do
    begin
      close;
      sql.Clear;
      sql.Add('select 货物条形码,单价,数量,金额,退货原因 from withdraw where 退货单据号='''+edit3.text+'''');
      sql.Add('order by  货物条形码 DESC');
      prepared;
      open;
    end;
   if dataman.dbxQuery.IsEmpty then
   showmessage('没有单据号为'+trim(edit3.Text)+'的单据')
   else
   begin
   m:=1;
   dataman.dbxquery.first;
   while not dataman.dbxquery.eof do
   begin
   advstringgrid1.cells[1,m]:=dataman.dbxquery.fields[0].value;
   advstringgrid1.cells[2,m]:=dataman.dbxquery.fields[1].asstring;
   advstringgrid1.cells[3,m]:=dataman.dbxquery.fields[2].asstring;
   advstringgrid1.cells[4,m]:=dataman.dbxquery.fields[3].asstring;
   if dataman.dbxQuery.Fields[4].Value=null then
   advstringgrid1.cells[5,m]:=''
   else
   advstringgrid1.cells[5,m]:=dataman.dbxquery.fields[4].value;
   advstringgrid2.cells[0,m]:=dataman.dbxquery.fields[2].asstring;
   dataman.dbxquery.next;
   inc(m);
   end;
   end;
end;

procedure Tthwhfrm.BitBtn3Click(Sender: TObject);
begin
close;
end;

procedure Tthwhfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
thwhfrm:=nil;
thwhfrm.Free;
end;

procedure Tthwhfrm.FormActivate(Sender: TObject);
var
n:integer;
begin
for n:=1 to 8 do
 advstringgrid1.Cells[0,n]:=inttostr(n);
 advstringgrid1.Cells[1,0]:='货物条形码';
 advstringgrid1.Cells[2,0]:='单价';
 advstringgrid1.Cells[3,0]:='数量';
 advstringgrid1.Cells[4,0]:='金额';
 advstringgrid1.Cells[5,0]:='退货原因';
edit3.Text:='';
end;

procedure Tthwhfrm.BitBtn1Click(Sender: TObject);
var
 l,qualityt:integer;
 totalt:real;
begin
  timer1.Enabled:=false;
  qualityt:=0;
  totalt:=0;
  try
  if messagedlg('确定要修改此条记录?',mtwarning,[mbyes,mbno],0)=mryes then
    begin
    dataman.ADOCon.BeginTrans;
    //更新退货单据表
    for  l:=1 to 5 do
     begin
       if trim(advstringgrid1.Cells[1,l])='' then break;
       qualityt:=strtoint(advstringgrid1.cells[3,l])+qualityt;
       totalt:=strtoint(advstringgrid1.Cells[4,l])+totalt;
    end;
      with dataman.thQuery do
       begin
        close;
        sql.Clear;
        sql.Add('update withdrawm');
        sql.Add('set 退货数量=:wgno,退货金额=:tje');
        sql.Add('where  退货单据号='''+edit3.Text+'''');
        parameters.ParamByName('wgno').Value:=qualityt;
        parameters.ParamByName('tje').Value:=totalt;
        prepared;
        execsql;
       //修改退货明细表
        close;
        sql.Clear;
        for l:=1 to 5 do
        begin
        if trim(advstringgrid1.Cells[1,l])='' then break;
        sql.Add('update withdraw');
        sql.add('set 单价=:dj,数量=:qu,金额=:total');
        sql.Add('where 退货单据号='''+trim(edit3.Text)+''' and 货物条形码='''+trim(advstringgrid1.Cells[1,l])+'''');
        parameters.ParamByName('dj').Value:=strtofloat(trim(advstringgrid1.cells[2,l]));
        parameters.ParamByName('qu').Value:=strtoint(trim(advstringgrid1.Cells[3,l]));
        parameters.ParamByName('total').Value:=strtofloat(trim(advstringgrid1.Cells[4,l]));
        execsql;
        end;
       //修改库存
        close;
        sql.Clear;
        for l:=1 to 5 do
         begin
         if trim(advstringgrid1.Cells[1,l])='' then break;
         sql.Add('update kc set 库存数量=库存数量+:thno where 货物条形码='''+trim(advstringgrid1.Cells[1,l])+'''');
         parameters.ParamByName('thno').Value:=strtoint(advstringgrid1.Cells[3,l])-strtoint(advstringgrid2.Cells[0,l]);
         execsql;
         end;
       end;
       dataman.ADOCon.CommitTrans;
       showmessage('存盘成功!');
    end;
    except
     dataman.ADOCon.RollbackTrans;
     messagedlg('对不起!失败了!',mtconfirmation,[mbok],0);
    end;
end;

procedure Tthwhfrm.Timer1Timer(Sender: TObject);
var
 m:integer;
begin
 for m:=1 to 8 do
   begin
   if advstringgrid1.Cells[1,m]='' then break;
   advstringgrid1.Cells[4,m]:=floattostr(strtoint(advstringgrid1.Cells[2,m])*strtofloatdef(advstringgrid1.Cells[3,m],0));
   end;
end;

end.

⌨️ 快捷键说明

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