|  |  | 
 |  |  |  | 
 |  |  |    //xnode   m_agentNode;   //Agent Condition | 
 |  |  |    //xstring   m_agentCond;   //Agent Node | 
 |  |  | public: | 
 |  |  |    int SetAgent() | 
 |  |  |    { | 
 |  |  |       /*      xstring xfNodeAgentArea  = L"agentarea"; | 
 |  |  | 
 |  |  |    xstring getLink(HTREEITEM item) | 
 |  |  |    { | 
 |  |  |       HTREEITEM p = tv_db.GetParentItem(item); | 
 |  |  |       while (tv_db.GetParentItem(p) > 0) | 
 |  |  |       while (tv_db.GetParentItem(p)) | 
 |  |  |       { | 
 |  |  |          item = tv_db.GetParentItem(item); | 
 |  |  |          p = tv_db.GetParentItem(item); | 
 |  |  | 
 |  |  |  | 
 |  |  |    int onShow() | 
 |  |  |    { | 
 |  |  |       while (tv_db.GetRootItem() > 0) | 
 |  |  |       while (tv_db.GetRootItem()) | 
 |  |  |          tv_db.DeleteItem(tv_db.GetRootItem()); | 
 |  |  |       xsedit xs = GetControl(L"xcontent"); | 
 |  |  |       xstring content; | 
 |  |  | 
 |  |  |          xstring name = ele.getAttribute(L"name"); | 
 |  |  |          xstring link = ele.getAttribute(L"link"); | 
 |  |  |          HTREEITEM k = tv_db.InsertChildItem(root,L"" + name,L"" + link,15); | 
 |  |  |          HTREEITEM j = tv_db.InsertChildItem(k,L"表",L"table",22); | 
 |  |  |          HTREEITEM j = tv_db.InsertChildItem(k,L"表",(LPARAM)L"table",22); | 
 |  |  |          tv_db.SetItemChild1(j,1); | 
 |  |  |          j = tv_db.InsertChildItem(k,L"视图",L"view",23); | 
 |  |  |          j = tv_db.InsertChildItem(k,L"视图", (LPARAM)L"view",23); | 
 |  |  |          tv_db.SetItemChild1(j,1); | 
 |  |  |          j = tv_db.InsertChildItem(k,L"存储过程",L"procedure",24); | 
 |  |  |          j = tv_db.InsertChildItem(k,L"存储过程", (LPARAM)L"procedure",24); | 
 |  |  |          tv_db.SetItemChild1(j,1); | 
 |  |  |          j = tv_db.InsertChildItem(k,L"自定义函数",L"function",25); | 
 |  |  |          j = tv_db.InsertChildItem(k,L"自定义函数", (LPARAM)L"function",25); | 
 |  |  |          tv_db.SetItemChild1(j,1); | 
 |  |  |       } | 
 |  |  |       tv_db.ExpandItem(root); | 
 |  |  | 
 |  |  |       } | 
 |  |  |       else if (comdid == L"xmQuery") | 
 |  |  |       { | 
 |  |  |          xstring guid = win32::GetGuid(); | 
 |  |  |          xstring guid = publiccode::GetGuid(); | 
 |  |  |          xstring caption = L"Query_" + guid.mid(1,8); | 
 |  |  |          if (OnOpen(caption,L"query") == 0) return 0; | 
 |  |  |          xsedit xs = GetControl(L"sql_" + caption); | 
 |  |  | 
 |  |  |    { | 
 |  |  |       NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh; | 
 |  |  |       HTREEITEM item = nmtv.itemNew.hItem; | 
 |  |  |       if (tv_db.GetChildItem(item) > 0) return 0; | 
 |  |  |       if (tv_db.GetChildItem(item)) return 0; | 
 |  |  |       OnTreeExpand(item); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  | 
 |  |  |    { | 
 |  |  |       tv_db.ExpandItemEx(item); | 
 |  |  |       HTREEITEM gitem = tv_db.GetChildItem(item); | 
 |  |  |       while (gitem > 0) | 
 |  |  |       while (gitem) | 
 |  |  |       { | 
 |  |  |          xstring data = L"" + tv_db.GetItemData(gitem); | 
 |  |  |          if (data.left(6) != L"group@") break; | 
 |  |  |          gitem = tv_db.GetNextItem(gitem); | 
 |  |  |       } | 
 |  |  |       xstring guid = win32::GetGuid(); | 
 |  |  |       xstring guid = publiccode::GetGuid(); | 
 |  |  |       if (OnGroupAction(guid,L"",L"group.update") != 1) return 0; | 
 |  |  |       HTREEITEM j = tv_db.InsertItem(item,gitem,L"",L"group@" + guid,25); | 
 |  |  |       tv_db.ItemEdit(j); | 
 |  |  | 
 |  |  |  | 
 |  |  |    int OnRefresh(HTREEITEM item) | 
 |  |  |    { | 
 |  |  |       while (tv_db.GetChildItem(item) > 0) | 
 |  |  |       while (tv_db.GetChildItem(item)) | 
 |  |  |          tv_db.DeleteItem(tv_db.GetChildItem(item)); | 
 |  |  |       OnTreeExpand(item); | 
 |  |  |       return 1; | 
 |  |  | 
 |  |  |          OnDesign(caption); | 
 |  |  |       else if (popup == L"新建表") | 
 |  |  |       { | 
 |  |  |          xstring guid = win32::GetGuid(); | 
 |  |  |          xstring guid = publiccode::GetGuid(); | 
 |  |  |          xstring text = L"Table_" + guid.mid(1,8); | 
 |  |  |          OnDesign(text); | 
 |  |  |       } | 
 |  |  | 
 |  |  |    int OnAttachEvent() | 
 |  |  |    { | 
 |  |  |       //绑定工具条点击事件 | 
 |  |  |       AttachEvent(L"WM_XCOMMAND",(FEvent)XDevEditXMSSQL::OnXCommand); | 
 |  |  |       AttachEvent(L"WM_XCOMMAND",(FEvent)&XDevEditXMSSQL::OnXCommand); | 
 |  |  |       //获取焦点事件,用于重置工具条 | 
 |  |  |       AttachEvent(L"WM_SETFOCUS", (FEvent)XDevEditXMSSQL::OnSetFocus); | 
 |  |  |       AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXMSSQL::OnSetFocus); | 
 |  |  |       //获得树的展开事件 | 
 |  |  |       AttachEvent(L"tv_db", L"TVN_ITEMEXPANDING", (FEvent)XDevEditXMSSQL::OnTreeExpanding); | 
 |  |  |       AttachEvent(L"tv_db", L"TVN_ITEMEXPANDING", (FEvent)&XDevEditXMSSQL::OnTreeExpanding); | 
 |  |  |       //获得树的选择事件 | 
 |  |  |       //AttachEvent(L"tv_db", L"TVN_SELCHANGED",(FEvent)XDevEditXMSSQL::OnTreeSelChanged);		 | 
 |  |  |       AttachEvent(L"tv_db", L"TVN_RCLICK", (FEvent)XDevEditXMSSQL::OnTreeRClick); | 
 |  |  |       AttachEvent(L"tv_db", L"TVN_BEGINDRAG", (FEvent)XDevEditXMSSQL::OnTreeBeginDrag); | 
 |  |  |       AttachEvent(L"tv_db", L"TVN_ENDDRAG", (FEvent)XDevEditXMSSQL::OnTreeEndDrag); | 
 |  |  |       AttachEvent(L"tv_db", L"TVN_ENDLABELEDIT", (FEvent)XDevEditXMSSQL::OnTreeEndEdit); | 
 |  |  |       //AttachEvent(L"tv_db", L"TVN_SELCHANGED",(FEvent)&XDevEditXMSSQL::OnTreeSelChanged);		 | 
 |  |  |       AttachEvent(L"tv_db", L"TVN_RCLICK", (FEvent)&XDevEditXMSSQL::OnTreeRClick); | 
 |  |  |       AttachEvent(L"tv_db", L"TVN_BEGINDRAG", (FEvent)&XDevEditXMSSQL::OnTreeBeginDrag); | 
 |  |  |       AttachEvent(L"tv_db", L"TVN_ENDDRAG", (FEvent)&XDevEditXMSSQL::OnTreeEndDrag); | 
 |  |  |       AttachEvent(L"tv_db", L"TVN_ENDLABELEDIT", (FEvent)&XDevEditXMSSQL::OnTreeEndEdit); | 
 |  |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int LoadData() |