我有一个来自TMS的名为AdvCheckTreeView的组件,其中树视图的每个节点都有一个复选框,就像其他工具选项板中的CheckListBox一样。现在,我的问题是如何获得每个节点的检查状态并保存到数据库。
考虑这是一个具有树视图和复选框的Checktreeview:
PIS00
|__PIS001
| |__PIS00011
| |__PIS00012
|
|__PIS002
| |__PIS00021
|
现在,我想获得每个的检查状态并将其扔到各自的数据域。例如。
PIS00 - Datafield/Name : DBPIS00
PIS001 - Datafield/NAme : DBPIS001
如果我检查PIS001然后它返回一个布尔结果' True'如果没有,那么它将变成“假”。它将保存每个节点或项目的布尔结果,而不是检查它们。
这可能吗?
如果我使用DBCheckbox,我知道如何在数据库中保存布尔值。我只是不知道如何分配数据字段,如果它带有复选框的树视图,因为它没有数据源。
答案 0 :(得分:0)
由于这不是数据感知控件,因此您必须手动迭代并根据节点的状态相应地设置每个字段。这基本上与你在第一时间填充树视图所做的相反,例如。
var
I : integer;
lNode : TTreeNode;
begin
for I := 0 to advchecktreeview1.Items.Count - 1 do
begin
lNode := AdvCheckTreeView1.Items[I];
MyQuery.FieldByName('RelevantField').AsBoolean := AdvCheckTreeView1.Checked[lNode];
end;
end;
或者使用相关的Node click事件单独设置字段。