?? unit2.~pas
字號:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Db, ADODB;
type
TForm2 = class(TForm)
Button1: TButton;
Label1: TLabel;
Button2: TButton;
Edit1: TEdit;
ListView1: TListView;
ADOQuery1: TADOQuery;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.DFM}
procedure TForm2.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm2.Button2Click(Sender: TObject);
var
strSQL,strSQL1,e1,e2,e3,e4,e5,e6,e7,e8: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;
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+'''))';
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));
e5:=IntToStr(eh)+':'+IntToStr(el);
listitem.SubItems.Add(e5);
listitem.SubItems.Add(FloatToStr(r2));
end; // DDDDD,統計結束
end; //CCCCC
end; //AAAAA
procedure TForm2.FormCreate(Sender: TObject);
begin
//ADOQuery1.Close;
//ADOQuery1.SQL.Clear;
//ADOQuery1.SQL.Add('select distinct 出租車號 from yyjl');
//ADOQuery1.Open;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -