|  |  | 
 |  |  | #include <xcontrol/xtreeview.hpp> | 
 |  |  | #include <xcontrol/xdwgrid.hpp> | 
 |  |  | #include <xcontrol/xlayersheet.hpp> | 
 |  |  | #include <xcontrol/xcell.hpp> | 
 |  |  |  | 
 |  |  | #include "vbusiness/vframe/maint.vframe.vbusiness.hpp" | 
 |  |  | #include "viewobject/view.base.hpp" | 
 |  |  |  | 
 |  |  | using xml = KXMLDOMDocument; | 
 |  |  |  | 
 |  |  | class __declspec(dllexport) MaintTemplatePrintWin :  public xframe | 
 |  |  | class __declspec(dllexport) MaintTemplatePrintWin : public xframe | 
 |  |  | { | 
 |  |  | public: | 
 |  |  |    xcell cell; | 
 |  |  |    xnode   m_agentNode;   //Agent Condition | 
 |  |  |    xstring args; | 
 |  |  | public: | 
 |  |  |    MaintTemplatePrintWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} | 
 |  |  | public: | 
 |  |  |    static MaintTemplatePrintWin* CreateInstance(void* implPtr, void* hWnd) | 
 |  |  |    { | 
 |  |  |    public: | 
 |  |  |       xcell cell; | 
 |  |  |       xnode   m_agentNode;   //Agent Condition | 
 |  |  |       xstring args; | 
 |  |  |    public: | 
 |  |  |       MaintTemplatePrintWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} | 
 |  |  |    public: | 
 |  |  |       static MaintTemplatePrintWin* CreateInstance(void* implPtr, void* hWnd) | 
 |  |  |       MaintTemplatePrintWin* pWin = new MaintTemplatePrintWin(implPtr, (HWND)hWnd); | 
 |  |  |       return pWin; | 
 |  |  |    } | 
 |  |  |    int SetAgent() | 
 |  |  |    { | 
 |  |  |       xstring xfNodeAgentArea = L"agentarea"; | 
 |  |  |       xnode anode = GetAgentNode(xfNodeAgentArea); | 
 |  |  |       if (m_agentNode) | 
 |  |  |       { | 
 |  |  |          MaintTemplatePrintWin* pWin = new MaintTemplatePrintWin(implPtr, (HWND)hWnd); | 
 |  |  |          return pWin; | 
 |  |  |          SetAgentNode(anode, m_agentNode); | 
 |  |  |       } | 
 |  |  |       int SetAgent() | 
 |  |  |       else | 
 |  |  |       { | 
 |  |  |          xstring xfNodeAgentArea  = L"agentarea"; | 
 |  |  |          xnode anode = GetAgentNode(xfNodeAgentArea); | 
 |  |  |          if(m_agentNode) | 
 |  |  |          KXMLDOMElement xframeElement = GetElement(); | 
 |  |  |          KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); | 
 |  |  |          if (agent) | 
 |  |  |          { | 
 |  |  |             SetAgentNode (anode,m_agentNode); | 
 |  |  |             xstring s = agent.xml(); | 
 |  |  |             m_agentNode = SetAgentNode(anode, s); | 
 |  |  |          } | 
 |  |  |          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; | 
 |  |  |       } | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |       //焦点激活处理函数 | 
 |  |  |       int OnSetFocus(TEvent* evt, LPARAM p) | 
 |  |  |       { | 
 |  |  |          //重置工具条 | 
 |  |  |          SetAgent(); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  | } | 
 |  |  |    //焦点激活处理函数 | 
 |  |  |    int OnSetFocus(TEvent* evt, LPARAM p) | 
 |  |  |    { | 
 |  |  |       //重置工具条 | 
 |  |  |       SetAgent(); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |       int SendCtrlCmd(xcontrol xc, xstring cmd) | 
 |  |  |       { | 
 |  |  |          win32::SendMessage(xc.GetId(),0x401,cmd,0); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |    int SendCtrlCmd(xcontrol xc, xstring cmd) | 
 |  |  |    { | 
 |  |  |       SendMessage(xc.GetHWND(), 0x401, (WPARAM)cmd.c_str(), 0); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |       //命令发布函数 | 
 |  |  |       int OnCmdDispatch(xstring comdid) | 
 |  |  |    //命令发布函数 | 
 |  |  |    int OnCmdDispatch(xstring comdid) | 
 |  |  |    { | 
 |  |  |       if (comdid.left(3) == L"IK_") | 
 |  |  |       { | 
 |  |  |          if(comdid.left(3) == L"IK_") | 
 |  |  |          { | 
 |  |  |             xstring cmd = comdid.mid(3, comdid.length()); | 
 |  |  |             SendCtrlCmd(GetControl(L"cell"),cmd); | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |          else if(comdid==L"xmFileOpen") | 
 |  |  |          { | 
 |  |  |             cell.OpenFile(); | 
 |  |  |             cell.Redraw(); | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |          else if(comdid==L"xmFileSave") | 
 |  |  |          { | 
 |  |  |             cell.SaveFile(); | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |          else if(comdid==L"xmFileSaveAs") | 
 |  |  |          { | 
 |  |  |             cell.SaveFileAs(); | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |          return 0; | 
 |  |  |       } | 
 |  |  | 		 | 
 |  |  |       //命令处理事件 | 
 |  |  |       int OnXCommand(TEvent* evt, LPARAM p) | 
 |  |  |       { | 
 |  |  |          return OnCmdDispatch(evt->xcommand.pStrID); | 
 |  |  |       } | 
 |  |  | 		 | 
 |  |  |       int OnAttachEvent() | 
 |  |  |       { | 
 |  |  |          //绑定工具条点击事件 | 
 |  |  |          AttachEvent(L"WM_XCOMMAND", (FEvent)&MaintTemplatePrintWin::OnXCommand); | 
 |  |  |          //获取焦点事件,用于重置工具条 | 
 |  |  |          AttachEvent(L"WM_SETFOCUS", (FEvent)&MaintTemplatePrintWin::OnSetFocus); | 
 |  |  |       } | 
 |  |  | 		 | 
 |  |  |       int onload() | 
 |  |  |       { | 
 |  |  |          cell = GetControl(L"cell"); | 
 |  |  |          SetAgent();			 | 
 |  |  | 		 | 
 |  |  |          OnAttachEvent();	 | 
 |  |  | 			 | 
 |  |  |          if(GetWinParam()) | 
 |  |  |          { | 
 |  |  |             args = GetParamString(); | 
 |  |  |             cell.openUrl(L"/sale/data/SysPrintTemplate/getdevxsl",args); | 
 |  |  |          } | 
 |  |  |          else | 
 |  |  |             args =L""; | 
 |  |  | 			 | 
 |  |  |          xstring cmd = comdid.mid(3, comdid.length()); | 
 |  |  |  | 
 |  |  |          SendCtrlCmd(cell.GetHWND(), cmd); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  | 		 | 
 |  |  |       int onloaded() | 
 |  |  |       else if (comdid == L"xmFileOpen") | 
 |  |  |       { | 
 |  |  | 			 | 
 |  |  |          cell.OpenFile(); | 
 |  |  |          cell.Redraw(); | 
 |  |  |          return 1; | 
 |  |  |       }		 | 
 |  |  | 	 | 
 |  |  |       } | 
 |  |  |       else if (comdid == L"xmFileSave") | 
 |  |  |       { | 
 |  |  |          cell.SaveFile(); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |       else if (comdid == L"xmFileSaveAs") | 
 |  |  |       { | 
 |  |  |          cell.SaveFileAs(); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |       return 0; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    //命令处理事件 | 
 |  |  |    int OnXCommand(TEvent* evt, LPARAM p) | 
 |  |  |    { | 
 |  |  |       return OnCmdDispatch(evt->xcommand.pStrID); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnAttachEvent() | 
 |  |  |    { | 
 |  |  |       //绑定工具条点击事件 | 
 |  |  |       AttachEvent(L"WM_XCOMMAND", (FEvent)&MaintTemplatePrintWin::OnXCommand); | 
 |  |  |       //获取焦点事件,用于重置工具条 | 
 |  |  |       AttachEvent(L"WM_SETFOCUS", (FEvent)&MaintTemplatePrintWin::OnSetFocus); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int onload() | 
 |  |  |    { | 
 |  |  |       cell = GetControl(L"cell"); | 
 |  |  |       SetAgent(); | 
 |  |  |  | 
 |  |  |       OnAttachEvent(); | 
 |  |  |  | 
 |  |  |       if (GetWinParam()) | 
 |  |  |       { | 
 |  |  |          args = GetParamString(); | 
 |  |  |          cell.openUrl(L"/sale/data/SysPrintTemplate/getdevxsl", args); | 
 |  |  |       } | 
 |  |  |       else | 
 |  |  |          args = L""; | 
 |  |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int onloaded() | 
 |  |  |    { | 
 |  |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  | }; |