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 "treeview.vm" //unit vclient.vobject tpp unit vbusiness.xpage [ HrPosition is extend frame; about HrPosition [ field: [ treeview__ tv_org; xdwgrid__ dw_list; string sOrgID; string sOrgName; xnode__ m_agentNode; //Agent Condition string m_agentCond; //Agent Node ] method: [ 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 param) { SetAgent(); //ÖØÖù¤¾ßÌõ return 1; } int OnRetrieve(string ls_orgid) { string query = "[MSSqlHrPosition.xq]"; xml__ x = new xml__; x.setNativePointer(x.CreateInstance()); xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("orgID", ls_orgid); //if (xaserver__::ExecXQuery(GetServerUrl(),query,arg.GetString(),x)!=1) if (url::post("OrganizationStruct/list.Position", arg.GetString(), x) != 1) { trace(x.GetXmlDoc().text); return -1; } else { //trace(x.GetXml()); //dw_list.openUrl("×éÖ¯¼Ü¹¹.vface/template/HrPosition/list"); dw_list.Retrieve(x); dw_list.Redraw(); } return 1; } int OnTreeSelChanged(ref TXCommandEvent evt, int p) { int wid = tv_org.GetId(); int hitem = treeview__::GetSelectedItem(wid); msxml::IXMLDOMElement ele = treeview__::GetItemData(wid, hitem); string ls_orgid = ele.selectSingleNode("@guid").text; sOrgID = ls_orgid + ""; sOrgName = ele.selectSingleNode("OrgName").text; OnRetrieve(ls_orgid); return 1; } int OnSave() { xml__ x = new xml__; x.setNativePointer(x.CreateInstance()); dw_list.AcceptText(); dw_list.DwUpdateAllToEx(x.GetXmlDoc()); string xdata = x.GetXml(); xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("xdata", xdata); //trace(x.GetXml()); //return 1; //string xAction="[MSSqlHrPositionUpdate.xa]"; //if(xaserver__::ExecXAction(GetServerUrl(),xAction,arg.GetString())!=1) if (url::post("OrganizationStruct/update.Position", arg.GetString(), x) != 1) { trace(x.GetXmlDoc().documentElement.text); alert("±£´æÊ§°Ü1"); } else { dw_list.ResetUpdateStatus(); alert("±£´æ³É¹¦"); } return 1; } int OnAddRow() { int wid = tv_org.GetId(); int hitem = treeview__::GetSelectedItem(wid); if (!hitem) { alert("ÇëÑ¡Ôñ×éÖ¯¼Ü¹¹£¡"); return 0; } //openUrl("×éÖ¯¼Ü¹¹.vface/xpage/Hr/HrPositionAdd", this); OpenWindow("dev:xpage[HrPositionAdd.vx]", this); return 1; } int OnInsertRow() { int row = dw_list.GetRow(); dw_list.InsertRow(row); return 1; } int OnDeleteRow() { int row = dw_list.GetRow(); if (row > 0) { string sPositionName = dw_list.GetItemString(row, "PositionName", 0); int del_flog = win__::MessageBox(0, "È·¶¨ÒªÉ¾³ýÑ¡ÖеĸÚλ " + sPositionName + " Âð£¿", "Ìáʾ", 4); if (del_flog == 7) { return 0; } //ÅжÏHrEmployeeÀïÃæÊÇ·ñ´æÔڸøÚλ //string sPositionID = dw_list.GetItemString(row,"PositionID",0); msxml::IXMLDOMElement e = dw_list.GetRowElement(row); string sPositionID = e.selectSingleNode("@guid").text; xml__ x = new xml__; x.setNativePointer(x.CreateInstance()); xaserverarg__ args = new xaserverarg__; args.setNativePointer(args.CreateInstance()); args.AddArg("guid", sPositionID); //if(xaserver__::ExecXQuery(GetServerUrl(),"[HrpositionSel.xq]",args.GetString(),x)!=1) if (url::post("OrganizationStruct/select.Position", args.GetString(), x) != 1) { trace(x.GetXml()); return 0; } var doc = x.GetXmlDoc(); string cnt = doc.text; int ll_cnt = cnt.toInt(); if (ll_cnt == 0) //ÅжÏHrEmploeeÀïÃæÊÇ·ñ´æÔڸøÚλ { args.ClearArgs(); //xaserverarg__ Args = new xaserverarg__; //Args.setNativePointer(Args.CreateInstance()); args.AddArg("guid", sPositionID); //if(xaserver__::ExecXAction(GetServerUrl(),"[HrPositionDel.xa]",Args.GetString(),x)!=1) if (url::post("OrganizationStruct/delete.Position", args.GetString(), x) != 1) { trace(x.GetXmlDoc().documentElement.text); alert("ɾ³ýʧ°Ü"); } else { dw_list.DeleteRow(row); alert("ɾ³ý³É¹¦"); } } else { alert("ÆäËûµØ·½ÒѾ­Ê¹ÓøøÚ룬²»ÔÊÐíɾ³ý£¡"); return 0; } } return 1; } int OnChildContent(ref TNotifyEvent evt, int param) { 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 == "OrgID") { arg.AddArg("ResourceType", "HrOrg"); } else if (col == "JobID") { arg.AddArg("ResourceType", "HrJob"); } if (xaserver__::ExecXQuery(GetServerUrl(), query, arg.GetString(), x) == 1) dwhdr.data = x.GetXml(); //trace(x.GetXml()); } 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(); return 0; } //ÃüÁî´¦Àíʼþ int OnXCommand(ref TXCommandEvent evt, int param) { return OnCmdDispatch(evt.pStrID); } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent("WM_XCOMMAND", OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent("WM_SETFOCUS", OnSetFocus); //»ñµÃÊ÷µÄÑ¡Ôñʼþ AttachEvent("tv_org", "TVN_SELCHANGED", OnTreeSelChanged); //AttachEvent("dw_list","DWV_CHILDCONTENT",OnChildContent); //AttachEvent("dw_list","DWV_ITEMCHANGED",OnItemChanged); } int OnInitial() { SetAgent(); OnAttachEvent(); return 1; } int onload() { tv_org = new treeview__; tv_org.setNativePointer(this.GetControl("tv_org")); dw_list = new xdwgrid__; dw_list.setNativePointer(this.GetControl("dw_list")); dw_list.openUrl("×éÖ¯¼Ü¹¹.vface/template/HrPosition/list"); OnInitial(); int wid = tv_org.GetId(); int root = treeview__::GetRootItem(wid); treeview__::ExpandItem(wid, root); //OnRetrieve(); return 1; } ] ] ]