use "win.vl" use "dev:vm[xdwgrid.vm]" use "dev:vm[xdwtable.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" use "publiccode.vl" //unit vclient.vobject tpp unit vbusiness.xpage [ HrPersonMaint is extend frame; about HrPersonMaint [ control: method: [ xdwtable__ dw_1; string m_operate; string m_sguid; 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; } int OnSave() { int hIcon = xutil__::SetCursorWait(); string val; xml__ x = new xml__; x.setNativePointer(x.CreateInstance()); var xdoc = x.GetXmlDoc(); dw_1.AcceptText(); dw_1.DwUpdateAllTo(xdoc); val = xdoc.xml; //trace(val); xaserverarg__ args = new xaserverarg__; args.setNativePointer(args.CreateInstance()); args.AddArg("content", val); //trace(m_EntityValueEx); //trace(val); xml__ x1 = new xml__; x1.setNativePointer(x1.CreateInstance()); if (url::post("OrganizationStruct/update.HrPerson", args.GetString(), x1) != 1) { string error = x1.GetXmlDoc().text; trace(error); return 1; } else { trace(x1.GetXml()); win__::MessageBox(GetHWND(), "±£´æ³É¹¦£¡", "Ìáʾ", 0); } dw_1.ResetUpdateStatus(); xutil__::RestoreCursor(hIcon); return 1; } int OnAddRow() { xdwtable__ dw = new xdwtable__; dw.setNativePointer(dw_1.GetCurTable()); string dw_n = dw.GetDwName(); if (dw_n == "HrEmployee") dw.InsertRow(0); return 1; } int OnInsertRow() { xdwtable__ dw = new xdwtable__; dw.setNativePointer(dw_1.GetCurTable()); string dw_n = dw.GetDwName(); if (dw_n == "HrEmployee") { int row = dw.GetRow(); dw.InsertRow(row); } return 1; } int OnDeleteRow() { xdwtable__ dw = new xdwtable__; dw.setNativePointer(dw_1.GetCurTable()); string dw_n = dw.GetDwName(); if (dw_n == "HrEmployee") { int row = dw.GetRow(); dw.DeleteRow(row); } 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) { if (comdid == "Save") OnSave(); else if (comdid == "AddRow") OnAddRow(); else if (comdid == "InsertRow") OnInsertRow(); else if (comdid == "DeleteRow") OnDeleteRow(); else if (comdid == "Close") CloseWindow(); else if (comdid == "UpdateAssignmentView") OnUpdateAssignmentView(); return 0; } int OnChildContent(ref TNotifyEvent evt, int p) { ref DWNMHDR dwhdr = evt.pnmh; string col = dwhdr.colname; if (col != "") { xml__ x = new xml__; x.setNativePointer(x.CreateInstance()); xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); string query; query = "[IResourceMSSql.xq]"; if (col == "PositionID") { arg.AddArg("ResourceType", "HrPosition"); } if (xaserver__::ExecXQuery(GetServerUrl(), query, arg.GetString(), x) == 1) dwhdr.data = x.GetXml(); //trace(x.GetXml()); } return 1; } int OnItemChanged(ref TNotifyEvent evt, int p) { int HCursor = xutil__::SetCursorWait(); ref DWNMHDR dwhdr = evt.pnmh; int row = dwhdr.row; string col = dwhdr.colname; string data = dwhdr.data; trace(row); if (col == "Name") { string Name = dw_1.GetItemString(1, "Name", 0); xml__ xs = new xml__; xs.setNativePointer(xs.CreateInstance()); xaserverarg__ args = new xaserverarg__; args.setNativePointer(args.CreateInstance()); args.AddArg("Name", Name); if (url::get("/sale/data/ManpowerFile/GetUserName", args.GetString(), xs) != 1) { trace(xs.GetXmlDoc().text); return -1; } else { msxml::IXMLDOMNodeList items = xs.GetXmlDoc().selectNodes("data/Item"); int len = items.length; if (len != 0) { msxml::IXMLDOMNode t = items.item(0); string english_name = ""; string sex = ""; string sexex = ""; string birth_date = ""; string contact = ""; string induction_time = ""; string household_register = ""; string EmailAddress = ""; if (t.selectSingleNode("english_name")) english_name = t.selectSingleNode("english_name").text; if (t.selectSingleNode("sex")) sex = t.selectSingleNode("sexex").text; if (t.selectSingleNode("sexex")) sexex = t.selectSingleNode("sexex").text; if (t.selectSingleNode("birth_date")) birth_date = t.selectSingleNode("birth_date").text; if (t.selectSingleNode("contact")) contact = t.selectSingleNode("contact").text; if (t.selectSingleNode("induction_time")) induction_time = t.selectSingleNode("induction_time").text; if (t.selectSingleNode("household_register")) household_register = t.selectSingleNode("household_register").text; if (t.selectSingleNode("EmailAddress")) EmailAddress = t.selectSingleNode("EmailAddress").text; dw_1.SetItemString(1, "NickName", english_name); dw_1.SetItemDisplayString(1, "Gender", sexex); dw_1.SetItemString(1, "Gender", sex); dw_1.SetItemString(1, "Birthday", birth_date); dw_1.SetItemString(1, "Mobile", contact); dw_1.SetItemString(1, "HireDate", induction_time); dw_1.SetItemString(1, "BirthPlace", household_register); dw_1.SetItemString(1, "Email", EmailAddress); } } } if (col == "PositionID") { xdwtable__ dw_HrEmployee = new xdwtable__; dw_HrEmployee.setNativePointer(dw_1.FindDwTable("HrEmployee")); string sPositionID = dw_HrEmployee.GetItemString(row, "PositionID"); if (sPositionID == "" || sPositionID == nil) return 1; xml__ x = new xml__; x.setNativePointer(x.CreateInstance()); xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("guid", sPositionID); arg.AddArg("type", "GetOrgIDJobID"); //trace(arg.GetString()); if (url::get("OrganizationStruct/GetOrgIDJobID", arg.GetString(), x) != 1) { trace(x.GetXmlDoc().text); return -1; } else { msxml::IXMLDOMDocument xdoc = x.GetXmlDoc(); //IXMLDOMNodeList nlist = xdoc.getElementsByTagName("OrgID"); msxml::IXMLDOMElement e = xdoc.documentElement; string sOrgID = e.SelectSingleNode("@OrgID").text; string sJobID = e.SelectSingleNode("@JobID").text; dw_HrEmployee.SetItemString(row, "OrgID", sOrgID); dw_HrEmployee.SetItemString(row, "JobID", sJobID); string sdate = publiccode::GetCurDate() + ""; dw_HrEmployee.SetItemString(row, "StartDate", sdate + ""); dw_HrEmployee.SetItemString(row, "EndDate", "2050-12-31"); } } xutil__::RestoreCursor(HCursor); return 0; } //ÃüÁî´¦Àíʼþ int OnXCommand(ref TXCommandEvent evt, int p) { return OnCmdDispatch(evt.pStrID); } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent("WM_XCOMMAND", OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent("WM_SETFOCUS", OnSetFocus); //ÏÂÀ­¿ò ÌṩÄÚÈÝ AttachEvent("dw_detail", "DWV_CHILDCONTENT", OnChildContent); //ÄÚÈݸıä AttachEvent("dw_detail", "DWV_ITEMCHANGED", OnItemChanged); // //AttachEvent("dw_detail","DWV_ITEMFOCUSCHANGED",OnItemFocusChanged); } int OnRetrieve() { xml__ x = new xml__; x.setNativePointer(x.CreateInstance()); xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("guid", m_sguid); if (url::get("OrganizationStruct/detail.HrPerson", arg.GetString(), x) != 1) { trace(x.GetXmlDoc().text); return -1; } else { dw_1.Retrieve(x); dw_1.Redraw(); //trace(x.GetXml()); } return 1; } int OnInitial() { SetAgent(); OnAttachEvent(); return 1; } int onload() { dw_1 = new xdwtable__; dw_1.setNativePointer(this.GetControl("dw_detail")); dw_1.openUrl("×éÖ¯¼Ü¹¹.vface/template/HrPerson/maint"); OnInitial(); xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); arg = this.GetParam(); if (arg) { m_operate = arg.GetArgString("operate"); m_sguid = arg.GetArgString("guid"); } /*if ( m_sguid == "" || m_sguid == nil) { string val; xml__ x = new xml__; x.setNativePointer(x.CreateInstance()); var xdoc = x.GetXmlDoc(); dw_1.DwUpdateTo(xdoc); val = xdoc.xml ; xml__ xx = new xml__; xx.setNativePointer(xx.CreateInstance()); xx.loadXML(val); msxml::IXMLDOMElement e; e = xx.GetXmlDoc().selectSingleNode("HrPerson"); if (e) { string sguid = e.getAttribute("guid"); m_sguid = sguid; } //trace(m_sguid); }*/ if (m_sguid != "") OnRetrieve(); return 1; } ] ] ]