📄 uqueryplan.pas
字号:
unit uqueryplan;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, ComCtrls, Buttons, DB, DBTables, Grids,
DBGrids, dbcgrids, Mask;
type
Tfmqueryplan = class(TForm)
Label1: TLabel;
DBGrid1: TDBGrid;
Table1: TTable;
Table2: TTable;
Table3: TTable;
DataSource1: TDataSource;
BitBtn1: TBitBtn;
GroupBox1: TGroupBox;
Edit1: TEdit;
DBLookupComboBox1: TDBLookupComboBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
BitBtn2: TBitBtn;
Query1: TQuery;
Query2: TQuery;
DataSource2: TDataSource;
DataSource3: TDataSource;
StatusBar1: TStatusBar;
Memo1: TMemo;
ComboBox1: TComboBox;
Label2: TLabel;
Table1Ddate: TStringField;
Table1Atnum: TStringField;
Table1Agname: TStringField;
Table1Adime: TStringField;
Table1Nton: TFloatField;
Table1Agoodd: TStringField;
Table1Adir: TStringField;
Table1Aowner: TStringField;
Table1Abz: TStringField;
Table1Lend: TBooleanField;
Table1sumicoil: TIntegerField;
Table1sumiton: TFloatField;
Table1sumocoil: TIntegerField;
Table1sumoton: TFloatField;
GroupBox2: TGroupBox;
BitBtn3: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure FormClick(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure CheckBox3Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure ComboBox1Change(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmqueryplan: Tfmqueryplan;
implementation
uses ulogin, udm_user, uprintdbgrid;
{$R *.dfm}
procedure Tfmqueryplan.FormCreate(Sender: TObject);
begin
application.OnMessage:=fmlogin.doenterastab;
combobox1.ItemIndex:=strtoint(formatdatetime('mm',date()))-1;
end;
procedure Tfmqueryplan.CheckBox1Click(Sender: TObject);
begin
fmqueryplan.Click;
end;
procedure Tfmqueryplan.FormClick(Sender: TObject);
begin
if checkbox2.State=cbunchecked then
begin
dblookupcombobox1.ListFieldIndex:=-1;
dblookupcombobox1.Visible:=false;
end
else
begin
dblookupcombobox1.listfieldindex:=0;
dblookupcombobox1.Visible:=true;
end;
if checkbox3.State=cbunchecked then
begin
edit1.Text:='';
edit1.Visible:=false;
end
else
begin
edit1.Text:='';
edit1.Visible:=true;
end;
end;
procedure Tfmqueryplan.CheckBox2Click(Sender: TObject);
begin
fmqueryplan.Click;
end;
procedure Tfmqueryplan.CheckBox3Click(Sender: TObject);
begin
fmqueryplan.Click;
end;
procedure Tfmqueryplan.FormActivate(Sender: TObject);
begin
fmqueryplan.Click;
edit1.Text:='';
memo1.Clear;
bitbtn2.enabled:=false;
end;
procedure Tfmqueryplan.BitBtn1Click(Sender: TObject);
var pstr,pstr1,pstr2:string;
sumton:single;
i:integer;
begin
pstr:='';
pstr:='select * from mplan where ';
if combobox1.ItemIndex=12 then
pstr:=pstr+'ddate<>'+''''+''''
else
pstr:=pstr+'ddate='+''''+combobox1.Text+'''';
if checkbox2.Checked=true then
pstr:=pstr+'and agoodd='+''''+dblookupcombobox1.Text+'''';
if checkbox3.Checked=true then
pstr:=pstr+'and atnum='+''''+edit1.Text+'''';
pstr:=pstr+'order by ddate,agoodd,agname';
query2.Close;
query2.SQL.clear;
query2.SQL.Add(pstr);
query2.Open;
sumton:=0;
query1.First;
for i:=1 to query2.RecordCount
do
begin
sumton:=sumton+query2.FieldValues['nton'];
query2.Next;
end;
statusbar1.Panels[2].Text:=formatfloat('0.000',sumton);
statusbar1.Panels[1].Text:=inttostr(query2.RecordCount)+' 个记录';
memo1.clear;
if query2.RecordCount>0 then
bitbtn2.enabled:=true
else
bitbtn2.enabled:=false;
end;
procedure Tfmqueryplan.DBGrid1CellClick(Column: TColumn);
var i,aa,bb:integer;
mm,nn:single;
begin
aa:=0;
mm:=0;
bb:=0;
nn:=0;
try
table2.DisableControls;
table2.Active:=true;
table2.First;
while not table2.eof
do
begin
if (table2.FieldValues['atnum']=query2.FieldValues['atnum']) and (table2.FieldValues['agname']=query2.FieldValues['agname']) and (table2.FieldValues['adime']=query2.FieldValues['adime'])
then
begin
aa:=aa+table2.FieldValues['ncoil'];
mm:=mm+table2.FieldValues['nton'];
end;
table2.Next;
end;
finally
table2.EnableControls;
end;
try
table3.DisableControls;
table3.Active:=true;
table3.First;
while not table3.eof
do
begin
if (table3.FieldValues['atnum']=query2.FieldValues['atnum']) and (table3.FieldValues['agname']=query2.FieldValues['agname']) and (table3.FieldValues['adime']=query2.FieldValues['adime'])
then
begin
bb:=bb+table3.FieldValues['ncoil'];
nn:=nn+table3.FieldValues['nton'];
end;
table3.Next;
end;
finally
table3.EnableControls;
end;
memo1.Clear;
memo1.Lines.add('提单号:'+query2.FieldValues['atnum']);
memo1.Lines.add('货名:'+query2.FieldValues['agname']);
memo1.Lines.add('规格:'+query2.FieldValues['adime']);
memo1.Lines.add('计划吨位:'+formatfloat('0.000',query2.FieldValues['nton'])+'吨');
memo1.Lines.Add('进货件数:'+inttostr(aa)+' 件');
memo1.Lines.Add('进货吨位:'+floattostr(strtofloat(formatfloat('0.000',mm)))+' 吨');
memo1.Lines.Add('出货件数:'+inttostr(bb)+' 件');
memo1.Lines.Add('出货吨位:'+floattostr(strtofloat(formatfloat('0.000',nn)))+' 吨');
end;
procedure Tfmqueryplan.ComboBox1Change(Sender: TObject);
begin
if combobox1.ItemIndex=12 then
table1.Filtered:=false
else
begin
table1.Filter:='ddate='+combobox1.Text;
table1.Filtered:=true;
end;
end;
procedure Tfmqueryplan.BitBtn2Click(Sender: TObject);
begin
fmuser.fmid:=5;
application.CreateForm(tfmprintdbgrid,fmprintdbgrid);
fmprintdbgrid.showmodal;
end;
procedure Tfmqueryplan.BitBtn3Click(Sender: TObject);
begin
fmqueryplan.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -