jrj/ext-jrj/ext-jrj.vcxproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/printview/Maint.Template.PrintEx.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/printview/Template.Print.Dialog.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/printview/Template.Print.ViewEx.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/workflow/workflow.actionlog.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/workflow/workflow.actionlog_vd.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/workflow/workflow.chkdlg.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/workflow/workflow.chkdlg_vd.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
jrj/ext-jrj/ext-jrj.vcxproj
@@ -151,8 +151,8 @@ <OptimizeReferences>true</OptimizeReferences> <GenerateDebugInformation>true</GenerateDebugInformation> <EnableUAC>false</EnableUAC> <AdditionalLibraryDirectories>D:\xclient64r</AdditionalLibraryDirectories> <AdditionalDependencies>xarch.shape.lib;xarch.base.lib;xarch.util.lib;xarch.network.lib;xarch.xframe.lib;xarch.xcontrol.lib;xoffice.xcell.lib;xoffice.xgrid.lib;xoffice.xreport.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>D:\xclient64r\sdk\lib</AdditionalLibraryDirectories> <AdditionalDependencies>xarch.shape.lib;xarch.base.lib;xarch.util.lib;xarch.network.lib;xarch.xframe.lib;xarch.xcontrol.lib;xoffice.xcell.lib;xoffice.xgrid.lib;xoffice.xreport.lib;shlwapi.lib;$(CoreLibraryDependencies);%(AdditionalDependencies)</AdditionalDependencies> </Link> <PostBuildEvent> <Command>copy $(OutDirFullPath)ext-jrj.dll D:\xclient64r\ext\ext-jrj.dll</Command> @@ -250,20 +250,25 @@ </ClCompile> <ClCompile Include="..\project\business\HR\AdministrativeDepartment.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\project\business\HR\AdministrativeDepartmentFolder.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\project\business\HR\BlankExcelTemplate.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\project\business\HR\GraduationSchool.cpp" /> <ClCompile Include="..\project\business\HR\GraduationSchoolWin.vx.cpp" /> <ClCompile Include="..\project\business\HR\ManpowerFile.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\project\business\HR\ManpowerFileWindow.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\project\business\Product.list.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> @@ -287,18 +292,23 @@ </ClCompile> <ClCompile Include="..\project\business\SO\delivery.base.maint.so.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\project\business\SO\maint.Document.SO3.v3.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\project\business\SO\paymentterm.base.maint.so.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\project\business\SO\Product.Select.SO.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\project\business\SO\select.item.so.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> </ClCompile> <ClCompile Include="..\project\business\Supplier.maint.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> jrj/project/printview/Maint.Template.PrintEx.cpp
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,107 @@ class MaintTemplatePrintWin : public xframe { xcell cell; xnode m_agentNode; //Agent Condition string args; int SetAgent() { string xfNodeAgentArea = "agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if(m_agentNode) { SetAgentNodeContent (anode,m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); if(agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent (anode,s); } } return 1; } //ç¦ç¹æ¿æ´»å¤ç彿° int OnSetFocus(ref TEvent evt,int param) { //éç½®å·¥å ·æ¡ SetAgent(); return 1; } int SendCtrlCmd(xcontrol xc, string cmd) { win32::SendMessage(xc.GetId(),0x401,cmd,0); return 1; } //å½ä»¤åå¸å½æ° int OnCmdDispatch(string comdid) { if(comdid.left(3) == "IK_") { string cmd = comdid.mid(3, comdid.length()); SendCtrlCmd(GetControl("cell"),cmd); return 1; } else if(comdid=="xmFileOpen") { cell.OpenFile(); cell.Redraw(); return 1; } else if(comdid=="xmFileSave") { cell.SaveFile(); return 1; } else if(comdid=="xmFileSaveAs") { cell.SaveFileAs(); return 1; } return 0; } //å½ä»¤å¤çäºä»¶ int OnXCommand(ref TXCommandEvent evt,int param) { return OnCmdDispatch(evt.pStrID); } int OnAttachEvent() { //ç»å®å·¥å ·æ¡ç¹å»äºä»¶ AttachEvent("WM_XCOMMAND",OnXCommand); //è·åç¦ç¹äºä»¶ï¼ç¨äºéç½®å·¥å ·æ¡ AttachEvent("WM_SETFOCUS",OnSetFocus); } int onload() { cell = GetControl("cell"); SetAgent(); OnAttachEvent(); if(GetParam()) { args = GetParam(); cell.openUrl("/sale/data/SysPrintTemplate/getdevxsl",args); } else args =""; return 1; } int onloaded() { return 1; } }; jrj/project/printview/Template.Print.Dialog.cpp
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,595 @@ class TemplatePrintDialog : public responsewin { xaserverarg arg_param; string m_EntityName; string m_EntityID; string m_EntityNo; string m_Dir; string m_filePath; string strNode; xdwgrid dw_list; xdwgrid dw_doclist; xole ole_1; bool bupdate; int OnHtml() { string s1="<catalog>"+ " <book id='bk101'>"+ " <author>Gambardella, Matthew</author>"+ " <title>XML Developer's Guide</title>"+ " <genre>Computer</genre>"+ " <price>44.95</price>"+ " <publish_date>2000-10-01</publish_date>"+ " <description>An in-depth look at creating applications "+ " with XML.</description>"+ " </book>"+ " <book id='bk102'>"+ " <author>Ralls, Kim</author>"+ " <title>Midnight Rain</title>"+ " <genre>Fantasy</genre>"+ " <price>5.95</price>"+ " <publish_date>2000-12-16</publish_date>"+ " <description>A former architect battles corporate zombies, "+ " an evil sorceress, and her own childhood to become queen "+ " of the world.</description>"+ " </book>"+ " </catalog>"; xml x = new xml; x.setNativePointer(xml::CreateInstance()); x.LoadXml(s1); //trace(x.GetXml()); //string s2="<?xml version='1.0'?>"+ string s2= "<xsl:stylesheet version='1.0'"+ " xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >"+ "<xsl:output method='xml' indent='yes'/>"+ "<xsl:template match='catalog'>"+ "<HTML>"+ " <HEAD>"+ " <TITLE>Books catalog - listing for Books.xml</TITLE>"+ " </HEAD>"+ " <BODY><FONT FACE='Verdana'>"+ " <H3>My Books Catalog</H3>"+ " <TABLE CELLPADDING='5' CELLSPACING='2'>"+ " <xsl:for-each select='book'>"+ " <TR>"+ " <TD ALIGN='LEFT'><FONT SIZE='2'><B>ID:</B>  <xsl:value-of select='@id'/><BR/>"+ " <B>Author:</B>  <xsl:value-of select='author'/><BR/>"+ " <B>Title:</B>  <xsl:value-of select='title'/><BR/>"+ " <B>Genre:</B>  <xsl:value-of select='genre'/><BR/>"+ " <B>Price:</B>  <xsl:value-of select='price'/><BR/>"+ " <B>Published on:</B>  <xsl:value-of select='publish_date'/><BR/>"+ " <B>Description:</B>  <xsl:value-of select='description'/></FONT></TD>"+ " </TR>"+ " </xsl:for-each>"+ "</TABLE>"+ "</FONT>"+ "</BODY>"+ "</HTML>"+ "</xsl:template>"+ "</xsl:stylesheet>" ; xml xsl = new xml; xsl.setNativePointer(xml::CreateInstance()); xsl.LoadXml(s2); //trace(xsl.GetXml()); string strHtml = x.GetXmlDoc().transformNode(xsl.GetXmlDoc()); //strHtml = str.mid(21,99999); ole_1.LoadHtml(strHtml); //html_1.SetContent(strHtml); //alert(strHtml); return 0; } int OnRetrieve() { string username = publiccode::GetUser().name; if(username != "admin" && m_Dir != username ) { bupdate = false; }else { bupdate = true; } xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("Entity",m_EntityName); arg.AddArg("Dir",m_Dir); dw_list.Reset(); if (url::get("/sale/data/SysPrintTemplate/listDialog",arg.GetString(),x) != 1) { trace(x.GetXmlDoc().text); return -1; }else { string s = x.GetXml(); dw_list.Retrieve(x); } dw_list.Redraw(); //dw_list.SetReadOnly(true); if (dw_list.GetRowCount()>0) dw_list.SelectRow(1,true); return 1; } int OnNewTempl() { OpenWindow("dev:xpage[Maint.Template.Print.vx]"); return 1; } int OnMaintTempl() { int row = dw_list.GetRow(); if(row<0 || row>dw_list.GetRowCount()) { alert("è¯·éæ©è¦ç»´æ¤ç模æ¿!"); return 1; } else { msxml::IXMLDOMElement ele = dw_list.GetRowElement(row); string sguid = ele.selectSingleNode("ID").text; string sTemplName = ele.selectSingleNode("TemplName").text; //string sFile = m_filePath + sguid+".xsl"; string sFile = m_filePath + ele.selectSingleNode("urlPath").text; arg_param.AddArg("xsl",sFile); arg_param.AddArg("return","cancel"); OpenWindow("dev:xpage[Maint.Template.Print.vx]",cast(arg_param.GetString() as int)); CloseWindow(); } return 1; } int OnAddDir() { return 0; } int OnAddTempl() { if (m_Dir=="") { alert("è¯·éæ©æ¨¡æ¿ç®å½!"); return 0; } string sguid = publiccode::GetGuid(); string sname= sguid +".xsl"; string suri= "rpttemplate"+"\\"+m_EntityName; //rpttemplate\SO //suri = "supplier00"; string ret = xaserver::UploadFile(suri, sname, this.GetHWND(),"",false); if (ret == "-1") { alert("ä¸ä¼ çæä»¶æ²¡éæ©!"); return 1; } else { xml x=new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg args = new xaserverarg; args.setNativePointer(args.CreateInstance()); args.AddArg("sID",sguid); args.AddArg("sEntity",m_EntityName); args.AddArg("sDir",m_Dir); args.AddArg("urlPath", sname); //alert(m_Dir); while(ret.find("\\",0)>=0) ret = ret.mid(ret.find("\\",0) + 1,9999); args.AddArg("sTemplName",ret); //trace(args.GetString()); if (url::get("/sale/data/SysPrintTemplate/Save",args.GetString(),x) != 1) { trace("error:"+x.GetXml()); alert("ä¿ååºéäº!"); return 1; } else { alert("ä¸ä¼ æ¨¡æ¿æå!"); OnRetrieve(); } } return 1; } int OnDelTempl() { int row = dw_list.GetRow(); if(row<0 || row>dw_list.GetRowCount()) { alert("è¯·éæ©è¦å é¤ç模æ¿!"); return 0; } else { if (win32::MessageBox(GetHWND(),"ç¡®å®è¦å é¤éä¸ç模æ¿ï¼","æç¤º",1) == 2) return 0; msxml::IXMLDOMElement ele = dw_list.GetRowElement(row); string sguid = ele.selectSingleNode("ID").text; xml x=new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg args = new xaserverarg; args.setNativePointer(args.CreateInstance()); args.AddArg("sID",sguid); if (url::get("/sale/data/SysPrintTemplate/Delete",args.GetString(),x) != 1) { trace("error:"+x.GetXml()); alert("å é¤åºéäº!"); return 0; } else { alert("å 餿å!"); OnRetrieve(); } } return 0; } int OnDocListDoubleClicked(ref TNotifyEvent evt,int p) { int hCursor = xutil::SetCursorWait(); OnOpenDocument(); xutil::RestoreCursor(hCursor); return 1; } int OnDoubleClicked(ref TNotifyEvent evt,int p) { int hCursor = xutil::SetCursorWait(); OnOk(); xutil::RestoreCursor(hCursor); return 1; } int OnOpenDocument() { if(dw_doclist.GetRowCount() < 1) return 1; string documentid = dw_doclist.GetRowElement(dw_doclist.GetRow()).getAttribute("guid"); //string billid = dw_docList arg_param.AddArg("DocumentID",documentid); arg_param.AddArg("return","ok"); arg_param.AddArg("action","open"); CloseWindow(); return 1; } int OnOk() { int row = dw_list.GetRow(); if(row<0 || row>dw_list.GetRowCount()) { alert("è¯·éæ©è¦æå°ç模æ¿!"); return 1; } else { msxml::IXMLDOMElement ele = dw_list.GetRowElement(row); trace("\r\n---------------"); trace(ele.xml); string sguid = ele.selectSingleNode("ID").text; string pre = ""; if(ele.selectSingleNode("TemplPre")) pre = ele.selectSingleNode("TemplPre").text; string sTemplName = ele.selectSingleNode("TemplName").text; //string sFile = m_filePath + sguid+".xsl"; trace(sTemplName); string sFile = m_filePath + ele.selectSingleNode("urlPath").text; arg_param.AddArg("xsl",sFile); arg_param.AddArg("return","ok"); arg_param.AddArg("template-name",sTemplName); arg_param.AddArg("template-guid",sguid); arg_param.AddArg("template-pre",pre); arg_param.AddArg("action","new"); trace(arg_param.GetString()); CloseWindow(); /*xaserver::CreateDirectory("C:/Temp"); int openRet = xaserver::DownLoadFile(GetServerUrl(),m_filePath+file,sTemplName,"C:/Temp/"+sTemplName); if(openRet < 0) { alert("æä»¶æå¼å¤±è´¥ï¼"); return 0; } int GENERIC_READ = 0x80000000; int GENERIC_WRITE = 0x40000000; int FILE_SHARE_READ = 0x00000001; int FILE_SHARE_WRITE = 0x00000002; int OPEN_EXISTING = 3; int FILE_ATTRIBUTE_ARCHIVE =0x00000020; int hFile = xwin::CreateFile("C:/Temp/"+sTemplName,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0); if (hFile >0) { //int GMEM_MOVEABLE=0x0002; //int GMEM_ZEROINIT=0x0040; //int MEMSIZE; //int hMemory = GlobalAlloc(GMEM_MOVEABLE|GMEM_ZEROINIT,MEMSIZE); //int pMemory = GlobalLock(hMemory); //int SizeReadWrite; //xwin::ReadFile(hFile,pMemory,MEMSIZE - 1,SizeReadWrite,0); int filesize = xwin::GetFileSize(hFile,0); trace("filesize = %d",filesize); string buffer = "".space(filesize+1); int readsize = new int; xwin::ReadFile(hFile,buffer,filesize,readsize,0); trace(buffer); xwin::CloseHandle(hFile); //GlobalUnlock(pMemory); //GlobalFree(hMemory); } */ /*openRet = xwin::ShellExecute(0,"open","C:/Temp/"+sTemplName,"","",5); if(openRet < 32) { alert("æä»¶æå¼å¤±è´¥2ï¼"); return 0; }*/ } return 0; } int OnSave() { dw_list.AcceptText(); xml x = new xml; x.setNativePointer(xml::CreateInstance()); dw_list.DwUpdateAllToEx(x.GetXmlDoc()); xaserverarg arg = new xaserverarg; arg.setNativePointer(xaserverarg::CreateInstance()); arg.AddArg("content",x.GetXml()); if (url::get("/sale/data/SysPrintTemplate/updateinfo",arg.GetString(),x) != 1) { trace("error:"+x.GetXml()); alert("ä¿ååºéäº!"); return 1; } else { dw_list.ResetUpdateStatus(); alert("ä¿åæå!"); } return 1; } int PreOnCmdDispatch(string comdid) { //è¿å0ââä¸å¨æ§è¡ä»¥ä¸ä»£ç ï¼è¿åå ¶ä»ââæ§è¡ä»¥ä¸ä»£ç ã if(comdid.left(8) == "xmPanel:"){ string no = comdid.mid(8, 99); //int id = no.toInt(); xml x = new xml; x.setNativePointer(xml::CreateInstance()); x.LoadXml(strNode); msxml::IXMLDOMDocument doc= x.GetXmlDoc(); msxml::IXMLDOMElement e = doc.documentElement; string slable =e.selectSingleNode("//xtoolbutton[@name='"+comdid+"']/@caption").text; m_Dir = slable; OnRetrieve(); return 1; } if (comdid=="xmAddDir") return OnAddDir(); if (comdid=="xmAddTempl" && bupdate) return OnAddTempl(); if (comdid=="xmDelTempl" && bupdate) return OnDelTempl(); if (comdid=="xmMaintTempl" && bupdate) return OnMaintTempl(); if (comdid=="xmNewTempl" && bupdate) return OnNewTempl(); if (comdid=="xmHtml") return OnHtml(); if (comdid=="xmOk") return OnOk(); if (comdid=="xmSave") return OnSave(); if(comdid=="xmOpen") return OnOpenDocument(); else if (comdid=="xmCancel") { arg_param.AddArg("return","cancel"); CloseWindow(); return 1; } return 0; } int PostOnAttachEvent() { //AttachEvent("dw_list","DWV_ROWFOCUSCHANGED",OnRowChanged); //AttachEvent("dw_list","DWV_CLICKED",OnClicked); //AttachEvent("dw_list","DWV_RCLICKED",OnRClicked); //AttachEvent("dw_list","DWV_ITEMCHANGED",OnItemChanged); //AttachEvent("dw_list","DWV_CHILDCONTENT",OnChildContent); AttachEvent("dw_doclist","DWV_DOUBLECLICKED",OnDocListDoubleClicked); AttachEvent("dw_list","DWV_DOUBLECLICKED",OnDoubleClicked); return 1; } int SetAgent() { PUser puser = new PUser; puser = publiccode::GetUser(); string susername = puser.name; if (susername !="admin") { string xfNodeAgentArea = "DirButton"; xnode anode = GetAgentNode(xfNodeAgentArea); msxml::IXMLDOMElement xframeElement = GetElement(); string tools="<vbox name='DirButton' height='48' />"; SetAgentNodeContent(anode, tools); } return 1; } int CreateDir() { PUser puser = new PUser; puser = publiccode::GetUser(); string susername = puser.name; xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("EntityName",m_EntityName,""); arg.AddArg("EntityID",m_EntityID,""); arg.AddArg("susername",susername,""); // if (url::get("/sale/data/SysPrintTemplate/Dir",arg.GetString(),x) != 1) { trace(x.GetXmlDoc().text); return -1; }else { string s = x.GetXml(); } msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().selectNodes("//Entity"); int i; int nlen = nlist.length; string toolStr = "<vbox name='Dir'>"; string deptName= publiccode::GetUser().deptname; if(deptName=="è·åé¨" && m_EntityName=="GDN3"){ for(i=2; i<nlen; i++) { msxml::IXMLDOMElement e1 = nlist.item(i); string sDir1 = e1.selectSingleNode("@Dir").text; string str1 = "<xtoolbutton image='15' caption='"+sDir1+"' height='24' name='xmPanel:"+i.toString()+"' style='background-color:none #ceecce none #ffffff'/>"; toolStr += str1; if (i==2) m_Dir = sDir1; } }else if(deptName.find("ä¸å¡")>=0 && m_EntityName=="GDN3" ) { for(i=1; i<2; i++) { msxml::IXMLDOMElement e2 = nlist.item(i); string sDir2 = e2.selectSingleNode("@Dir").text; string str2 = "<xtoolbutton image='15' caption='"+sDir2+"' height='24' name='xmPanel:"+i.toString()+"' style='background-color:none #ceecce none #ffffff'/>"; toolStr += str2; if (i==1) m_Dir = sDir2; } for(i=4; i<nlen; i++) { msxml::IXMLDOMElement e3 = nlist.item(i); string sDir3 = e3.selectSingleNode("@Dir").text; string str3 = "<xtoolbutton image='15' caption='"+sDir3+"' height='24' name='xmPanel:"+i.toString()+"' style='background-color:none #ceecce none #ffffff'/>"; toolStr += str3; } }else{ for(i=0; i<nlen; i++) { msxml::IXMLDOMElement e = nlist.item(i); string sDir = e.selectSingleNode("@Dir").text; string str = "<xtoolbutton image='15' caption='"+sDir+"' height='24' name='xmPanel:"+i.toString()+"' style='background-color:none #ceecce none #ffffff'/>"; toolStr += str; if (i==0) m_Dir = sDir; } } toolStr += "</vbox>"; strNode = toolStr; //trace(toolStr); xnode anode = GetAgentNode("Dir"); xwin::SetAgentNodeContent(anode,toolStr) ; OnRetrieve(); return 1; } int OnInit() { SetAgent(); dw_list = this.GetControl("dw_list"); dw_list.openUrl("/sale/view/view.base/template/PrintView/listDialog"); dw_list.SetReadOnly(true); dw_list.SetSelectionMode(4); dw_list.SetColumnState("ID",false); dw_doclist = GetControl("dw_doclist"); dw_doclist.openUrl("/sale/view/GDN/template/doclist"); string sUrl = GetServerUrl(); sUrl = sUrl.mid(0, sUrl.length() - 19); m_filePath = "/business/rpttemplate"; arg_param = new xaserverarg; if (GetParam()) { int p = GetParam(); arg_param.setNativePointer(p); m_EntityName = arg_param.GetArgString("EntityName"); m_EntityID = arg_param.GetArgString("EntityID"); m_EntityNo = arg_param.GetArgString("EntityNo"); xaserverarg arg = new xaserverarg; arg.setNativePointer(xaserverarg::CreateInstance()); arg.AddArg("EntityName", m_EntityName); arg.AddArg("EntityID", m_EntityID); arg.AddArg("EntityNo", m_EntityNo); xml x =new xml; x.setNativePointer(xml::CreateInstance()); if(url::get("/sale/data/DocumentList3/bill/doclist", arg.GetString(),x)!=1) { string error = x.GetXmlDoc().text; trace(error); }else { dw_doclist.Retrieve(x); dw_doclist.SetReadOnly(true); } } else { arg_param.setNativePointer(arg_param.CreateInstance()); m_EntityName = "SO"; m_EntityID ="00000000-0000-0000-0000-000000000000"; } m_Dir = ""; m_filePath = m_filePath + "/" + m_EntityName+"/"; //trace(m_filePath); CreateDir(); return 1; } int onload() { responsewin::onload(); /*if (GetParam()) { string action = arg_param.GetArgString("action"); if(action=="open" || (action=="" && dw_doclist.GetRowCount() > 0)) SwitchLayer("sheet2","frame"); } */ return 1; } int onloaded() { //responsewin::onload(); /*if (GetParam()) { string action = arg_param.GetArgString("action"); if(action=="open" || (action=="" && dw_doclist.GetRowCount() > 0)) SwitchLayer("sheet2","frame"); } */ return 1; } }; jrj/project/printview/Template.Print.ViewEx.cpp
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,1217 @@ 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 string filename) alias "?OpenDocument@CExcelApplication@@QAEXQA_W@Z"; void TransShape() alias "?TransShape@CExcelApplication@@QAEXXZ"; void SaveToFile(string filename) alias "?SaveToFile@CExcelApplication@@QAEXQA_W@Z"; void Quit() alias "?Quit@CExcelApplication@@QAEXXZ"; }; struct MYOPENFILENAMEW { unsigned int lStructSize; unsigned int hwndOwner; unsigned int hInstance; string lpstrFilter; string lpstrCustomFilter; unsigned int nMaxCustFilter; unsigned int nFilterIndex; string lpstrFile; unsigned int nMaxFile; string lpstrFileTitle; unsigned int nMaxFileTitle; string lpstrInitialDir; string lpstrTitle; unsigned int Flags; unsigned short nFileOffset; unsigned short nFileExtension; string lpstrDefExt; unsigned int lCustData; unsigned int lpfnHook; string lpTemplateName; //_WIN32_WINNT >= 0x0500 unsigned int pvReserved; unsigned int dwReserved; unsigned int FlagsEx; // (_WIN32_WINNT >= 0x0500) }; class TemplatePrintViewEx : public frame { xole ole_print; xcell cell; string m_EntityName; string m_EntityID; string m_EntityNo; string m_strHtml; string m_spath; bool updated; string htmlStr; cexcel excel; bool editing; string billName ; string billID ; string billPre; string m_DocumentID; xml m_dataset; //bool showgrid; bool PaperPrint; static stdcall int GetModuleFileName(int hModule ,string lpFileName ,int nSize ) native from "kernel32.dll" alias "GetModuleFileNameW"; static stdcall int PathRemoveFileSpec(string lpFileName ) native from "shlwapi.dll" alias "PathRemoveFileSpecW"; static stdcall int DeleteFile(string lpFileName) native from "kernel32.dll" alias "DeleteFileW"; static stdcall bool GetSaveFileName(ref MYOPENFILENAMEW)native from "comdlg32.dll" alias "GetSaveFileNameW"; string GetModulePath() { string str =""; str = str.space(255); GetModuleFileName(0,str,250); PathRemoveFileSpec(str); return str; } string GetModuleTmpPath() { string str =""; str = str.space(255); GetModuleFileName(0,str,250); PathRemoveFileSpec(str); string tmp = str + "\\Temp"; xaserver::CreateDirectory(tmp); return tmp; } string GetSaveFileName(string initFileName, string filter, string ext) { char[] szFileName = new char[255] ; char[] szPath = new char[255]; szFileName[0] = 0; szPath[0] = 0; if(initFileName !="") { int len = initFileName.length(); char[] tmp = initFileName; for(int i=0; i<len+1;i++) { //szFileName[i] = tmp[i]; szPath[i] = tmp[i]; } } int nFilterIndex = 1; ref MYOPENFILENAMEW ofn = new MYOPENFILENAMEW; ofn.lStructSize = 88;//sizeof(ofn); ofn.hwndOwner = 0; ofn.hInstance = 0; ofn.lpstrFilter = filter; //"JPEG æä»¶(*.jpg)\0*.jpg;*.jpeg;*.png;*.gif;*.bmp\0å ¨é¨æä»¶(*.*)\0*.*\0"; ofn.lpstrCustomFilter = 0; ofn.nMaxCustFilter = 0; ofn.nFilterIndex = nFilterIndex; ofn.lpstrFile = szPath; ofn.nMaxFile = 255; ofn.lpstrFileTitle = szFileName; ofn.nMaxFileTitle = 255; ofn.lpstrTitle = "请æå®æä»¶å"; ofn.lpstrDefExt = ext; //"jpg"; ofn.lpstrInitialDir = 0; ofn.Flags = 0x00000010/*OFN_SHOWHELP*/ | 0x00001000/*OFN_FILEMUSTEXIST*/; ofn.lCustData = 0; ofn.lpfnHook = 0; ofn.lpTemplateName = 0; //debugbreak(); if(GetSaveFileName(ofn)) { delete ofn; return szPath; } else { return ""; } } int OnExport() { string pre = billPre; if(pre=="") { pre = m_EntityName; if(m_EntityName=="SaleOrder") pre="PI"; if(m_EntityName=="GDN3")pre="INV"; } string file1 = GetSaveFileName(pre+m_EntityNo+".xlsx", "Excel1æä»¶(*.xlsx)\0*.xlsx;*.xls\0Excel97æä»¶(*.xls)\0*.xls\0PDFæä»¶(*.pdf)\0*.pdf\0", "xlsx"); if(file1 =="") return 1; if(win32::PathFileExists(file1)) { int res = win32::MessageBox(this.GetHWND(), "æä»¶å·²ç»åå¨ï¼æ¯å¦è¦ç?","æç¤º",4); if(res != 6) return 1; } trace("\r\n link excel"); excel = new cexcel; int hexcel = cexcel::CreateInstance(); excel.setNativePointer(hexcel); if(hexcel == 0) { alert("ä¸è½è¿æ¥Excel"); return 1; } string gid = publiccode::GetGuid(); string filename= pre+m_EntityNo+"_.htm"; xutil::SaveToFile(GetModuleTmpPath() + "\\"+ filename, htmlStr,"","",""); trace("\r\n excel to open"); excel .OpenDocument(GetModuleTmpPath() + "\\"+ filename); trace("\r\n trans shape"); //excel .put_Visible(true); excel.TransShape(); trace("\r\n save to tmp excel file"); if(file1.find(".xls")) { if(win32::PathFileExists(GetModuleTmpPath() + "\\"+ pre+m_EntityNo+"_.xls")) DeleteFile(GetModuleTmpPath() + "\\"+ pre+m_EntityNo+"_.xls"); excel.SaveToFile(GetModuleTmpPath() + "\\"+ pre+m_EntityNo+"_.xls"); //alert(GetModuleTmpPath() + "\\"+ pre+m_EntityNo+"_.xls"); } else { if(win32::PathFileExists(GetModuleTmpPath() + "\\"+ pre+m_EntityNo+"_.xlsx")) DeleteFile(GetModuleTmpPath() + "\\"+ pre+m_EntityNo+"_.xlsx"); excel.SaveToFile(GetModuleTmpPath() + "\\"+ pre+m_EntityNo+"_.xlsx"); } trace("\r\n save to excel file"); if(win32::PathFileExists(file1)) //GetModuleTmpPath() + "\\"+ pre+m_EntityNo+"_.xlsx")) DeleteFile(file1); excel.SaveToFile(file1); excel.Quit(); excel.Release(excel.ptr_native_); return 1; } int OntoExcel() //תΪExcel { excel = new cexcel; excel.setNativePointer(cexcel::CreateInstance()); string gid = publiccode::GetGuid(); string pre = m_EntityName; if(m_EntityName=="SaleOrder") pre="PI"; if(m_EntityName=="GDN3")pre="INV"; string filename= pre+m_EntityNo+".htm"; string filenameex= pre+m_EntityNo+".xlsx"; xutil::SaveToFile(GetModuleTmpPath() + "\\"+ filename, htmlStr,"","",""); excel .OpenDocument(GetModuleTmpPath() + "\\"+ filename); //excel.put_Visible(true); excel.TransShape(); if(win32::PathFileExists(GetModuleTmpPath() + "\\"+ filenameex)) DeleteFile(GetModuleTmpPath() + "\\"+ filenameex); excel.SaveToFile(GetModuleTmpPath() + "\\"+ filenameex); excel.put_Visible(true); excel.Release(excel.ptr_native_); return 1; } string getfilePath() { string path=GetModulePath()+"\\resource\\image"; string filename="contract.jpg"; filename="sign.png"; filename="jrj_maersk.png"; filename="HomeDecorSign.png"; xaserver::DownLoadFile(GetServerUrl(),"/business/rpttemplate/"+filename,"",path+"\\"+filename); filename="HomeDecorLogo.jpg"; xaserver::DownLoadFile(GetServerUrl(),"/business/rpttemplate/"+filename,"",path+"\\"+filename); return path; } string replaceInnerElement(string html) { string str = html; if(str.find("[$element:")<0) return str; int len = 0; int pos = 0; int pos1 = 0; string pre=""; string left=""; string right=""; string tag=""; len = "[$element:".length(); while(true) { pos = str.find("[$element:"); if(pos < 0) break; left = str.left(pos); right = str.mid(pos+ len,999999); pos1 = right.find("]"); if(pos1>=0) { tag = right.left(pos1); if(tag.right(1)=="$") tag=tag.left(tag.length() - 1); pre = pre + left + "<" + tag +">"; str = right.mid(pos1+ 1,999999); }else { pre = pre + left+"<"; str = right; } } str = pre + str; pre = ""; len = "[/$element:".length(); while(true) { pos = str.find("[/$element:"); if(pos < 0) break; left = str.left(pos); right = str.mid(pos+ len,999999); pos1 = right.find("]"); if(pos1>=0) { tag = right.left(pos1); if(tag.right(1)=="$") tag=tag.left(tag.length() - 1); pre = pre + left + "</" + tag +">"; str = right.mid(pos1+ 1,999999); }else { pre = pre + left+"</"; str = right; } } str = pre + str; return str; } string adjustXsl(string str,string localPath) { //if(str.find("%")>=0) str = str.replace("%",""); if(str.find("[$path]/rpttemplate")>=0) str = str.replace("[$path]/rpttemplate",localPath); str = replaceInnerElement(str); return str; } string DownLoadSKUNoPic(string SKUNo,string CustomerID="",string CustomerItemNo="") { if(SKUNo.length()>20) return DownLoadPaperPic(SKUNo); xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("SKUNo",SKUNo); string src ="/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; if(CustomerID !="") { arg.AddArg("CustomerID",CustomerID); arg.AddArg("CustomerItemNo",CustomerItemNo); src ="/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo"; } //trace("SKUNo="+SKUNo);//è¦æå±ç¤ºå¾çæ¥è¯¢æ¡ä»¶å å¿ å®è¦skuno if(url::get(src,arg.GetString(),x)!=1) { trace("error for download skuno pic!"); return ""; } string spath = ""; string path =GetModuleTmpPath(); string ext = "jpg"; if(x.GetXmlDoc().selectSingleNode("//FileExt[1]")) { ext = x.GetXmlDoc().selectSingleNode("//FileExt[1]").text; }else if(CustomerID !="") { src ="/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; if(url::get(src,arg.GetString(),x)!=1) { trace("error for download skuno pic!"); return ""; } if(x.GetXmlDoc().selectSingleNode("//FileExt[1]")) ext = x.GetXmlDoc().selectSingleNode("//FileExt[1]").text; } string filename = SKUNo + "." + ext; if(x.GetXmlDoc().selectSingleNode("//PicPath[1]")) spath = x.GetXmlDoc().selectSingleNode("//PicPath[1]").text; if(spath != "") { xaserver::DownLoadFile(GetServerUrl(),spath,"",path+"/"+filename); } return "file://"+ path+"/"+filename; } string DownLoadSKUNoPic(string SKUNo,string CustomerID="",string CustomerItemNo="") { if(SKUNo.length()>20) return DownLoadPaperPic(SKUNo); xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("SKUNo",SKUNo); string src ="/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; if(CustomerID !="") { arg.AddArg("CustomerID",CustomerID); arg.AddArg("CustomerItemNo",CustomerItemNo); src ="/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo"; } //trace("SKUNo="+SKUNo);//è¦æå±ç¤ºå¾çæ¥è¯¢æ¡ä»¶å å¿ å®è¦skuno if(url::get(src,arg.GetString(),x)!=1) { trace("error for download skuno pic!"); return ""; } string spath = ""; string path =GetModuleTmpPath(); string ext = "jpg"; if(x.GetXmlDoc().selectSingleNode("//FileExt[1]")) { ext = x.GetXmlDoc().selectSingleNode("//FileExt[1]").text; }else if(CustomerID !="") { src ="/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo"; if(url::get(src,arg.GetString(),x)!=1) { trace("error for download skuno pic!"); return ""; } if(x.GetXmlDoc().selectSingleNode("//FileExt[1]")) ext = x.GetXmlDoc().selectSingleNode("//FileExt[1]").text; } string filename = SKUNo + "." + ext; if(x.GetXmlDoc().selectSingleNode("//PicPath[1]")) spath = x.GetXmlDoc().selectSingleNode("//PicPath[1]").text; if(spath != "") { xaserver::DownLoadFile(GetServerUrl(),spath,"",path+"/"+filename); } return "file://"+ path+"/"+filename; } string GetImageUrl(string id) { xml xp=new xml; xp.setNativePointer(xml::CreateInstance()); xaserverarg arg_pic=new xaserverarg; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg("id",id); string res = "/sale/data/productlibrary3/image/url"; if(url::get(res,arg_pic.GetString(),xp)!=1) { xp.GetXml(); return 1; }else { string path = xp.GetXmlDoc().text; if(path !="") return path; } return "/business/products/chanpin/"+id.left(2)+"/"+ id+".jpg"; } string DownLoadPaperPic(string guid) { string path =GetModuleTmpPath(); string ext = "jpg"; string filename = guid + "." + ext; string spath = GetImageUrl(guid); //alert(spath); xaserver::DownLoadFile(GetServerUrl(),spath,"",path+"/"+filename); return "file://"+ path+"/"+filename; } string DownLoadPaperPic1(string guid) { string path =GetModuleTmpPath(); string ext = "jpg"; string filename = guid + "." + ext; string str = guid.mid(0,2); string spath = "/business/products/chanpin/"+str+"/"+guid+".jpg"; xaserver::DownLoadFile(GetServerUrl(),spath,"",path+"/"+filename); return "file://"+ path+"/"+filename; } string DownLoadUrlPic(string src) { string guid = publiccode::GetGuid(); string path =GetModuleTmpPath(); string ext = "jpg"; string filename = guid + "." + ext; string spath = src; xaserver::DownLoadFile(GetServerUrl(),spath,"",path+"/"+filename); return "file://"+ path+"/"+filename; } int OnHtml(xaserverarg arg) { int hCursor = xutil::SetCursorWait(); string sEntityName = arg.GetArgString("EntityName"); string sEntityID = arg.GetArgString("EntityID"); string dataUrl = arg.GetArgString("DataUrl"); if(dataUrl=="") dataUrl = "/sale/data/"+sEntityName+"/print/dataset"; else if(dataUrl.left(1)!="/") dataUrl = "/sale/data/"+sEntityName+ "/"+ dataUrl; if(!m_dataset) { xml x0 = new xml; x0.setNativePointer(xml::CreateInstance()); if (url::get(dataUrl,arg.GetString(),x0) != 1) { alert("æ°æ®éåºéäº!"); return 0; } trace(x0.GetXml()); m_dataset = x0; } string sPath; sPath = getfilePath(); arg.AddArg("sPath",sPath); m_spath = sPath; xml xsl = new xml; xsl.setNativePointer(xml::CreateInstance()); if (url::get("/sale/data/SysPrintTemplate/getxsl",arg.GetString(),xsl) != 1) { alert("æ°æ®æ¨¡æ¿é误!"); return 0; } string xslStr = xsl.GetXml(); xslStr = adjustXsl(xslStr,sPath); xsl.LoadXml(xslStr); //trace(m_dataset.GetXml()); trace("\r\n--------\r\n"+xslStr); m_strHtml = m_dataset.GetXmlDoc().transformNode(xsl.GetXmlDoc()); string aspace = m_strHtml.replace("[空]"," ",0); aspace = aspace.replace("[line]","<br/>",0); string scontent = aspace.replace("<?xml version=\"1.0\"?>","",0); string head =""; string tail = scontent; int pos = tail.find("src=\"item-picture:"); while(pos > 0) { int spos = pos+"src=\"item-picture:".length(); int pos1 = tail.find("\"",spos+1); string skuno = tail.mid(spos,pos1 - spos ).trim(); string CustomerID=""; string CustomerItemNo=""; if(skuno.find(",")>0) { CustomerID = skuno.left(skuno.find(",")).trim(); skuno = skuno.mid(skuno.find(",")+1,256).trim(); } if(skuno.find(",")>0) { CustomerItemNo = skuno.left(skuno.find(",")).trim(); skuno = skuno.mid(skuno.find(",")+1,256).trim(); } string src = DownLoadSKUNoPic(skuno,CustomerID,CustomerItemNo); head += tail.left(pos) + "src=\"" + src; tail = tail.mid(pos1,999999999); pos = tail.find("src=\"item-picture:"); } scontent = head + tail; head =""; tail = scontent; int position = tail.find("src=\"paper-picture:"); while(position > 0) { int sposition = position+"src=\"paper-picture:".length(); int position1 = tail.find("\"",sposition+1); string guid = tail.mid(sposition,position1 - sposition ).trim(); string src2 = DownLoadPaperPic(guid); head += tail.left(position) + "src=\"" + src2; tail = tail.mid(position1,999999999); position = tail.find("src=\"paper-picture:"); } scontent = head + tail; head =""; tail = scontent; position = tail.find("src=\"src-picture:"); while(position > 0) { sposition = position+"src=\"src-picture:".length(); position1 = tail.find("\"",sposition+1); guid = tail.mid(sposition,position1 - sposition ).trim(); src2 = DownLoadUrlPic(guid); head += tail.left(position) + "src=\"" + src2; tail = tail.mid(position1,999999999); position = tail.find("src=\"src-picture:"); } scontent = head + tail; scontent = adjustXsl(scontent,sPath); htmlStr = scontent; ole_print.LoadHtml(scontent); xml x1 = new xml; x1.setNativePointer(xml ::CreateInstance()); //string xcontent = m_strHtml.replace(" ","[空]",0); string xcontent = m_strHtml.replace("[空]"," ",0); int pos0 = xcontent.find("<xml"); int pos2 = xcontent.find("</xml>"); if(pos0>=0) { string str = xcontent.left(pos0)+ xcontent.mid(pos2+6,9999999); xcontent = str; } x1.LoadXml(xcontent); if(x1.GetXmlDoc()) { /*if(!showgrid) { SendCtrlCmd(cell,"xmFormatShowGrid"); showgrid = true; }*/ cell.LoadTemplate(x1.GetXmlDoc()); cell.Redraw(); } xutil::RestoreCursor(hCursor); updateHtml(); return 1; } int updateHtml() { _mshtml::IHTMLDocument3 doc = ole_print.GetHtmlDocument(); _mshtml::IHTMLElementCollection rows = doc.getElementsByTagName("tr"); _mshtml::IHTMLElementCollection rows2 = doc.getElementsByTagName("td"); int len = rows.length; int len2 = rows2.length; for(int i=0; i < len - 1;i++) { _mshtml::IHTMLElement e = rows.item(i,i); e.style.setAttribute("height",e.offsetHeight,0); e.Release(); } for( i=0; i < len2 - 1;i++) { _mshtml::IHTMLElement e2 = rows2.item(i,i); e2.style.setAttribute("width",e.offsetWidth,0); e2.Release(); } rows.Release(); doc.release(); htmlStr = doc.documentElement.outerHtml; return 1; } int OnOpenDocument() { if(GetParam()) { xaserverarg arg = new xaserverarg; arg.setNativePointer(GetParam()); int p = arg.ptr_native_; arg.AddArg("action","open"); arg.AddArg("DocumentID",""); arg.AddArg("ok",""); openUrl("/sale/view/view.dlg/xpage/Template/PrintDialog", p); string ret = arg.GetArgString("return"); string action = arg.GetArgString("action"); if (ret =="ok") { if(action =="open") { m_DocumentID = arg.GetArgString("DocumentID"); xml x = new xml; x.setNativePointer(xml::CreateInstance()); string prestr = m_DocumentID.mid(0,2); prestr = prestr.upper(); xaserver::LoadUrl(GetServerUrl(),"/business/data/bill/"+prestr+"/"+ m_DocumentID+".jpg","",x); if(x.GetXml()!="") { if(x.GetXmlDoc()) { /*if(!showgrid) { SendCtrlCmd(cell,"xmFormatShowGrid"); showgrid = true; }*/ cell.LoadTemplate(x.GetXmlDoc()); cell.Redraw(); } ole_print.LoadHtml(x.GetXml()); }else { ole_print.LoadHtml("<html><body>æªæ¾å°å¯¹åºçææ¡£</body></html>"); //cell.LoadHtml("<html><body>æªæ¾å°å¯¹åºçææ¡£</body></html>"); } } else { string templateName = arg.GetArgString("template-name"); win32::SetWindowText(GetHWND(),templateName); billName = templateName; billPre = arg.GetArgString("template-pre"); billID = arg.GetArgString("template-guid"); m_EntityID = arg.GetArgString("EntityID"); m_EntityNo = arg.GetArgString("EntityNo"); m_EntityName = arg.GetArgString("EntityName"); m_DocumentID = ""; OnHtml(arg); } } } return 1; } int OnPrintDialog() { if(GetParam()) { xaserverarg arg = new xaserverarg; arg.setNativePointer(GetParam()); int p = arg.ptr_native_; arg.AddArg("ok",""); openUrl("/sale/view/view.dlg/xpage/Template/PrintDialog", p); string ret = arg.GetArgString("return"); string action = arg.GetArgString("action"); if (ret =="ok") { updated = false; if(action =="open") { m_DocumentID = arg.GetArgString("DocumentID"); xml x = new xml; x.setNativePointer(xml::CreateInstance()); string prestr = m_DocumentID.mid(0,2); prestr = prestr.upper(); xaserver::LoadUrl(GetServerUrl(),"/business/data/bill/"+prestr+"/"+ m_DocumentID+".jpg","",x); if(x.GetXml()!="") { string content = ""; if(x.GetXmlDoc().documentElement.tagName=="Bill") { content = x.GetXmlDoc().documentElement.text; content = content.replace("[空]"," ",0); ole_print.LoadHtml(content); }else { if(x.GetXmlDoc()) { /*if(!showgrid) { SendCtrlCmd(cell,"xmFormatShowGrid"); showgrid = true; }*/ xml x1 = new xml; x1.setNativePointer(xml::CreateInstance()); string content1 = x.GetXml(); content1 = content1.replace("[空]"," ",0); //trace(content1); x1.LoadXml(content1); cell.LoadTemplate(x1.GetXmlDoc()); cell.Redraw(); } content = x.GetXml(); content = content.replace("[空]"," ",0); ole_print.LoadHtml(content); } }else { ole_print.LoadHtml("<html><body>æªæ¾å°å¯¹åºçææ¡£</body></html>"); //cell.LoadHtml("<html><body>æªæ¾å°å¯¹åºçææ¡£</body></html>"); } } else { string templateName = arg.GetArgString("template-name"); win32::SetWindowText(GetHWND(),templateName); billName = templateName; billPre = arg.GetArgString("template-pre"); billID = arg.GetArgString("template-guid"); m_EntityID = arg.GetArgString("EntityID"); m_EntityNo = arg.GetArgString("EntityNo"); m_EntityName = arg.GetArgString("EntityName"); m_DocumentID = ""; OnHtml(arg); } } } return 1; } int SetAgent() { string xfNodeAgentArea = "agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMNode agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); msxml::IXMLDOMNodeList nlist; int index; int nlen; msxml::IXMLDOMElement ele; string tools="<hbox class=''>"; if(agent) { nlist = agent.SelectNodes(".//xtoolbutton"); nlen = nlist.length; for(index=0;index<nlen;index++) { ele = nlist.item(index); string name = ele.selectSingleNode("@name").text; string label = ele.selectSingleNode("@caption").text; string image; string src = ""; if(ele.selectSingleNode("@image")) image = ele.selectSingleNode("@image").text; else image = "0 22"; if(ele.selectSingleNode("@src")) src = ele.selectSingleNode("@src").text; int strLen = label.length(); int width = 60 + (strLen - 2) * 10; string tool; if (src != "") tool = "<xtoolbutton src='"+src+"' caption='"+label+"' name='"+name+"' height='28' class1='action'/>"; else tool = "<xtoolbutton image='"+image+"' caption='"+label+"' name='"+name+"' height='28' class1='action'/>"; tools += tool; } } tools +="</hbox>"; SetAgentNodeContent(anode, tools); return 1; } //ç¦ç¹æ¿æ´»å¤ç彿° int OnSetFocus(ref TNotifyEvent evt,int p) { //éç½®å·¥å ·æ¡ SetAgent(); return 1; } int OnEdit() { editing = !editing; if(editing) { SwitchLayer("cellview","viewclient"); }else { htmlStr = cell.GetHtml(); //string content = htmlStr; htmlStr = htmlStr.replace("[空]"," ",0); htmlStr = htmlStr.replace("[line]","<br/>",0); ole_print.LoadHtml(htmlStr); SwitchLayer("oleview","viewclient"); } return 1; } int OnSaveAs() //å¦å为... { ole_print.ExecWB(4,2); return 1; } int OnPrint() //æå° { ole_print.ExecWB(6, 0); return 1; } int PrintPaper() //æå° { //ole_print.GetHtmlDocument(); //return 1; _mshtml::IHTMLDocument3 doc = ole_print.GetHtmlDocument(); _mshtml::IHTMLElementCollection rows = doc.getElementsByTagName("tr"); int len = rows.length; for(int i=0; i < len - 1;i++) { //oleobject v = rows.item(i,i); _mshtml::IHTMLElement e = rows.item(i,i); _mshtml::IHTMLElement2 e1 = e; //e.setAttribute("height",e1.clientHeight,0); e.setAttribute("height",300,0); e.Release(); e1.Release(); } rows.Release(); doc.Release(); /* if(PaperPrint == false) { ole_print.GetHtmlDocument().body.style.visibility="hidden"; PaperPrint = true; } else { ole_print.GetHtmlDocument().body.style.visibility="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("Portrait"); return 1; } int OnLandscape() //横å { return 1; } int OnPageProperty() //æ¥ç页é¢å±æ§ { ole_print.ExecWB(10, 1); return 1; } int OnCustom() //èªå®ä¹:? 25-400% { return 1; } int OnAddToDocument() { string content = htmlStr; if(editing)content = cell.GetHtml(); string guid = publiccode::GetGuid(); string prestr = guid.mid(0,2); prestr = prestr.upper(); content = content.replace("gb2312","utf-16",0); content = content.replace(" ","[空]",0); content = content.replace("&","",0); xml x0 = new xml; x0.setNativePointer(xml::CreateInstance()); x0.LoadXml("<Bill/>"); x0.GetXmlDoc().documentElement.text = content; content = x0.GetXml(); int ret= xaserver::UploadData("bill"+prestr, guid+".jpg", content); if(ret < 0) trace("error upload"); string ls_xml ="<DocumentList guid='"+guid+"' update.modify='1' update.new='1'>"; ls_xml += "<EntityName>"+ m_EntityName + "</EntityName>"; ls_xml += "<EntityID>"+ m_EntityID + "</EntityID>"; ls_xml += "<EntityNo>"+ m_EntityNo + "</EntityNo>"; ls_xml += "<BillID>"+ billID + "</BillID>"; ls_xml += "<BillName>"+ billName + "</BillName>"; ls_xml += "</DocumentList>"; xml x = new xml; x.setNativePointer(xml::CreateInstance()); x.LoadXml(ls_xml); xaserverarg arg = new xaserverarg; arg.setNativePointer(xaserverarg::CreateInstance()); arg.AddArg("content",x.GetXml()); if(url::get("/sale/data/DocumentList3/bill/update", arg.GetString(),x)!=1) { string error = x.GetXmlDoc().text; alert("err:"+error); return 1; } string str = x.GetXmlDoc().documentElement.getAttribute("text"); if(str == "true") { alert("ä¿åæå!"); updated = false; }else { alert("ä¿å失败!"); } return 1; } int SendCtrlCmd(xcontrol xc, string cmd) { win32::SendMessage(xc.GetId(),0x401,cmd,0); return 1; } int OnRefreshData() { xaserverarg arg = new xaserverarg; arg.setNativePointer(GetParam()); string templateName = arg.GetArgString("template-name"); win32::SetWindowText(GetHWND(),templateName); OnHtml(arg); billName = templateName; billPre = arg.GetArgString("template-pre"); billID = arg.GetArgString("template-guid"); m_EntityID = arg.GetArgString("EntityID"); m_EntityNo = arg.GetArgString("EntityNo"); m_EntityName = arg.GetArgString("EntityName"); m_DocumentID = ""; return 1; } int OnCmdDispatch(string comdid) { if(comdid=="xmSort") { OpenWindow("dev:xpage[DataSort.dialog.vx]",cast(m_dataset as int)); return 1; } if(comdid=="print:PrintImmediate") { updated = true; return OnPrint(); } if(comdid=="print:PrintPaper") { updated = true; return PrintPaper(); } if(comdid=="print:PrintPreview") { updated = true; return OnPrintPreview(); } if(comdid=="print:Portrait") { updated = true; return OnPortrait(); } if(comdid=="print:Landscape") { updated = true; return OnLandscape(); } if(comdid=="print:PageSetup") { updated = true; return OnPageSetup(); } if(comdid=="print:Custom") { updated = true; return OnCustom(); } if(comdid=="print:PrintDialog") { if(updated) { int res = win32::MessageBox(this.GetHWND(), "忮已å¶ä½ï¼æ¯å¦ä¿å?","æç¤º",4); if(res == 6)OnCmdDispatch("print:AddToDocumentList"); } if(GetParam()) { xaserverarg arg1 = new xaserverarg; arg1.setNativePointer(GetParam()); arg1.AddArg("action","new"); OnPrintDialog(); arg1.AddArg("action",""); } return 1; } if(comdid.find("print:toExcel",0)>=0) { updated = true; return OntoExcel(); } if(comdid.find("print:Export",0)>=0) { updated = true; return OnExport(); } if(comdid.find("print:SaveAs",0)>=0) return OnSaveAs(); if(comdid.find("print:Edit",0)>=0) { updated = true; return OnEdit(); } if(comdid.find("action:Close",0)>=0) return CloseWindow(); if(comdid=="print:OpenDocument") return OnOpenDocument(); if(comdid=="print:AddToDocumentList") return OnAddToDocument(); if(comdid.find("action:",0)>=0) return ProcessFlowAction(comdid, 1); if(comdid.left(3) == "xmSort") { //string str = return 1; } if(comdid.left(3) == "IK_") { string cmd = comdid.mid(3, comdid.length()); SendCtrlCmd(cell,cmd); return 1; } if(comdid=="print:MaintTemplate") { OpenWindow("dev:xpage[Maint.Template.Print.vx]"); return 1; } if(comdid == "print:RefreshData"){ return OnRefreshData(); } if(comdid == "xxx") { ole_print.ExecWB(27,0); return 1; alert("xxx"); xml x1 = new xml; x1.setNativePointer(xml::CreateInstance()); xaserver::ExecXQuery(GetServerUrl(), "[xsl.getdevobj.xq]","<args/>",x1); } if(comdid == "xxx") { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("strHtml",m_strHtml); if (url::get("/sale/data/SysPrintTemplate/WebBrowser",arg.GetString(),x) != 1) { alert("æ°æ®éåºéäº!"); return 0; } string strHtml = x.GetXml(); ole_print.LoadHtml(strHtml); } return 0; } int OnXCommand(ref TXCommandEvent evt,int p) { return OnCmdDispatch(evt.pStrID); } int OnAttachEvent() { AttachEvent("WM_XCOMMAND",OnXCommand); AttachEvent("WM_SETFOCUS",OnSetFocus); //AttachEvent("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 = win32::MessageBox(this.GetHWND(), "忮已å¶ä½ï¼æ¯å¦ä¿å?","æç¤º:",MB_YESNOCANCEL); if(re==IDCANCEL) return -1; if(re==IDNO) return 1; OnCmdDispatch("print:AddToDocumentList"); return -1; } int onload() { OnAttachEvent(); AttachCloseWindow(); ole_print = GetControl("ole_print"); cell = GetControl("xcell"); //showgrid = false; editing = false; SetAgent(); m_dataset = 0; billName = ""; billID = ""; billPre = ""; m_DocumentID = ""; PaperPrint = false; return 1; } int onloaded() { updated = false; if(GetParam()) { xaserverarg arg = new xaserverarg; arg.setNativePointer(GetParam()); string templateName = arg.GetArgString("template-name"); if(templateName =="") { OnPrintDialog(); } else { win32::SetWindowText(GetHWND(),templateName); OnHtml(arg); billName = templateName; billPre = arg.GetArgString("template-pre"); billID = arg.GetArgString("template-guid"); m_EntityID = arg.GetArgString("EntityID"); m_EntityNo = arg.GetArgString("EntityNo"); m_EntityName = arg.GetArgString("EntityName"); m_DocumentID = ""; } }else OnPrintDialog(); return 1; } }; jrj/project/workflow/workflow.actionlog.cpp
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,66 @@ class workflow_actionlog : public win__ { //å½ä»¤åå¸å½æ° int OnCmdDispatch(string comdid) { CloseWindow(); return 0; } //å½ä»¤å¤çäºä»¶ int OnXCommand(ref TXCommandEvent evt,int param) { return OnCmdDispatch(evt.pStrID); } int OnAttachEvent() { //ç»å®å·¥å ·æ¡ç¹å»äºä»¶ AttachEvent("WM_XCOMMAND",OnXCommand); } int onload() { OnAttachEvent(); xdwgrid__ dw_loglist = new xdwgrid__; dw_loglist.setNativePointer(GetControl("dw_loglist")); dw_loglist.openUrl("/sale/view/workflow.view/template/chkdlg/loglist"); if(this.GetParam()) { xaserverarg__ argx = new xaserverarg__; argx.setNativePointer(argx.CreateInstance()); xaserverarg__ arg = this.GetParam(); argx.AddArg("EntityID",arg.GetArgString("EntityID")); xml__ x = new xml__; x.setNativePointer(xml__ ::CreateInstance()); url::get("/sale/data/workflow.core/workflow/chk/loglist", argx.GetString(), x); dw_loglist.Retrieve(x); dw_loglist.SetReadOnly(true); xflowchart__ dw_chart = new xflowchart__; dw_chart.setNativePointer(GetControl("dw_logchart")); xml__ xc = new xml__; xc.setNativePointer(xml__ ::CreateInstance()); url::get("/sale/data/workflow.core/workflow/chk/logchart", argx.GetString(), xc); msxml::IXMLDOMElement e = xc.GetXmlDoc().documentElement; dw_chart.LoadEx(e); /* string xbox = "<vbox><ximage name='pic' transparent='1' src='/business/flow/"+arg.GetArgString("EntityName")+".jpg'/></vbox>"; xnode__ anode = new xnode__; anode.setNativePointer(GetAgentNode("flowimage")); SetAgentNodeContent (anode,xbox);*/ imageview__ im = new imageview__; im.setNativePointer(GetControl("image")); //alert(arg.GetArgString("EntityName")); im.AddImages("/business/flow/"+arg.GetArgString("EntityName")+".jpg"); } return 1; } } jrj/project/workflow/workflow.actionlog_vd.cpp
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ class workflow_actionlog_vd : public win__ { //å½ä»¤åå¸å½æ° int OnCmdDispatch(string comdid) { CloseWindow(); return 0; } //å½ä»¤å¤çäºä»¶ int OnXCommand(ref TXCommandEvent evt,int param) { return OnCmdDispatch(evt.pStrID); } int OnAttachEvent() { //ç»å®å·¥å ·æ¡ç¹å»äºä»¶ AttachEvent("WM_XCOMMAND",OnXCommand); } int onload() { OnAttachEvent(); xdwgrid__ dw_loglist = new xdwgrid__; dw_loglist.setNativePointer(GetControl("dw_loglist")); dw_loglist.openUrl("/sale/view/workflow.view/template/chkdlg/loglist"); if(this.GetParam()) { int iArgs = GetParam(); xaserverarg__ argx = new xaserverarg__; argx.setNativePointer(iArgs); argx.AddArg("EntityID",argx.GetArgString("EntityID")); xml__ x = new xml__; x.setNativePointer(xml__ ::CreateInstance()); url::get("/sale/data/workflow.core/workflow/chk/loglist", argx.GetString(), x); dw_loglist.Retrieve(x); dw_loglist.SetReadOnly(true); xflowchart__ dw_chart = new xflowchart__; dw_chart.setNativePointer(GetControl("dw_logchart")); xml__ xc = new xml__; xc.setNativePointer(xml__ ::CreateInstance()); url::get("/sale/data/workflow.core/workflow/chk/logchart", argx.GetString(), xc); msxml::IXMLDOMElement e = xc.GetXmlDoc().documentElement; dw_chart.LoadEx(e); /* string xbox = "<vbox><ximage name='pic' transparent='1' src='/business/flow/"+arg.GetArgString("EntityName")+".jpg'/></vbox>"; xnode__ anode = new xnode__; anode.setNativePointer(GetAgentNode("flowimage")); SetAgentNodeContent (anode,xbox);*/ imageview__ im = new imageview__; im.setNativePointer(GetControl("image")); trace(argx.GetArgString("EntityName")); im.AddImages("/business/flow/"+argx.GetArgString("EntityName")+".jpg"); } return 1; } } jrj/project/workflow/workflow.chkdlg.cpp
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,68 @@ class workflow_chkdlg : public win__ { //å½ä»¤åå¸å½æ° int OnCmdDispatch(string comdid) { if(this.GetParam()) { if(comdid=="xmOK") { control__ xc = new control__; xc.setNativePointer(GetControl("content")); string str = ""+xc.GetText(); //trace(str); xaserverarg__ arg = this.GetParam(); arg.AddArg("content",str); } arg.AddArg("comdid",comdid); } CloseWindow(); return 0; } //å½ä»¤å¤çäºä»¶ int OnXCommand(ref TXCommandEvent evt,int param) { return OnCmdDispatch(evt.pStrID); } int OnAttachEvent() { //ç»å®å·¥å ·æ¡ç¹å»äºä»¶ AttachEvent("WM_XCOMMAND",OnXCommand); } int onload() { OnAttachEvent(); xaserverarg__ arg; if(this.GetParam()) { arg = this.GetParam(); control__ xc = new control__; xc.setNativePointer(GetControl("content")); xc.SetText(""+arg.GetArgString("content")); } xdwgrid__ dw_loglist = new xdwgrid__; dw_loglist.setNativePointer(GetControl("dw_loglist")); dw_loglist.openUrl("/sale/view/workflow.view/template/chkdlg/loglist"); if(this.GetParam()) { xaserverarg__ argx = new xaserverarg__; argx.setNativePointer(argx.CreateInstance()); arg = this.GetParam(); argx.AddArg("EntityID",arg.GetArgString("EntityID")); xml__ x = new xml__; x.setNativePointer(xml__ ::CreateInstance()); url::get("/sale/data/workflow.core/workflow/chk/loglist", argx.GetString(), x); dw_loglist.Retrieve(x); dw_loglist.SetReadOnly(true); } return 1; } } jrj/project/workflow/workflow.chkdlg_vd.cpp
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,76 @@ class workflow_chkdlg_vd : public win__ { //å½ä»¤åå¸å½æ° int OnCmdDispatch(string comdid) { if(this.GetParam()) { if(comdid=="xmOK") { control__ xc = new control__; xc.setNativePointer(GetControl("content")); string str = ""+xc.GetText(); //trace(str); int iArgs = GetParam(); xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(iArgs); arg.AddArg("content",str); } arg.AddArg("comdid",comdid); } CloseWindow(); return 0; } //å½ä»¤å¤çäºä»¶ int OnXCommand(ref TXCommandEvent evt,int param) { return OnCmdDispatch(evt.pStrID); } int OnAttachEvent() { //ç»å®å·¥å ·æ¡ç¹å»äºä»¶ AttachEvent("WM_XCOMMAND",OnXCommand); } int onload() { //alert("æ°ç"); OnAttachEvent(); xaserverarg__ arg; if(this.GetParam()) { int iArgsx = this.GetParam(); arg = new xaserverarg__; arg.setNativePointer(iArgsx); //trace(iArgsx); control__ xc = new control__; xc.setNativePointer(GetControl("content")); xc.SetText(""+arg.GetArgString("content")); } xdwgrid__ dw_loglist = new xdwgrid__; dw_loglist.setNativePointer(GetControl("dw_loglist")); dw_loglist.openUrl("/sale/view/workflow.view/template/chkdlg/loglist"); if(this.GetParam()) { int iArgs = GetParam(); xaserverarg__ argx = new xaserverarg__; argx.setNativePointer(iArgs); argx.AddArg("EntityID",arg.GetArgString("EntityID")); xml__ x = new xml__; x.setNativePointer(xml__ ::CreateInstance()); url::get("/sale/data/workflow.core/workflow/chk/loglist", argx.GetString(), x); dw_loglist.Retrieve(x); dw_loglist.SetReadOnly(true); } return 1; } }