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

📄 unit14.pas

📁 基于ACESS数据库的小型进销存管理软件。
💻 PAS
字号:
unit Unit14;

interface

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

type
  TForm14 = class(TForm)
    ADOTable1: TADOTable;
    ADOQuery1: TADOQuery;
    BitBtn1: TBitBtn;
    ADOTable2: TADOTable;
    endtime: TDateTimePicker;
    Label4: TLabel;
    Label3: TLabel;
    startime: TDateTimePicker;
    Label1: TLabel;
    ADOTable3: TADOTable;
    procedure BitBtn1Click(Sender: TObject);
//    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form14: TForm14;

implementation

{$R *.dfm}

procedure TForm14.BitBtn1Click(Sender: TObject);
var i:integer;
var str:string;
var a:string;
var j:integer;
var h:integer;
begin
adotable3.Active:=true;
for i:=0 to adotable3.RecordCount-1 do
begin
adotable3.Delete;
end;
adotable3.Edit;
adotable3.FieldByName('startime').AsDateTime:=startime.Date;
adotable3.FieldByName('endtime').asdatetime:=endtime.Date;
adotable3.post;
form14.Enabled:=false;
cursor:=crHourGlass;
//总销量及消额的代码
adotable1.First;
if adotable2.RecordCount>0 then
begin
adotable2.First;
for h:=0 to adotable2.RecordCount-1 do
begin
adotable2.delete;
end;
end;
for i:=0 to adotable1.RecordCount-1 do
begin
with adoquery1 do
   begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    a:=adotable1.fieldbyname('xsy').asstring;
    str:='select * from out where outk='+''''+a+''''+' and outa between'+'#'+datetostr(startime.date)+'#'+'and '+'#'+datetostr(endtime.date)+'#';
    adoquery1.sql.add(str);
    adoquery1.Open;
    end;
for j:=0 to adoquery1.RecordCount-1 do
     begin
if(adotable2.FieldByName('xsy').asstring=adoquery1.FieldByName('outk').AsString)then
       begin
adotable2.Edit;
adotable2.FieldByName('xlz').asfloat:=adotable2.FieldByName('xlz').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xez').AsFloat:=adotable2.fieldbyname('xez').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end
else
       begin
adotable2.append;
adotable2.FieldByName('xsy').asstring:=adoquery1.fieldbyname('outk').asstring;
adotable2.FieldByName('xlz').asfloat:=adotable2.FieldByName('xlz').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xez').AsFloat:=adotable2.fieldbyname('xez').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end;
        end;
adotable1.Next;
    end;
//竹节销量及销额代码段
adotable1.First;
adotable2.Active:=false;
adotable2.Active:=true;
for i:=0 to adotable1.RecordCount-1 do
begin
with adoquery1 do
   begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    a:=adotable1.fieldbyname('xsy').asstring;
    str:='select * from out where outk='+''''+a+''''+' and outD=''竹'+'节'+'纱'''+' and outa between'+'#'+datetostr(startime.date)+'#'+'and '+'#'+datetostr(endtime.date)+'#';;
    adoquery1.sql.add(str);
    adoquery1.Open;
    end;
for j:=0 to adoquery1.RecordCount-1 do
     begin
//if(adotable2.FieldByName('xsy').asstring=adoquery1.FieldByName('outk').AsString)then
if adotable2.Locate('xsy',adoquery1.fieldbyname('outk').asstring,[locaseinsensitive]) then
begin
adotable2.Edit;
adotable2.FieldByName('xlzj').asfloat:=adotable2.FieldByName('xlzj').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xezj').AsFloat:=adotable2.fieldbyname('xezj').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end
else
       begin
adotable2.append;
adotable2.FieldByName('xsy').asstring:=adoquery1.fieldbyname('outk').asstring;
adotable2.FieldByName('xlzj').asfloat:=adotable2.FieldByName('xlzj').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xezj').AsFloat:=adotable2.fieldbyname('xezj').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end;
        end;
adotable1.Next;
    end;
//平纱销量及消额代码段
adotable1.First;
adotable2.Active:=false;
adotable2.Active:=true;
for i:=0 to adotable1.RecordCount-1 do
begin
with adoquery1 do
   begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    a:=adotable1.fieldbyname('xsy').asstring;
    str:='select * from out where outk='+''''+a+''''+' and outD=''平'+'纱'''+ ' and outa between'+'#'+datetostr(startime.date)+'#'+'and '+'#'+datetostr(endtime.date)+'#';;
    adoquery1.sql.add(str);
    adoquery1.Open;
    end;
for j:=0 to adoquery1.RecordCount-1 do
     begin
//if(adotable2.FieldByName('xsy').asstring=adoquery1.FieldByName('outk').AsString)then
if adotable2.Locate('xsy',adoquery1.fieldbyname('outk').asstring,[locaseinsensitive]) then
begin
adotable2.Edit;
adotable2.FieldByName('xlps').asfloat:=adotable2.FieldByName('xlps').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xeps').AsFloat:=adotable2.fieldbyname('xeps').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end
else
       begin
adotable2.append;
adotable2.FieldByName('xsy').asstring:=adoquery1.fieldbyname('outk').asstring;
adotable2.FieldByName('xlps').asfloat:=adotable2.FieldByName('xlps').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xeps').AsFloat:=adotable2.fieldbyname('xeps').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end;
        end;
adotable1.Next;
    end;
//气流纺销量及销额代码段
adotable1.First;
adotable2.Active:=false;
adotable2.Active:=true;
for i:=0 to adotable1.RecordCount-1 do
begin
with adoquery1 do
   begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    a:=adotable1.fieldbyname('xsy').asstring;
    str:='select * from out where outk='+''''+a+''''+' and outD=''气'+'流'+'纺'''+' and outa between'+'#'+datetostr(startime.date)+'#'+'and '+'#'+datetostr(endtime.date)+'#';;
    adoquery1.sql.add(str);
    adoquery1.Open;
    end;
for j:=0 to adoquery1.RecordCount-1 do
     begin
//if(adotable2.FieldByName('xsy').asstring=adoquery1.FieldByName('outk').AsString)then
if adotable2.Locate('xsy',adoquery1.fieldbyname('outk').asstring,[locaseinsensitive]) then
begin
adotable2.Edit;
adotable2.FieldByName('xlql').asfloat:=adotable2.FieldByName('xlql').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xeql').AsFloat:=adotable2.fieldbyname('xeql').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end
else
       begin
adotable2.append;
adotable2.FieldByName('xsy').asstring:=adoquery1.fieldbyname('outk').asstring;
adotable2.FieldByName('xlql').asfloat:=adotable2.FieldByName('xlql').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xeql').AsFloat:=adotable2.fieldbyname('xeql').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end;
        end;
adotable1.Next;
    end;
//双股线销量及销额代码段
adotable1.First;
adotable2.Active:=false;
adotable2.Active:=true;
for i:=0 to adotable1.RecordCount-1 do
begin
with adoquery1 do
   begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    a:=adotable1.fieldbyname('xsy').asstring;
    str:='select * from out where outk='+''''+a+''''+' and outD=''双'+'股'+'线'''+' and outa between'+'#'+datetostr(startime.date)+'#'+'and '+'#'+datetostr(endtime.date)+'#';;
    adoquery1.sql.add(str);
    adoquery1.Open;
    end;
for j:=0 to adoquery1.RecordCount-1 do
     begin
//if(adotable2.FieldByName('xsy').asstring=adoquery1.FieldByName('outk').AsString)then
if adotable2.Locate('xsy',adoquery1.fieldbyname('outk').asstring,[locaseinsensitive]) then
begin
adotable2.Edit;
adotable2.FieldByName('xlsg').asfloat:=adotable2.FieldByName('xlsg').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xesg').AsFloat:=adotable2.fieldbyname('xesg').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end
else
       begin
adotable2.append;
adotable2.FieldByName('xsy').asstring:=adoquery1.fieldbyname('outk').asstring;
adotable2.FieldByName('xlsg').asfloat:=adotable2.FieldByName('xlsg').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xesg').AsFloat:=adotable2.fieldbyname('xesg').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end;
        end;
adotable1.Next;
    end;
//弹力纱
adotable1.First;
adotable2.Active:=false;
adotable2.Active:=true;
for i:=0 to adotable1.RecordCount-1 do
begin
with adoquery1 do
   begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    a:=adotable1.fieldbyname('xsy').asstring;
    str:='select * from out where outk='+''''+a+''''+' and outD=''弹'+'力'+'纱'''+' and outa between'+'#'+datetostr(startime.date)+'#'+'and '+'#'+datetostr(endtime.date)+'#';;
    adoquery1.sql.add(str);
    adoquery1.Open;
    end;
for j:=0 to adoquery1.RecordCount-1 do
     begin
//if(adotable2.FieldByName('xsy').asstring=adoquery1.FieldByName('outk').AsString)then
if adotable2.Locate('xsy',adoquery1.fieldbyname('outk').asstring,[locaseinsensitive]) then
begin
adotable2.Edit;
adotable2.FieldByName('xltl').asfloat:=adotable2.FieldByName('xltl').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xetl').AsFloat:=adotable2.fieldbyname('xetl').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end
else
       begin
adotable2.append;
adotable2.FieldByName('xsy').asstring:=adoquery1.fieldbyname('outk').asstring;
adotable2.FieldByName('xltl').asfloat:=adotable2.FieldByName('xltl').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xetl').AsFloat:=adotable2.fieldbyname('xetl').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end;
        end;
adotable1.Next;
    end;
//线竹
adotable1.First;
adotable2.Active:=false;
adotable2.Active:=true;
for i:=0 to adotable1.RecordCount-1 do
begin
with adoquery1 do
   begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    a:=adotable1.fieldbyname('xsy').asstring;
    str:='select * from out where outk='+''''+a+''''+' and outD=''线'+'竹'''+' and outa between'+'#'+datetostr(startime.date)+'#'+'and '+'#'+datetostr(endtime.date)+'#';;
    adoquery1.sql.add(str);
    adoquery1.Open;
    end;
for j:=0 to adoquery1.RecordCount-1 do
     begin
//if(adotable2.FieldByName('xsy').asstring=adoquery1.FieldByName('outk').AsString)then
if adotable2.Locate('xsy',adoquery1.fieldbyname('outk').asstring,[locaseinsensitive]) then
begin
adotable2.Edit;
adotable2.FieldByName('xlxz').asfloat:=adotable2.FieldByName('xlxz').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xexz').AsFloat:=adotable2.fieldbyname('xexz').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end
else
       begin
adotable2.append;
adotable2.FieldByName('xsy').asstring:=adoquery1.fieldbyname('outk').asstring;
adotable2.FieldByName('xlxz').asfloat:=adotable2.FieldByName('xlxz').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xexz').AsFloat:=adotable2.fieldbyname('xexz').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end;
        end;
adotable1.Next;
    end;
//弹竹
adotable1.First;
adotable2.Active:=false;
adotable2.Active:=true;
for i:=0 to adotable1.RecordCount-1 do
begin
with adoquery1 do
   begin
    adoquery1.Close;
    adoquery1.SQL.Clear;
    a:=adotable1.fieldbyname('xsy').asstring;
    str:='select * from out where outk='+''''+a+''''+' and outD=''弹'+'竹'''+' and outa between'+'#'+datetostr(startime.date)+'#'+'and '+'#'+datetostr(endtime.date)+'#';;
    adoquery1.sql.add(str);
    adoquery1.Open;
    end;
for j:=0 to adoquery1.RecordCount-1 do
     begin
//if(adotable2.FieldByName('xsy').asstring=adoquery1.FieldByName('outk').AsString)then
if adotable2.Locate('xsy',adoquery1.fieldbyname('outk').asstring,[locaseinsensitive]) then
begin
adotable2.Edit;
adotable2.FieldByName('xltz').asfloat:=adotable2.FieldByName('xltz').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xetz').AsFloat:=adotable2.fieldbyname('xetz').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end
else
       begin
adotable2.append;
adotable2.FieldByName('xsy').asstring:=adoquery1.fieldbyname('outk').asstring;
adotable2.FieldByName('xltz').asfloat:=adotable2.FieldByName('xltz').asfloat+adoquery1.fieldbyname('outf').asfloat;
adotable2.FieldByName('xetz').AsFloat:=adotable2.fieldbyname('xetz').AsFloat+adoquery1.fieldbyname('outh').asfloat;
adotable2.post;
adoquery1.Next;
        end;
        end;
adotable1.Next;
    end;
form14.Enabled:=true;
cursor:=crdefault;
showmessage('销售明细统计完成');
    end;
end.

⌨️ 快捷键说明

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