#include #include // Defines of stuff like IWebBrowser2. This is an include file with Visual C 6 and above #include // Defines of stuff like IHTMLDocument2. This is an include file with Visual C 6 and above #include // Defines of stuff like IDocHostUIHandler. This is an include file with Visual C 6 and above #include #include #include #undef _XWIN #include #include #include #include #include #include #include "vbusiness/vframe/maint.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" #include #include #include #include using xml = KXMLDOMDocument; #if 0 namespace _excel for ole "Excel.Application,{00020813-0000-0000-C000-000000000046}"; namespace _mshtml for ole "MSHtml,{3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}"; class cexcel : public xnative native from "XControl.dll" { void Release(int t) alias "?Release@CExcelApplication@@QAEXPAV1@@Z"; static int CreateInstance() alias "?CreateInstance@CExcelApplication@@SAPAV1@XZ"; void put_Visible(bool t) alias "?put_Visible@CExcelApplication@@QAEXH@Z"; bool get_Visible() alias "?get_Visible@CExcelApplication@@QAEHXZ"; void OpenDocument(const xstring filename) alias "?OpenDocument@CExcelApplication@@QAEXQA_W@Z"; void TransShape() alias "?TransShape@CExcelApplication@@QAEXXZ"; void SaveToFile(xstring filename) alias "?SaveToFile@CExcelApplication@@QAEXQA_W@Z"; void Quit() alias "?Quit@CExcelApplication@@QAEXXZ"; }; #endif DeclWinObject_(TemplatePrintViewEx, xframe) { CreateWinObject_(TemplatePrintViewEx, xframe) public: xhtml ole_print; xcell cell; xstring m_SupplierName; xstring m_EntityName; xstring m_EntityID; xstring m_EntityNo; xstring m_strHtml; xstring m_spath; bool updated; xstring htmlStr; bool editing; xstring billName ; xstring billID ; xstring billPre; xstring m_DocumentID; xml m_dataset; //bool showgrid; bool PaperPrint; #if 0 cexcel excel; static stdcall int GetModuleFileName(int hModule ,xstring lpFileName ,int nSize ) native from "kernel32.dll" alias "GetModuleFileNameW"; static stdcall int PathRemoveFileSpec(xstring lpFileName ) native from "shlwapi.dll" alias "PathRemoveFileSpecW"; static stdcall int DeleteFile(xstring lpFileName) native from "kernel32.dll" alias "DeleteFileW"; static stdcall bool GetSaveFileName(ref MYOPENFILENAMEW)native from "comdlg32.dll" alias "GetSaveFileNameW"; #endif xstring GetMySaveFileName(xstring initFileName, xstring filter, xstring ext) { wchar_t szFileName[255] = { 0 }; wchar_t szPath[255] = { 0 }; if(initFileName !=L"") { int len = initFileName.length(); const wchar_t* tmp = initFileName; for(int i=0; i=0) { tag = right.left(pos1); if(tag.right(1)==L"$") tag=tag.left(tag.length() - 1); pre = pre + left + L"<" + tag +L">"; str = right.mid(pos1+ 1,999999); }else { pre = pre + left+L"<"; str = right; } } str = pre + str; pre = L""; len = ((xstring)L"[/$element:").length(); while(true) { pos = str.find(L"[/$element:"); if(pos < 0) break; left = str.left(pos); right = str.mid(pos+ len,999999); pos1 = right.find(L"]"); if(pos1>=0) { tag = right.left(pos1); if(tag.right(1)==L"$") tag=tag.left(tag.length() - 1); pre = pre + left + L""; str = right.mid(pos1+ 1,999999); }else { pre = pre + left+L"=0) str = str.replace(L"%",L""); if(str.find(L"[$path]/rpttemplate")>=0) str = str.replace(L"[$path]/rpttemplate",localPath); str = replaceInnerElement(str); return str; } #if 0 xstring DownLoadSKUNoPic(xstring SKUNo,xstring CustomerID=L"",xstring CustomerItemNo=L"") { if(SKUNo.length()>20) return DownLoadPaperPic(SKUNo); xml x; xaserverarg arg; arg.AddArg(L"SKUNo",SKUNo); xstring src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; if(CustomerID !=L"") { arg.AddArg(L"CustomerID",CustomerID); arg.AddArg(L"CustomerItemNo",CustomerItemNo); src =L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo"; } //trace(L"SKUNo=L"+SKUNo);//ÒªÓÐչʾͼƬ²éѯÌõ¼þÄڱض¨Òªskuno if(xurl::get(src,arg.GetString(),x)!=1) { trace(L"error for download skuno pic!"); return L""; } xstring spath = L""; xstring path = xutil::GetModuleTmpPath(); xstring ext = L"jpg"; if(x.selectSingleNode(L"//FileExt[1]")) { ext = x.selectSingleNode(L"//FileExt[1]").text(); }else if(CustomerID !=L"") { src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; if(xurl::get(src,arg.GetString(),x)!=1) { trace(L"error for download skuno pic!"); return L""; } if(x.selectSingleNode(L"//FileExt[1]")) ext = x.selectSingleNode(L"//FileExt[1]").text(); } xstring filename = SKUNo + L"." + ext; if(x.selectSingleNode(L"//PicPath[1]")) spath = x.selectSingleNode(L"//PicPath[1]").text(); if(spath != L"") { xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename); } return (xstring)L"file://"+ path+L"/"+filename; } #endif xstring DownLoadSKUNoPic(xstring SKUNo,xstring CustomerID=L"",xstring CustomerItemNo=L"") { if(SKUNo.length()>20) return DownLoadPaperPic(SKUNo); xml x; xaserverarg arg; arg.AddArg(L"SKUNo",SKUNo); xstring src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; if(CustomerID !=L"") { arg.AddArg(L"CustomerID",CustomerID); arg.AddArg(L"CustomerItemNo",CustomerItemNo); src =L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo"; } //trace(L"SKUNo=L"+SKUNo);//ÒªÓÐչʾͼƬ²éѯÌõ¼þÄڱض¨Òªskuno if(xurl::get(src,arg.GetString(),x)!=1) { trace(L"error for download skuno pic!"); return L""; } xstring spath = L""; xstring path = xutil::GetModuleTmpPath(); xstring ext = L"jpg"; if(x.selectSingleNode(L"//FileExt[1]")) { ext = x.selectSingleNode(L"//FileExt[1]").text(); }else if(CustomerID !=L"") { src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; if(xurl::get(src,arg.GetString(),x)!=1) { trace(L"error for download skuno pic!"); return L""; } if(x.selectSingleNode(L"//FileExt[1]")) ext = x.selectSingleNode(L"//FileExt[1]").text(); } xstring filename = SKUNo + L"." + ext; if(x.selectSingleNode(L"//PicPath[1]")) spath = x.selectSingleNode(L"//PicPath[1]").text(); if(spath != L"") { xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename); } return L"file://"+ path+L"/"+filename; } xstring GetImageUrl(xstring id) { xml xp; xaserverarg arg_pic; arg_pic.AddArg(L"id",id); xstring res = L"/sale/data/productlibrary3/image/url"; if(xurl::get(res,arg_pic.GetString(),xp)!=1) { xp.xml(); return 1; }else { xstring path = xp.text(); if(path !=L"") return path; } return L"/business/products/chanpin/"+id.left(2)+L"/"+ id+L".jpg"; } xstring DownLoadPaperPic(xstring guid) { xstring path = xutil::GetModuleTmpPath(); xstring ext = L"jpg"; xstring filename = guid + L"." + ext; xstring spath = GetImageUrl(guid); //alert(spath); xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename); return (xstring)L"file://"+ path+L"/"+filename; } xstring DownLoadPaperPic1(xstring guid) { xstring path = xutil::GetModuleTmpPath(); xstring ext = L"jpg"; xstring filename = guid + L"." + ext; xstring str = guid.mid(0,2); xstring spath = L"/business/products/chanpin/"+str+L"/"+guid+L".jpg"; xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename); return (xstring)L"file://"+ path+L"/"+filename; } xstring DownLoadUrlPic(xstring src) { xstring guid = publiccode::GetGuid(); xstring path = xutil::GetModuleTmpPath(); xstring ext = L"jpg"; xstring filename = guid + L"." + ext; xstring spath = src; xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename); return (xstring)L"file://"+ path+L"/"+filename; } int OnHtml(xaserverarg arg) { HCURSOR hCursor = xutil::SetCursorWait(); xstring sEntityName = arg.GetArgString(L"EntityName"); xstring sEntityID = arg.GetArgString(L"EntityID"); xstring dataUrl = arg.GetArgString(L"DataUrl"); if(dataUrl==L"") dataUrl = L"/sale/data/"+sEntityName+L"/print/dataset"; else if(dataUrl.left(1)!=L"/") dataUrl = L"/sale/data/"+sEntityName+ L"/"+ dataUrl; if(!m_dataset) { xml x0 ; if (xurl::get(dataUrl,arg.GetString(),x0) != 1) { alert(L"Êý¾Ý¼¯³ö´íÁË!"); return 0; } trace(x0.xml()); m_dataset = x0; } xstring sPath; sPath = getfilePath(); arg.AddArg(L"sPath",sPath); m_spath = sPath; xml xsl; if (xurl::get(L"/sale/data/SysPrintTemplate/getxsl", arg.GetString(), xsl) != 1) { alert(L"Êý¾ÝÄ£°å´íÎó!"); return 0; } xstring xslStr = xsl.xml(); xslStr = adjustXsl(xslStr,sPath); xsl.loadXML(xslStr); //trace(m_dataset.GetXml()); trace(L"\r\n--------\r\n"+xslStr); m_strHtml = m_dataset.transformNode(xsl); xstring aspace = m_strHtml.replace(L"[¿Õ]",L" ",0); aspace = aspace.replace(L"[line]",L"
",0); xstring scontent = aspace.replace(L"",L"",0); xstring head =L""; xstring tail = scontent; int pos = tail.find(L"src=\"item-picture:"); while(pos > 0) { int spos = pos+((xstring)L"src=\"item-picture:").length(); int pos1 = tail.find(L"\"",spos+1); xstring skuno = tail.mid(spos,pos1 - spos ).trim(); xstring CustomerID=L""; xstring CustomerItemNo=L""; if(skuno.find(L",")>0) { CustomerID = skuno.left(skuno.find(L",")).trim(); skuno = skuno.mid(skuno.find(L",")+1,256).trim(); } if(skuno.find(L",")>0) { CustomerItemNo = skuno.left(skuno.find(L",")).trim(); skuno = skuno.mid(skuno.find(L",")+1,256).trim(); } xstring src = DownLoadSKUNoPic(skuno,CustomerID,CustomerItemNo); head += tail.left(pos) + L"src=\"" + src; tail = tail.mid(pos1,999999999); pos = tail.find(L"src=\"item-picture:"); } scontent = head + tail; head =L""; tail = scontent; int position = tail.find(L"src=\"paper-picture:"); while(position > 0) { int sposition = position+ ((xstring)L"src=\"paper-picture:").length(); int position1 = tail.find(L"\"",sposition+1); xstring guid = tail.mid(sposition,position1 - sposition ).trim(); xstring src2 = DownLoadPaperPic(guid); head += tail.left(position) + L"src=\"" + src2; tail = tail.mid(position1,999999999); position = tail.find(L"src=\"paper-picture:"); } scontent = head + tail; head =L""; tail = scontent; position = tail.find(L"src=\"src-picture:"); while(position > 0) { int sposition = position+((xstring)L"src=\"src-picture:").length(); int position1 = tail.find(L"\"",sposition+1); xstring guid = tail.mid(sposition,position1 - sposition ).trim(); xstring src2 = DownLoadUrlPic(guid); head += tail.left(position) + L"src=\"" + src2; tail = tail.mid(position1,999999999); position = tail.find(L"src=\"src-picture:"); } scontent = head + tail; scontent = adjustXsl(scontent,sPath); htmlStr = scontent; ole_print.LoadHtml(scontent); xml x1; //xstring xcontent = m_strHtml.replace(L" ",L"[¿Õ]",0); xstring xcontent = m_strHtml.replace(L"[¿Õ]",L" ",0); int pos0 = xcontent.find(L""); if(pos0>=0) { xstring str = xcontent.left(pos0)+ xcontent.mid(pos2+6,9999999); xcontent = str; } x1.loadXML(xcontent); if(x1) { /*if(!showgrid) { SendCtrlCmd(cell,L"xmFormatShowGrid"); showgrid = true; }*/ cell.LoadTemplate(x1); cell.Redraw(); } xutil::RestoreCursor(hCursor); updateHtml(); return 1; } int updateHtml() { return 1; IHTMLDocument3* doc = (IHTMLDocument3 * )ole_print.GetHtmlDocument(); IHTMLElementCollection* rows = NULL; IHTMLElementCollection* rows2 = NULL; doc->getElementsByTagName((BSTR)L"tr",&rows); doc->getElementsByTagName((BSTR)L"td",&rows2); long len; rows->get_length(&len); long len2; rows2->get_length(&len2); for(int i=0; i < len - 1;i++) { _variant_t var; IHTMLElement* e=0; IHTMLStyle* pstyle=0; long offsetHeight=0; rows->item((_variant_t)i, (_variant_t)i,(IDispatch**) & e); e->get_style(&pstyle); e->get_offsetHeight(&offsetHeight); pstyle->setAttribute((BSTR)L"height",(_variant_t)offsetHeight, 0); e->Release(); pstyle->Release(); } for( int i=0; i < len2 - 1;i++) { IHTMLElement* e = 0; IHTMLStyle* pstyle = 0; long offsetWidth=0; rows->item((_variant_t)i, (_variant_t)i, (IDispatch**)&e); e->get_style(&pstyle); e->get_offsetHeight(&offsetWidth); pstyle->setAttribute((BSTR)L"width", (_variant_t)offsetWidth, 0); e->Release(); pstyle->Release(); } rows->Release(); doc->Release(); //IHTMLElement* e = 0; //doc->get_documentElement(&e); //BSTR bstrHtml=0; //e->get_outerHTML(&bstrHtml); return 1; } int OnOpenDocument() { if(GetWinParam()) { xaserverarg arg=GetArg(); arg.AddArg(L"action",L"open"); arg.AddArg(L"DocumentID",L""); arg.AddArg(L"ok",L""); openUrl(L"/sale/view/view.dlg/xpage/Template/PrintDialog", &arg); xstring ret = arg.GetArgString(L"return"); xstring action = arg.GetArgString(L"action"); if (ret ==L"ok") { if(action ==L"open") { m_DocumentID = arg.GetArgString(L"DocumentID"); xml x; xstring prestr = m_DocumentID.mid(0,2); prestr = prestr.toUpper(); xaserver::LoadUrl(GetServerUrl(),L"/business/data/bill/"+prestr+L"/"+ m_DocumentID+L".jpg",L"",x); if((xstring)x.xml()!=L"") { if(x) { /*if(!showgrid) { SendCtrlCmd(cell,L"xmFormatShowGrid"); showgrid = true; }*/ cell.LoadTemplate(x); cell.Redraw(); } ole_print.LoadHtml(x.xml()); }else { ole_print.LoadHtml(L"δÕÒµ½¶ÔÓ¦µÄÎĵµ"); //cell.LoadHtml(L"δÕÒµ½¶ÔÓ¦µÄÎĵµ"); } } else { xstring templateName = arg.GetArgString(L"template-name"); SetWindowText(GetHWND(),templateName); billName = templateName; billPre = arg.GetArgString(L"template-pre"); billID = arg.GetArgString(L"template-guid"); m_EntityID = arg.GetArgString(L"EntityID"); m_EntityNo = arg.GetArgString(L"EntityNo"); m_EntityName = arg.GetArgString(L"EntityName"); m_SupplierName = arg.GetArgString(L"SupplierName"); m_DocumentID = L""; OnHtml(arg); } } } return 1; } int OnPrintDialog() { if(GetWinParam()) { xaserverarg arg=GetArg(); arg.AddArg(L"ok",L""); openUrl(L"/sale/view/view.dlg/xpage/Template/PrintDialog", &arg); xstring ret = arg.GetArgString(L"return"); xstring action = arg.GetArgString(L"action"); if (ret ==L"ok") { updated = false; if(action ==L"open") { m_DocumentID = arg.GetArgString(L"DocumentID"); xml x; xstring prestr = m_DocumentID.mid(0,2); prestr = prestr.toUpper(); xaserver::LoadUrl(GetServerUrl(),L"/business/data/bill/"+prestr+L"/"+ m_DocumentID+L".jpg",L"",x); if((xstring)x.xml()!=L"") { xstring content = L""; if((xstring)x.documentElement().tagName() == L"Bill") { content = x.documentElement().text(); content = content.replace(L"[¿Õ]",L" ",0); ole_print.LoadHtml((LPTSTR)content.c_str()); }else { if(x) { /*if(!showgrid) { SendCtrlCmd(cell,L"xmFormatShowGrid"); showgrid = true; }*/ xml x1 ; xstring content1 = x.xml(); content1 = content1.replace(L"[¿Õ]",L" ",0); //trace(content1); x1.loadXML(content1); cell.LoadTemplate(x1); cell.Redraw(); } content = x.xml(); content = content.replace(L"[¿Õ]",L" ",0); ole_print.LoadHtml(content); } }else { ole_print.LoadHtml((LPTSTR)L"δÕÒµ½¶ÔÓ¦µÄÎĵµ"); //cell.LoadHtml(L"δÕÒµ½¶ÔÓ¦µÄÎĵµ"); } } else { xstring templateName = arg.GetArgString(L"template-name"); SetWindowText(GetHWND(),templateName); billName = templateName; billPre = arg.GetArgString(L"template-pre"); billID = arg.GetArgString(L"template-guid"); m_EntityID = arg.GetArgString(L"EntityID"); m_EntityNo = arg.GetArgString(L"EntityNo"); m_EntityName = arg.GetArgString(L"EntityName"); m_SupplierName = arg.GetArgString(L"SupplierName"); m_DocumentID = L""; OnHtml(arg); } } } return 1; } int SetAgent() { xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); KXMLDOMElement xframeElement = GetElement(); KXMLDOMNode agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); KXMLDOMNodeList nlist; int index; int nlen; KXMLDOMElement ele; xstring tools=L""; if(agent) { nlist = agent.selectNodes(L".//xtoolbutton"); nlen = nlist.length(); for(index=0;index"; else tool = L""; tools += tool; } } tools +=L""; SetAgentNode(anode, tools); return 1; } //½¹µã¼¤»î´¦Àíº¯Êý int OnSetFocus(TEvent * evt,int p) { //ÖØÖù¤¾ßÌõ SetAgent(); return 1; } int OnEdit() { editing = !editing; if(editing) { SwitchLayer(L"cellview",L"viewclient"); }else { htmlStr = cell.GetHtml(); //xstring content = htmlStr; htmlStr = htmlStr.replace(L"[¿Õ]",L" ",0); htmlStr = htmlStr.replace(L"[line]",L"
",0); ole_print.LoadHtml(htmlStr); SwitchLayer(L"oleview",L"viewclient"); } return 1; } int OnSaveAs() //Áí´æÎª... { ole_print.ExecWB(4,2); return 1; } int OnPrint() //´òÓ¡ { ole_print.ExecWB(6, 0); return 1; } int PrintPaper() //´òÓ¡ { #ifdef shouldFinish //ole_print.GetHtmlDocument(); //return 1; IHTMLDocument3* doc = (IHTMLDocument3 * )ole_print.GetHtmlDocument(); IHTMLElementCollection* rows = doc->getElementsByTagName(L"tr"); long len; rows->get_length(&len); for(int i=0; i < len - 1;i++) { //oleobject v = rows.item(i,i); IHTMLElement* e = rows->item(i,i); IHTMLElement2* e1 = e; //e.setAttribute(L"height",e1.clientHeight,0); e.setAttribute(L"height",300,0); e.Release(); e1.Release(); } rows.Release(); doc.Release(); #endif /* if(PaperPrint == false) { ole_print.GetHtmlDocument().body.style.visibility=L"hidden"; PaperPrint = true; } else { ole_print.GetHtmlDocument().body.style.visibility=L"visible"; PaperPrint = false; } */ return 1; } int OnPrintPreview() //´òÓ¡Ô¤ÀÀ { ole_print.ExecWB(7, 0); return 1; } int OnPageSetup() //Ò³ÃæÉèÖà { ole_print.ExecWB(8, 0); return 1; } int OnPortrait() //×ÝÏò { alert(L"Portrait"); return 1; } int OnLandscape() //ºáÏò { return 1; } int OnPageProperty() //²é¿´Ò³ÃæÊôÐÔ { ole_print.ExecWB(10, 1); return 1; } int OnCustom() //×Ô¶¨Òå:? 25-400% { return 1; } int OnAddToDocument() { xstring content = htmlStr; if(editing)content = cell.GetHtml(); xstring guid = publiccode::GetGuid(); xstring prestr = guid.mid(0,2); prestr = prestr.toUpper(); content = content.replace(L"gb2312",L"utf-16",0); content = content.replace(L" ",L"[¿Õ]",0); content = content.replace(L"&",L"",0); xml x0 ; x0.loadXML(L""); x0.documentElement().settext(content); content = x0.xml(); int ret= xaserver::UploadData(L"bill"+prestr, guid+L".jpg", content); if(ret < 0) trace(L"error upload"); xstring ls_xml =L""; ls_xml += L""+ m_EntityName + L""; ls_xml += L""+ m_EntityID + L""; ls_xml += L""+ m_EntityNo + L""; ls_xml += L""+ billID + L""; ls_xml += L""+ billName + L""; ls_xml += L""; xml x; x.loadXML(ls_xml); xaserverarg arg; arg.AddArg(L"content", x.xml()); if(xurl::get(L"/sale/data/DocumentList3/bill/update", arg.GetString(),x)!=1) { xstring error = x.text(); alert(L"err:"+error); return 1; } xstring str = x.documentElement().getAttribute(L"text"); if(str == L"true") { alert(L"±£´æ³É¹¦!"); updated = false; }else { alert(L"±£´æÊ§°Ü!"); } return 1; } int SendCtrlCmd(xcontrol xc, xstring cmd) { SendMessage(xc.GetHWND(), 0x401, (WPARAM)cmd.c_str(), 0); return 1; } int OnRefreshData() { xaserverarg arg; xstring templateName = arg.GetArgString(L"template-name"); SetWindowText(GetHWND(),templateName); OnHtml(arg); billName = templateName; billPre = arg.GetArgString(L"template-pre"); billID = arg.GetArgString(L"template-guid"); m_EntityID = arg.GetArgString(L"EntityID"); m_EntityNo = arg.GetArgString(L"EntityNo"); m_EntityName = arg.GetArgString(L"EntityName"); m_SupplierName = arg.GetArgString(L"SupplierName"); m_DocumentID = L""; return 1; } int OnCmdDispatch(xstring comdid) { if(comdid==L"xmSort") { //OpenWindow(L"dev:xpage[DataSort.dialog.vx]",cast(m_dataset as int)); return 1; } if(comdid==L"print:PrintImmediate") { updated = true; return OnPrint(); } if(comdid==L"print:PrintPaper") { updated = true; return PrintPaper(); } if(comdid==L"print:PrintPreview") { updated = true; return OnPrintPreview(); } if(comdid==L"print:Portrait") { updated = true; return OnPortrait(); } if(comdid==L"print:Landscape") { updated = true; return OnLandscape(); } if(comdid==L"print:PageSetup") { updated = true; return OnPageSetup(); } if(comdid==L"print:Custom") { updated = true; return OnCustom(); } if(comdid==L"print:PrintDialog") { if(updated) { int res = MessageBox(GetHWND(), L"µ¥¾ÝÒÑÖÆ×÷£¬ÊÇ·ñ±£´æ?",L"Ìáʾ",4); if(res == 6)OnCmdDispatch(L"print:AddToDocumentList"); } if(GetWinParam()) { xaserverarg arg1 = GetArg(); arg1.AddArg(L"action",L"new"); OnPrintDialog(); arg1.AddArg(L"action",L""); } return 1; } if(comdid.find(L"print:toExcel",0)>=0) { updated = true; return OntoExcel(); } if(comdid.find(L"print:Export",0)>=0) { updated = true; return OnExport(); } if(comdid.find(L"print:SaveAs",0)>=0) return OnSaveAs(); if(comdid.find(L"print:Edit",0)>=0) { updated = true; return OnEdit(); } if(comdid.find(L"action:Close",0)>=0) return CloseWindow(); if(comdid==L"print:OpenDocument") return OnOpenDocument(); if(comdid==L"print:AddToDocumentList") return OnAddToDocument(); if(comdid.find(L"action:",0)>=0) return ProcessFlowAction(comdid, 1); if(comdid.left(3) == L"xmSort") { //xstring str = return 1; } if(comdid.left(3) == L"IK_") { xstring cmd = comdid.mid(3, comdid.length()); SendCtrlCmd(cell,cmd); return 1; } if(comdid==L"print:MaintTemplate") { OpenWindow(L"dev:xpage[Maint.Template.Print.vx]"); return 1; } if(comdid == L"print:RefreshData"){ return OnRefreshData(); } if(comdid == L"xxx") { ole_print.ExecWB(27,0); return 1; alert(L"xxx"); xml x1 ; xaserver::ExecXQuery(GetServerUrl(), L"[xsl.getdevobj.xq]",L"",x1); } if(comdid == L"xxx") { xml x; xaserverarg arg; arg.AddArg(L"strHtml",m_strHtml); if (xurl::get(L"/sale/data/SysPrintTemplate/WebBrowser",arg.GetString(),x) != 1) { alert(L"Êý¾Ý¼¯³ö´íÁË!"); return 0; } xstring strHtml = x.xml(); ole_print.LoadHtml(strHtml); } return 0; } int OnXCommand(TEvent* evt,int p) { return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { AttachEvent(L"WM_XCOMMAND",(FEvent)& TemplatePrintViewEx::OnXCommand); AttachEvent(L"WM_SETFOCUS", (FEvent)&TemplatePrintViewEx::OnSetFocus); //AttachEvent(L"WM_CLOSE",OnCloseOwnerWindow); return 0; } int getURLParam() { return 1; } virtual int BeforeCloseWindow() { if(!updated) return 1; //int MB_YESNOCANCEL = 3; //int IDYES = 6; //int IDNO = 7; //int IDCANCEL = 2; int re = MessageBox(GetHWND(), L"µ¥¾ÝÒÑÖÆ×÷£¬ÊÇ·ñ±£´æ?",L"Ìáʾ:",MB_YESNOCANCEL); if(re==IDCANCEL) return -1; if(re==IDNO) return 1; OnCmdDispatch(L"print:AddToDocumentList"); return -1; } int onload() { OnAttachEvent(); AttachCloseWindow(); ole_print = GetControl(L"ole_print"); cell = GetControl(L"xcell"); //showgrid = false; editing = false; SetAgent(); m_dataset = 0; billName = L""; billID = L""; billPre = L""; m_DocumentID = L""; PaperPrint = false; return 1; } int onloaded() { updated = false; SetArg(); if(GetWinParam()) { xaserverarg arg= GetArg(); xstring templateName = arg.GetArgString(L"template-name"); if(templateName ==L"") { OnPrintDialog(); } else { SetWindowText(GetHWND(),templateName); OnHtml(arg); billName = templateName; billPre = arg.GetArgString(L"template-pre"); billID = arg.GetArgString(L"template-guid"); m_EntityID = arg.GetArgString(L"EntityID"); m_EntityNo = arg.GetArgString(L"EntityNo"); m_EntityName = arg.GetArgString(L"EntityName"); m_SupplierName = arg.GetArgString(L"SupplierName"); m_DocumentID = L""; } }else OnPrintDialog(); return 1; } }; #define _XWIN