在线的都来看看,拉我一把!
有一个INFO表,表中有一个字段是Country,有如下记录:
… … … Country … … …
… … … 中国 … … …
… … … 中国 … … …
… … … 美国 … … …
… … … 中国 … … …
… … … 日本 … … …
… … … 美国 … … …
我想在 ListView 中显示效果如下
国籍 数目
美国 2
日本 1
中国 3
请大虾指点一下!!!
我的代码如下:::
procedure TForm2.FormShow(Sender: TObject);
var
i:integer;
ListItem: TListItem;
p:^integer;
begin
ADOQuery2.SQL.Clear ;
ADOQuery2.SQL.Add( 'select count(*) from INFO group by Country ');
ADOQuery2.Open ;
for i:=1 to ADOQuery2.RecordCount do
begin
ListItem:=ListView.Items.Add ;
ADOQuery.SQL.Clear ;
ADOQuery.SQL.Add( 'select Country from INFO group by Country ');
ADOQuery.Open ;
ListItem.Caption :=ADOQuery.Fields[0].AsString ;
ADOQuery.Close ;
ListItem.SubItems.Add(ADOQuery2.Fields[0].AsString) ;
new(p);
p^ := ADOQuery2.Fields[0].AsInteger ;
ListItem.Data :=p;
ADOQuery2.Next;
end;
end;
我的代码运行后的结果如下:::
美国 2
美国 1
美国 3
请大虾指点一下!!!
[解决办法]
procedure TForm2.FormShow(Sender: TObject);
var
i:integer;
ListItem: TListItem;
p:^integer;
begin
with ADOQuery2 do
begin
SQL.Clear ;
SQL.Add( 'select Country,count(*) from INFO group by Country ');
Open ;
while not Eof do
begin
with ListView.Items.Add do
begin
Caption:=Fields[0].AsString;
SubItems.Add(Fields[1].AsString);
end;
Next;
end;
end;
end;