From a4d2315ee4ca3f6177b4fb2526bed2feff3d89be Mon Sep 17 00:00:00 2001
From: lifan <2308045698@qq.com>
Date: 星期三, 22 十月 2025 16:52:58 +0800
Subject: [PATCH] update
---
jrj/project/printview/Template.Print.ViewEx.cpp | 561 ++++++++++++++++++++++++++-----------------------------
1 files changed, 267 insertions(+), 294 deletions(-)
diff --git a/jrj/project/printview/Template.Print.ViewEx.cpp b/jrj/project/printview/Template.Print.ViewEx.cpp
index 04de185..a02da40 100644
--- a/jrj/project/printview/Template.Print.ViewEx.cpp
+++ b/jrj/project/printview/Template.Print.ViewEx.cpp
@@ -1,13 +1,31 @@
+
+#include <guiddef.h>
+#include <exdisp.h> // Defines of stuff like IWebBrowser2. This is an include file with Visual C 6 and above
+#include <mshtml.h> // Defines of stuff like IHTMLDocument2. This is an include file with Visual C 6 and above
+#include <mshtmhst.h> // Defines of stuff like IDocHostUIHandler. This is an include file with Visual C 6 and above
+#include <Shlwapi.h>
+#include <Windows.h>
+#include <comutil.h>
+
+#undef _XWIN
+
#include <wobject/xstring.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xdwgrid.hpp>
#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xhtml.hpp>
+#include <wobject/xutil.hpp>
#include "vbusiness/vframe/maint.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
+#include <xcontrol/xcell.hpp>
+#include <xcontrol/xexcel.hpp>
+#include <xcontrol/xhtml.hpp>
+#include <win32/xfile.hpp>
using xml = KXMLDOMDocument;
+#if 0
namespace _excel for ole "Excel.Application,{00020813-0000-0000-C000-000000000046}";
namespace _mshtml for ole "MSHtml,{3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}";
@@ -22,46 +40,15 @@
void SaveToFile(xstring filename) alias "?SaveToFile@CExcelApplication@@QAEXQA_W@Z";
void Quit() alias "?Quit@CExcelApplication@@QAEXXZ";
};
-
-struct MYOPENFILENAMEW
-{
- unsigned int lStructSize;
- unsigned int hwndOwner;
- unsigned int hInstance;
- xstring lpstrFilter;
-
- xstring lpstrCustomFilter;
- unsigned int nMaxCustFilter;
- unsigned int nFilterIndex;
- xstring lpstrFile;
-
- unsigned int nMaxFile;
- xstring lpstrFileTitle;
- unsigned int nMaxFileTitle;
- xstring lpstrInitialDir;
-
- xstring lpstrTitle;
- unsigned int Flags;
- unsigned short nFileOffset;
- unsigned short nFileExtension;
- xstring lpstrDefExt;
-
- unsigned int lCustData;
- unsigned int lpfnHook;
- xstring lpTemplateName;
-
- //_WIN32_WINNT >= 0x0500
- unsigned int pvReserved;
- unsigned int dwReserved;
- unsigned int FlagsEx;
- // (_WIN32_WINNT >= 0x0500)
-};
+#endif
-class __declspec(dllexport) TemplatePrintViewEx : public xframe
+DeclWinObject_(TemplatePrintViewEx, xframe)
{
+ CreateWinObject_(TemplatePrintViewEx, xframe)
public:
- xole ole_print;
+ xhtml ole_print;
xcell cell;
+ xstring m_SupplierName;
xstring m_EntityName;
xstring m_EntityID;
xstring m_EntityNo;
@@ -70,7 +57,6 @@
bool updated;
xstring htmlStr;
- cexcel excel;
bool editing;
xstring billName ;
@@ -82,49 +68,24 @@
//bool showgrid;
bool PaperPrint;
+#if 0
+ cexcel excel;
static stdcall int GetModuleFileName(int hModule ,xstring lpFileName ,int nSize ) native from "kernel32.dll" alias "GetModuleFileNameW";
static stdcall int PathRemoveFileSpec(xstring lpFileName ) native from "shlwapi.dll" alias "PathRemoveFileSpecW";
static stdcall int DeleteFile(xstring lpFileName) native from "kernel32.dll" alias "DeleteFileW";
static stdcall bool GetSaveFileName(ref MYOPENFILENAMEW)native from "comdlg32.dll" alias "GetSaveFileNameW";
+#endif
-public:
- TemplatePrintViewEx(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
-public:
- static TemplatePrintViewEx* CreateInstance(void* implPtr, void* hWnd)
+
+ xstring GetMySaveFileName(xstring initFileName, xstring filter, xstring ext)
{
- TemplatePrintViewEx* pWin = new TemplatePrintViewEx(implPtr, (HWND)hWnd);
- return pWin;
- }
- xstring GetModulePath()
- {
- xstring str =L"";
- str = str.space(255);
- GetModuleFileName(0,str,250);
- PathRemoveFileSpec(str);
- return str;
- }
- xstring GetModuleTmpPath()
- {
- xstring str =L"";
- str = str.space(255);
- GetModuleFileName(0,str,250);
- PathRemoveFileSpec(str);
- xstring tmp = str + L"\\Temp";
- xaserver::CreateDirectory(tmp);
- return tmp;
- }
-
- xstring GetSaveFileName(xstring initFileName, xstring filter, xstring ext)
- {
- char[] szFileName = new char[255] ;
- char[] szPath = new char[255];
- szFileName[0] = 0;
- szPath[0] = 0;
+ wchar_t szFileName[255] = { 0 };
+ wchar_t szPath[255] = { 0 };
if(initFileName !=L"")
{
int len = initFileName.length();
- char[] tmp = initFileName;
+ const wchar_t* tmp = initFileName;
for(int i=0; i<len+1;i++)
{
//szFileName[i] = tmp[i];
@@ -133,10 +94,11 @@
}
int nFilterIndex = 1;
- ref MYOPENFILENAMEW ofn = new MYOPENFILENAMEW;
-
- ofn.lStructSize = 88;//sizeof(ofn);
- ofn.hwndOwner = 0;
+ OPENFILENAMEW ofn = { 0 };
+ //::ZeroMemory(&ofn,sizeof(OPENFILENAMEW))
+ //ofn.lStructSize = 88;//sizeof(ofn);
+ ofn.lStructSize = sizeof(ofn);
+ ofn.hwndOwner = GetHWND();
ofn.hInstance = 0;
ofn.lpstrFilter = filter;
//"JPEG 文件(*.jpg)\0*.jpg;*.jpeg;*.png;*.gif;*.bmp\0全部文件(*.*)\0*.*\0";
@@ -157,14 +119,13 @@
ofn.lpTemplateName = 0;
//debugbreak();
- if(GetSaveFileName(ofn))
+ if(xfile::GetSaveFileNameW(ofn))
{
- delete ofn;
return szPath;
}
else
{
- return "";
+ return L"";
}
}
@@ -177,22 +138,21 @@
if(m_EntityName==L"SaleOrder") pre=L"PI";
if(m_EntityName==L"GDN3")pre=L"INV";
}
- xstring file1 = GetSaveFileName(pre+m_EntityNo+L".xlsx",
- "Excel1文件(*.xlsx)\0*.xlsx;*.xls\0Excel97文件(*.xls)\0*.xls\0PDF文件(*.pdf)\0*.pdf\0",
- "xlsx");
+ if (m_EntityName == L"VATNotify")m_EntityNo = m_EntityNo + m_SupplierName;
+ xstring file1 = GetMySaveFileName(pre+m_EntityNo+L".xlsx",
+ L"Excel1文件(*.xlsx)\0*.xlsx;*.xls\0Excel97文件(*.xls)\0*.xls\0PDF文件(*.pdf)\0*.pdf\0",
+ L"xlsx");
if(file1 ==L"") return 1;
-
- if(win32::PathFileExists(file1))
+ //alert(file1);
+ if(PathFileExists(file1))
{
- int res = win32::MessageBox(this.GetHWND(), L"文件已经存在,是否覆盖?",L"提示",4);
+ int res = MessageBox(GetHWND(), L"文件已经存在,是否覆盖?",L"提示",4);
if(res != 6) return 1;
}
trace(L"\r\n link excel");
- excel = new cexcel;
- int hexcel = cexcel::CreateInstance();
- excel.setNativePointer(hexcel);
- if(hexcel == 0)
+ xexcel excel;
+ if(!excel.GetNativePtr())
{
alert(L"不能连接Excel");
return 1;
@@ -200,64 +160,62 @@
xstring gid = publiccode::GetGuid();
xstring filename= pre+m_EntityNo+L"_.htm";
- xutil::SaveToFile(GetModuleTmpPath() + L"\\"+ filename, htmlStr,L"",L"",L"");
+ xutil::SaveToFile(xutil::GetModuleTmpPath() + L"\\"+ filename, htmlStr,NULL,NULL);
trace(L"\r\n excel to open");
- excel .OpenDocument(GetModuleTmpPath() + L"\\"+ filename);
+ excel .OpenDocument(xutil::GetModuleTmpPath() + L"\\"+ filename);
trace(L"\r\n trans shape");
//excel .put_Visible(true);
excel.TransShape();
trace(L"\r\n save to tmp excel file");
if(file1.find(L".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");
+ if(PathFileExists(xutil::GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls"))
+ DeleteFile(xutil::GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls");
+ excel.SaveToFile(xutil::GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls");
//alert(GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xls");
}
else
{
- 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");
+ if(PathFileExists(xutil::GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx"))
+ DeleteFile(xutil::GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx");
+ excel.SaveToFile(xutil::GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx");
}
trace(L"\r\n save to excel file");
- if(win32::PathFileExists(file1)) //GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx"))
+ if(PathFileExists(file1)) //GetModuleTmpPath() + L"\\"+ pre+m_EntityNo+L"_.xlsx"))
DeleteFile(file1);
excel.SaveToFile(file1);
excel.Quit();
- excel.Release(excel.ptr_native_);
+ //excel.Release(excel.ptr_native_);
return 1;
}
int OntoExcel() //转为Excel
{
- excel = new cexcel;
- excel.setNativePointer(cexcel::CreateInstance());
-
+ xexcel excel;
xstring gid = publiccode::GetGuid();
xstring pre = m_EntityName;
if(m_EntityName==L"SaleOrder") pre=L"PI";
if(m_EntityName==L"GDN3")pre=L"INV";
xstring filename= pre+m_EntityNo+L".htm";
xstring filenameex= pre+m_EntityNo+L".xlsx";
- xutil::SaveToFile(GetModuleTmpPath() + L"\\"+ filename, htmlStr,L"",L"",L"");
- excel .OpenDocument(GetModuleTmpPath() + L"\\"+ filename);
+ xutil::SaveToFile(xutil::GetModuleTmpPath() + L"\\"+ filename, htmlStr,NULL,NULL);
+ excel .OpenDocument(xutil::GetModuleTmpPath() + L"\\"+ filename);
//excel.put_Visible(true);
excel.TransShape();
- if(win32::PathFileExists(GetModuleTmpPath() + L"\\"+ filenameex))
- DeleteFile(GetModuleTmpPath() + L"\\"+ filenameex);
- excel.SaveToFile(GetModuleTmpPath() + L"\\"+ filenameex);
+ if(PathFileExists(xutil::GetModuleTmpPath() + L"\\"+ filenameex))
+ DeleteFile(xutil::GetModuleTmpPath() + L"\\"+ filenameex);
+ excel.SaveToFile(xutil::GetModuleTmpPath() + L"\\"+ filenameex);
excel.put_Visible(true);
- excel.Release(excel.ptr_native_);
+ //excel.Release(excel.ptr_native_);
return 1;
}
xstring getfilePath()
{
- xstring path=GetModulePath()+L"\\resource\\image";
+ xstring path= xutil::GetModulePath()+L"\\resource\\image";
xstring filename=L"contract.jpg";
filename=L"sign.png";
filename=L"jrj_maersk.png";
@@ -281,7 +239,7 @@
xstring right=L"";
xstring tag=L"";
- len = L"[$element:".length();
+ len = ((xstring)L"[$element:").length();
while(true)
{
pos = str.find(L"[$element:");
@@ -305,7 +263,7 @@
str = pre + str;
pre = L"";
- len = L"[/$element:".length();
+ len = ((xstring)L"[/$element:").length();
while(true)
{
pos = str.find(L"[/$element:");
@@ -336,16 +294,16 @@
str = replaceInnerElement(str);
return str;
}
-
+#if 0
xstring DownLoadSKUNoPic(xstring SKUNo,xstring CustomerID=L"",xstring CustomerItemNo=L"")
{
if(SKUNo.length()>20) return DownLoadPaperPic(SKUNo);
- xml x = new xml;
- x.setNativePointer(xml::CreateInstance());
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(arg.CreateInstance());
+ xml x;
+
+ xaserverarg arg;
+
arg.AddArg(L"SKUNo",SKUNo);
xstring src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
@@ -356,49 +314,47 @@
src =L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo";
}
//trace(L"SKUNo=L"+SKUNo);//要有展示图片查询条件内必定要skuno
- if(url::get(src,arg.GetString(),x)!=1)
+ if(xurl::get(src,arg.GetString(),x)!=1)
{
trace(L"error for download skuno pic!");
- return "";
+ return L"";
}
xstring spath = L"";
- xstring path =GetModuleTmpPath();
+ xstring path = xutil::GetModuleTmpPath();
xstring ext = L"jpg";
- if(x.GetXmlDoc().selectSingleNode(L"//FileExt[1]"))
+ if(x.selectSingleNode(L"//FileExt[1]"))
{
- ext = x.GetXmlDoc().selectSingleNode(L"//FileExt[1]").text;
+ ext = x.selectSingleNode(L"//FileExt[1]").text();
}else if(CustomerID !=L"")
{
src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
- if(url::get(src,arg.GetString(),x)!=1)
+ if(xurl::get(src,arg.GetString(),x)!=1)
{
trace(L"error for download skuno pic!");
- return "";
+ return L"";
}
- if(x.GetXmlDoc().selectSingleNode(L"//FileExt[1]"))
- ext = x.GetXmlDoc().selectSingleNode(L"//FileExt[1]").text;
+ if(x.selectSingleNode(L"//FileExt[1]"))
+ ext = x.selectSingleNode(L"//FileExt[1]").text();
}
xstring filename = SKUNo + L"." + ext;
- if(x.GetXmlDoc().selectSingleNode(L"//PicPath[1]"))
- spath = x.GetXmlDoc().selectSingleNode(L"//PicPath[1]").text;
+ if(x.selectSingleNode(L"//PicPath[1]"))
+ spath = x.selectSingleNode(L"//PicPath[1]").text();
if(spath != L"")
{
xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
}
- return "file://"+ path+L"/"+filename;
+ return (xstring)L"file://"+ path+L"/"+filename;
}
-
+#endif
xstring DownLoadSKUNoPic(xstring SKUNo,xstring CustomerID=L"",xstring CustomerItemNo=L"")
{
if(SKUNo.length()>20) return DownLoadPaperPic(SKUNo);
- xml x = new xml;
- x.setNativePointer(xml::CreateInstance());
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(arg.CreateInstance());
+ xml x;
+ xaserverarg arg;
arg.AddArg(L"SKUNo",SKUNo);
xstring src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
@@ -409,99 +365,96 @@
src =L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKUNo";
}
//trace(L"SKUNo=L"+SKUNo);//要有展示图片查询条件内必定要skuno
- if(url::get(src,arg.GetString(),x)!=1)
+ if(xurl::get(src,arg.GetString(),x)!=1)
{
trace(L"error for download skuno pic!");
- return "";
+ return L"";
}
xstring spath = L"";
- xstring path =GetModuleTmpPath();
+ xstring path = xutil::GetModuleTmpPath();
xstring ext = L"jpg";
- if(x.GetXmlDoc().selectSingleNode(L"//FileExt[1]"))
+ if(x.selectSingleNode(L"//FileExt[1]"))
{
- ext = x.GetXmlDoc().selectSingleNode(L"//FileExt[1]").text;
+ ext = x.selectSingleNode(L"//FileExt[1]").text();
}else if(CustomerID !=L"")
{
src =L"/sale/data/ProductLibrary3/pref/picture/imagelistSKUNo";
- if(url::get(src,arg.GetString(),x)!=1)
+ if(xurl::get(src,arg.GetString(),x)!=1)
{
trace(L"error for download skuno pic!");
- return "";
+ return L"";
}
- if(x.GetXmlDoc().selectSingleNode(L"//FileExt[1]"))
- ext = x.GetXmlDoc().selectSingleNode(L"//FileExt[1]").text;
+ if(x.selectSingleNode(L"//FileExt[1]"))
+ ext = x.selectSingleNode(L"//FileExt[1]").text();
}
xstring filename = SKUNo + L"." + ext;
- if(x.GetXmlDoc().selectSingleNode(L"//PicPath[1]"))
- spath = x.GetXmlDoc().selectSingleNode(L"//PicPath[1]").text;
+ if(x.selectSingleNode(L"//PicPath[1]"))
+ spath = x.selectSingleNode(L"//PicPath[1]").text();
if(spath != L"")
{
xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
}
- return "file://"+ path+L"/"+filename;
+ return L"file://"+ path+L"/"+filename;
}
xstring GetImageUrl(xstring id)
{
- xml xp=new xml;
- xp.setNativePointer(xml::CreateInstance());
- xaserverarg arg_pic=new xaserverarg;
- arg_pic.setNativePointer(arg_pic.CreateInstance());
+ xml xp;
+ xaserverarg arg_pic;
arg_pic.AddArg(L"id",id);
xstring res = L"/sale/data/productlibrary3/image/url";
- if(url::get(res,arg_pic.GetString(),xp)!=1)
+ if(xurl::get(res,arg_pic.GetString(),xp)!=1)
{
- xp.GetXml();
+ xp.xml();
return 1;
}else
{
- xstring path = xp.GetXmlDoc().text;
+ xstring path = xp.text();
if(path !=L"") return path;
}
- return "/business/products/chanpin/"+id.left(2)+L"/"+ id+L".jpg";
+ return L"/business/products/chanpin/"+id.left(2)+L"/"+ id+L".jpg";
}
xstring DownLoadPaperPic(xstring guid)
{
-
- xstring path =GetModuleTmpPath();
+ xstring path = xutil::GetModuleTmpPath();
xstring ext = L"jpg";
xstring filename = guid + L"." + ext;
xstring spath = GetImageUrl(guid);
//alert(spath);
xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
- return "file://"+ path+L"/"+filename;
+ return (xstring)L"file://"+ path+L"/"+filename;
}
xstring DownLoadPaperPic1(xstring guid)
{
- xstring path =GetModuleTmpPath();
+ xstring path = xutil::GetModuleTmpPath();
xstring ext = L"jpg";
xstring filename = guid + L"." + ext;
xstring str = guid.mid(0,2);
xstring spath = L"/business/products/chanpin/"+str+L"/"+guid+L".jpg";
xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
- return "file://"+ path+L"/"+filename;
+ return (xstring)L"file://"+ path+L"/"+filename;
}
xstring DownLoadUrlPic(xstring src)
{
xstring guid = publiccode::GetGuid();
- xstring path =GetModuleTmpPath();
+ xstring path = xutil::GetModuleTmpPath();
xstring ext = L"jpg";
xstring filename = guid + L"." + ext;
xstring spath = src;
xaserver::DownLoadFile(GetServerUrl(),spath,L"",path+L"/"+filename);
- return "file://"+ path+L"/"+filename;
+ return (xstring)L"file://"+ path+L"/"+filename;
}
int OnHtml(xaserverarg arg)
{
- int hCursor = xutil::SetCursorWait();
+ HCURSOR hCursor = xutil::SetCursorWait();
xstring sEntityName = arg.GetArgString(L"EntityName");
xstring sEntityID = arg.GetArgString(L"EntityID");
@@ -512,14 +465,13 @@
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)
+ xml x0 ;
+ if (xurl::get(dataUrl,arg.GetString(),x0) != 1)
{
alert(L"数据集出错了!");
return 0;
}
- trace(x0.GetXml());
+ trace(x0.xml());
m_dataset = x0;
}
@@ -528,23 +480,22 @@
arg.AddArg(L"sPath",sPath);
m_spath = sPath;
- xml xsl = new xml;
- xsl.setNativePointer(xml::CreateInstance());
- if (url::get(L"/sale/data/SysPrintTemplate/getxsl",arg.GetString(),xsl) != 1)
+ xml xsl;
+ if (xurl::get(L"/sale/data/SysPrintTemplate/getxsl", arg.GetString(), xsl) != 1)
{
alert(L"数据模板错误!");
return 0;
}
- xstring xslStr = xsl.GetXml();
+ xstring xslStr = xsl.xml();
xslStr = adjustXsl(xslStr,sPath);
- xsl.LoadXml(xslStr);
+ xsl.loadXML(xslStr);
//trace(m_dataset.GetXml());
trace(L"\r\n--------\r\n"+xslStr);
- m_strHtml = m_dataset.GetXmlDoc().transformNode(xsl.GetXmlDoc());
+ m_strHtml = m_dataset.transformNode(xsl);
xstring aspace = m_strHtml.replace(L"[空]",L" ",0);
aspace = aspace.replace(L"[line]",L"<br/>",0);
xstring scontent = aspace.replace(L"<?xml version=\"1.0\"?>",L"",0);
@@ -555,20 +506,20 @@
int pos = tail.find(L"src=\"item-picture:");
while(pos > 0)
{
- int spos = pos+L"src=\"item-picture:".length();
+ int spos = pos+((xstring)L"src=\"item-picture:").length();
int pos1 = tail.find(L"\"",spos+1);
xstring skuno = tail.mid(spos,pos1 - spos ).trim();
xstring CustomerID=L"";
xstring CustomerItemNo=L"";
- if(skuno.find(L",L")>0)
+ if(skuno.find(L",")>0)
{
- CustomerID = skuno.left(skuno.find(L",L")).trim();
- skuno = skuno.mid(skuno.find(L",L")+1,256).trim();
+ CustomerID = skuno.left(skuno.find(L",")).trim();
+ skuno = skuno.mid(skuno.find(L",")+1,256).trim();
}
- if(skuno.find(L",L")>0)
+ if(skuno.find(L",")>0)
{
- CustomerItemNo = skuno.left(skuno.find(L",L")).trim();
- skuno = skuno.mid(skuno.find(L",L")+1,256).trim();
+ CustomerItemNo = skuno.left(skuno.find(L",")).trim();
+ skuno = skuno.mid(skuno.find(L",")+1,256).trim();
}
xstring src = DownLoadSKUNoPic(skuno,CustomerID,CustomerItemNo);
head += tail.left(pos) + L"src=\"" + src;
@@ -582,7 +533,7 @@
int position = tail.find(L"src=\"paper-picture:");
while(position > 0)
{
- int sposition = position+L"src=\"paper-picture:".length();
+ int sposition = position+ ((xstring)L"src=\"paper-picture:").length();
int position1 = tail.find(L"\"",sposition+1);
xstring guid = tail.mid(sposition,position1 - sposition ).trim();
xstring src2 = DownLoadPaperPic(guid);
@@ -597,10 +548,10 @@
position = tail.find(L"src=\"src-picture:");
while(position > 0)
{
- sposition = position+L"src=\"src-picture:".length();
- position1 = tail.find(L"\"",sposition+1);
- guid = tail.mid(sposition,position1 - sposition ).trim();
- src2 = DownLoadUrlPic(guid);
+ int sposition = position+((xstring)L"src=\"src-picture:").length();
+ int position1 = tail.find(L"\"",sposition+1);
+ xstring guid = tail.mid(sposition,position1 - sposition ).trim();
+ xstring src2 = DownLoadUrlPic(guid);
head += tail.left(position) + L"src=\"" + src2;
tail = tail.mid(position1,999999999);
position = tail.find(L"src=\"src-picture:");
@@ -611,8 +562,7 @@
htmlStr = scontent;
ole_print.LoadHtml(scontent);
- xml x1 = new xml;
- x1.setNativePointer(xml ::CreateInstance());
+ xml x1;
//xstring xcontent = m_strHtml.replace(L" ",L"[空]",0);
xstring xcontent = m_strHtml.replace(L"[空]",L" ",0);
int pos0 = xcontent.find(L"<xml");
@@ -622,15 +572,15 @@
xstring str = xcontent.left(pos0)+ xcontent.mid(pos2+6,9999999);
xcontent = str;
}
- x1.LoadXml(xcontent);
- if(x1.GetXmlDoc())
+ x1.loadXML(xcontent);
+ if(x1)
{
/*if(!showgrid)
{
SendCtrlCmd(cell,L"xmFormatShowGrid");
showgrid = true;
}*/
- cell.LoadTemplate(x1.GetXmlDoc());
+ cell.LoadTemplate(x1);
cell.Redraw();
}
@@ -641,40 +591,61 @@
int updateHtml()
{
- _mshtml::IHTMLDocument3 doc = ole_print.GetHtmlDocument();
- _mshtml::IHTMLElementCollection rows = doc.getElementsByTagName(L"tr");
- _mshtml::IHTMLElementCollection rows2 = doc.getElementsByTagName(L"td");
- int len = rows.length;
- int len2 = rows2.length;
+ return 1;
+ IHTMLDocument3* doc = (IHTMLDocument3 * )ole_print.GetHtmlDocument();
+ IHTMLElementCollection* rows = NULL;
+ IHTMLElementCollection* rows2 = NULL;
+ doc->getElementsByTagName((BSTR)L"tr",&rows);
+ doc->getElementsByTagName((BSTR)L"td",&rows2);
+ long len;
+ rows->get_length(&len);
+ long len2;
+ rows2->get_length(&len2);
for(int i=0; i < len - 1;i++)
{
- _mshtml::IHTMLElement e = rows.item(i,i);
- e.style.setAttribute(L"height",e.offsetHeight,0);
- e.Release();
+ _variant_t var;
+ IHTMLElement* e=0;
+ IHTMLStyle* pstyle=0;
+ long offsetHeight=0;
+ rows->item((_variant_t)i, (_variant_t)i,(IDispatch**) & e);
+ e->get_style(&pstyle);
+ e->get_offsetHeight(&offsetHeight);
+ pstyle->setAttribute((BSTR)L"height",(_variant_t)offsetHeight, 0);
+ e->Release();
+ pstyle->Release();
}
- for( i=0; i < len2 - 1;i++)
+ for( int i=0; i < len2 - 1;i++)
{
- _mshtml::IHTMLElement e2 = rows2.item(i,i);
- e2.style.setAttribute(L"width",e.offsetWidth,0);
- e2.Release();
+ IHTMLElement* e = 0;
+ IHTMLStyle* pstyle = 0;
+ long offsetWidth=0;
+ rows->item((_variant_t)i, (_variant_t)i, (IDispatch**)&e);
+ e->get_style(&pstyle);
+ e->get_offsetHeight(&offsetWidth);
+ pstyle->setAttribute((BSTR)L"width", (_variant_t)offsetWidth, 0);
+ e->Release();
+ pstyle->Release();
}
- rows.Release();
- doc.release();
- htmlStr = doc.documentElement.outerHtml;
+ rows->Release();
+ doc->Release();
+
+ //IHTMLElement* e = 0;
+ //doc->get_documentElement(&e);
+ //BSTR bstrHtml=0;
+ //e->get_outerHTML(&bstrHtml);
+
return 1;
}
int OnOpenDocument()
{
- if(GetParam())
+ if(GetWinParam())
{
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(GetParam());
- int p = arg.ptr_native_;
+ xaserverarg arg=GetArg();
arg.AddArg(L"action",L"open");
arg.AddArg(L"DocumentID",L"");
arg.AddArg(L"ok",L"");
- openUrl(L"/sale/view/view.dlg/xpage/Template/PrintDialog", p);
+ openUrl(L"/sale/view/view.dlg/xpage/Template/PrintDialog", &arg);
xstring ret = arg.GetArgString(L"return");
xstring action = arg.GetArgString(L"action");
if (ret ==L"ok")
@@ -682,24 +653,24 @@
if(action ==L"open")
{
m_DocumentID = arg.GetArgString(L"DocumentID");
- xml x = new xml;
- x.setNativePointer(xml::CreateInstance());
+ xml x;
+
xstring prestr = m_DocumentID.mid(0,2);
- prestr = prestr.upper();
+ prestr = prestr.toUpper();
xaserver::LoadUrl(GetServerUrl(),L"/business/data/bill/"+prestr+L"/"+ m_DocumentID+L".jpg",L"",x);
- if(x.GetXml()!=L"")
+ if((xstring)x.xml()!=L"")
{
- if(x.GetXmlDoc())
+ if(x)
{
/*if(!showgrid)
{
SendCtrlCmd(cell,L"xmFormatShowGrid");
showgrid = true;
}*/
- cell.LoadTemplate(x.GetXmlDoc());
+ cell.LoadTemplate(x);
cell.Redraw();
}
- ole_print.LoadHtml(x.GetXml());
+ ole_print.LoadHtml(x.xml());
}else
{
ole_print.LoadHtml(L"<html><body>未找到对应的文档</body></html>");
@@ -709,13 +680,14 @@
else
{
xstring templateName = arg.GetArgString(L"template-name");
- win32::SetWindowText(GetHWND(),templateName);
+ SetWindowText(GetHWND(),templateName);
billName = templateName;
billPre = arg.GetArgString(L"template-pre");
billID = arg.GetArgString(L"template-guid");
m_EntityID = arg.GetArgString(L"EntityID");
m_EntityNo = arg.GetArgString(L"EntityNo");
m_EntityName = arg.GetArgString(L"EntityName");
+ m_SupplierName = arg.GetArgString(L"SupplierName");
m_DocumentID = L"";
OnHtml(arg);
@@ -728,13 +700,11 @@
int OnPrintDialog()
{
- if(GetParam())
+ if(GetWinParam())
{
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(GetParam());
- int p = arg.ptr_native_;
+ xaserverarg arg=GetArg();
arg.AddArg(L"ok",L"");
- openUrl(L"/sale/view/view.dlg/xpage/Template/PrintDialog", p);
+ openUrl(L"/sale/view/view.dlg/xpage/Template/PrintDialog", &arg);
xstring ret = arg.GetArgString(L"return");
xstring action = arg.GetArgString(L"action");
if (ret ==L"ok")
@@ -743,58 +713,59 @@
if(action ==L"open")
{
m_DocumentID = arg.GetArgString(L"DocumentID");
- xml x = new xml;
- x.setNativePointer(xml::CreateInstance());
+ xml x;
+
xstring prestr = m_DocumentID.mid(0,2);
- prestr = prestr.upper();
+ prestr = prestr.toUpper();
xaserver::LoadUrl(GetServerUrl(),L"/business/data/bill/"+prestr+L"/"+ m_DocumentID+L".jpg",L"",x);
- if(x.GetXml()!=L"")
+ if((xstring)x.xml()!=L"")
{
xstring content = L"";
- if(x.GetXmlDoc().documentElement.tagName==L"Bill")
+ if((xstring)x.documentElement().tagName() == L"Bill")
{
- content = x.GetXmlDoc().documentElement.text;
+ content = x.documentElement().text();
content = content.replace(L"[空]",L" ",0);
- ole_print.LoadHtml(content);
+ ole_print.LoadHtml((LPTSTR)content.c_str());
}else
{
- if(x.GetXmlDoc())
+ if(x)
{
/*if(!showgrid)
{
SendCtrlCmd(cell,L"xmFormatShowGrid");
showgrid = true;
}*/
- xml x1 = new xml;
- x1.setNativePointer(xml::CreateInstance());
- xstring content1 = x.GetXml();
+ xml x1 ;
+
+ xstring content1 = x.xml();
content1 = content1.replace(L"[空]",L" ",0);
//trace(content1);
- x1.LoadXml(content1);
- cell.LoadTemplate(x1.GetXmlDoc());
+ x1.loadXML(content1);
+ cell.LoadTemplate(x1);
cell.Redraw();
}
- content = x.GetXml();
+ content = x.xml();
content = content.replace(L"[空]",L" ",0);
ole_print.LoadHtml(content);
}
}else
{
- ole_print.LoadHtml(L"<html><body>未找到对应的文档</body></html>");
+ ole_print.LoadHtml((LPTSTR)L"<html><body>未找到对应的文档</body></html>");
//cell.LoadHtml(L"<html><body>未找到对应的文档</body></html>");
}
}
else
{
xstring templateName = arg.GetArgString(L"template-name");
- win32::SetWindowText(GetHWND(),templateName);
+ SetWindowText(GetHWND(),templateName);
billName = templateName;
billPre = arg.GetArgString(L"template-pre");
billID = arg.GetArgString(L"template-guid");
m_EntityID = arg.GetArgString(L"EntityID");
m_EntityNo = arg.GetArgString(L"EntityNo");
m_EntityName = arg.GetArgString(L"EntityName");
+ m_SupplierName = arg.GetArgString(L"SupplierName");
m_DocumentID = L"";
OnHtml(arg);
}
@@ -817,22 +788,22 @@
xstring tools=L"<hbox class=''>";
if(agent)
{
- nlist = agent.SelectNodes(L".//xtoolbutton");
- nlen = nlist.length;
+ nlist = agent.selectNodes(L".//xtoolbutton");
+ nlen = nlist.length();
for(index=0;index<nlen;index++)
{
ele = nlist.item(index);
- xstring name = ele.selectSingleNode(L"@name").text;
- xstring label = ele.selectSingleNode(L"@caption").text;
+ xstring name = ele.selectSingleNode(L"@name").text();
+ xstring label = ele.selectSingleNode(L"@caption").text();
xstring image;
xstring src = L"";
if(ele.selectSingleNode(L"@image"))
- image = ele.selectSingleNode(L"@image").text;
+ image = ele.selectSingleNode(L"@image").text();
else
image = L"0 22";
if(ele.selectSingleNode(L"@src"))
- src = ele.selectSingleNode(L"@src").text;
+ src = ele.selectSingleNode(L"@src").text();
int strLen = label.length();
int width = 60 + (strLen - 2) * 10;
@@ -850,7 +821,7 @@
}
//焦点激活处理函数
- int OnSetFocus(ref TNotifyEvent evt,int p)
+ int OnSetFocus(TEvent * evt,int p)
{
//重置工具条
SetAgent();
@@ -887,17 +858,18 @@
}
int PrintPaper() //打印
{
- //ole_print.GetHtmlDocument();
+#ifdef shouldFinish //ole_print.GetHtmlDocument();
//return 1;
- _mshtml::IHTMLDocument3 doc = ole_print.GetHtmlDocument();
- _mshtml::IHTMLElementCollection rows = doc.getElementsByTagName(L"tr");
+ IHTMLDocument3* doc = (IHTMLDocument3 * )ole_print.GetHtmlDocument();
+ IHTMLElementCollection* rows = doc->getElementsByTagName(L"tr");
- int len = rows.length;
+ long len;
+ rows->get_length(&len);
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;
+ IHTMLElement* e = rows->item(i,i);
+ IHTMLElement2* e1 = e;
//e.setAttribute(L"height",e1.clientHeight,0);
e.setAttribute(L"height",300,0);
e.Release();
@@ -905,6 +877,7 @@
}
rows.Release();
doc.Release();
+#endif
/*
if(PaperPrint == false)
{
@@ -955,18 +928,17 @@
xstring guid = publiccode::GetGuid();
xstring prestr = guid.mid(0,2);
- prestr = prestr.upper();
+ prestr = prestr.toUpper();
content = content.replace(L"gb2312",L"utf-16",0);
content = content.replace(L" ",L"[空]",0);
content = content.replace(L"&",L"",0);
- xml x0 = new xml;
- x0.setNativePointer(xml::CreateInstance());
- x0.LoadXml(L"<Bill/>");
- x0.GetXmlDoc().documentElement.text = content;
- content = x0.GetXml();
+ xml x0 ;
+ x0.loadXML(L"<Bill/>");
+ x0.documentElement().settext(content);
+ content = x0.xml();
int ret= xaserver::UploadData(L"bill"+prestr, guid+L".jpg", content);
if(ret < 0) trace(L"error upload");
@@ -979,20 +951,20 @@
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(L"content",x.GetXml());
+ xml x;
- if(url::get(L"/sale/data/DocumentList3/bill/update", arg.GetString(),x)!=1)
+ x.loadXML(ls_xml);
+ xaserverarg arg;
+
+ arg.AddArg(L"content", x.xml());
+
+ if(xurl::get(L"/sale/data/DocumentList3/bill/update", arg.GetString(),x)!=1)
{
- xstring error = x.GetXmlDoc().text;
+ xstring error = x.text();
alert(L"err:"+error);
return 1;
}
- xstring str = x.GetXmlDoc().documentElement.getAttribute(L"text");
+ xstring str = x.documentElement().getAttribute(L"text");
if(str == L"true")
{
alert(L"保存成功!");
@@ -1007,16 +979,15 @@
int SendCtrlCmd(xcontrol xc, xstring cmd)
{
- win32::SendMessage(xc.GetId(),0x401,cmd,0);
+ SendMessage(xc.GetHWND(), 0x401, (WPARAM)cmd.c_str(), 0);
return 1;
}
int OnRefreshData()
{
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(GetParam());
+ xaserverarg arg;
xstring templateName = arg.GetArgString(L"template-name");
- win32::SetWindowText(GetHWND(),templateName);
+ SetWindowText(GetHWND(),templateName);
OnHtml(arg);
billName = templateName;
billPre = arg.GetArgString(L"template-pre");
@@ -1024,6 +995,7 @@
m_EntityID = arg.GetArgString(L"EntityID");
m_EntityNo = arg.GetArgString(L"EntityNo");
m_EntityName = arg.GetArgString(L"EntityName");
+ m_SupplierName = arg.GetArgString(L"SupplierName");
m_DocumentID = L"";
return 1;
}
@@ -1032,7 +1004,7 @@
{
if(comdid==L"xmSort")
{
- OpenWindow(L"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==L"print:PrintImmediate")
@@ -1068,13 +1040,12 @@
{
if(updated)
{
- int res = win32::MessageBox(this.GetHWND(), L"单据已制作,是否保存?",L"提示",4);
+ int res = MessageBox(GetHWND(), L"单据已制作,是否保存?",L"提示",4);
if(res == 6)OnCmdDispatch(L"print:AddToDocumentList");
}
- if(GetParam())
+ if(GetWinParam())
{
- xaserverarg arg1 = new xaserverarg;
- arg1.setNativePointer(GetParam());
+ xaserverarg arg1 = GetArg();
arg1.AddArg(L"action",L"new");
OnPrintDialog();
arg1.AddArg(L"action",L"");
@@ -1125,38 +1096,38 @@
ole_print.ExecWB(27,0);
return 1;
alert(L"xxx");
- xml x1 = new xml;
- x1.setNativePointer(xml::CreateInstance());
+ xml x1 ;
+
xaserver::ExecXQuery(GetServerUrl(), L"[xsl.getdevobj.xq]",L"<args/>",x1);
}
if(comdid == L"xxx")
{
- xml x = new xml;
- x.setNativePointer(xml::CreateInstance());
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(arg.CreateInstance());
+ xml x;
+
+ xaserverarg arg;
+
arg.AddArg(L"strHtml",m_strHtml);
- if (url::get(L"/sale/data/SysPrintTemplate/WebBrowser",arg.GetString(),x) != 1)
+ if (xurl::get(L"/sale/data/SysPrintTemplate/WebBrowser",arg.GetString(),x) != 1)
{
alert(L"数据集出错了!");
return 0;
}
- xstring strHtml = x.GetXml();
+ xstring strHtml = x.xml();
ole_print.LoadHtml(strHtml);
}
return 0;
}
- int OnXCommand(ref TXCommandEvent evt,int p)
+ int OnXCommand(TEvent* evt,int p)
{
- return OnCmdDispatch(evt.pStrID);
+ return OnCmdDispatch(evt->xcommand.pStrID);
}
int OnAttachEvent()
{
- AttachEvent(L"WM_XCOMMAND",OnXCommand);
- AttachEvent(L"WM_SETFOCUS",OnSetFocus);
+ AttachEvent(L"WM_XCOMMAND",(FEvent)& TemplatePrintViewEx::OnXCommand);
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&TemplatePrintViewEx::OnSetFocus);
//AttachEvent(L"WM_CLOSE",OnCloseOwnerWindow);
return 0;
@@ -1171,11 +1142,11 @@
{
if(!updated) return 1;
- int MB_YESNOCANCEL = 3;
- int IDYES = 6;
- int IDNO = 7;
- int IDCANCEL = 2;
- int re = win32::MessageBox(this.GetHWND(), L"单据已制作,是否保存?",L"提示:",MB_YESNOCANCEL);
+ //int MB_YESNOCANCEL = 3;
+ //int IDYES = 6;
+ //int IDNO = 7;
+ //int IDCANCEL = 2;
+ int re = MessageBox(GetHWND(), L"单据已制作,是否保存?",L"提示:",MB_YESNOCANCEL);
if(re==IDCANCEL) return -1;
if(re==IDNO) return 1;
OnCmdDispatch(L"print:AddToDocumentList");
@@ -1206,10 +1177,10 @@
int onloaded()
{
updated = false;
- if(GetParam())
+ SetArg();
+ if(GetWinParam())
{
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(GetParam());
+ xaserverarg arg= GetArg();
xstring templateName = arg.GetArgString(L"template-name");
if(templateName ==L"")
{
@@ -1218,7 +1189,7 @@
else
{
- win32::SetWindowText(GetHWND(),templateName);
+ SetWindowText(GetHWND(),templateName);
OnHtml(arg);
billName = templateName;
billPre = arg.GetArgString(L"template-pre");
@@ -1226,11 +1197,13 @@
m_EntityID = arg.GetArgString(L"EntityID");
m_EntityNo = arg.GetArgString(L"EntityNo");
m_EntityName = arg.GetArgString(L"EntityName");
+ m_SupplierName = arg.GetArgString(L"SupplierName");
m_DocumentID = L"";
}
}else
OnPrintDialog();
return 1;
}
+};
-};
\ No newline at end of file
+#define _XWIN
\ No newline at end of file
--
Gitblit v1.9.3