📄 unit12.pas
字号:
unit Unit12;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, FR_DSet, FR_DBSet, FR_Class, ADODB, DB, StdCtrls, ComCtrls,
ExtCtrls;
type
TForm12 = class(TForm)
startime: TDateTimePicker;
endtime: TDateTimePicker;
Label1: TLabel;
Button1: TButton;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ADOTable1: TADOTable;
frReport1: TfrReport;
frDBDataSet1: TfrDBDataSet;
ADOTable2: TADOTable;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form12: TForm12;
implementation
uses Frm_Print;
{$R *.dfm}
procedure TForm12.Button1Click(Sender: TObject);
var quer10:string;
var quer11:string;
var quer12:string;
var quer13:string;
var quer20:string;
var quer21:string;
var quer22:string;
var quer23:string;
var i:integer;
var j:integer;
var x:variant;
begin
form12.Enabled:=false;
cursor:=crHourGlass;
adotable1.Active:=false;
quer10:='select inc,sum(ine) as ine ,sum(inf) as inf ';
quer20:='select outc,sum(oute) as oute,sum(outf) as outf ';
quer12:=quer10+' from io'+' where ina between '+'#'+datetostr(startime.date)+'#'+'and'+'#'+datetostr(endtime.date)+'#'+'group by inc';
quer13:=quer10+' from io'+' where ina between #1900-1-1# and'+ '#'+datetostr(startime.Date-1)+'#'+'group by inc';
quer22:=quer20+' from out'+' where outa between'+ '#'+datetostr(startime.date)+'#'+'and'+'#'+datetostr(endtime.date)+'#'+'group by outc';
quer23:=quer20+' from out'+' where outa between #1900-1-1# and'+'#'+datetostr(startime.Date-1)+'#'+'group by outc';
with adoquery1 do
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.sql.add(quer13);
adoquery1.Open;
end;
adotable1.Active:=false;
adotable1.Active:=true;
if adotable1.RecordCount>0 then
begin
adotable1.First;
for j:=0 to adotable1.RecordCount-1 do
begin
adotable1.delete;
//adotable1.next;
end;
with adotable1 do
adoquery1.First;
begin
for i:=0 to adoquery1.RecordCount-1 do
begin
adotable1.append;
adotable1.FieldByName('pm').AsString:=adoquery1.fieldbyname('inc').asstring;
//adotable1.FieldByName('pl').asString:=adoquery1.fieldbyname('ind').AsString;
adotable1.FieldByName('JCS').AsInteger:=adoquery1.fieldbyname('ine').AsInteger;
adotable1.FieldByName('Jcz').AsFloat:=adoquery1.fieldbyname('inf').AsFloat;
adotable1.Post;
adoquery1.Next;
end;
end;
end
else
begin
with adotable1 do
begin
adoquery1.First;
for i:=0 to adoquery1.RecordCount-1 do
begin
adotable1.append;
adotable1.FieldByName('pm').AsString:=adoquery1.fieldbyname('inc').asstring;
//adotable1.fieldbyname('pl').asstring:=adoquery1.fieldbyname('ind').AsString;
adotable1.FieldByName('JCS').AsInteger:=adoquery1.fieldbyname('ine').AsInteger;
adotable1.FieldByName('Jcz').AsFloat:=adoquery1.fieldbyname('inf').AsFloat;
adotable1.Post;
adoquery1.Next;
end;
end;
end;
with adoquery2 do
begin
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.sql.add(quer23);
adoquery2.Open;
end;
adoquery2.Active:=true;
adotable1.Active:=false;
adotable1.Active:=true;
with adotable1 do
begin
adoquery2.First;
for i:=0 to adoquery2.RecordCount-1 do
begin
if adotable1.Locate('pm',adoquery2.fieldbyname('outc').asstring,[locaseinsensitive]) then
begin
adotable1.edit;
adotable1.FieldByName('CCs').AsInteger:=adoquery2.fieldbyname('oute').AsInteger;
adotable1.FieldByName('CCz').AsFloat:=adoquery2.fieldbyname('outf').asfloat;
adotable1.Post;
end;
x:=adotable1.Lookup('pm',adoquery2.fieldbyname('outc').AsString,'pm');
if varisnull(x) then
begin
adotable1.Last;
adotable1.append;
adotable1.FieldByName('pm').AsString:=adoquery2.fieldbyname('outc').asstring;
adotable1.FieldByName('ccs').AsInteger:=adoquery2.fieldbyname('oute').AsInteger;
adotable1.FieldByName('ccz').AsFloat:=adoquery2.fieldbyname('outf').asfloat;
adotable1.Post;
end;
adoquery2.Next;
end;
end;
adotable1.Active:=false;
adotable1.Active:=true;
with adotable1 do
begin
adotable1.First;
for i:=0 to adotable1.RecordCount-1 do
begin
adotable1.Edit;
adotable1.FieldByName('CSs').AsInteger:=adotable1.fieldbyname('jcs').AsInteger-adotable1.fieldbyname('ccs').asinteger;
adotable1.FieldByName('CSz').asfloat:=strtofloat(format('%8.6f',[adotable1.fieldbyname('jcz').asfloat-adotable1.fieldbyname('ccz').asfloat]));
adotable1.FieldByName('jcs').AsInteger:=0;
adotable1.FieldByName('jcZ').Asfloat:=0;
adotable1.FieldByName('CCS').AsInteger:=0;
adotable1.FieldByName('CcZ').Asfloat:=0;
adotable1.Post;
adotable1.Next;
end;
end;
with adoquery1 do
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.sql.add(quer12);
adoquery1.Open;
end;
adoquery1.Active:=false;
adoquery1.Active:=true;
adotable1.Active:=false;
adotable1.Active:=true;
with adotable1 do
begin
adoquery1.First;
for i:=0 to adoquery1.RecordCount-1 do
begin
if adotable1.Locate('pm',adoquery1.fieldbyname('inc').asstring,[locaseinsensitive]) then
begin
adotable1.edit;
adotable1.FieldByName('JCs').AsInteger:=adoquery1.fieldbyname('ine').AsInteger;
adotable1.FieldByName('JCz').AsFloat:=adoquery1.fieldbyname('inf').asfloat;
adotable1.Post;
end;
x:=adotable1.Lookup('pm',adoquery1.fieldbyname('inc').AsString,'pm');
if varisnull(x) then
begin
adotable1.Last;
adotable1.append;
adotable1.FieldByName('pm').AsString:=adoquery1.fieldbyname('inc').asstring;
adotable1.FieldByName('Jcs').AsInteger:=adoquery1.fieldbyname('ine').AsInteger;
adotable1.FieldByName('Jcz').AsFloat:=adoquery1.fieldbyname('inf').asfloat;
adotable1.Post;
end;
adoquery1.Next;
end;
end;
with adoquery2 do
begin
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.sql.add(quer22);
adoquery2.Open;
end;
adoquery2.Active:=false;
adoquery2.Active:=true;
adotable1.Active:=false;
adotable1.Active:=true;
with adotable1 do
begin
adoquery2.First;
for i:=0 to adoquery2.RecordCount-1 do
begin
if adotable1.Locate('pm',adoquery2.fieldbyname('outc').asstring,[locaseinsensitive]) then
begin
adotable1.edit;
adotable1.FieldByName('ccs').AsInteger:=adoquery2.fieldbyname('oute').AsInteger;
adotable1.FieldByName('ccz').AsFloat:=adoquery2.fieldbyname('outf').asfloat;
adotable1.Post;
end;
x:=adotable1.Lookup('pm',adoquery2.fieldbyname('outc').AsString,'pm');
if varisnull(x) then
begin
adotable1.Last;
adotable1.append;
adotable1.FieldByName('pm').AsString:=adoquery2.fieldbyname('outc').asstring;
adotable1.FieldByName('ccs').AsInteger:=adoquery2.fieldbyname('oute').AsInteger;
adotable1.FieldByName('ccz').AsFloat:=adoquery2.fieldbyname('outf').asfloat;
adotable1.Post;
end;
adoquery2.Next;
end;
end;
adotable1.Active:=false;
adotable1.Active:=true;
with adotable1 do
begin
adotable1.First;
for i:=0 to adotable1.RecordCount-1 do
begin
adotable1.Edit;
adotable1.FieldByName('kcs').AsInteger:=adotable1.fieldbyname('css').asinteger+adotable1.fieldbyname('jcs').AsInteger-adotable1.fieldbyname('ccs').asinteger;
adotable1.FieldByName('kcz').asfloat:=strtofloat(format('%8.6f',[adotable1.fieldbyname('csz').asfloat+adotable1.fieldbyname('jcz').asfloat-adotable1.fieldbyname('ccz').asfloat]));
adotable1.Post;
adotable1.Next;
end;
end;
adotable2.Active:=false;
adotable2.Active:=true;
adotable1.Active:=false;
adotable1.Active:=true;
with adotable1 do
begin
for i:=0 to adotable2.RecordCount-1 do
begin
if adotable1.Locate('pm',adotable2.fieldbyname('inc').asstring,[locaseinsensitive]) then
begin
adotable1.Edit;
adotable1.FieldByName('pl').AsString:=adotable2.fieldbyname('ind').asstring;
adotable1.FieldByName('pzh').AsString:=adotable2.fieldbyname('inl').asstring;
adotable1.post;
end;
adotable2.next;
end;
end;
with adotable1 do
adotable1.First;
for i:=0 to adotable1.RecordCount-1 do
begin
if (adotable1.FieldByName('ccs').asinteger=0) and (adotable1.FieldByName('jcs').AsInteger=0) and (adotable1.FieldByName('kcs').asinteger=0) and (adotable1.fieldbyname('css').asinteger=0) then
begin
adotable1.Delete;
end
else
begin
adotable1.Next;
end;
end;
form12.Enabled:=true;
cursor:=crdefault;
showmessage('库存统计完成');
// frReport1.LoadFromFile('print\108.frf');
// frReport1.OnObjectClick:= nil;
// frReport1.OnMouseOverObject:= nil;
//frReport1.ModifyPrepared:=false;
// frReport1.Preview:=FormPrint.frPreview1;
// if frReport1.PrepareReport then
// frReport1.ShowPreparedReport;
// FormPrint.ShowModal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -