線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1395
推到 Plurk!
推到 Facebook!

如何判断treeview中的终端节点?

答題得分者是:Fishman
baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-04 21:58:52 IP:219.140.xxx.xxx 未訂閱
请问treeview连接数据库表后 如何判断该节点是否为终端节点? 1表示终端节点 0表示非终端节点 注:数据库该表中有 终端节点 这个字段
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-05 08:34:08 IP:210.65.xxx.xxx 未訂閱
Hi baby2321,
function TForm1.IsEndNode(Sender : TTreeNode) : Boolean;
begin
  Result := not TTreeNode(Sender).HasChildren;
end;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-06 15:20:40 IP:219.140.xxx.xxx 未訂閱
Fishman 你好 我在设置保存treeview结构中 有如下一段代码 
 
......
for i:=2 to treeview1.Items.Count do
 begin
 pnode:=treeview1.Items.Item[i-1];
 name:=pnode.Text;
    begin
      if pnode.HasChildren:=true then//此行提示出错 高亮显示
       adocommand1.CommandText:='insert into 数据表 ([终端节点]) values(''0'') where 数据表.Text=pnode.Text';
       adocommand1.Execute
       else
       adocommand1.CommandText:='insert into 数据表 ([终端节点]) values(''1'')';
        adocommand1.Execute;
   end;
......
end;    
劳烦Fishman大大帮忙看看< > 再次感谢< >
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-11-07 09:07:19 IP:210.65.xxx.xxx 未訂閱
Hi baby2321,
將
if pnode.HasChildren:=true then
adocommand1.CommandText:='insert into 数据表 ([终端节点]) values(''0'') where 数据表.Text=pnode.Text';
分別更改為
if pnode.HasChildren then
adocommand1.CommandText:='insert into 数据表 ([终端节点]) values(''0'') where 数据表.Text='   QuotedStr(Edit1.Text);
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-11-07 18:28:48 IP:219.140.xxx.xxx 未訂閱
设置保存treeview的功能键代码 
procedure TSetting.Button1Click(Sender: TObject);
var
pnode:TTreeNode;
begin
  for i:=2 to treeview1.Items.Count do
  begin
    pnode:=treeview1.Items.Item[i-1];
    name:=pnode.Text;
    ...........//实现对treeview的各类数据保存操作 不涉及终端节点字段
  end;
  
  if pnode.HasChildren then
    begin
       adocommand1.CommandText:='update 数据表 set [终端节点]=0 ';
       adocommand1.Execute;
    end
    else
       adocommand1.CommandText:='update 数据表 set [终端节点]=1 ';
       adocommand1.Execute;
end;
 
这样操作后 没有提示错误 但字段 终端节点 的所有内容全部被设为0 这里的where不知该如何写 發表人 - baby2321 於 2005/11/07 18:30:07 發表人 - baby2321 於 2005/11/07 18:34:06
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-11-08 08:05:32 IP:210.65.xxx.xxx 未訂閱
Hi baby2321,    What's the table structure for your table !?    Does it have a Unique Key !?     ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-11-08 13:56:48 IP:219.140.xxx.xxx 未訂閱
该表字段: 内部编号int(1-100) 产品代码varchar(主键) 产品名称varchar 是否库存char 终端节点int 请问 a Unique Key 对 HasChildren有影响吗? 發表人 - baby2321 於 2005/11/08 14:10:50
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-11-08 14:26:35 IP:210.65.xxx.xxx 未訂閱
Hi baby2321,
procedure TForm1.Button1Click(Sender: TObject);
var
  PNode :TTreeNode;
  I,R : Integer;
begin
  for I := 2 to TreeView1.Items.Count do
    begin
      PNode := TreeView1.Items.Item[I-1];
      if PNode.HasChildren then
        R := 0
      else
        R := 1;
     ADOCommand1.CommandText:='update yourtable set field = '   IntToStr(R)   ' where prodid = '   QuotedStr(PNode.Text);
     ADOCommand1.Execute;
    end;
end;
update 不使用 Unique Key 是很危險的舉動,因為有可能會異動到其他筆資料。 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-11-08 15:04:02 IP:219.140.xxx.xxx 未訂閱
多谢Fishman大大  在阁下的提示下 此问题已解决 THANK YOU VERY MUCH
系統時間:2024-06-26 23:54:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!