📄 unit3.~pas
字号:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Db, ADODB;
type
TForm3 = class(TForm)
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
ADOQuery1: TADOQuery;
ListView1: TListView;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.DFM}
procedure TForm3.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TForm3.Button1Click(Sender: TObject);
var
strSQL,strSQL1,e1,e2,e3,e4,e5,e6,e7:string;
j,k,n,i,eh,el,jj:Integer;
data:Array of string;
listitem:TListItem;
r1,r2:real;//r1:里程,r2:金额
begin //AAAAA
e1:=Trim(Edit1.Text);
if e1='' then Exit;
e5:=e1+'31';
e1:=e1+'00';
strSQL:='select distinct 出租车号 from yyjl';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(strSQL);
ADOQuery1.Open;
//筛选出不同出租车号
SetLength(data,ADOQuery1.RecordCount); // 不同出租车号数量为ADOQuery1.RecordCount
For i:=0 to ADOQuery1.RecordCount-1 do
SetLength(data[i],50); // 每个data[i]为串类型,长度为50
ADOQuery1.First;
data[0]:=ADOQuery1.FieldValues['出租车号'];
For i:=1 to ADOQuery1.RecordCount-1 do
begin //BBBBB
ADOQuery1.Next;
data[i]:=ADOQuery1.FieldValues['出租车号'];
end; //BBBBB,不同车号存入data[i]
//下面按data[i]检索
n:=ADOQuery1.RecordCount;
ListView1.Items.Clear;
For i:=0 to n-1 do
begin //CCCCC
strSQL:='select * from yyjl where ((出租车号='''+data[i]+''') and ((日期>= '''+e1+''') and (日期<= '''+e5+''')))';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(strSQL);
ADOQuery1.Open;
//得到一个车号在e1日的所有数据
if ADOQuery1.RecordCount>0 then
begin //DDDDD,开始统计
ADOQuery1.First;
k:=ADOQuery1.RecordCount;
r1:=StrToFloat(ADOQuery1.FieldValues['里程']);
r2:=StrToFloat(ADOQuery1.FieldValues['金额']);
//处理侯时
eh:=0;el:=0;
jj:=1;
e4:=ADOQuery1.FieldValues['侯时'];
while e4[jj]<>':' do
jj:=jj+1;
eh:=StrToInt(Copy(e4,1,jj-1));
jj:=Length(e4);
while e4[jj]<>':' do
jj:=jj-1;
el:=StrToInt(Copy(e4,jj+1,Length(e4)));
For j:=0 to k-2 do
begin
ADOQuery1.Next;
r1:=r1+StrToFloat(ADOQuery1.FieldValues['里程']);
r2:=r2+StrToFloat(ADOQuery1.FieldValues['金额']);
e4:=ADOQuery1.FieldValues['侯时'];
jj:=1;
while e4[jj]<>':' do
jj:=jj+1;
eh:=eh+StrToInt(Copy(e4,1,jj-1));
jj:=Length(e4);
while e4[jj]<>':' do
jj:=jj-1;
el:=el+StrToInt(Copy(e4,jj+1,Length(e4)));
if el>=60 then
begin
el:=el-60;
eh:=eh+1;
end;
end;
strSQL1:='select * from ygxx where (出租车号='''+data[i]+''')';
listitem:=ListView1.Items.Add;
listitem.Caption:=ADOQuery1.FieldValues['出租车号'];
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(strSQL1);
ADOQuery1.Open;
e2:='';e3:='';
if ADOQuery1.RecordCount>0 then
begin
e2:=ADOQuery1.FieldValues['单位'];
e3:=ADOQuery1.FieldValues['司机'];
end;
listitem.SubItems.Add(e2);
listitem.SubItems.Add(e3);
listitem.SubItems.Add(IntToStr(k));
listitem.SubItems.Add(FloatToStr(r1));
listitem.SubItems.Add(IntToStr(eh)+':'+IntToStr(el));
listitem.SubItems.Add(FloatToStr(r2));
end; // DDDDD,统计结束
end; //CCCCC
end; //AAAAA
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -