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

📄 unit12.pas

📁 基于ACESS数据库的小型进销存管理软件。
💻 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 + -