|  |  | 
 |  |  | use "win.vl" | 
 |  |  | use "dev:vm[xdwgrid.vm]" | 
 |  |  | use "pref.vl" | 
 |  |  | use "dev:vm[xml.vm]" | 
 |  |  | use "dev:vm[xaserverarg.vm]" | 
 |  |  | use "dev:vm[xaserver.vm]" | 
 |  |  | use "dev:vm[xutil.vm]" | 
 |  |  | use "frame.vl" | 
 |  |  | //unit vclient.vobject tpp | 
 |  |  | unit vbusiness.xpage | 
 |  |  | [ | 
 |  |  |    HrPerson is extend frame; | 
 |  |  |    about HrPerson | 
 |  |  |    [ | 
 |  |  |       control: | 
 |  |  | 		 | 
 |  |  |       method: | 
 |  |  |       [ | 
 |  |  |          xdwgrid__   dw_list; | 
 |  |  |          xdwgrid__   dw_HrEmployee; | 
 |  |  |          string      m_sTxt; | 
 |  |  | #include <wobject/xstring.hpp> | 
 |  |  | #include <xcontrol/xtreeview.hpp> | 
 |  |  | #include <xcontrol/xdwgrid.hpp> | 
 |  |  | #include <wobject/xdouble.hpp> | 
 |  |  | #include <xcontrol/xlayersheet.hpp> | 
 |  |  |  | 
 |  |  |          xnode__   m_agentNode;   //Agent Condition | 
 |  |  |          string   m_agentCond;   //Agent Node | 
 |  |  |          int SetAgent() | 
 |  |  | #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" | 
 |  |  | #include "viewobject/view.base.hpp" | 
 |  |  |  | 
 |  |  | using xml = KXMLDOMDocument; | 
 |  |  | class __declspec(dllexport) HrPerson : public xframe | 
 |  |  | { | 
 |  |  | public: | 
 |  |  |    xdwgrid   dw_list; | 
 |  |  |    xdwgrid   dw_HrEmployee; | 
 |  |  |    xstring      m_sTxt; | 
 |  |  |  | 
 |  |  |    xnode   m_agentNode;   //Agent Condition | 
 |  |  |    xstring   m_agentCond;   //Agent Node | 
 |  |  | public: | 
 |  |  |    HrPerson(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} | 
 |  |  | public: | 
 |  |  |    static HrPerson* CreateInstance(void* implPtr, void* hWnd) | 
 |  |  |    { | 
 |  |  |       HrPerson* pWin = new HrPerson(implPtr, (HWND)hWnd); | 
 |  |  |       return pWin; | 
 |  |  |    } | 
 |  |  |    int SetAgent() | 
 |  |  |    { | 
 |  |  |       xstring xfNodeAgentArea = L"agentarea"; | 
 |  |  |       xnode anode = GetAgentNode(xfNodeAgentArea); | 
 |  |  |       if (m_agentNode) | 
 |  |  |       { | 
 |  |  |          SetAgentNode(anode, m_agentNode); | 
 |  |  |       } | 
 |  |  |       else | 
 |  |  |       { | 
 |  |  |          KXMLDOMElement xframeElement = GetElement(); | 
 |  |  |          KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); | 
 |  |  |          if (agent) | 
 |  |  |          { | 
 |  |  |             string xfNodeAgentArea  = "agentarea"; | 
 |  |  |             xnode__ anode = new xnode__; | 
 |  |  |             anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); | 
 |  |  |             var xframeElement =  GetElement(); | 
 |  |  |             var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); | 
 |  |  |             if(agent) | 
 |  |  |             { | 
 |  |  |                string s = agent.xml; | 
 |  |  |                SetAgentNodeContent (anode,s); | 
 |  |  |             } | 
 |  |  |             return 1; | 
 |  |  |             xstring s = agent.xml(); | 
 |  |  |             m_agentNode = SetAgentNode(anode, s); | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |    //焦点激活处理函数 | 
 |  |  |    int OnSetFocus(TEvent* evt, LPARAM param) | 
 |  |  |    { | 
 |  |  |       SetAgent(); | 
 |  |  |  | 
 |  |  |          //焦点激活处理函数 | 
 |  |  |          int OnSetFocus(ref TEvent evt,int p) | 
 |  |  |          { | 
 |  |  |             SetAgent(); | 
 |  |  |       //重置工具条 | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |             //重置工具条 | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |    //xgridex双击 | 
 |  |  |    int OnDoubleClicked(TEvent* evt, int p) | 
 |  |  |    { | 
 |  |  |       DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; | 
 |  |  |       int row = hdr.row; | 
 |  |  |       if (row < 1 || row > dw_list.GetRowCount()) | 
 |  |  |          return 1; | 
 |  |  |       KXMLDOMElement e = dw_list.GetRowElement(row); | 
 |  |  |       xstring sguid = e.selectSingleNode(L"@guid").text(); | 
 |  |  |       xaserverarg& arg = *new xaserverarg; | 
 |  |  |  | 
 |  |  |          //xgridex双击 | 
 |  |  |          int OnDoubleClicked(ref TNotifyEvent evt,int p) | 
 |  |  |          { | 
 |  |  |             ref DWNMHDR  hdr = evt.pnmh; | 
 |  |  |             int row = hdr.row; | 
 |  |  |             if(row < 1 || row > dw_list.GetRowCount())  | 
 |  |  |                return 1; | 
 |  |  |             msxml::IXMLDOMElement e = dw_list.GetRowElement(row); | 
 |  |  |             string sguid =  e.SelectSingleNode("@guid").text; | 
 |  |  |             xaserverarg__ arg = new xaserverarg__;  | 
 |  |  |             arg.setNativePointer(arg.CreateInstance());	 | 
 |  |  |             arg.AddArg("operate","modify"); | 
 |  |  |             arg.AddArg("guid",sguid); | 
 |  |  |             //trace(sguid); | 
 |  |  |             //xwin::OpenWindow("dev:xpage[HrPersonMaint.xpage]",arg); | 
 |  |  |             openUrl("组织架构.vface/xpage/Hr/HrPersonMaint", arg);		 | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |          //行改变 | 
 |  |  |          int OnRowFocusChanged(ref TNotifyEvent evt,int p) | 
 |  |  |          { | 
 |  |  |             ref DWNMHDR  hdr = evt.pnmh; | 
 |  |  |             int row = hdr.row; | 
 |  |  |             if(row < 1 || row > dw_list.GetRowCount())  | 
 |  |  |                return 1; | 
 |  |  |             msxml::IXMLDOMElement e = dw_list.GetRowElement(row); | 
 |  |  |             string sPersonID =  e.SelectSingleNode("@guid").text; | 
 |  |  |             xml__ x = new xml__; | 
 |  |  |             x.setNativePointer(x.CreateInstance()); | 
 |  |  |             xaserverarg__ arg = new xaserverarg__; | 
 |  |  |             arg.setNativePointer(arg.CreateInstance());	 | 
 |  |  |             arg.AddArg("guid",sPersonID); | 
 |  |  | 				 | 
 |  |  |             if (url::get("OrganizationStruct/Person.HrEmployee",arg.GetString(),x) != 1) | 
 |  |  |             { | 
 |  |  |                trace(x.GetXmlDoc().text); | 
 |  |  |                return -1; | 
 |  |  |             }else	 | 
 |  |  |             { | 
 |  |  |                dw_HrEmployee.Retrieve(x); | 
 |  |  |                dw_HrEmployee.Redraw(); | 
 |  |  |             } | 
 |  |  | 				 | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |       arg.AddArg(L"operate", L"modify"); | 
 |  |  |       arg.AddArg(L"guid", sguid); | 
 |  |  |       //trace(sguid); | 
 |  |  |       //xwin::OpenWindow(L"dev:xpage[HrPersonMaint.xpage]",arg); | 
 |  |  |       openUrl(L"组织架构.vface/xpage/Hr/HrPersonMaint", &arg); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |    //行改变 | 
 |  |  |    int OnRowFocusChanged(TEvent* evt, int p) | 
 |  |  |    { | 
 |  |  |       DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; | 
 |  |  |       int row = hdr.row; | 
 |  |  |       if (row < 1 || row > dw_list.GetRowCount()) | 
 |  |  |          return 1; | 
 |  |  |       KXMLDOMElement e = dw_list.GetRowElement(row); | 
 |  |  |       xstring sPersonID = e.selectSingleNode(L"@guid").text(); | 
 |  |  |       xml x; | 
 |  |  |  | 
 |  |  |          int  OnRetrieve() | 
 |  |  |          { | 
 |  |  |             xml__ x = new xml__; | 
 |  |  |             x.setNativePointer(x.CreateInstance()); | 
 |  |  |             xaserverarg__ arg = new xaserverarg__; | 
 |  |  |             arg.setNativePointer(arg.CreateInstance()); | 
 |  |  |             arg.AddArg("sTxt",m_sTxt); | 
 |  |  |             if (url::get("OrganizationStruct/list.HrPerson",arg.GetString(),x) != 1) | 
 |  |  |             { | 
 |  |  |                trace(x.GetXmlDoc().text); | 
 |  |  |                return -1; | 
 |  |  |             } | 
 |  |  |             else	 | 
 |  |  |             { | 
 |  |  |                dw_list.Retrieve(x); | 
 |  |  |                dw_list.Redraw(); | 
 |  |  |             } | 
 |  |  |       xaserverarg arg; | 
 |  |  |  | 
 |  |  |       arg.AddArg(L"guid", sPersonID); | 
 |  |  |  | 
 |  |  |       if (xurl::get(L"OrganizationStruct/Person.HrEmployee", arg.GetString(), x) != 1) | 
 |  |  |       { | 
 |  |  |          trace(x.text()); | 
 |  |  |          return -1; | 
 |  |  |       } | 
 |  |  |       else | 
 |  |  |       { | 
 |  |  |          dw_HrEmployee.Retrieve(x); | 
 |  |  |          dw_HrEmployee.Redraw(); | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int  OnRetrieve() | 
 |  |  |    { | 
 |  |  |       xml x; | 
 |  |  |  | 
 |  |  |       xaserverarg arg; | 
 |  |  |  | 
 |  |  |       arg.AddArg(L"sTxt", m_sTxt); | 
 |  |  |       if (xurl::get(L"OrganizationStruct/list.HrPerson", arg.GetString(), x) != 1) | 
 |  |  |       { | 
 |  |  |          trace(x.text()); | 
 |  |  |          return -1; | 
 |  |  |       } | 
 |  |  |       else | 
 |  |  |       { | 
 |  |  |          dw_list.Retrieve(x); | 
 |  |  |          dw_list.Redraw(); | 
 |  |  |       } | 
 |  |  |       //      if (dw_list.GetRowCount() >0) | 
 |  |  |       //         OnRowFocusChanged(); | 
 |  |  |             dw_list.SetReadOnly(true); | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |       dw_list.SetReadOnly(true); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |          int OnSearch() | 
 |  |  |          { | 
 |  |  |             control__ xc = new control__; | 
 |  |  |             xc.setNativePointer(this.GetControl("QueryTxt"));		 | 
 |  |  |             m_sTxt= xc.GetText(); | 
 |  |  |             OnRetrieve(); | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |    int OnSearch() | 
 |  |  |    { | 
 |  |  |       xcontrol xc = GetControl(L"QueryTxt"); | 
 |  |  |       m_sTxt = xc.GetText(); | 
 |  |  |       OnRetrieve(); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |          int OnUpdateAssignmentView() | 
 |  |  |    int OnUpdateAssignmentView() | 
 |  |  |    { | 
 |  |  |       xml x1; | 
 |  |  |       if (xurl::post(L"OrganizationStruct/update.Assignmentview", L"", x1) != 1) | 
 |  |  |       { | 
 |  |  |          xstring error = x1.text(); | 
 |  |  |          trace(error); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |       else | 
 |  |  |       { | 
 |  |  |          trace(x1.xml()); | 
 |  |  |          MessageBox(GetHWND(), L"更新成功!", L"提示", 0); | 
 |  |  |       } | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    //命令发布函数 | 
 |  |  |    int OnCmdDispatch(xstring comdid) | 
 |  |  |    { | 
 |  |  |       xaserverarg& arg = *new xaserverarg; | 
 |  |  |  | 
 |  |  |       KXMLDOMElement e; | 
 |  |  |       xstring sPersonID; | 
 |  |  |       xstring sName; | 
 |  |  |       if (comdid == L"AddPerson") | 
 |  |  |       { | 
 |  |  |          arg.AddArg(L"operate", L"new0"); | 
 |  |  |          arg.AddArg(L"guid", L""); | 
 |  |  |          openUrl(L"组织架构.vface/xpage/Hr/HrPersonMaint", &arg); | 
 |  |  |       } | 
 |  |  |       else if (comdid == L"UpdateAssignmentView") | 
 |  |  |          OnUpdateAssignmentView(); | 
 |  |  |       else if (comdid == L"ModifyPerson") | 
 |  |  |       { | 
 |  |  |          int row = dw_list.GetNextSelectRow(1); | 
 |  |  |          if (row < 1) | 
 |  |  |          { | 
 |  |  |             xml__ x1 = new xml__; | 
 |  |  |             x1.setNativePointer(x1.CreateInstance()); | 
 |  |  |             if (url::post("OrganizationStruct/update.Assignmentview","",x1) != 1) | 
 |  |  |             row = dw_list.GetRow(); | 
 |  |  |             if (row < 1) | 
 |  |  |             { | 
 |  |  |                string error = x1.GetXmlDoc().text; | 
 |  |  |                trace(error); | 
 |  |  |                return 1; | 
 |  |  |             }	 | 
 |  |  |             else | 
 |  |  |             { | 
 |  |  |                trace(x1.GetXml()); | 
 |  |  |                win__::MessageBox(GetHWND(),"更新成功!","提示",0);			 | 
 |  |  |                MessageBox(GetHWND(), L"请选中要修改的人员行!", L"提示", 0); | 
 |  |  |                return -1; | 
 |  |  |             } | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  | 				 | 
 |  |  |          //命令发布函数 | 
 |  |  |          int OnCmdDispatch(string comdid) | 
 |  |  |          e = dw_list.GetRowElement(row); | 
 |  |  |          sPersonID = e.selectSingleNode(L"@guid").text(); | 
 |  |  |          arg.AddArg(L"operate", L"modify"); | 
 |  |  |          arg.AddArg(L"guid", sPersonID); | 
 |  |  |          openUrl(L"组织架构.vface/xpage/Hr/HrPersonMaint", &arg); | 
 |  |  |       } | 
 |  |  |       else if (comdid == L"DeletePerson") | 
 |  |  |       { | 
 |  |  |          int row = dw_list.GetNextSelectRow(1); | 
 |  |  |          if (row < 1) | 
 |  |  |          { | 
 |  |  |             xaserverarg__ arg = new xaserverarg__;  | 
 |  |  |             arg.setNativePointer(arg.CreateInstance()); | 
 |  |  |             msxml::IXMLDOMElement e;	 | 
 |  |  |             string sPersonID; | 
 |  |  |             string sName;				 | 
 |  |  |             if (comdid =="AddPerson")  | 
 |  |  |             row = dw_list.GetRow(); | 
 |  |  |             if (row < 1) | 
 |  |  |             { | 
 |  |  |                arg.AddArg("operate","new0"); | 
 |  |  |                arg.AddArg("guid",""); | 
 |  |  |                openUrl("组织架构.vface/xpage/Hr/HrPersonMaint", arg);			 | 
 |  |  |                MessageBox(GetHWND(), L"请选中要删除的人员行!", L"提示", 0); | 
 |  |  |                return -1; | 
 |  |  |             } | 
 |  |  |             else if(comdid=="UpdateAssignmentView") | 
 |  |  |                OnUpdateAssignmentView(); | 
 |  |  |             else if (comdid =="ModifyPerson") | 
 |  |  |             { | 
 |  |  |                int row = dw_list.GetNextSelectRow(1); | 
 |  |  |                if (row < 1) | 
 |  |  |                { | 
 |  |  |                   row = dw_list.GetRow(); | 
 |  |  |                   if (row < 1)  | 
 |  |  |                   { | 
 |  |  |                      win__::MessageBox(GetHWND(),"请选中要修改的人员行!","提示",0); | 
 |  |  |                      return -1; | 
 |  |  |                   } | 
 |  |  |                } | 
 |  |  |                e = dw_list.GetRowElement(row); | 
 |  |  |                sPersonID = e.SelectSingleNode("@guid").text; | 
 |  |  |                arg.AddArg("operate","modify"); | 
 |  |  |                arg.AddArg("guid",sPersonID); | 
 |  |  |                openUrl("组织架构.vface/xpage/Hr/HrPersonMaint", arg);		 | 
 |  |  |             } | 
 |  |  |             else if (comdid =="DeletePerson") | 
 |  |  |             { | 
 |  |  |                int row = dw_list.GetNextSelectRow(1); | 
 |  |  |                if (row < 1) | 
 |  |  |                { | 
 |  |  |                   row = dw_list.GetRow(); | 
 |  |  |                   if (row < 1)  | 
 |  |  |                   { | 
 |  |  |                      win__::MessageBox(GetHWND(),"请选中要删除的人员行!","提示",0); | 
 |  |  |                      return -1; | 
 |  |  |                   } | 
 |  |  |                } | 
 |  |  |  | 
 |  |  |                e = dw_list.GetRowElement(row); | 
 |  |  |                sPersonID =  e.SelectSingleNode("@guid").text; | 
 |  |  |                sName = e.selectSingleNode("Name").text;					 | 
 |  |  |                sName += ""; | 
 |  |  |                int  MB_YESNO = 0x00000004; | 
 |  |  |                int  IDYES =  6;			 | 
 |  |  |                if(win__::MessageBox(GetHWND(),"确认要删除 "+sName+" 的信息吗?","提示",MB_YESNO)!=IDYES) return 1; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                arg.AddArg("guid",sPersonID); | 
 |  |  |  | 
 |  |  | 					 | 
 |  |  |                xml__ x1 = new xml__; | 
 |  |  |                x1.setNativePointer(x1.CreateInstance()); | 
 |  |  |                if (url::post("OrganizationStruct/delete.HrPerson",arg.GetString(),x1) != 1) | 
 |  |  |                { | 
 |  |  |                   string error = x1.GetXmlDoc().text; | 
 |  |  |                   trace(error); | 
 |  |  |                } | 
 |  |  |                else | 
 |  |  |                { | 
 |  |  |                   //win32::MessageBox(GetHWND(),"删除成功!","提示",0); | 
 |  |  |                   dw_list.DeleteRow(row); | 
 |  |  |                } | 
 |  |  |             } | 
 |  |  |             else if (comdid =="Refresh") | 
 |  |  |             { | 
 |  |  |                OnRetrieve(); | 
 |  |  |             }					 | 
 |  |  |             else if (comdid =="search" || comdid=="query") | 
 |  |  |             { | 
 |  |  |                OnSearch(); | 
 |  |  |             }					 | 
 |  |  |             return 0; | 
 |  |  |          } | 
 |  |  | 			 | 
 |  |  |          //命令处理事件 | 
 |  |  |          int OnXCommand(ref TXCommandEvent evt,int param) | 
 |  |  |  | 
 |  |  |          e = dw_list.GetRowElement(row); | 
 |  |  |          sPersonID = e.selectSingleNode(L"@guid").text(); | 
 |  |  |          sName = e.selectSingleNode(L"Name").text(); | 
 |  |  |          sName += L""; | 
 |  |  |          int  MB_YESNO = 0x00000004; | 
 |  |  |          int  IDYES = 6; | 
 |  |  |          if (MessageBox(GetHWND(), L"确认要删除 " + sName + L" 的信息吗?", L"提示", MB_YESNO) != IDYES) return 1; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |          arg.AddArg(L"guid", sPersonID); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |          xml x1; | 
 |  |  |  | 
 |  |  |          if (xurl::post(L"OrganizationStruct/delete.HrPerson", arg.GetString(), x1) != 1) | 
 |  |  |          { | 
 |  |  |             return OnCmdDispatch(evt.pStrID); | 
 |  |  |             xstring error = x1.text(); | 
 |  |  |             trace(error); | 
 |  |  |          } | 
 |  |  | 			 | 
 |  |  |          int OnAttachEvent() | 
 |  |  |          else | 
 |  |  |          { | 
 |  |  |             //绑定工具条点击事件 | 
 |  |  |             AttachEvent("WM_XCOMMAND",OnXCommand); | 
 |  |  |             //获取焦点事件,用于重置工具条 | 
 |  |  |             AttachEvent("WM_SETFOCUS",OnSetFocus); | 
 |  |  |             AttachEvent("dw_list","DWV_CLICKED",OnRowFocusChanged); | 
 |  |  |             AttachEvent("dw_list","DWV_DOUBLECLICKED",OnDoubleClicked); | 
 |  |  |             //win32::MessageBox(GetHWND(),L"删除成功!",L"提示",0); | 
 |  |  |             dw_list.DeleteRow(row); | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |       else if (comdid == L"Refresh") | 
 |  |  |       { | 
 |  |  |          OnRetrieve(); | 
 |  |  |       } | 
 |  |  |       else if (comdid == L"search" || comdid == L"query") | 
 |  |  |       { | 
 |  |  |          OnSearch(); | 
 |  |  |       } | 
 |  |  |       return 0; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |          int OnInitial() | 
 |  |  |          { | 
 |  |  |             SetAgent(); | 
 |  |  |    //命令处理事件 | 
 |  |  |    int OnXCommand(TEvent* evt, LPARAM param) | 
 |  |  |    { | 
 |  |  |       return OnCmdDispatch(evt->xcommand.pStrID); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |             OnAttachEvent(); | 
 |  |  | 				 | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  | 			 | 
 |  |  |          int onload() | 
 |  |  |          { | 
 |  |  |             m_sTxt=""; | 
 |  |  |             dw_list =  new xdwgrid__; | 
 |  |  |             dw_list.setNativePointer(this.GetControl("dw_list"));						 | 
 |  |  |             dw_list.openUrl("组织架构.vface/template/HrPerson/list");					 | 
 |  |  |             dw_list.SetReadOnly(true); | 
 |  |  |             dw_list.SetSelectionMode(1); | 
 |  |  |    int OnAttachEvent() | 
 |  |  |    { | 
 |  |  |       //绑定工具条点击事件 | 
 |  |  |       AttachEvent(L"WM_XCOMMAND", (FEvent)&HrPerson::OnXCommand); | 
 |  |  |       //获取焦点事件,用于重置工具条 | 
 |  |  |       AttachEvent(L"WM_SETFOCUS", (FEvent)&HrPerson::OnSetFocus); | 
 |  |  |       AttachEvent(L"dw_list", L"DWV_CLICKED", (FEvent)&HrPerson::OnRowFocusChanged); | 
 |  |  |       AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&HrPerson::OnDoubleClicked); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |             dw_HrEmployee =  new xdwgrid__; | 
 |  |  |             dw_HrEmployee.setNativePointer(this.GetControl("dw_HrEmployee"));						 | 
 |  |  |             dw_HrEmployee.openUrl("组织架构.vface/template/HrPerson/listemp");		 | 
 |  |  |             //dw_HrEmployee.openUrl("组织架构.vface/template/HrEmployee/list");		 | 
 |  |  |             OnInitial(); | 
 |  |  |    int OnInitial() | 
 |  |  |    { | 
 |  |  |       SetAgent(); | 
 |  |  |  | 
 |  |  |             OnRetrieve(); | 
 |  |  | 				 | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |       ] | 
 |  |  | 		 | 
 |  |  |    ] | 
 |  |  | ] | 
 |  |  |       OnAttachEvent(); | 
 |  |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int onload() | 
 |  |  |    { | 
 |  |  |       m_sTxt = L""; | 
 |  |  |       dw_list = new xdwgrid; | 
 |  |  |       dw_list.setNativePointer(GetControl(L"dw_list")); | 
 |  |  |       dw_list.openUrl(L"组织架构.vface/template/HrPerson/list"); | 
 |  |  |       dw_list.SetReadOnly(true); | 
 |  |  |       dw_list.SetSelectionMode(1); | 
 |  |  |  | 
 |  |  |       dw_HrEmployee = new xdwgrid; | 
 |  |  |       dw_HrEmployee.setNativePointer(GetControl(L"dw_HrEmployee")); | 
 |  |  |       dw_HrEmployee.openUrl(L"组织架构.vface/template/HrPerson/listemp"); | 
 |  |  |       //dw_HrEmployee.openUrl(L"组织架构.vface/template/HrEmployee/list");		 | 
 |  |  |       OnInitial(); | 
 |  |  |  | 
 |  |  |       OnRetrieve(); | 
 |  |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  | }; |