100分请教,解决后另开新帖给分
具体是这样的,我要在一个数据库中根据父子两类进行导出到EXCEL,现在我已经准备好记录集,并将记录集传入一个递归函数中,我的意思是按照次序导出到EXCEL,
比如
TYPENO PARENTNO NAME
1 111NAME
2 1 222NAME
3 1 333NAME
4 444NAME
5 2 555NAME
根据这个记录集应该是这样排列
1--111NAME
| |
| 2--222NAME
| | |
| | 5--55NAME
| |
| |
| 3--333NAME
|
|
|
4--444NAME
导出EXCEL时候应该是这样的
111NAME
222NAME
555NAME
333NAME
444NAME
一定要导出成这样,显示的要错落有次序
我现在数据集不用大家来考虑
我现在把我定义的递归给大家看看,
procedure TWLXGL.exportdata(AdoTemp:TClientDataSet;ExcelApp:olevariant;ShowId:string);
const ListNum:string='CDEFGHIJKLMN';
var Id:string;
procedure AddData(AdoTmp:TClientDataSet);
begin
with AdoTmp do
begin
while not eof do
begin
.....
省略过程
.....
end;
end;
begin
AdoTemp.Filtered:=false;
AdoTemp.Filter:='parentno='+ShowId;
Adotemp.Filtered:=true;
if Adotemp.RecordCount<>0 then
begin
while not adotemp.Eof do
begin
id:=adotemp.fieldbyname('businesstypeno').AsString;
adotemp.Filtered:=false;
AdoTemp.Filter:='parentno='+Id;
Adotemp.Filtered:=true;
if adotemp.RecordCount=0 then
begin
adotemp.Filtered:=false;
AddData(Adotemp);
exit;
end
else exportdata(AdoTemp,ExcelApp,id);
next;
end;
end;
end;
请各位大虾看看这个递归为什么不能实现我要的格式,它数据是全部导出了,但不是要要的格式
它导出的是
111NAME
444NAME
222NAME
333NAME
555NAME
这个格式不是我要的,拜托各位了,现在很急,在线等待,如果觉得100分还少,我在加