2,497
社区成员
发帖
与我相关
我的任务
分享
procedure TFrmkd0013.CreateTVList;
var
TVNode :TTreenode;
qry_trans :TADOQuery;
str_sql :string;
begin
qry_trans :=TADOQuery.Create(self);
qry_trans.Connection :=dm.adoconn;
str_sql :='select FItemID,FNumber,FParentid,FName,FShortNumber into #t_item_temp1 from t_item (nolock) where fitemclassid=4 create index ix_temp1 on #t_item_temp1(fnumber asc,fitemid,fparentid)';
qry_trans.SQL.Add(str_sql);
qry_trans.ExecSQL;
TVNode :=TV1.Items.AddChildFirst(TV1.Items.GetFirstNode,'物料');
AddChildNode(TVNode);
qry_trans.Close;
qry_trans.SQL.Clear;
str_sql :='drop table #t_item_temp1';
qry_trans.SQL.Add(str_sql);
qry_trans.ExecSQL;
qry_trans.Free;
end;
procedure TFrmkd0013.AddChildNode(node :TTreeNode);
var
qry_child :TADOQuery;
CData :^TCNODE;
TVNode :TTreenode;
str_sql :string;
begin
qry_child :=TADOQuery.Create(self);
with qry_child do
begin
Connection :=dm.adoconn;
close;
str_sql :=' select * from #t_item_temp1 (nolock) where fparentid='+QuotedStr(Data_Str)+' order by FNumber';
sql.Add(str_sql);
open;
first;
while not eof do
begin
new(CData);
Data_Str := fieldbyname('Fitemid').asstring;
CData^.FNumber := fieldbyname('FNumber').AsString;
CData^.FName := fieldbyname('FName').AsString;
CData^.FParentid := fieldbyname('FParentid').AsString;
TVNode := TV1.Items.AddChildObject(node,fieldbyname('FShortNumber').AsString+'('+fieldbyname('FName').AsString+')',CData);
TVNode.ImageIndex :=1;
TVNode.StateIndex :=2;
AddChildNode(TVNode);
next;
end;
end;
qry_child.Free;
end;