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; xnode__ m_agentNode; //Agent Condition string m_agentCond; //Agent Node int SetAgent() { 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; } //½¹µã¼¤»î´¦Àíº¯Êý int OnSetFocus(ref TEvent evt,int p) { SetAgent(); //ÖØÖù¤¾ßÌõ return 1; } //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; } 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(); } // if (dw_list.GetRowCount() >0) // OnRowFocusChanged(); 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 OnUpdateAssignmentView() { xml__ x1 = new xml__; x1.setNativePointer(x1.CreateInstance()); if (url::post("OrganizationStruct/update.Assignmentview","",x1) != 1) { string error = x1.GetXmlDoc().text; trace(error); return 1; } else { trace(x1.GetXml()); win__::MessageBox(GetHWND(),"¸üгɹ¦£¡","Ìáʾ",0); } return 1; } //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(string comdid) { xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); msxml::IXMLDOMElement e; string sPersonID; string sName; if (comdid =="AddPerson") { arg.AddArg("operate","new0"); arg.AddArg("guid",""); openUrl("×éÖ¯¼Ü¹¹.vface/xpage/Hr/HrPersonMaint", arg); } 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) { return OnCmdDispatch(evt.pStrID); } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent("WM_XCOMMAND",OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent("WM_SETFOCUS",OnSetFocus); AttachEvent("dw_list","DWV_CLICKED",OnRowFocusChanged); AttachEvent("dw_list","DWV_DOUBLECLICKED",OnDoubleClicked); } int OnInitial() { SetAgent(); 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); 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(); OnRetrieve(); return 1; } ] ] ]