#include #include #include #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) UserGroupShareWin : public xframe { public: xdwgrid dw_list; xnode m_agentNode; //Agent Condition public: UserGroupShareWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static UserGroupShareWin* CreateInstance(void* implPtr, void* hWnd) { UserGroupShareWin* pWin = new UserGroupShareWin(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) { xstring s = agent.xml(); m_agentNode = SetAgentNode(anode, s); } } return 1; } //½¹µã¼¤»î´¦Àíº¯Êý int OnSetFocus(TEvent* evt, LPARAM param) { //ÖØÖù¤¾ßÌõ //SetAgent(); return 1; } //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(xstring comdid) { if (comdid == L"xmClose") { CloseWindow(); return 1; } if (comdid == L"xmSave") { return OnSave(); } if (comdid == L"xmMemberAdd" || comdid == L"xmAdd") { xaserverarg arg; xaserverarg parg = GetArg(); if (comdid == L"xmMemberAdd") OpenWindow(L"dev:xpage[UserGroupPersonSelect.vx]", arg); else OpenWindow(L"dev:xpage[UserGroupSelect.vx]", arg); if (arg.GetArgString(L"comdid") == L"xmOk") { xstring data = arg.GetArgString(L"data"); xml x; x.loadXML(data); KXMLDOMNodeList nodes = x.selectNodes(L"/root/item"); int len = nodes.length(); for (int i = 0; i < len; i++) { dw_list.InsertRow(0); int row = dw_list.GetRowCount(); KXMLDOMElement ele = nodes.item(i); dw_list.SetItemString(row, L"No", ele.getAttribute(L"No")); dw_list.SetItemString(row, L"Name", ele.getAttribute(L"Name")); if (comdid == L"xmMemberAdd") { dw_list.SetItemString(row, L"PersonID", ele.getAttribute(L"PersonID")); } else dw_list.SetItemString(row, L"UserGroupID", ele.getAttribute(L"UserGroupID")); dw_list.SetItemString(row, L"EntityID", parg.GetArgString(L"EntityID")); dw_list.SetItemString(row, L"EntityName", parg.GetArgString(L"EntityName")); } dw_list.Redraw(); } return 1; } /* if(comdid==L"xmAdd") { xaserverarg arg; xaserverarg parg = GetParam(); OpenWindow(L"dev:xpage[UserGroupSelect.vx]",cast(arg as int)); if(arg.GetArgString(L"comdid")==L"xmOk") { xstring data = arg.GetArgString(L"data"); xml x; x.loadXML(data); KXMLDOMNodeList nodes = x.selectNodes(L"/root/item"); int len = nodes.length(); for(int i=0;ixcommand.pStrID); } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent(L"WM_XCOMMAND", (FEvent)&UserGroupShareWin::OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent(L"WM_SETFOCUS", (FEvent)&UserGroupShareWin::OnSetFocus); return 1; } int Send(xstring PersonID, xstring CName, xstring NO, xstring EntityID) { xaserverarg arg1 = GetArg(); xstring Name = arg1.GetArgString(L"EntityName"); xstring Subject = Name + L"Òѹ²Ïí[" + CName + L"]"; xstring Category = Name + L"¹²Ïí"; xstring Content = L""; xml x = ViewObject::RetrieveData(L"/sale/data/business/message/getUserNO", L"PersonID", PersonID); KXMLDOMNodeList nlist = x.selectNodes(L"//data/Item"); KXMLDOMElement xitem = nlist.item(0); xstring Reciever = xitem.selectSingleNode(L"userno").text(); xitem.Release(); /*alert(L"Category:"+Category + "\r\nReciever:"+Reciever + L"\r\nNo:"+NO + L"\r\nEntityID:"+EntityID + L"Subject:"+Subject+ "\r\nContent:"+Content); */ x = ViewObject::AddMessage(Category, Reciever, NO, EntityID, Subject, Content); return 1; } int SendNotice(xml content) { xaserverarg arg = GetArg(); xstring CName = arg.GetArgString(L"EntityName"); xstring EntityID = arg.GetArgString(L"EntityID"); xstring EntityNo = arg.GetArgString(L"EntityNo"); KXMLDOMNodeList nlist = content.selectNodes(L"//root/item[@update.new='1']"); int leng = nlist.length(); for (int i = 0; i < leng; i++) { KXMLDOMElement xitem = nlist.item(i); xstring PersonID = xitem.selectSingleNode(L"PersonID").text(); xstring UserGroupID = xitem.selectSingleNode(L"UserGroupID").text(); xstring NO = xitem.selectSingleNode(L"NO").text(); if (PersonID != L"") { Send(PersonID, CName, EntityNo, EntityID); } if (UserGroupID != L"") { xml x = ViewObject::RetrieveData(L"/sale/data/business/message/getPersonIDByGroup", L"UserGroupID", UserGroupID); KXMLDOMNodeList nlist1 = x.selectNodes(L"//data/Item"); for (int j = 0; j < nlist1.length(); j++) { KXMLDOMElement xitem1 = nlist1.item(j); PersonID = xitem1.selectSingleNode(L"PersonID").text(); Send(PersonID, CName, EntityNo, EntityID); } } xitem.Release(); //return 1; } return 1; } int OnSave() { xml xs; dw_list.DwUpdateAllToEx(xs); xaserverarg arg; arg.AddArg(L"content", xs.xml()); xml x; if (xurl::get(L"/sale/data/UserGroup/update/entity", arg.GetString(), x) != 1) { xstring error = x.text(); alert(L"err:" + error); return 1; } else { xstring str = x.documentElement().getAttribute(L"text"); if (str == L"true") { dw_list.ResetUpdateStatus(); xaserverarg arg_ = GetArg(); if (arg_.GetArgString(L"notify") == L"1") SendNotice(xs);//·¢ËÍ֪ͨ alert(L"±£´æ³É¹¦!"); } else { alert(L"±£´æÊ§°Ü!"); } } return 1; } int OnRetrieve() { xml x; xaserverarg arg; xaserverarg parg = GetArg(); arg.AddArg(L"EntityID", parg.GetArgString(L"EntityID")); if (getUrl(L"/sale/data/UserGroup/entity/list", arg.GetString(), x) != 1) { trace(x.text()); return -1; } else { dw_list.Retrieve(x); dw_list.Redraw(); dw_list.SetReadOnly(true); } return 1; } int onload() { SetArg(); dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/UserGroup/template/entityusergrouplist"); dw_list.SetReadOnly(true); dw_list.SetColumnState(L"UserGroupID", false); dw_list.SetColumnState(L"EntityID", false); dw_list.SetColumnState(L"EntityName", false); dw_list.SetColumnState(L"PersonID", false); OnAttachEvent(); //SetAgent(); if (GetWinParam()) OnRetrieve(); return 1; } };