关于express orgchart demo的问题[使用过orgchart的请进]

麦子VISA 2004-11-24 04:59:26
我是照着demo改的,原demo中的table1被我换成了adodataset连接到sql server中的 t-info表中,表保留原demo数据表中的id,PARENT,order等字段...

问题1.修改后,编译运行能正常显示t_info表中记录信息,但点击菜单中的增加'add node'时出错,错误信息:can't create new key [请帮忙分析出错原因]
问题2.关于parent,order等字段值的处理过程..

付主代码:
------------------------------
procedure TMainForm.AddNode1Click(Sender: TObject);
var
Node : TdxOcNode;
begin
if PC.ActivePage = tsDBTree then begin
Table1.DisableControls;
if (DBTree.Selected <> nil) then
begin
Node := DBTree.Insert(DBTree.Selected, Nil);
end
else Node := DBTree.Add(nil, nil);
Node.Text := '新用户';
Node.Color := clWhite;
Node.Shape := shRectangle;
if DBTree.Selected <> nil then DBTree.Selected.Expanded := True;
DBTree.Selected := Node;
Table1.EnableControls;
end;

procedure TMainForm.DBTreeCreateNode(Sender: TObject; Node: TdxOcNode);
begin
with Node, Table1 do
begin
//Width := 0;
// Height := 0;
Shape := GetShape('');
Color :=clWhite;
Node.ChildAlign := GetNodeAlign('');
Node.ImageAlign := GetImageAlign('');
end;
end; //跟踪到这里时出错

procedure TMainForm.Table1AfterInsert(DataSet: TDataSet);
begin
Table1.Insert;
Table1.FieldByName('CODE').AsString:= table1.fieldbyname('ID').AsString+'1';
Table1.FieldByName('CALLED').asstring := '用户1';
end;
----------------------------------
DBTree:主要几个属性如下:
-------------------------------
keyfieldname:id (自动迭加)
orderfieldname:s_order
parentfieldname:parent
--------------------------------------
谢谢...
...全文
107 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧