#include #include #include #include #include #include #include #include #include #include #include #include "XDevEditPage.hpp" using xml = KXMLDOMDocument; class export XDevEditXOffice : public XDevEditPage { public: XDevEditXOffice(void* implPtr, HWND hWnd) : XDevEditPage(implPtr, hWnd) {} public: static XDevEditXOffice* CreateInstance(void* implPtr, void* hWnd) { XDevEditXOffice* pWin = new XDevEditXOffice(implPtr, (HWND)hWnd); return pWin; } private: // //xdwgrid dw_list; xoffice m_xdoc; xnode m_agentNode; //Agent Condition xstring m_agentCond; //Agent Node public: int SetAgent() { xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); auto xframeElement = GetElement(); auto 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) { xml x ; m_xdoc.GetData(x); xstring content = x.xml(); if (comdid == L"xmFileSave") { //save xml content SaveContent(content); return 1; } else if (comdid == L"xmDevPreview") { xml x; m_xdoc.GetData(x,m_xdoc.GetSelectedSheetIndex()); xaserverarg arg; arg.AddArg(L"xml", x.xml()); OpenWindow(L"dev:xpage[XDevOfficePreview.xpage]", arg); return 1; } else if (comdid == L"content") { return 1; xsedit xs = GetControl(L"rptcontent"); xs.LoadContent(content,L".txt"); //xs.SetText(content); return 1; } else if (comdid == L"content1") { xcontrol xs = GetControl(L"rptcontent1"); SendMessage(xs.GetHWND(), 0x400 + 53,0,4096 * 4096); xs.SetText(content); return 1; } else if (comdid == L"design") { xsedit xs = GetControl(L"rptcontent"); xstring str; xs.GetContent(str); if (str != L"" && str != content) { m_xdoc.LoadTemplate(str,0); xs.LoadContent(L"",L".txt"); } /* xcontrol xs = GetControl(L"rptcontent1"); xstring str ; xstring str = xs.GetText(); if(str !=L"" && str != content) { m_xdoc.LoadTemplate(str,0); //xs.LoadContent(L"",L".txt"); }*/ return 1; } return 0; } //ÃüÁî´¦Àíʼþ int OnXCommand(TEvent* evt,LPARAM param) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent(L"WM_XCOMMAND",(FEvent)&XDevEditXOffice::OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent(L"WM_SETFOCUS", (FEvent)&XDevEditXOffice::OnSetFocus); return 1; } /* int OnRetrieve() { xstring query=L"[xxx]"; xml x = new xml; xaserverarg arg = new xaserverarg; arg.AddArg(L"xxx",L"xxx"); if (xaserver::ExecXQuery(GetServerUrl(),query,arg.GetString(),x)!=1) { trace(x.GetXmlDoc().text); return -1; }else { dw_list.Retrieve(x); dw_list.Redraw(); } return 1; } */ int LoadData() { if (!GetWinParam()) return 1; m_xdoc = GetControl(L"rpt"); xstring content = GetData(); if (content != L"") { m_xdoc.LoadTemplate(content,0); } else { KXMLDOMElement pElement; xml x ; auto xdoc = x; xdoc.loadXML(L""); m_xdoc.LoadTemplate(x,0); } return 1; } int OnInitial() { SetAgent(); OnAttachEvent(); return 1; } int onload() { //dw_list = GetControl(L"dw_list"); //dw_list.SetDataObject(GetServerUrl(),L"dev:sheet[xxx.tpl/List]"); OnInitial(); LoadData(); //OnRetrieve(); return 1; } };