📄 unitsulfserchdate.~pas
字号:
unit UnitSulfSerchDate;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Mask, DBCtrls, Buttons, Db, DBTables, Grids, DBGrids,
ComCtrls;
type
TFrmSulfSerchDate = class(TForm)
Panel1: TPanel;
GroupBox1: TGroupBox;
Panel2: TPanel;
bbSerch: TBitBtn;
bbcancal: TBitBtn;
bbprior: TBitBtn;
bbnext: TBitBtn;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
DataSource2: TDataSource;
Query2: TQuery;
DBGrid1: TDBGrid;
Table1: TTable;
DataSource1: TDataSource;
Label1: TLabel;
bbpint: TBitBtn;
BitBtn1: TBitBtn;
DataSource3: TDataSource;
Query1: TQuery;
Table1QcNum: TIntegerField;
Table1Wasternum: TIntegerField;
Table1Qcper: TFloatField;
Table1LackNum: TSmallintField;
Table1ImpuNum: TSmallintField;
Table1PoleNum: TSmallintField;
Table1RipNum: TSmallintField;
Table1ElseNum: TSmallintField;
Table1RubbCardID: TStringField;
Table1SourceID: TStringField;
Label2: TLabel;
DBGrid2: TDBGrid;
Panel5: TPanel;
Panel6: TPanel;
Table1FigID: TStringField;
Query1figid: TStringField;
Query1SUMOFqcnum: TFloatField;
Query1SUMOFwasternum: TFloatField;
Query1AVERAGEOFqcper: TFloatField;
procedure bbSerchClick(Sender: TObject);
procedure bbpriorClick(Sender: TObject);
procedure bbnextClick(Sender: TObject);
procedure bbcancalClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbpintClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmSulfSerchDate: TFrmSulfSerchDate;
implementation
uses UnitSerchDateprint, UnitSerchDatePic;
{$R *.DFM}
//=================以下是查询按钮事件==============================
procedure TFrmSulfSerchDate.bbSerchClick(Sender: TObject);
var int0,int1,int2,int3,int4,int5:integer;
flt1:real;
begin
//===========初始化table1,清空记录==========
with table1 do begin
first;
while not eof do
delete;
next;
end;//with
//===========以下第一次Query2的分组SQL查询过滤============
with query2 do
begin
close;
SQL.Clear ;
sql.Add (' select figid,rubbcardid,sourceid,sum(qcnum)as SumQcNum,sum(lacknum)as SumLackNum,sum(impunum)as SumImpuNum,sum(polenum)as SumPoleNum,sum(ripnum)as SumRipNum,sum(elsenum)as SumElseNum from SulfCard');
sql.Add (' where tdate between :fromdate and :todate ');
sql.Add ('group by figid,rubbcardid,sourceid');
parambyname('fromdate').asdate:=DateTimePicker1.date;
parambyname('todate').asdate:=DateTimePicker2.date;
open;
///==========以上第一次SQL查询结束====================
if recordcount=0 then
begin
showmessage('您查找的记录不存在!');
close;
exit;
end //if
else
showmessage('您查找成功!有'+inttostr(recordcount)+'条记录');
label1.caption:='查询结果共有'+inttostr(recordcount)+'条记录';
end;
//=========以下把Query2中查询过滤结果向抄写到table1中====================
query2.First;
while not query2.eof do
begin
table1.append;
table1.FieldByName('figid').asstring:=query2.fieldbyname('figid').asstring;
table1.FieldByName('qcnum').asinteger:=query2.fieldbyname('sumqcnum').asinteger;
table1.FieldByName('lacknum').asinteger:=query2.fieldbyname('sumlacknum').asinteger;
table1.FieldByName('impunum').asinteger:=query2.fieldbyname('sumimpunum').asinteger;
table1.FieldByName('ripnum').asinteger:=query2.fieldbyname('sumripnum').asinteger;
table1.FieldByName('polenum').asinteger:=query2.fieldbyname('sumpolenum').asinteger;
table1.FieldByName('elsenum').asinteger:=query2.fieldbyname('sumelsenum').asinteger;
table1.FieldByName('rubbcardid').asstring:=query2.fieldbyname('rubbcardid').asstring;
table1.FieldByName('sourceid').asstring:=query2.fieldbyname('sourceid').asstring;
//=========以下求废品之和/合格率============
int0:=table1.FieldByName('qcnum').asinteger;
int1:=table1.FieldByName('lacknum').asinteger;
int2:=table1.FieldByName('impunum').asinteger;
int3:=table1.FieldByName('polenum').asinteger;
int4:=table1.FieldByName('ripnum').asinteger;
int5:=table1.FieldByName('elsenum').asinteger;
table1.FieldByName('wasternum').asinteger:=int1+int2+int3+int4+int5;
if int0+int1+int2+int3+int4+int5=0 then
table1.FieldByName('qcper').asfloat:=0
else
flt1:=int0/(int0+int1+int2+int3+int4+int5);
flt1:=strtofloat(formatfloat('0.000',flt1));
flt1:=flt1*100;
table1.FieldByName('qcper').asfloat:=flt1;
table1.post;
query2.next;
end;//while
//========以上向用户界面Table1中抄写记录完===================
//========以下Query1为输出图表和打印查询过滤=================
with query1 do begin
close;
sql.Clear;
sql.add('select figid,sum(qcnum),sum(wasternum),avg(qcper) from sulfcardper group by figid');
open;
end;
//==================结束========================================
end;
procedure TFrmSulfSerchDate.bbpriorClick(Sender: TObject);
begin
table1.Prior ;
end;
procedure TFrmSulfSerchDate.bbnextClick(Sender: TObject);
begin
table1.Next;
end;
procedure TFrmSulfSerchDate.bbcancalClick(Sender: TObject);
begin
close;
end;
procedure TFrmSulfSerchDate.FormActivate(Sender: TObject);
begin
table1.open; //打开
end;
procedure TFrmSulfSerchDate.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//========初始化,清空记录===========
with table1 do begin
first;
while not eof do
delete;
next;
end;//with
//=================================
end;
procedure TFrmSulfSerchDate.bbpintClick(Sender: TObject);
begin
FrmSerchDatePrint.QRLabel1.Caption :='产品从'+datetostr(DateTimePicker1.date)+'到'+datetostr(DateTimePicker2.date)+'质量统计图表';
FrmSerchDatePrint.QuickRep1.Preview ;
end;
procedure TFrmSulfSerchDate.BitBtn1Click(Sender: TObject);
begin
frmSerchDatepic.show;
frmSerchDatepic.DBChart1.Title.Text.Text:='产品从'+datetostr(DateTimePicker1.date)+'到'+datetostr(DateTimePicker2.date)+'质量统计图表';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -