📄 unit14.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 + -