xj qian
2024-06-28 50a37dbe8b73033a6295c9794c0f2f1b8db2b469
jrj/project/printview/Template.Print.ViewEx.cpp
@@ -78,7 +78,7 @@
   string GetModulePath()
   {
      string str ="";
      string str =L"";
      str = str.space(255);
      GetModuleFileName(0,str,250);
      PathRemoveFileSpec(str);
@@ -86,11 +86,11 @@
   }
   string GetModuleTmpPath()
   {
      string str ="";
      string str =L"";
      str = str.space(255);
      GetModuleFileName(0,str,250);
      PathRemoveFileSpec(str);
      string tmp = str + "\\Temp";
      string tmp = str + L"\\Temp";
      xaserver::CreateDirectory(tmp);
      return tmp;
   }
@@ -102,7 +102,7 @@
      szFileName[0] = 0;
      szPath[0] = 0;
      
      if(initFileName !="")
      if(initFileName !=L"")
      {
         int len = initFileName.length();
         char[] tmp = initFileName;
@@ -128,7 +128,7 @@
      ofn.nMaxFile = 255;
      ofn.lpstrFileTitle = szFileName;
      ofn.nMaxFileTitle = 255;
      ofn.lpstrTitle = "请指定文件名";
      ofn.lpstrTitle = L"请指定文件名";
      ofn.lpstrDefExt = ext; 
         //"jpg";
      ofn.lpstrInitialDir = 0;
@@ -152,58 +152,58 @@
   int OnExport()
   {
      string pre = billPre;
      if(pre=="")
      if(pre==L"")
      {
         pre = m_EntityName;
         if(m_EntityName=="SaleOrder") pre="PI";
         if(m_EntityName=="GDN3")pre="INV";
         if(m_EntityName==L"SaleOrder") pre=L"PI";
         if(m_EntityName==L"GDN3")pre=L"INV";
      }
      string file1 =  GetSaveFileName(pre+m_EntityNo+".xlsx",
      string file1 =  GetSaveFileName(pre+m_EntityNo+L".xlsx",
         "Excel1文件(*.xlsx)\0*.xlsx;*.xls\0Excel97文件(*.xls)\0*.xls\0PDF文件(*.pdf)\0*.pdf\0",
         "xlsx");
      if(file1 =="") return 1;
      if(file1 ==L"") return 1;
      
      if(win32::PathFileExists(file1))
      {
         int res = win32::MessageBox(this.GetHWND(), "文件已经存在,是否覆盖?","提示",4);
         int res = win32::MessageBox(this.GetHWND(), L"文件已经存在,是否覆盖?",L"提示",4);
         if(res != 6) return 1;
      }
      
      trace("\r\n link excel");
      trace(L"\r\n link excel");
      excel = new cexcel;
      int hexcel = cexcel::CreateInstance();
      excel.setNativePointer(hexcel);
      if(hexcel == 0)
      {
         alert("不能连接Excel");
         alert(L"不能连接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");
      string filename= pre+m_EntityNo+L"_.htm";
      xutil::SaveToFile(GetModuleTmpPath() + L"\\"+ filename, htmlStr,L"",L"",L"");
      trace(L"\r\n excel to open");
      excel .OpenDocument(GetModuleTmpPath() + L"\\"+ filename);
      trace(L"\r\n trans shape");
      //excel .put_Visible(true);
      excel.TransShape();
      trace("\r\n save to tmp excel file");
      if(file1.find(".xls"))
      trace(L"\r\n save to tmp excel file");
      if(file1.find(L".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");
         if(win32::PathFileExists(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls"))
            DeleteFile(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls");
         excel.SaveToFile(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls");
         //alert(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls");
      }
      else 
      {
         if(win32::PathFileExists(GetModuleTmpPath() + "\\"+ pre+m_EntityNo+"_.xlsx"))
            DeleteFile(GetModuleTmpPath() + "\\"+ pre+m_EntityNo+"_.xlsx");
         excel.SaveToFile(GetModuleTmpPath() + "\\"+ pre+m_EntityNo+"_.xlsx");
         if(win32::PathFileExists(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx"))
            DeleteFile(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx");
         excel.SaveToFile(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx");
      }
      
      trace("\r\n save to excel file");
      if(win32::PathFileExists(file1)) //GetModuleTmpPath() + "\\"+ pre+m_EntityNo+"_.xlsx"))
      trace(L"\r\n save to excel file");
      if(win32::PathFileExists(file1)) //GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx"))
         DeleteFile(file1);
      excel.SaveToFile(file1);
      
@@ -219,17 +219,17 @@
      
      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);
      if(m_EntityName==L"SaleOrder") pre=L"PI";
      if(m_EntityName==L"GDN3")pre=L"INV";
      string filename= pre+m_EntityNo+L".htm";
      string filenameex= pre+m_EntityNo+L".xlsx";
      xutil::SaveToFile(GetModuleTmpPath() + L"\\"+ filename, htmlStr,L"",L"",L"");
      excel .OpenDocument(GetModuleTmpPath() + L"\\"+ filename);
      //excel.put_Visible(true);
      excel.TransShape();
      if(win32::PathFileExists(GetModuleTmpPath() + "\\"+ filenameex))
         DeleteFile(GetModuleTmpPath() + "\\"+ filenameex);
      excel.SaveToFile(GetModuleTmpPath() + "\\"+ filenameex);
      if(win32::PathFileExists(GetModuleTmpPath() + L"\\"+ filenameex))
         DeleteFile(GetModuleTmpPath() + L"\\"+ filenameex);
      excel.SaveToFile(GetModuleTmpPath() + L"\\"+ filenameex);
      excel.put_Visible(true);
      excel.Release(excel.ptr_native_);
@@ -238,71 +238,71 @@
   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);
      string path=GetModulePath()+L"\\resource\\image";
      string filename=L"contract.jpg";
      filename=L"sign.png";
      filename=L"jrj_maersk.png";
      filename=L"HomeDecorSign.png";
      xaserver::DownLoadFile(GetServerUrl(),L"/business/rpttemplate/"+filename,L"",path+L"\\"+filename);
      filename=L"HomeDecorLogo.jpg";
      xaserver::DownLoadFile(GetServerUrl(),L"/business/rpttemplate/"+filename,L"",path+L"\\"+filename);
      return path;
   }
   
   string replaceInnerElement(string html)
   {
      string str = html;
      if(str.find("[$element:")<0) return str;
      if(str.find(L"[$element:")<0) return str;
      
      int len = 0;
      int pos = 0;
      int pos1 = 0;
      string pre="";
      string left="";
      string right="";
      string tag="";
      string pre=L"";
      string left=L"";
      string right=L"";
      string tag=L"";
      
      len = "[$element:".length();
      len = L"[$element:".length();
      while(true)
      {
         pos = str.find("[$element:");
         pos = str.find(L"[$element:");
         if(pos < 0) break;
         left = str.left(pos);
         right = str.mid(pos+ len,999999);
         
         pos1 = right.find("]");
         pos1 = right.find(L"]");
         if(pos1>=0)
         {
            tag = right.left(pos1);
            if(tag.right(1)=="$") tag=tag.left(tag.length() - 1);
            pre = pre + left + "<" + tag +">";
            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+"<";
            pre = pre + left+L"<";
            str = right;
         }
      }
      
      str = pre + str;
      pre = "";
      len = "[/$element:".length();
      pre = L"";
      len = L"[/$element:".length();
      while(true)
      {
         pos = str.find("[/$element:");
         pos = str.find(L"[/$element:");
         if(pos < 0) break;
         left = str.left(pos);
         right = str.mid(pos+ len,999999);
         pos1 = right.find("]");
         pos1 = right.find(L"]");
         if(pos1>=0)
         {
            tag = right.left(pos1);
            if(tag.right(1)=="$") tag=tag.left(tag.length() - 1);
            pre = pre + left + "</" + tag +">";
            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+"</";
            pre = pre + left+L"</";
            str = right;
         }
      }
@@ -312,13 +312,13 @@
   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);
      //if(str.find(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;
   }
   
   string DownLoadSKUNoPic(string SKUNo,string CustomerID="",string CustomerItemNo="")
   string DownLoadSKUNoPic(string SKUNo,string CustomerID=L"",string CustomerItemNo=L"")
   {
      
      if(SKUNo.length()>20) return DownLoadPaperPic(SKUNo);
@@ -327,51 +327,51 @@
      x.setNativePointer(xml::CreateInstance());
      xaserverarg arg = new xaserverarg;
      arg.setNativePointer(arg.CreateInstance());
      arg.AddArg("SKUNo",SKUNo);
      arg.AddArg(L"SKUNo",SKUNo);
      
      string src ="/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
      if(CustomerID !="")
      string src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
      if(CustomerID !=L"")
      {
         arg.AddArg("CustomerID",CustomerID);
         arg.AddArg("CustomerItemNo",CustomerItemNo);
         src ="/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo";
         arg.AddArg(L"CustomerID",CustomerID);
         arg.AddArg(L"CustomerItemNo",CustomerItemNo);
         src =L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo";
      }
      //trace("SKUNo="+SKUNo);//要有展示图片查询条件内必定要skuno
      //trace(L"SKUNo=L"+SKUNo);//要有展示图片查询条件内必定要skuno
      if(url::get(src,arg.GetString(),x)!=1)
      {
         trace("error for download skuno pic!");
         trace(L"error for download skuno pic!");
         return "";
      }
      
      string spath = "";
      string spath = L"";
      string path =GetModuleTmpPath();
      string ext = "jpg";
      if(x.GetXmlDoc().selectSingleNode("//FileExt[1]"))
      string ext = L"jpg";
      if(x.GetXmlDoc().selectSingleNode(L"//FileExt[1]"))
      {
         ext = x.GetXmlDoc().selectSingleNode("//FileExt[1]").text;
      }else if(CustomerID !="")
         ext = x.GetXmlDoc().selectSingleNode(L"//FileExt[1]").text;
      }else if(CustomerID !=L"")
      {
         src ="/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
         src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
         if(url::get(src,arg.GetString(),x)!=1)
         {
            trace("error for download skuno pic!");
            trace(L"error for download skuno pic!");
            return "";
         }
         if(x.GetXmlDoc().selectSingleNode("//FileExt[1]"))
            ext = x.GetXmlDoc().selectSingleNode("//FileExt[1]").text;
         if(x.GetXmlDoc().selectSingleNode(L"//FileExt[1]"))
            ext = x.GetXmlDoc().selectSingleNode(L"//FileExt[1]").text;
      }
         
      string filename = SKUNo + "." + ext;
      if(x.GetXmlDoc().selectSingleNode("//PicPath[1]"))
         spath = x.GetXmlDoc().selectSingleNode("//PicPath[1]").text;
      if(spath != "")
      string filename = SKUNo + L"." + ext;
      if(x.GetXmlDoc().selectSingleNode(L"//PicPath[1]"))
         spath = x.GetXmlDoc().selectSingleNode(L"//PicPath[1]").text;
      if(spath != L"")
      {
          xaserver::DownLoadFile(GetServerUrl(),spath,"",path+"/"+filename);
          xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
      }
      return "file://"+ path+"/"+filename;
      return "file://"+ path+L"/"+filename;
   }
      
   string DownLoadSKUNoPic(string SKUNo,string CustomerID="",string CustomerItemNo="")
   string DownLoadSKUNoPic(string SKUNo,string CustomerID=L"",string CustomerItemNo=L"")
   {
      
      if(SKUNo.length()>20) return DownLoadPaperPic(SKUNo);
@@ -380,48 +380,48 @@
      x.setNativePointer(xml::CreateInstance());
      xaserverarg arg = new xaserverarg;
      arg.setNativePointer(arg.CreateInstance());
      arg.AddArg("SKUNo",SKUNo);
      arg.AddArg(L"SKUNo",SKUNo);
      
      string src ="/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
      if(CustomerID !="")
      string src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
      if(CustomerID !=L"")
      {
         arg.AddArg("CustomerID",CustomerID);
         arg.AddArg("CustomerItemNo",CustomerItemNo);
         src ="/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo";
         arg.AddArg(L"CustomerID",CustomerID);
         arg.AddArg(L"CustomerItemNo",CustomerItemNo);
         src =L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo";
      }
      //trace("SKUNo="+SKUNo);//要有展示图片查询条件内必定要skuno
      //trace(L"SKUNo=L"+SKUNo);//要有展示图片查询条件内必定要skuno
      if(url::get(src,arg.GetString(),x)!=1)
      {
         trace("error for download skuno pic!");
         trace(L"error for download skuno pic!");
         return "";
      }
      
      string spath = "";
      string spath = L"";
      string path =GetModuleTmpPath();
      string ext = "jpg";
      if(x.GetXmlDoc().selectSingleNode("//FileExt[1]"))
      string ext = L"jpg";
      if(x.GetXmlDoc().selectSingleNode(L"//FileExt[1]"))
      {
         ext = x.GetXmlDoc().selectSingleNode("//FileExt[1]").text;
      }else if(CustomerID !="")
         ext = x.GetXmlDoc().selectSingleNode(L"//FileExt[1]").text;
      }else if(CustomerID !=L"")
      {
         src ="/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
         src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
         if(url::get(src,arg.GetString(),x)!=1)
         {
            trace("error for download skuno pic!");
            trace(L"error for download skuno pic!");
            return "";
         }
         if(x.GetXmlDoc().selectSingleNode("//FileExt[1]"))
            ext = x.GetXmlDoc().selectSingleNode("//FileExt[1]").text;
         if(x.GetXmlDoc().selectSingleNode(L"//FileExt[1]"))
            ext = x.GetXmlDoc().selectSingleNode(L"//FileExt[1]").text;
      }
         
      string filename = SKUNo + "." + ext;
      if(x.GetXmlDoc().selectSingleNode("//PicPath[1]"))
         spath = x.GetXmlDoc().selectSingleNode("//PicPath[1]").text;
      if(spath != "")
      string filename = SKUNo + L"." + ext;
      if(x.GetXmlDoc().selectSingleNode(L"//PicPath[1]"))
         spath = x.GetXmlDoc().selectSingleNode(L"//PicPath[1]").text;
      if(spath != L"")
      {
          xaserver::DownLoadFile(GetServerUrl(),spath,"",path+"/"+filename);
          xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
      }
      return "file://"+ path+"/"+filename;
      return "file://"+ path+L"/"+filename;
   }
      
   string GetImageUrl(string id)
@@ -430,9 +430,9 @@
      xp.setNativePointer(xml::CreateInstance());
      xaserverarg arg_pic=new xaserverarg;
      arg_pic.setNativePointer(arg_pic.CreateInstance());   
      arg_pic.AddArg("id",id);
      arg_pic.AddArg(L"id",id);
      
      string res = "/sale/data/productlibrary3/image/url";
      string res = L"/sale/data/productlibrary3/image/url";
      if(url::get(res,arg_pic.GetString(),xp)!=1)
      {
         xp.GetXml();
@@ -440,64 +440,64 @@
      }else
      {
         string path = xp.GetXmlDoc().text;
         if(path !="") return path;
         if(path !=L"") return path;
      }
      
      return "/business/products/chanpin/"+id.left(2)+"/"+ id+".jpg";
      return "/business/products/chanpin/"+id.left(2)+L"/"+ id+L".jpg";
   }
   
   string DownLoadPaperPic(string guid)
   {
      
      string path =GetModuleTmpPath();
      string ext = "jpg";
      string filename = guid + "." + ext;
      string ext = L"jpg";
      string filename = guid + L"." + ext;
      string spath = GetImageUrl(guid);
      //alert(spath);
      xaserver::DownLoadFile(GetServerUrl(),spath,"",path+"/"+filename);
      return "file://"+ path+"/"+filename;
      xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
      return "file://"+ path+L"/"+filename;
   }
         
   string DownLoadPaperPic1(string guid)
   {
      string path =GetModuleTmpPath();
      string ext = "jpg";
      string filename = guid + "." + ext;
      string ext = L"jpg";
      string filename = guid + L"." + 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 spath = L"/business/products/chanpin/"+str+L"/"+guid+L".jpg";
      xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
      return "file://"+ path+L"/"+filename;
   }
   
   string DownLoadUrlPic(string src)
   {
      string guid =  publiccode::GetGuid();
      string path =GetModuleTmpPath();
      string ext = "jpg";
      string filename = guid + "." + ext;
      string ext = L"jpg";
      string filename = guid + L"." + ext;
      string spath = src;
      xaserver::DownLoadFile(GetServerUrl(),spath,"",path+"/"+filename);
      return "file://"+ path+"/"+filename;
      xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
      return "file://"+ path+L"/"+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;
      string sEntityName = arg.GetArgString(L"EntityName");
      string sEntityID = arg.GetArgString(L"EntityID");
      string 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 = new xml;
         x0.setNativePointer(xml::CreateInstance());
         if (url::get(dataUrl,arg.GetString(),x0) != 1)
         {
            alert("数据集出错了!");
            alert(L"数据集出错了!");
            return 0;
         }
         trace(x0.GetXml());
@@ -506,14 +506,14 @@
         
      string sPath;
      sPath = getfilePath();
      arg.AddArg("sPath",sPath);
      arg.AddArg(L"sPath",sPath);
      m_spath = sPath;
      
      xml xsl = new xml;
      xsl.setNativePointer(xml::CreateInstance());
      if (url::get("/sale/data/SysPrintTemplate/getxsl",arg.GetString(),xsl) != 1)
      if (url::get(L"/sale/data/SysPrintTemplate/getxsl",arg.GetString(),xsl) != 1)
      {
         alert("数据模板错误!");
         alert(L"数据模板错误!");
         return 0;
      }
      
@@ -523,68 +523,68 @@
      xsl.LoadXml(xslStr);
      
      //trace(m_dataset.GetXml());
      trace("\r\n--------\r\n"+xslStr);
      trace(L"\r\n--------\r\n"+xslStr);
      
      m_strHtml = m_dataset.GetXmlDoc().transformNode(xsl.GetXmlDoc());
      string aspace = m_strHtml.replace("[空]","&nbsp;",0);
      aspace = aspace.replace("[line]","<br/>",0);
      string scontent = aspace.replace("<?xml version=\"1.0\"?>","",0);
      string aspace = m_strHtml.replace(L"[空]",L"&nbsp;",0);
      aspace = aspace.replace(L"[line]",L"<br/>",0);
      string scontent = aspace.replace(L"<?xml version=\"1.0\"?>",L"",0);
      
      string head ="";
      string head =L"";
      string tail = scontent;
      int pos = tail.find("src=\"item-picture:");
      int pos = tail.find(L"src=\"item-picture:");
      while(pos > 0)
      {
         int spos = pos+"src=\"item-picture:".length();
         int pos1 = tail.find("\"",spos+1);
         int spos = pos+L"src=\"item-picture:".length();
         int pos1 = tail.find(L"\"",spos+1);
         string skuno = tail.mid(spos,pos1 - spos ).trim();
         string CustomerID="";
         string CustomerItemNo="";
         if(skuno.find(",")>0)
         string CustomerID=L"";
         string CustomerItemNo=L"";
         if(skuno.find(L",L")>0)
         {
            CustomerID = skuno.left(skuno.find(",")).trim();
            skuno = skuno.mid(skuno.find(",")+1,256).trim();
            CustomerID = skuno.left(skuno.find(L",L")).trim();
            skuno = skuno.mid(skuno.find(L",L")+1,256).trim();
         }
         if(skuno.find(",")>0)
         if(skuno.find(L",L")>0)
         {
            CustomerItemNo = skuno.left(skuno.find(",")).trim();
            skuno = skuno.mid(skuno.find(",")+1,256).trim();
            CustomerItemNo = skuno.left(skuno.find(L",L")).trim();
            skuno = skuno.mid(skuno.find(L",L")+1,256).trim();
         }
         string src =  DownLoadSKUNoPic(skuno,CustomerID,CustomerItemNo);
         head += tail.left(pos) + "src=\"" + src;
         head += tail.left(pos) + L"src=\"" + src;
         tail = tail.mid(pos1,999999999);
         pos = tail.find("src=\"item-picture:");
         pos = tail.find(L"src=\"item-picture:");
      }
      scontent = head + tail;
      
      head ="";
      head =L"";
      tail = scontent;
      int position = tail.find("src=\"paper-picture:");
      int position = tail.find(L"src=\"paper-picture:");
      while(position > 0)
      {
         int sposition = position+"src=\"paper-picture:".length();
         int position1 = tail.find("\"",sposition+1);
         int sposition = position+L"src=\"paper-picture:".length();
         int position1 = tail.find(L"\"",sposition+1);
         string guid = tail.mid(sposition,position1 - sposition ).trim();
         string src2 =  DownLoadPaperPic(guid);
         head += tail.left(position) + "src=\"" + src2;
         head += tail.left(position) + L"src=\"" + src2;
         tail = tail.mid(position1,999999999);
         position = tail.find("src=\"paper-picture:");
         position = tail.find(L"src=\"paper-picture:");
      }
      scontent = head + tail;
      
      head ="";
      head =L"";
      tail = scontent;
      position = tail.find("src=\"src-picture:");
      position = tail.find(L"src=\"src-picture:");
      while(position > 0)
      {
         sposition = position+"src=\"src-picture:".length();
         position1 = tail.find("\"",sposition+1);
         sposition = position+L"src=\"src-picture:".length();
         position1 = tail.find(L"\"",sposition+1);
         guid = tail.mid(sposition,position1 - sposition ).trim();
         src2 =  DownLoadUrlPic(guid);
         head += tail.left(position) + "src=\"" + src2;
         head += tail.left(position) + L"src=\"" + src2;
         tail = tail.mid(position1,999999999);
         position = tail.find("src=\"src-picture:");
         position = tail.find(L"src=\"src-picture:");
      }
      scontent = head + tail;
      
@@ -594,10 +594,10 @@
      
      xml x1 = new xml;
      x1.setNativePointer(xml ::CreateInstance());
      //string xcontent = m_strHtml.replace("&nbsp;","[空]",0);
      string xcontent = m_strHtml.replace("[空]"," ",0);
      int pos0 = xcontent.find("<xml");
      int pos2 = xcontent.find("</xml>");
      //string xcontent = m_strHtml.replace(L"&nbsp;",L"[空]",0);
      string xcontent = m_strHtml.replace(L"[空]",L" ",0);
      int pos0 = xcontent.find(L"<xml");
      int pos2 = xcontent.find(L"</xml>");
      if(pos0>=0)
      {
         string str = xcontent.left(pos0)+ xcontent.mid(pos2+6,9999999);
@@ -608,7 +608,7 @@
      {
         /*if(!showgrid)
         {
            SendCtrlCmd(cell,"xmFormatShowGrid");
            SendCtrlCmd(cell,L"xmFormatShowGrid");
            showgrid = true;
         }*/
         cell.LoadTemplate(x1.GetXmlDoc());
@@ -623,20 +623,20 @@
   int updateHtml()
   {
      _mshtml::IHTMLDocument3 doc = ole_print.GetHtmlDocument();
      _mshtml::IHTMLElementCollection rows = doc.getElementsByTagName("tr");
      _mshtml::IHTMLElementCollection rows2 = doc.getElementsByTagName("td");
      _mshtml::IHTMLElementCollection rows = doc.getElementsByTagName(L"tr");
      _mshtml::IHTMLElementCollection rows2 = doc.getElementsByTagName(L"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.style.setAttribute(L"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.style.setAttribute(L"width",e.offsetWidth,0);
         e2.Release();
      }
      rows.Release();
@@ -652,29 +652,29 @@
         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")
         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", p);
         string ret = arg.GetArgString(L"return");
         string action = arg.GetArgString(L"action");
         if (ret ==L"ok")
         {
            if(action =="open")
            if(action ==L"open")
            {
               m_DocumentID = arg.GetArgString("DocumentID");
               m_DocumentID = arg.GetArgString(L"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()!="")
               xaserver::LoadUrl(GetServerUrl(),L"/business/data/bill/"+prestr+L"/"+ m_DocumentID+L".jpg",L"",x);
               if(x.GetXml()!=L"")
               {
                  if(x.GetXmlDoc())
                  {
                     /*if(!showgrid)
                     {
                        SendCtrlCmd(cell,"xmFormatShowGrid");
                        SendCtrlCmd(cell,L"xmFormatShowGrid");
                        showgrid = true;
                     }*/
                     cell.LoadTemplate(x.GetXmlDoc());
@@ -683,21 +683,21 @@
                  ole_print.LoadHtml(x.GetXml());
               }else
               {
                  ole_print.LoadHtml("<html><body>未找到对应的文档</body></html>");
                  //cell.LoadHtml("<html><body>未找到对应的文档</body></html>");
                  ole_print.LoadHtml(L"<html><body>未找到对应的文档</body></html>");
                  //cell.LoadHtml(L"<html><body>未找到对应的文档</body></html>");
               }
            }
            else
            {
               string templateName = arg.GetArgString("template-name");
               string templateName = arg.GetArgString(L"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 = "";
               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_DocumentID = L"";
            
               OnHtml(arg);
@@ -714,29 +714,29 @@
         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")
         arg.AddArg(L"ok",L"");
         openUrl(L"/sale/view/view.dlg/xpage/Template/PrintDialog", p);
         string ret = arg.GetArgString(L"return");
         string action = arg.GetArgString(L"action");
         if (ret ==L"ok")
         {
            updated = false;
            if(action =="open")
            if(action ==L"open")
            {
               m_DocumentID = arg.GetArgString("DocumentID");
               m_DocumentID = arg.GetArgString(L"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()!="")
               xaserver::LoadUrl(GetServerUrl(),L"/business/data/bill/"+prestr+L"/"+ m_DocumentID+L".jpg",L"",x);
               if(x.GetXml()!=L"")
               {
                  
                  string content = "";
                  if(x.GetXmlDoc().documentElement.tagName=="Bill")
                  string content = L"";
                  if(x.GetXmlDoc().documentElement.tagName==L"Bill")
                  {
                     content = x.GetXmlDoc().documentElement.text;
                     content = content.replace("[空]","&nbsp",0);
                     content = content.replace(L"[空]",L"&nbsp",0);
                     ole_print.LoadHtml(content);
                  }else
                  {
@@ -744,39 +744,39 @@
                     {
                        /*if(!showgrid)
                        {
                           SendCtrlCmd(cell,"xmFormatShowGrid");
                           SendCtrlCmd(cell,L"xmFormatShowGrid");
                           showgrid = true;
                        }*/
                        xml x1 = new xml;
                        x1.setNativePointer(xml::CreateInstance());   
                        string content1 = x.GetXml();
                        content1 = content1.replace("[空]"," ",0);
                        content1 = content1.replace(L"[空]",L" ",0);
                        //trace(content1);
                        x1.LoadXml(content1);
                        cell.LoadTemplate(x1.GetXmlDoc());
                        cell.Redraw();
                     }
                     content = x.GetXml();
                     content = content.replace("[空]","&nbsp",0);
                     content = content.replace(L"[空]",L"&nbsp",0);
                     ole_print.LoadHtml(content);
                  }
               }else
               {
                  ole_print.LoadHtml("<html><body>未找到对应的文档</body></html>");
                  //cell.LoadHtml("<html><body>未找到对应的文档</body></html>");
                  ole_print.LoadHtml(L"<html><body>未找到对应的文档</body></html>");
                  //cell.LoadHtml(L"<html><body>未找到对应的文档</body></html>");
               }
            }
            else
            {
               string templateName = arg.GetArgString("template-name");
               string templateName = arg.GetArgString(L"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 = "";
               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_DocumentID = L"";
               OnHtml(arg);
            }
         }
@@ -786,46 +786,46 @@
         
   int SetAgent()
   {   
      string xfNodeAgentArea  = "agentarea";
      string xfNodeAgentArea  = L"agentarea";
      xnode anode = GetAgentNode(xfNodeAgentArea);
      msxml::IXMLDOMElement xframeElement =  GetElement();
      msxml::IXMLDOMNode agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
      msxml::IXMLDOMNode agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
      msxml::IXMLDOMNodeList nlist;
      int  index;
      int  nlen;
      msxml::IXMLDOMElement ele;
      string tools="<hbox class=''>";
      string tools=L"<hbox class=''>";
      if(agent)
      {
         nlist = agent.SelectNodes(".//xtoolbutton");
         nlist = agent.SelectNodes(L".//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 name = ele.selectSingleNode(L"@name").text;
            string label  =  ele.selectSingleNode(L"@caption").text;
            string image;
            string src = "";
            if(ele.selectSingleNode("@image"))
               image = ele.selectSingleNode("@image").text;
            string src = L"";
            if(ele.selectSingleNode(L"@image"))
               image = ele.selectSingleNode(L"@image").text;
            else
               image = "0 22";
               image = L"0 22";
            
            if(ele.selectSingleNode("@src"))
               src = ele.selectSingleNode("@src").text;
            if(ele.selectSingleNode(L"@src"))
               src = ele.selectSingleNode(L"@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'/>";
            if (src != L"")
               tool = L"<xtoolbutton src='"+src+L"'  caption='"+label+L"' name='"+name+L"' height='28'  class1='action'/>";
            else
               tool = "<xtoolbutton image='"+image+"'  caption='"+label+"' name='"+name+"' height='28'  class1='action'/>";
               tool = L"<xtoolbutton image='"+image+L"'  caption='"+label+L"' name='"+name+L"' height='28'  class1='action'/>";
            tools += tool;
         }
      }
      tools +="</hbox>";
      tools +=L"</hbox>";
      SetAgentNodeContent(anode, tools);
      return 1;
   }
@@ -843,15 +843,15 @@
      editing = !editing;
      if(editing)
      {
         SwitchLayer("cellview","viewclient");
         SwitchLayer(L"cellview",L"viewclient");
      }else
      {
         htmlStr = cell.GetHtml();
         //string content = htmlStr;
         htmlStr = htmlStr.replace("[空]","&nbsp;",0);
         htmlStr = htmlStr.replace("[line]","<br/>",0);
         htmlStr = htmlStr.replace(L"[空]",L"&nbsp;",0);
         htmlStr = htmlStr.replace(L"[line]",L"<br/>",0);
         ole_print.LoadHtml(htmlStr);   
         SwitchLayer("oleview","viewclient");
         SwitchLayer(L"oleview",L"viewclient");
      }      
      return 1;
   }
@@ -871,7 +871,7 @@
      //ole_print.GetHtmlDocument();
      //return 1;
      _mshtml::IHTMLDocument3 doc = ole_print.GetHtmlDocument();
      _mshtml::IHTMLElementCollection rows = doc.getElementsByTagName("tr");
      _mshtml::IHTMLElementCollection rows = doc.getElementsByTagName(L"tr");
      
      int len = rows.length;
      for(int i=0; i < len - 1;i++)
@@ -879,8 +879,8 @@
         //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.setAttribute(L"height",e1.clientHeight,0);
         e.setAttribute(L"height",300,0);
         e.Release();
         e1.Release();
      }
@@ -889,12 +889,12 @@
      /*
      if(PaperPrint == false)
      {
         ole_print.GetHtmlDocument().body.style.visibility="hidden";
         ole_print.GetHtmlDocument().body.style.visibility=L"hidden";
         PaperPrint = true;
      }
      else
      {
         ole_print.GetHtmlDocument().body.style.visibility="visible";
         ole_print.GetHtmlDocument().body.style.visibility=L"visible";
         PaperPrint = false;
      }
      */
@@ -912,7 +912,7 @@
   }
   int OnPortrait() //纵向
   {
      alert("Portrait");
      alert(L"Portrait");
      return 1;
   }
   int OnLandscape() //横向
@@ -939,48 +939,48 @@
      prestr = prestr.upper();
      
      
      content = content.replace("gb2312","utf-16",0);
      content = content.replace("&nbsp","[空]",0);
      content = content.replace("&","",0);
      content = content.replace(L"gb2312",L"utf-16",0);
      content = content.replace(L"&nbsp",L"[空]",0);
      content = content.replace(L"&",L"",0);
      
      xml x0 = new xml;
      x0.setNativePointer(xml::CreateInstance());
      x0.LoadXml("<Bill/>");
      x0.LoadXml(L"<Bill/>");
      x0.GetXmlDoc().documentElement.text = content;
      content = x0.GetXml();
      int ret= xaserver::UploadData("bill"+prestr, guid+".jpg", content);
      if(ret < 0) trace("error upload");
      int ret= xaserver::UploadData(L"bill"+prestr, guid+L".jpg", content);
      if(ret < 0) trace(L"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>";
      string ls_xml =L"<DocumentList guid='"+guid+L"' update.modify='1' update.new='1'>";
      ls_xml += L"<EntityName>"+ m_EntityName + L"</EntityName>";
      ls_xml += L"<EntityID>"+ m_EntityID + L"</EntityID>";
      ls_xml += L"<EntityNo>"+ m_EntityNo + L"</EntityNo>";
      ls_xml += L"<BillID>"+ billID + L"</BillID>";
      ls_xml += L"<BillName>"+ billName + L"</BillName>";
      ls_xml += L"</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());
      arg.AddArg(L"content",x.GetXml());
      
      if(url::get("/sale/data/DocumentList3/bill/update", arg.GetString(),x)!=1)
      if(url::get(L"/sale/data/DocumentList3/bill/update", arg.GetString(),x)!=1)
      {
         string error = x.GetXmlDoc().text;
         alert("err:"+error);
         alert(L"err:"+error);
         return 1;
      }
      string str = x.GetXmlDoc().documentElement.getAttribute("text");
      if(str == "true")
      string str = x.GetXmlDoc().documentElement.getAttribute(L"text");
      if(str == L"true")
      {
         alert("保存成功!");
         alert(L"保存成功!");
         updated = false;
      }else 
      {
         alert("保存失败!");
         alert(L"保存失败!");
      }
   
      return 1;
@@ -996,131 +996,131 @@
   {
      xaserverarg arg = new xaserverarg;
      arg.setNativePointer(GetParam());
      string templateName = arg.GetArgString("template-name");
      string templateName = arg.GetArgString(L"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 = "";
      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_DocumentID = L"";
      return 1;
   }
      
   int OnCmdDispatch(string comdid)
   {
      if(comdid=="xmSort")
      if(comdid==L"xmSort")
      {
         OpenWindow("dev:xpage[DataSort.dialog.vx]",cast(m_dataset as int));
         OpenWindow(L"dev:xpage[DataSort.dialog.vx]",cast(m_dataset as int));
         return 1;
      }
      if(comdid=="print:PrintImmediate")
      if(comdid==L"print:PrintImmediate")
      {
         updated = true;
         return OnPrint();
      }
      if(comdid=="print:PrintPaper") {
      if(comdid==L"print:PrintPaper") {
         updated = true;
         return PrintPaper();
      }
      if(comdid=="print:PrintPreview") {
      if(comdid==L"print:PrintPreview") {
         updated = true;
         return OnPrintPreview();
      }
      if(comdid=="print:Portrait") {
      if(comdid==L"print:Portrait") {
         updated = true;
         return OnPortrait();
      }
      if(comdid=="print:Landscape") {
      if(comdid==L"print:Landscape") {
         updated = true;
         return OnLandscape();
      }
      if(comdid=="print:PageSetup") {
      if(comdid==L"print:PageSetup") {
         updated = true;
         return OnPageSetup();
      }
      if(comdid=="print:Custom") {
      if(comdid==L"print:Custom") {
         updated = true;
         return OnCustom();
      }
      if(comdid=="print:PrintDialog")
      if(comdid==L"print:PrintDialog")
      {   
         if(updated)
         {
            int res = win32::MessageBox(this.GetHWND(), "单据已制作,是否保存?","提示",4);
            if(res == 6)OnCmdDispatch("print:AddToDocumentList");
            int res = win32::MessageBox(this.GetHWND(), L"单据已制作,是否保存?",L"提示",4);
            if(res == 6)OnCmdDispatch(L"print:AddToDocumentList");
         }
         if(GetParam())
         {
            xaserverarg arg1 = new xaserverarg;
            arg1.setNativePointer(GetParam());      
            arg1.AddArg("action","new");
            arg1.AddArg(L"action",L"new");
            OnPrintDialog();
            arg1.AddArg("action","");
            arg1.AddArg(L"action",L"");
         }
         return 1;
      }
      if(comdid.find("print:toExcel",0)>=0) {
      if(comdid.find(L"print:toExcel",0)>=0) {
         updated = true;
         return OntoExcel();
      }
      if(comdid.find("print:Export",0)>=0) {
      if(comdid.find(L"print:Export",0)>=0) {
         updated = true;
         return OnExport();
      }
      if(comdid.find("print:SaveAs",0)>=0) return OnSaveAs();
      if(comdid.find("print:Edit",0)>=0) {
      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("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.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) == "xmSort")
      if(comdid.left(3) == L"xmSort")
      {
         //string str = 
         return 1;
      }
      
      if(comdid.left(3) == "IK_")
      if(comdid.left(3) == L"IK_")
      {
         string cmd = comdid.mid(3, comdid.length());
         SendCtrlCmd(cell,cmd);
         return 1;
      }
      if(comdid=="print:MaintTemplate")
      if(comdid==L"print:MaintTemplate")
      {
         OpenWindow("dev:xpage[Maint.Template.Print.vx]");
         OpenWindow(L"dev:xpage[Maint.Template.Print.vx]");
         return 1;
      }
      if(comdid == "print:RefreshData"){
      if(comdid == L"print:RefreshData"){
         return OnRefreshData();
      }
      
      if(comdid == "xxx")
      if(comdid == L"xxx")
      {
         ole_print.ExecWB(27,0);
         return 1;
            alert("xxx");
            alert(L"xxx");
               xml x1 = new xml;
         x1.setNativePointer(xml::CreateInstance());
         xaserver::ExecXQuery(GetServerUrl(), "[xsl.getdevobj.xq]","<args/>",x1);
         xaserver::ExecXQuery(GetServerUrl(), L"[xsl.getdevobj.xq]",L"<args/>",x1);
      }
      
      if(comdid == "xxx")
      if(comdid == L"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)
         arg.AddArg(L"strHtml",m_strHtml);
         if (url::get(L"/sale/data/SysPrintTemplate/WebBrowser",arg.GetString(),x) != 1)
         {
            alert("数据集出错了!");
            alert(L"数据集出错了!");
            return 0;
         }
         string strHtml = x.GetXml();
@@ -1136,9 +1136,9 @@
      
   int OnAttachEvent()
   {
      AttachEvent("WM_XCOMMAND",OnXCommand);
      AttachEvent("WM_SETFOCUS",OnSetFocus);
      //AttachEvent("WM_CLOSE",OnCloseOwnerWindow);
      AttachEvent(L"WM_XCOMMAND",OnXCommand);
      AttachEvent(L"WM_SETFOCUS",OnSetFocus);
      //AttachEvent(L"WM_CLOSE",OnCloseOwnerWindow);
      
      return 0;
   }
@@ -1156,10 +1156,10 @@
      int IDYES = 6;
      int IDNO = 7;
      int IDCANCEL  = 2;
      int re = win32::MessageBox(this.GetHWND(), "单据已制作,是否保存?","提示:",MB_YESNOCANCEL);
      int re = win32::MessageBox(this.GetHWND(), L"单据已制作,是否保存?",L"提示:",MB_YESNOCANCEL);
      if(re==IDCANCEL) return -1;
      if(re==IDNO) return 1;
      OnCmdDispatch("print:AddToDocumentList");
      OnCmdDispatch(L"print:AddToDocumentList");
      return -1;
   }
         
@@ -1167,18 +1167,18 @@
   {
      OnAttachEvent();
      AttachCloseWindow();
      ole_print = GetControl("ole_print");
      cell = GetControl("xcell");
      ole_print = GetControl(L"ole_print");
      cell = GetControl(L"xcell");
      
      //showgrid = false;
      editing = false;
      SetAgent();
      
      m_dataset = 0;
      billName = "";
      billID = "";
      billPre = "";
      m_DocumentID = "";
      billName = L"";
      billID = L"";
      billPre = L"";
      m_DocumentID = L"";
      PaperPrint = false;
      
      return 1;
@@ -1191,8 +1191,8 @@
      {
         xaserverarg arg = new xaserverarg;
         arg.setNativePointer(GetParam());
         string templateName = arg.GetArgString("template-name");
         if(templateName =="")
         string templateName = arg.GetArgString(L"template-name");
         if(templateName ==L"")
         {
            OnPrintDialog();
         }
@@ -1202,12 +1202,12 @@
            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 = "";
            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_DocumentID = L"";
         }
      }else
         OnPrintDialog();