本例需要读取excel中的数据,然后动态的添加到TSCTreeView控件当中 .
最终效果如下图:
核心代码如下:
procedure TForm1.FormCreate(Sender: TObject); var n: Integer; t: TTreeNode; I: Integer; begin n := FDQuery1.RecordCount; if n > 0 then begin scTreeView1.Items.BeginUpdate; //加快显示速度 ,这种语句是成对出现的,记得END t := scTreeView1.Items.AddFirst(nil, '全部');//添加根节点 for I := 0 to n - 1 do begin scTreeView1.Items.AddChild(t, FDQuery1.FieldByName('名称').AsString); FDQuery1.Next; end; scTreeView1.Items.EndUpdate; // END end; end;
顺便讲一下FireDAC连接EXCEL文件的设置
上面驱动设置那里,如果看不到后面的内容,可以把列拉宽:
然后使用向导设置(强烈建议)
选择一个EXCEL文件后点确定.然后点测试.弹出登录窗口时,如果你的EXCEL没有设置密码,直接点确定就行,不用管它.有密码的自己看着办.
连接成功后,使用FQuery控件取数据.SQL语句的格式是: seletc * from [sheet名称$] .注意,表名后面要加"$"符号.也可以像数据库一下多表联查(仅限此工作簿内的工作表),比如:
select [核算项目-物料$].代码 as 物料代码 , [核算项目-物料$].名称, [核算项目-物料$].助记码, [核算项目-物料$].规格型号, iif(isnull([即时库存$].F9),0,[即时库存$].F9) as 参考数量, [即时库存$].备注 From [核算项目-物料$] left join [即时库存$] on [核算项目-物料$].代码= [即时库存$].物料代码 WHERE LEN( [核算项目-物料$].代码 )>3
上面这段SQL,使用到了两个工作表,一个是 [核算项目-物料] 一个是 [即时库存]
标签:物料,TSCTreeView,FireDAC,Items,DELPHI,EXCEL,即时,scTreeView1,核算 From: https://www.cnblogs.com/yoooos/p/17679338.html