本人想在一个仓库管理系统里用到treeview
在一个窗体里左边放置一个treeview显示物品类别,右边放一个dbgrid显示类别里具体数据.有2个按钮对treeview操作:添加类别,删除类别
5个按钮对dbgrid操作:添加,编辑,保存,取消删除.现在有几个问题1.删除节点:删除时候判断此节点下是否还有节点,有就不能删除
删除节点时,如果此节点内的数据不为空(在grid内有数据),不能删除2,查询节点数据:鼠标点父节点,grid里显示父节点里多有节点的数据,点子节点就
显示子节点里的数据
在一个窗体里左边放置一个treeview显示物品类别,右边放一个dbgrid显示类别里具体数据.有2个按钮对treeview操作:添加类别,删除类别
5个按钮对dbgrid操作:添加,编辑,保存,取消删除.现在有几个问题1.删除节点:删除时候判断此节点下是否还有节点,有就不能删除
删除节点时,如果此节点内的数据不为空(在grid内有数据),不能删除2,查询节点数据:鼠标点父节点,grid里显示父节点里多有节点的数据,点子节点就
显示子节点里的数据
select * from ....
where ....= ...treeview1.Selected.Item[0].Text
union
select * from ....
where ....= ...treeview1.Selected.Item[1].Text
union
....
select * from ....
where ....= ...treeview1.Selected.Item[n].Text
if treeview1.Selected.HasChildren then
showmessage('子类不为空!')
else
treeview1.Selected.Delete;
if treeview1.Selected.HasChildren then
showmessage('子类不为空!')
else begin
query1.sql.Clear;
query1.SQL.Add('select count(*) as cc from xxx where ...='''+treeview1.Selected.Text+'''');
query1.Close;
query1.Open;
if query1.FieldByName('cc').AsInteger>0 then begin
showmessage('纪录不为空!');
exit;
end;
treeview1.Selected.Delete ;
end;
procedure TForm1.TreeView1Click(Sender: TObject);
var i:integer;
begin
query1.SQL.Clear;
for i:=0 to treeview1.Selected.Count do
begin
query1.SQL.Add('select * from xxx where ..='''+treeview1.Items.Item[i].Text+'''');
if i<treeview1.Selected.Count then
query1.SQL.Add('union');
end;
query1.Close;
query1.Open;
end;