From 2ae36e271599ea723348132dd7c8a7e139162d18 Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期一, 01 七月 2024 13:16:02 +0800
Subject: [PATCH] update print preview
---
jrj/xframe/wobject/xbase.hpp | 169 ++-
jrj/xframe/vbusiness/vutil/publiccode.vutil.vbusiness.hpp | 6
jrj/xframe/wobject/xobject.hpp | 7
jrj/project/printview/Template.Print.ViewEx.cpp | 518 +++++------
jrj/project/printview/Maint.Template.PrintEx.cpp | 204 ++--
jrj/ext-jrj/ext-jrj.vcxproj.filters | 12
jrj/xframe/xcontrol/xcombobox.hpp | 168 ++--
jrj/xframe/wobject/xcontrol.hpp | 10
jrj/xframe/kobject/kexcel.hpp | 18
jrj/xframe/system/base.hpp | 7
jrj/xframe/vbusiness/vframe/frame.vframe.vbusiness.hpp | 14
jrj/xframe/xcontrol/xexcel.hpp | 44 +
jrj/xframe/xcontrol/xhtml.hpp | 37
jrj/xframe/vbusiness/vframe/listex.vframe.vbusiness.hpp | 6
jrj/project/printview/Template.Print.Dialog.cpp | 1019 +++++++++++-------------
jrj/xframe/win32/win.hpp | 12
jrj/.vscode/settings.json | 5
jrj/xframe/win32/xfile.hpp | 73
jrj/xframe/kobject/khtml.hpp | 16
jrj/xframe/wobject/xutil.hpp | 16
jrj/xframe/xcontrol/xtreeview.hpp | 13
jrj/xframe/wobject/xwin.hpp | 18
jrj/ext-jrj/ext-jrj.vcxproj | 54
jrj/xframe/vbusiness/vframe/responsewin.vframe.vbusiness.hpp | 14
jrj/xframe/kobject/kutil.hpp | 4
25 files changed, 1,277 insertions(+), 1,187 deletions(-)
diff --git a/jrj/.vscode/settings.json b/jrj/.vscode/settings.json
new file mode 100644
index 0000000..7337529
--- /dev/null
+++ b/jrj/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "files.associations": {
+ "xstring": "cpp"
+ }
+}
\ No newline at end of file
diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj
index ae7ae59..c0aabfc 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj
+++ b/jrj/ext-jrj/ext-jrj.vcxproj
@@ -116,7 +116,7 @@
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>_DEBUG;EXTJRJ_EXPORTS;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>_DEBUG;EXTJRJ_EXPORTS;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_XWIN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
@@ -126,7 +126,7 @@
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
- <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;xoffice.xflow.lib;%(AdditionalDependencies);$(CoreLibraryDependencies)</AdditionalDependencies>
+ <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;xoffice.xflow.lib;comsuppw.lib;%(AdditionalDependencies);$(CoreLibraryDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>D:\xclient64</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
@@ -179,7 +179,9 @@
<ClInclude Include="..\xframe\kobject\kdwpages.hpp" />
<ClInclude Include="..\xframe\kobject\kdwtable.hpp" />
<ClInclude Include="..\xframe\kobject\kdwview.hpp" />
+ <ClInclude Include="..\xframe\kobject\kexcel.hpp" />
<ClInclude Include="..\xframe\kobject\kflowchart.hpp" />
+ <ClInclude Include="..\xframe\kobject\khtml.hpp" />
<ClInclude Include="..\xframe\kobject\klayersheet.hpp" />
<ClInclude Include="..\xframe\kobject\knode.hpp" />
<ClInclude Include="..\xframe\kobject\kpage.hpp" />
@@ -224,7 +226,9 @@
<ClInclude Include="..\xframe\xcontrol\xdwgrid.hpp" />
<ClInclude Include="..\xframe\xcontrol\xdwpages.hpp" />
<ClInclude Include="..\xframe\xcontrol\xdwtable.hpp" />
+ <ClInclude Include="..\xframe\xcontrol\xexcel.hpp" />
<ClInclude Include="..\xframe\xcontrol\xflowchart.hpp" />
+ <ClInclude Include="..\xframe\xcontrol\xhtml.hpp" />
<ClInclude Include="..\xframe\xcontrol\xlayersheet.hpp" />
<ClInclude Include="..\xframe\xcontrol\xreport.hpp" />
<ClInclude Include="..\xframe\xcontrol\xshtml.hpp" />
@@ -333,27 +337,47 @@
<ClCompile Include="..\project\business\Supplier3.list.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
</ClCompile>
- <ClCompile Include="..\project\business\Supplier\asklist.Owner.Supplier.cpp" />
- <ClCompile Include="..\project\business\Supplier\Inspection.Supplie.cpp" />
- <ClCompile Include="..\project\business\Supplier\list.Owner.Supplier.cpp" />
- <ClCompile Include="..\project\business\Supplier\maint.Document.Supplier.cpp" />
- <ClCompile Include="..\project\business\Supplier\maint.Document.SupplierEx.cpp" />
- <ClCompile Include="..\project\business\Supplier\maint.Document.SupplierSD.cpp" />
- <ClCompile Include="..\project\business\Supplier\maint.Owner.Supplier.cpp" />
- <ClCompile Include="..\project\business\Supplier\maintex.Owner.Supplier.cpp" />
- <ClCompile Include="..\project\business\Supplier\paymen.Supplie.cpp" />
- <ClCompile Include="..\project\business\Supplier\SupplierSource.cpp" />
+ <ClCompile Include="..\project\business\Supplier\asklist.Owner.Supplier.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\project\business\Supplier\Inspection.Supplie.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\project\business\Supplier\list.Owner.Supplier.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\project\business\Supplier\maint.Document.Supplier.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\project\business\Supplier\maint.Document.SupplierEx.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\project\business\Supplier\maint.Document.SupplierSD.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\project\business\Supplier\maint.Owner.Supplier.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\project\business\Supplier\maintex.Owner.Supplier.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\project\business\Supplier\paymen.Supplie.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\project\business\Supplier\SupplierSource.cpp">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ </ClCompile>
<ClCompile Include="..\project\printview\Maint.Template.PrintEx.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\project\printview\Template.Print.Dialog.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\project\printview\Template.Print.ViewEx.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\project\start.vframe.vbusiness.cpp" />
<ClCompile Include="..\project\viewobject\view.base.hpp" />
diff --git a/jrj/ext-jrj/ext-jrj.vcxproj.filters b/jrj/ext-jrj/ext-jrj.vcxproj.filters
index f1dbe90..050eaf0 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj.filters
+++ b/jrj/ext-jrj/ext-jrj.vcxproj.filters
@@ -291,6 +291,18 @@
<ClInclude Include="..\xframe\kobject\kflowchart.hpp">
<Filter>xframe\kobject</Filter>
</ClInclude>
+ <ClInclude Include="..\xframe\kobject\khtml.hpp">
+ <Filter>xframe\kobject</Filter>
+ </ClInclude>
+ <ClInclude Include="..\xframe\xcontrol\xhtml.hpp">
+ <Filter>xframe\xcontrol</Filter>
+ </ClInclude>
+ <ClInclude Include="..\xframe\kobject\kexcel.hpp">
+ <Filter>xframe\kobject</Filter>
+ </ClInclude>
+ <ClInclude Include="..\xframe\xcontrol\xexcel.hpp">
+ <Filter>xframe\xcontrol</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp">
diff --git a/jrj/project/printview/Maint.Template.PrintEx.cpp b/jrj/project/printview/Maint.Template.PrintEx.cpp
index d96d72b..e060d3e 100644
--- a/jrj/project/printview/Maint.Template.PrintEx.cpp
+++ b/jrj/project/printview/Maint.Template.PrintEx.cpp
@@ -2,125 +2,125 @@
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xdwgrid.hpp>
#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xcell.hpp>
#include "vbusiness/vframe/maint.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
using xml = KXMLDOMDocument;
-
-class __declspec(dllexport) MaintTemplatePrintWin : public xframe
+class __declspec(dllexport) MaintTemplatePrintWin : public xframe
+{
+public:
+ xcell cell;
+ xnode m_agentNode; //Agent Condition
+ xstring args;
+public:
+ MaintTemplatePrintWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+public:
+ static MaintTemplatePrintWin* CreateInstance(void* implPtr, void* hWnd)
{
- public:
- xcell cell;
- xnode m_agentNode; //Agent Condition
- xstring args;
- public:
- MaintTemplatePrintWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
- public:
- static MaintTemplatePrintWin* CreateInstance(void* implPtr, void* hWnd)
+ MaintTemplatePrintWin* pWin = new MaintTemplatePrintWin(implPtr, (HWND)hWnd);
+ return pWin;
+ }
+ int SetAgent()
+ {
+ xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ if (m_agentNode)
{
- MaintTemplatePrintWin* pWin = new MaintTemplatePrintWin(implPtr, (HWND)hWnd);
- return pWin;
+ SetAgentNode(anode, m_agentNode);
}
- int SetAgent()
+ else
{
- xstring xfNodeAgentArea = L"agentarea";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- if(m_agentNode)
+ KXMLDOMElement xframeElement = GetElement();
+ KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
+ if (agent)
{
- SetAgentNode (anode,m_agentNode);
+ xstring s = agent.xml();
+ m_agentNode = SetAgentNode(anode, s);
}
- else
- {
- KXMLDOMElement xframeElement = GetElement();
- KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
- if(agent)
- {
- xstring s = agent.xml();
- m_agentNode = SetAgentNode (anode,s);
- }
- }
- return 1;
}
+ return 1;
+ }
- //焦点激活处理函数
- int OnSetFocus(TEvent* evt, LPARAM p)
- {
- //重置工具条
- SetAgent();
- return 1;
- }
-}
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt, LPARAM p)
+ {
+ //重置工具条
+ SetAgent();
+ return 1;
+ }
- int SendCtrlCmd(xcontrol xc, xstring cmd)
- {
- win32::SendMessage(xc.GetId(),0x401,cmd,0);
- return 1;
- }
+ int SendCtrlCmd(xcontrol xc, xstring cmd)
+ {
+ SendMessage(xc.GetHWND(), 0x401, (WPARAM)cmd.c_str(), 0);
+ return 1;
+ }
- //命令发布函数
- int OnCmdDispatch(xstring comdid)
+ //命令发布函数
+ int OnCmdDispatch(xstring comdid)
+ {
+ if (comdid.left(3) == L"IK_")
{
- if(comdid.left(3) == L"IK_")
- {
- xstring cmd = comdid.mid(3, comdid.length());
- SendCtrlCmd(GetControl(L"cell"),cmd);
- return 1;
- }
- else if(comdid==L"xmFileOpen")
- {
- cell.OpenFile();
- cell.Redraw();
- return 1;
- }
- else if(comdid==L"xmFileSave")
- {
- cell.SaveFile();
- return 1;
- }
- else if(comdid==L"xmFileSaveAs")
- {
- cell.SaveFileAs();
- return 1;
- }
- return 0;
- }
-
- //命令处理事件
- int OnXCommand(TEvent* evt, LPARAM p)
- {
- return OnCmdDispatch(evt->xcommand.pStrID);
- }
-
- int OnAttachEvent()
- {
- //绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND", (FEvent)&MaintTemplatePrintWin::OnXCommand);
- //获取焦点事件,用于重置工具条
- AttachEvent(L"WM_SETFOCUS", (FEvent)&MaintTemplatePrintWin::OnSetFocus);
- }
-
- int onload()
- {
- cell = GetControl(L"cell");
- SetAgent();
-
- OnAttachEvent();
-
- if(GetWinParam())
- {
- args = GetParamString();
- cell.openUrl(L"/sale/data/SysPrintTemplate/getdevxsl",args);
- }
- else
- args =L"";
-
+ xstring cmd = comdid.mid(3, comdid.length());
+
+ SendCtrlCmd(cell.GetHWND(), cmd);
return 1;
}
-
- int onloaded()
+ else if (comdid == L"xmFileOpen")
{
-
+ cell.OpenFile();
+ cell.Redraw();
return 1;
- }
-
\ No newline at end of file
+ }
+ else if (comdid == L"xmFileSave")
+ {
+ cell.SaveFile();
+ return 1;
+ }
+ else if (comdid == L"xmFileSaveAs")
+ {
+ cell.SaveFileAs();
+ return 1;
+ }
+ return 0;
+ }
+
+ //命令处理事件
+ int OnXCommand(TEvent* evt, LPARAM p)
+ {
+ return OnCmdDispatch(evt->xcommand.pStrID);
+ }
+
+ int OnAttachEvent()
+ {
+ //绑定工具条点击事件
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&MaintTemplatePrintWin::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&MaintTemplatePrintWin::OnSetFocus);
+ }
+
+ int onload()
+ {
+ cell = GetControl(L"cell");
+ SetAgent();
+
+ OnAttachEvent();
+
+ if (GetWinParam())
+ {
+ args = GetParamString();
+ cell.openUrl(L"/sale/data/SysPrintTemplate/getdevxsl", args);
+ }
+ else
+ args = L"";
+
+ return 1;
+ }
+
+ int onloaded()
+ {
+
+ return 1;
+ }
+};
\ No newline at end of file
diff --git a/jrj/project/printview/Template.Print.Dialog.cpp b/jrj/project/printview/Template.Print.Dialog.cpp
index e4624ec..3158b09 100644
--- a/jrj/project/printview/Template.Print.Dialog.cpp
+++ b/jrj/project/printview/Template.Print.Dialog.cpp
@@ -4,603 +4,519 @@
#include <xcontrol/xlayersheet.hpp>
#include "vbusiness/vframe/maint.vframe.vbusiness.hpp"
+#include "vbusiness/vframe/maint.vframe.vbusiness.hpp"
+#include "vbusiness/vframe/responsewin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
using xml = KXMLDOMDocument;
-class __declspec(dllexport) TemplatePrintDialog : public responsewin
+DeclWinObject_(TemplatePrintDialog, responsewin)
{
+ CreateWinObject_(TemplatePrintDialog, responsewin)
+
public:
- xaserverarg arg_param;
- xstring m_EntityName;
- xstring m_EntityID;
- xstring m_EntityNo;
- xstring m_Dir;
- xstring m_filePath;
- xstring strNode;
- xdwgrid dw_list;
- xdwgrid dw_doclist;
- xole ole_1;
- bool bupdate;
+ xaserverarg arg_param;
+ xstring m_EntityName;
+ xstring m_EntityID;
+ xstring m_EntityNo;
+ xstring m_Dir;
+ xstring m_filePath;
+ xstring strNode;
+ xdwgrid dw_list;
+ xdwgrid dw_doclist;
+ bool bupdate;
public:
- TemplatePrintDialog(void* implPtr, HWND hWnd) :maint(implPtr, hWnd) {}
+ TemplatePrintDialog(void* implPtr, HWND hWnd) :responsewin(implPtr, hWnd) {}
public:
static TemplatePrintDialog* CreateInstance(void* implPtr, void* hWnd)
{
- TemplatePrintDialog* pWin = new TemplatePrintDialog(implPtr, (HWND)hWnd);
- return pWin;
+ return new TemplatePrintDialog(implPtr, (HWND)hWnd);
}
- int OnHtml()
+public:
+ int OnRetrieve()
+ {
+ xstring username = publiccode::GetUser()->name;
+ if (username != L"admin" && m_Dir != username)
{
- xstring s1=L"<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, L"+
- " 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());
+ bupdate = false;
+ }
+ else
+ {
+ bupdate = true;
+ }
+ xml x;
- //xstring s2=L"<?xml version='1.0'?>"+
- xstring 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());
+ xaserverarg arg;
- xstring strHtml = x.GetXmlDoc().transformNode(xsl.GetXmlDoc());
- //strHtml = str.mid(21,99999);
- ole_1.LoadHtml(strHtml);
- //html_1.SetContent(strHtml);
- //alert(strHtml);
+ arg.AddArg(L"Entity", m_EntityName);
+ arg.AddArg(L"Dir", m_Dir);
+ dw_list.Reset();
+ if (xurl::get(L"/sale/data/SysPrintTemplate/listDialog", arg.GetString(), x) != 1)
+ {
+ trace(x.text());
+ return -1;
+ }
+ else
+ {
+ xstring s = x.xml();
+ dw_list.Retrieve(x);
+ }
+ dw_list.Redraw();
+ //dw_list.SetReadOnly(true);
+ if (dw_list.GetRowCount() > 0)
+ dw_list.SelectRow(1, true);
+ return 1;
+ }
- return 0;
- }
-
- int OnRetrieve()
- {
- xstring username = publiccode::GetUser().name;
- if(username != L"admin" && m_Dir != username )
- {
- bupdate = false;
- }else
- {
- bupdate = true;
- }
- xml x;
-
- xaserverarg arg;
-
- arg.AddArg(L"Entity",m_EntityName);
- arg.AddArg(L"Dir",m_Dir);
- dw_list.Reset();
- if (xurl::get(L"/sale/data/SysPrintTemplate/listDialog",arg.GetString(),x) != 1)
- {
- trace(x.text());
- return -1;
- }else
- {
- xstring s = x.xml();
- 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(L"dev:xpage[Maint.Template.Print.vx]");
- return 1;
- }
-
- int OnMaintTempl()
- {
- int row = dw_list.GetRow();
- if(row<0 || row>dw_list.GetRowCount())
- {
- alert(L"请选择要维护的模板!");
- return 1;
- }
- else
- {
- KXMLDOMElement ele = dw_list.GetRowElement(row);
- xstring sguid = ele.selectSingleNode(L"ID").text();
- xstring sTemplName = ele.selectSingleNode(L"TemplName").text();
- //xstring sFile = m_filePath + sguid+L".xsl";
- xstring sFile = m_filePath + ele.selectSingleNode(L"urlPath").text();
- arg_param.AddArg(L"xsl",sFile);
- arg_param.AddArg(L"return",L"cancel");
-
- OpenWindow(L"dev:xpage[Maint.Template.Print.vx]",cast(arg_param.GetString() as int));
- CloseWindow();
-
- }
- return 1;
- }
-
- int OnAddDir()
- {
- return 0;
- }
- int OnAddTempl()
- {
- if (m_Dir==L"")
- {
- alert(L"请选择模板目录!");
- return 0;
- }
- xstring sguid = publiccode::GetGuid();
- xstring sname= sguid +L".xsl";
- xstring suri= L"rpttemplate"+L"\\"+m_EntityName; //rpttemplate\SO
- //suri = L"supplier00";
- xstring ret = xaserver::UploadFile(suri, sname, this.GetHWND(),L"",false);
- if (ret == L"-1")
- {
- alert(L"上传的文件没选择!");
- return 1;
- }
- else
- {
- xml x=new xml;
- x.setNativePointer(xml::CreateInstance());
- xaserverarg args = new xaserverarg;
- args.setNativePointer(args.CreateInstance());
- args.AddArg(L"sID",sguid);
- args.AddArg(L"sEntity",m_EntityName);
- args.AddArg(L"sDir",m_Dir);
- args.AddArg(L"urlPath", sname);
- //alert(m_Dir);
- while(ret.find(L"\\",0)>=0)
- ret = ret.mid(ret.find(L"\\",0) + 1,9999);
-
- args.AddArg(L"sTemplName",ret);
- //trace(args.GetString());
- if (url::get(L"/sale/data/SysPrintTemplate/Save",args.GetString(),x) != 1)
- {
- trace(L"error:"+x.GetXml());
- alert(L"保存出错了!");
- return 1;
- }
- else
- {
- alert(L"上传模板成功!");
- OnRetrieve();
- }
- }
- return 1;
- }
-
- int OnDelTempl()
- {
-
- int row = dw_list.GetRow();
- if(row<0 || row>dw_list.GetRowCount())
- {
- alert(L"请选择要删除的模板!");
- return 0;
- }
- else
- {
- if (win32::MessageBox(GetHWND(),L"确定要删除选中的模板?",L"提示",1) == 2)
- return 0;
- KXMLDOMElement ele = dw_list.GetRowElement(row);
- xstring sguid = ele.selectSingleNode(L"ID").text;
- xml x=new xml;
- x.setNativePointer(xml::CreateInstance());
- xaserverarg args = new xaserverarg;
- args.setNativePointer(args.CreateInstance());
- args.AddArg(L"sID",sguid);
- if (url::get(L"/sale/data/SysPrintTemplate/Delete",args.GetString(),x) != 1)
- {
- trace(L"error:"+x.GetXml());
- alert(L"删除出错了!");
- return 0;
- }
- else
- {
- alert(L"删除成功!");
- 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 OnNewTempl()
+ {
+ OpenWindow(L"dev:xpage[Maint.Template.Print.vx]");
+ return 1;
+ }
- int OnOpenDocument()
+ int OnMaintTempl()
+ {
+ int row = dw_list.GetRow();
+ if (row<0 || row>dw_list.GetRowCount())
{
- if(dw_doclist.GetRowCount() < 1) return 1;
- xstring documentid = dw_doclist.GetRowElement(dw_doclist.GetRow()).getAttribute(L"guid");
- //xstring billid = dw_docList
- arg_param.AddArg(L"DocumentID",documentid);
- arg_param.AddArg(L"return",L"ok");
- arg_param.AddArg(L"action",L"open");
+ alert(L"请选择要维护的模板!");
+ return 1;
+ }
+ else
+ {
+ KXMLDOMElement ele = dw_list.GetRowElement(row);
+ xstring sguid = ele.selectSingleNode(L"ID").text();
+ xstring sTemplName = ele.selectSingleNode(L"TemplName").text();
+ //xstring sFile = m_filePath + sguid+L".xsl";
+ xstring sFile = m_filePath + ele.selectSingleNode(L"urlPath").text();
+ arg_param.AddArg(L"xsl", sFile);
+ arg_param.AddArg(L"return", L"cancel");
+
+ OpenWindow(L"dev:xpage[Maint.Template.Print.vx]", arg_param);
CloseWindow();
- return 1;
+
}
-
- int OnOk()
+ return 1;
+ }
+
+ int OnAddDir()
+ {
+ return 0;
+ }
+ int OnAddTempl()
+ {
+ if (m_Dir == L"")
{
- int row = dw_list.GetRow();
- if(row<0 || row>dw_list.GetRowCount())
- {
- alert(L"请选择要打印的模板!");
- return 1;
- }
- else
- {
- KXMLDOMElement ele = dw_list.GetRowElement(row);
- trace(L"\r\n---------------");
- trace(ele.xml);
-
- xstring sguid = ele.selectSingleNode(L"ID").text;
- xstring pre = L"";
- if(ele.selectSingleNode(L"TemplPre")) pre = ele.selectSingleNode(L"TemplPre").text;
- xstring sTemplName = ele.selectSingleNode(L"TemplName").text;
- //xstring sFile = m_filePath + sguid+L".xsl";
- trace(sTemplName);
- xstring sFile = m_filePath + ele.selectSingleNode(L"urlPath").text;
- arg_param.AddArg(L"xsl",sFile);
- arg_param.AddArg(L"return",L"ok");
- arg_param.AddArg(L"template-name",sTemplName);
- arg_param.AddArg(L"template-guid",sguid);
- arg_param.AddArg(L"template-pre",pre);
- arg_param.AddArg(L"action",L"new");
- trace(arg_param.GetString());
- CloseWindow();
- /*xaserver::CreateDirectory(L"C:/Temp");
- int openRet = xaserver::DownLoadFile(GetServerUrl(),m_filePath+file,sTemplName,L"C:/Temp/"+sTemplName);
- if(openRet < 0)
- {
- alert(L"文件打开失败!");
- 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(L"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(L"filesize = %d",filesize);
- xstring buffer = L"".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,L"open",L"C:/Temp/"+sTemplName,L"",L"",5);
- if(openRet < 32)
- {
- alert(L"文件打开失败2!");
- return 0;
- }*/
- }
+ alert(L"请选择模板目录!");
return 0;
}
-
- int OnSave()
+ xstring sguid = publiccode::GetGuid();
+ xstring sname = sguid + L".xsl";
+ xstring suri = L"rpttemplate\\" + m_EntityName; //rpttemplate\SO
+ //suri = L"supplier00";
+ xstring ret = xaserver::UploadFile(suri, sname, GetHWND(), L"", false);
+ if (ret == L"-1")
{
- 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(L"content",x.GetXml());
-
- if (url::get(L"/sale/data/SysPrintTemplate/updateinfo",arg.GetString(),x) != 1)
+ alert(L"上传的文件没选择!");
+ return 1;
+ }
+ else
+ {
+ xml x;
+ xaserverarg args;
+ args.AddArg(L"sID", sguid);
+ args.AddArg(L"sEntity", m_EntityName);
+ args.AddArg(L"sDir", m_Dir);
+ args.AddArg(L"urlPath", sname);
+ //alert(m_Dir);
+ while (ret.find(L"\\", 0) >= 0)
+ ret = ret.mid(ret.find(L"\\", 0) + 1, 9999);
+
+ args.AddArg(L"sTemplName", ret);
+ //trace(args.GetString());
+ if (xurl::get(L"/sale/data/SysPrintTemplate/Save", args.GetString(), x) != 1)
{
- trace(L"error:"+x.GetXml());
+ trace((xstring)L"error:" + x.xml());
alert(L"保存出错了!");
return 1;
- }
+ }
else
- {
- dw_list.ResetUpdateStatus();
- alert(L"保存成功!");
- }
-
- return 1;
- }
-
- int PreOnCmdDispatch(xstring comdid)
- {
- //返回0——不在执行以下代码;返回其他——执行以下代码。
- if(comdid.left(8) == L"xmPanel:"){
- xstring no = comdid.mid(8, 99);
- //int id = no.toInt();
-
- xml x = new xml;
- x.setNativePointer(xml::CreateInstance());
- x.LoadXml(strNode);
- KXMLDOMDocument doc= x.GetXmlDoc();
- KXMLDOMElement e = doc.documentElement;
- xstring slable =e.selectSingleNode(L"//xtoolbutton[@name='"+comdid+L"']/@caption").text;
- m_Dir = slable;
- OnRetrieve();
-
- return 1;
- }
- if (comdid==L"xmAddDir") return OnAddDir();
- if (comdid==L"xmAddTempl" && bupdate) return OnAddTempl();
- if (comdid==L"xmDelTempl" && bupdate) return OnDelTempl();
- if (comdid==L"xmMaintTempl" && bupdate) return OnMaintTempl();
- if (comdid==L"xmNewTempl" && bupdate) return OnNewTempl();
- if (comdid==L"xmHtml") return OnHtml();
- if (comdid==L"xmOk") return OnOk();
- if (comdid==L"xmSave") return OnSave();
- if(comdid==L"xmOpen") return OnOpenDocument();
- else if (comdid==L"xmCancel")
{
- arg_param.AddArg(L"return",L"cancel");
- CloseWindow();
- return 1;
+ alert(L"上传模板成功!");
+ OnRetrieve();
}
+ }
+ return 1;
+ }
+
+ int OnDelTempl()
+ {
+
+ int row = dw_list.GetRow();
+ if (row<0 || row>dw_list.GetRowCount())
+ {
+ alert(L"请选择要删除的模板!");
return 0;
}
-
-
- int PostOnAttachEvent()
+ else
{
- //AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED",OnRowChanged);
- //AttachEvent(L"dw_list",L"DWV_CLICKED",OnClicked);
- //AttachEvent(L"dw_list",L"DWV_RCLICKED",OnRClicked);
- //AttachEvent(L"dw_list",L"DWV_ITEMCHANGED",OnItemChanged);
- //AttachEvent(L"dw_list",L"DWV_CHILDCONTENT",OnChildContent);
- AttachEvent(L"dw_doclist",L"DWV_DOUBLECLICKED",OnDocListDoubleClicked);
- AttachEvent(L"dw_list",L"DWV_DOUBLECLICKED",OnDoubleClicked);
- return 1;
- }
-
- int SetAgent()
- {
- PUser puser = new PUser;
- puser = publiccode::GetUser();
- xstring susername = puser.name;
- if (susername !=L"admin")
+ if (MessageBox(GetHWND(), L"确定要删除选中的模板?", L"提示", 1) == 2)
+ return 0;
+ KXMLDOMElement ele = dw_list.GetRowElement(row);
+ xstring sguid = ele.selectSingleNode(L"ID").text();
+ xml x;
+ xaserverarg args;
+ args.AddArg(L"sID", sguid);
+ if (xurl::get(L"/sale/data/SysPrintTemplate/Delete", args.GetString(), x) != 1)
{
- xstring xfNodeAgentArea = L"DirButton";
- xnode anode = GetAgentNode(xfNodeAgentArea);
- KXMLDOMElement xframeElement = GetElement();
- xstring tools=L"<vbox name='DirButton' height='48' />";
- SetAgentNode(anode, tools);
- }
- return 1;
- }
-
- int CreateDir()
- {
- PUser puser = new PUser;
- puser = publiccode::GetUser();
- xstring susername = puser.name;
- xml x = new xml;
- x.setNativePointer(xml::CreateInstance());
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(arg.CreateInstance());
- arg.AddArg(L"EntityName",m_EntityName,L"");
- arg.AddArg(L"EntityID",m_EntityID,L"");
- arg.AddArg(L"susername",susername,L""); //
- if (url::get(L"/sale/data/SysPrintTemplate/Dir",arg.GetString(),x) != 1)
- {
- trace(x.GetXmlDoc().text);
- return -1;
- }else
- {
- xstring s = x.GetXml();
- }
- KXMLDOMNodeList nlist = x.GetXmlDoc().selectNodes(L"//Entity");
- int i;
- int nlen = nlist.length;
- xstring toolStr = L"<vbox name='Dir'>";
- xstring deptName= publiccode::GetUser().deptname;
- if(deptName==L"跟单部" && m_EntityName==L"GDN3"){
- for(i=2; i<nlen; i++)
- {
- KXMLDOMElement e1 = nlist.item(i);
- xstring sDir1 = e1.selectSingleNode(L"@Dir").text;
- xstring str1 = L"<xtoolbutton image='15' caption='"+sDir1+L"' height='24' name='xmPanel:"+i.toString()+L"' style='background-color:none #ceecce none #ffffff'/>";
-
- toolStr += str1;
- if (i==2)
- m_Dir = sDir1;
- }
- }else if(deptName.find(L"业务")>=0 && m_EntityName==L"GDN3" )
- {
- for(i=1; i<2; i++)
- {
- KXMLDOMElement e2 = nlist.item(i);
- xstring sDir2 = e2.selectSingleNode(L"@Dir").text;
- xstring str2 = L"<xtoolbutton image='15' caption='"+sDir2+L"' height='24' name='xmPanel:"+i.toString()+L"' style='background-color:none #ceecce none #ffffff'/>";
-
- toolStr += str2;
- if (i==1)
- m_Dir = sDir2;
- }
- for(i=4; i<nlen; i++)
- {
- KXMLDOMElement e3 = nlist.item(i);
- xstring sDir3 = e3.selectSingleNode(L"@Dir").text;
- xstring str3 = L"<xtoolbutton image='15' caption='"+sDir3+L"' height='24' name='xmPanel:"+i.toString()+L"' style='background-color:none #ceecce none #ffffff'/>";
-
- toolStr += str3;
- }
- }else{
- for(i=0; i<nlen; i++)
- {
- KXMLDOMElement e = nlist.item(i);
- xstring sDir = e.selectSingleNode(L"@Dir").text;
- xstring str = L"<xtoolbutton image='15' caption='"+sDir+L"' height='24' name='xmPanel:"+i.toString()+L"' style='background-color:none #ceecce none #ffffff'/>";
-
- toolStr += str;
- if (i==0)
- m_Dir = sDir;
- }
- }
-
- toolStr += L"</vbox>";
- strNode = toolStr;
- //trace(toolStr);
- xnode anode = GetAgentNode(L"Dir");
- xwin::SetAgentNode(anode,toolStr) ;
-
- OnRetrieve();
- return 1;
- }
-
- int OnInit()
- {
- SetAgent();
- dw_list = this.GetControl(L"dw_list");
- dw_list.openUrl(L"/sale/view/view.base/template/PrintView/listDialog");
- dw_list.SetReadOnly(true);
- dw_list.SetSelectionMode(4);
- dw_list.SetColumnState(L"ID",false);
-
- dw_doclist = GetControl(L"dw_doclist");
- dw_doclist.openUrl(L"/sale/view/GDN/template/doclist");
-
- xstring sUrl = GetServerUrl();
- sUrl = sUrl.mid(0, sUrl.length() - 19);
- m_filePath = L"/business/rpttemplate";
- arg_param = new xaserverarg;
- if (GetParam())
- {
- int p = GetParam();
- arg_param.setNativePointer(p);
- m_EntityName = arg_param.GetArgString(L"EntityName");
- m_EntityID = arg_param.GetArgString(L"EntityID");
- m_EntityNo = arg_param.GetArgString(L"EntityNo");
-
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(xaserverarg::CreateInstance());
- arg.AddArg(L"EntityName", m_EntityName);
- arg.AddArg(L"EntityID", m_EntityID);
- arg.AddArg(L"EntityNo", m_EntityNo);
- xml x =new xml;
- x.setNativePointer(xml::CreateInstance());
- if(url::get(L"/sale/data/DocumentList3/bill/doclist", arg.GetString(),x)!=1)
- {
- xstring error = x.GetXmlDoc().text;
- trace(error);
- }else
- {
- dw_doclist.Retrieve(x);
- dw_doclist.SetReadOnly(true);
- }
+ trace((xstring)L"error:" + x.xml());
+ alert(L"删除出错了!");
+ return 0;
}
else
{
- arg_param.setNativePointer(arg_param.CreateInstance());
- m_EntityName = L"SO";
- m_EntityID =L"00000000-0000-0000-0000-000000000000";
+ alert(L"删除成功!");
+ OnRetrieve();
}
+ }
- m_Dir = L"";
- m_filePath = m_filePath + L"/" + m_EntityName+L"/";
- //trace(m_filePath);
-
- CreateDir();
-
+ return 0;
+ }
+
+ int OnDocListDoubleClicked(TEvent * evt, int p)
+ {
+ HCURSOR hCursor = xutil::SetCursorWait();
+ OnOpenDocument();
+ xutil::RestoreCursor(hCursor);
+ return 1;
+ }
+
+ int OnDoubleClicked(TEvent * evt, int p)
+ {
+ HCURSOR hCursor = xutil::SetCursorWait();
+ OnOk();
+ xutil::RestoreCursor(hCursor);
+ return 1;
+ }
+
+ int OnOpenDocument()
+ {
+ if (dw_doclist.GetRowCount() < 1) return 1;
+ xstring documentid = dw_doclist.GetRowElement(dw_doclist.GetRow()).getAttribute(L"guid");
+ //xstring billid = dw_docList
+ arg_param.AddArg(L"DocumentID", documentid);
+ arg_param.AddArg(L"return", L"ok");
+ arg_param.AddArg(L"action", L"open");
+ CloseWindow();
+ return 1;
+ }
+
+ int OnOk()
+ {
+ int row = dw_list.GetRow();
+ if (row<0 || row>dw_list.GetRowCount())
+ {
+ alert(L"请选择要打印的模板!");
return 1;
}
-
- int onload()
- {
- responsewin::onload();
-
- /*if (GetParam())
+ else
{
- xstring action = arg_param.GetArgString(L"action");
- if(action==L"open" || (action==L"" && dw_doclist.GetRowCount() > 0))
- SwitchLayer(L"sheet2",L"frame");
+ KXMLDOMElement ele = dw_list.GetRowElement(row);
+ trace(L"\r\n---------------");
+ trace(ele.xml());
+
+ xstring sguid = ele.selectSingleNode(L"ID").text();
+ xstring pre = L"";
+ if (ele.selectSingleNode(L"TemplPre")) pre = ele.selectSingleNode(L"TemplPre").text();
+ xstring sTemplName = ele.selectSingleNode(L"TemplName").text();
+ //xstring sFile = m_filePath + sguid+L".xsl";
+ trace(sTemplName);
+ xstring sFile = m_filePath + ele.selectSingleNode(L"urlPath").text();
+ arg_param.AddArg(L"xsl", sFile);
+ arg_param.AddArg(L"return", L"ok");
+ arg_param.AddArg(L"template-name", sTemplName);
+ arg_param.AddArg(L"template-guid", sguid);
+ arg_param.AddArg(L"template-pre", pre);
+ arg_param.AddArg(L"action", L"new");
+ trace(arg_param.GetString());
+ CloseWindow();
+ /*xaserver::CreateDirectory(L"C:/Temp");
+ int openRet = xaserver::DownLoadFile(GetServerUrl(),m_filePath+file,sTemplName,L"C:/Temp/"+sTemplName);
+ if(openRet < 0)
+ {
+ alert(L"文件打开失败!");
+ 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(L"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(L"filesize = %d",filesize);
+ xstring buffer = L"".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,L"open",L"C:/Temp/"+sTemplName,L"",L"",5);
+ if(openRet < 32)
+ {
+ alert(L"文件打开失败2!");
+ return 0;
+ }*/
}
- */
+ return 0;
+ }
+
+ int OnSave()
+ {
+ dw_list.AcceptText();
+ xml x;
+
+ dw_list.DwUpdateAllToEx(x);
+
+ xaserverarg arg;
+ arg.setNativePointer(xaserverarg::CreateInstance());
+ arg.AddArg(L"content", x.xml());
+
+ if (xurl::get(L"/sale/data/SysPrintTemplate/updateinfo", arg.GetString(), x) != 1)
+ {
+ trace((xstring)L"error:" + x.xml());
+ alert(L"保存出错了!");
+ return 1;
+ }
+ else
+ {
+ dw_list.ResetUpdateStatus();
+ alert(L"保存成功!");
+ }
return 1;
}
-
- int onloaded()
+
+ int PreOnCmdDispatch(xstring comdid)
{
- //responsewin::onload();
-
+ //返回0——不在执行以下代码;返回其他——执行以下代码。
+ if (comdid.left(8) == L"xmPanel:") {
+ xstring no = comdid.mid(8, 99);
+ //int id = no.toInt();
+
+ xml x;
+
+ x.loadXML(strNode);
+ KXMLDOMDocument doc = x;
+ KXMLDOMElement e = doc.documentElement();
+ xstring slable = e.selectSingleNode(L"//xtoolbutton[@name='" + comdid + L"']/@caption").text();
+ m_Dir = slable;
+ OnRetrieve();
+
+ return 1;
+ }
+ if (comdid == L"xmAddDir") return OnAddDir();
+ if (comdid == L"xmAddTempl" && bupdate) return OnAddTempl();
+ if (comdid == L"xmDelTempl" && bupdate) return OnDelTempl();
+ if (comdid == L"xmMaintTempl" && bupdate) return OnMaintTempl();
+ if (comdid == L"xmNewTempl" && bupdate) return OnNewTempl();
+ //if (comdid==L"xmHtml") return OnHtml();
+ if (comdid == L"xmOk") return OnOk();
+ if (comdid == L"xmSave") return OnSave();
+ if (comdid == L"xmOpen") return OnOpenDocument();
+ else if (comdid == L"xmCancel")
+ {
+ arg_param.AddArg(L"return", L"cancel");
+ CloseWindow();
+ return 1;
+ }
+ return 0;
+ }
+
+
+ int PostOnAttachEvent()
+ {
+ //AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED",OnRowChanged);
+ //AttachEvent(L"dw_list",L"DWV_CLICKED",OnClicked);
+ //AttachEvent(L"dw_list",L"DWV_RCLICKED",OnRClicked);
+ //AttachEvent(L"dw_list",L"DWV_ITEMCHANGED",OnItemChanged);
+ //AttachEvent(L"dw_list",L"DWV_CHILDCONTENT",OnChildContent);
+ AttachEvent(L"dw_doclist", L"DWV_DOUBLECLICKED", (FEvent)&TemplatePrintDialog::OnDocListDoubleClicked);
+ AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&TemplatePrintDialog::OnDoubleClicked);
+ return 1;
+ }
+
+ int SetAgent()
+ {
+ PUser& puser = *publiccode::GetUser();
+ xstring susername = puser.name;
+ if (susername != L"admin")
+ {
+ xstring xfNodeAgentArea = L"DirButton";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ KXMLDOMElement xframeElement = GetElement();
+ xstring tools = L"<vbox name='DirButton' height='48' />";
+ SetAgentNode(anode, tools);
+ }
+ return 1;
+ }
+
+ int CreateDir()
+ {
+ PUser& puser = *publiccode::GetUser();
+ xstring susername = puser.name;
+ xml x;
+
+ xaserverarg arg;
+ arg.setNativePointer(arg.CreateInstance());
+ arg.AddArg(L"EntityName", m_EntityName, L"");
+ arg.AddArg(L"EntityID", m_EntityID, L"");
+ arg.AddArg(L"susername", susername, L""); //
+ if (xurl::get(L"/sale/data/SysPrintTemplate/Dir", arg.GetString(), x) != 1)
+ {
+ trace(x.text());
+ return -1;
+ }
+ else
+ {
+ xstring s = x.xml();
+ }
+ KXMLDOMNodeList nlist = x.selectNodes(L"//Entity");
+ int i;
+ int nlen = nlist.length();
+ xstring toolStr = L"<vbox name='Dir'>";
+ xstring deptName = publiccode::GetUser()->deptname;
+ if (deptName == L"跟单部" && m_EntityName == L"GDN3") {
+ for (i = 2; i < nlen; i++)
+ {
+ KXMLDOMElement e1 = nlist.item(i);
+ xstring sDir1 = e1.selectSingleNode(L"@Dir").text();
+ xstring str1 = L"<xtoolbutton image='15' caption='" + sDir1 + L"' height='24' name='xmPanel:" + xstring(i) + L"' style='background-color:none #ceecce none #ffffff'/>";
+
+ toolStr += str1;
+ if (i == 2)
+ m_Dir = sDir1;
+ }
+ }
+ else if (deptName.find(L"业务") >= 0 && m_EntityName == L"GDN3")
+ {
+ for (i = 1; i < 2; i++)
+ {
+ KXMLDOMElement e2 = nlist.item(i);
+ xstring sDir2 = e2.selectSingleNode(L"@Dir").text();
+ xstring str2 = L"<xtoolbutton image='15' caption='" + sDir2 + L"' height='24' name='xmPanel:" + xstring(i) + L"' style='background-color:none #ceecce none #ffffff'/>";
+
+ toolStr += str2;
+ if (i == 1)
+ m_Dir = sDir2;
+ }
+ for (i = 4; i < nlen; i++)
+ {
+ KXMLDOMElement e3 = nlist.item(i);
+ xstring sDir3 = e3.selectSingleNode(L"@Dir").text();
+ xstring str3 = L"<xtoolbutton image='15' caption='" + sDir3 + L"' height='24' name='xmPanel:" + xstring(i) + L"' style='background-color:none #ceecce none #ffffff'/>";
+
+ toolStr += str3;
+ }
+ }
+ else {
+ for (i = 0; i < nlen; i++)
+ {
+ KXMLDOMElement e = nlist.item(i);
+ xstring sDir = e.selectSingleNode(L"@Dir").text();
+ xstring str = L"<xtoolbutton image='15' caption='" + sDir + L"' height='24' name='xmPanel:" + xstring(i) + L"' style='background-color:none #ceecce none #ffffff'/>";
+
+ toolStr += str;
+ if (i == 0)
+ m_Dir = sDir;
+ }
+ }
+
+ toolStr += L"</vbox>";
+ strNode = toolStr;
+ //trace(toolStr);
+ xnode anode = GetAgentNode(L"Dir");
+ xwin::SetAgentNode(anode, toolStr);
+
+ OnRetrieve();
+ return 1;
+ }
+
+ int OnInit()
+ {
+ SetAgent();
+ dw_list = GetControl(L"dw_list");
+ dw_list.openUrl(L"/sale/view/view.base/template/PrintView/listDialog");
+ dw_list.SetReadOnly(true);
+ dw_list.SetSelectionMode(4);
+ dw_list.SetColumnState(L"ID", false);
+
+ dw_doclist = GetControl(L"dw_doclist");
+ dw_doclist.openUrl(L"/sale/view/GDN/template/doclist");
+
+ xstring sUrl = GetServerUrl();
+ sUrl = sUrl.mid(0, sUrl.length() - 19);
+ m_filePath = L"/business/rpttemplate";
+ arg_param;
+ if (GetWinParam())
+ {
+ arg_param = GetArg();
+ m_EntityName = arg_param.GetArgString(L"EntityName");
+ m_EntityID = arg_param.GetArgString(L"EntityID");
+ m_EntityNo = arg_param.GetArgString(L"EntityNo");
+
+ xaserverarg arg;
+ arg.setNativePointer(xaserverarg::CreateInstance());
+ arg.AddArg(L"EntityName", m_EntityName);
+ arg.AddArg(L"EntityID", m_EntityID);
+ arg.AddArg(L"EntityNo", m_EntityNo);
+ xml x = new xml;
+
+ if (xurl::get(L"/sale/data/DocumentList3/bill/doclist", arg.GetString(), x) != 1)
+ {
+ xstring error = x.text();
+ trace(error);
+ }
+ else
+ {
+ dw_doclist.Retrieve(x);
+ dw_doclist.SetReadOnly(true);
+ }
+ }
+ else
+ {
+ arg_param.setNativePointer(arg_param.CreateInstance());
+ m_EntityName = L"SO";
+ m_EntityID = L"00000000-0000-0000-0000-000000000000";
+ }
+
+ m_Dir = L"";
+ m_filePath = m_filePath + L"/" + m_EntityName + L"/";
+ //trace(m_filePath);
+
+ CreateDir();
+
+ return 1;
+ }
+
+ int onload()
+ {
+ SetArg();
+ responsewin::onload();
+
/*if (GetParam())
{
xstring action = arg_param.GetArgString(L"action");
@@ -608,6 +524,7 @@
SwitchLayer(L"sheet2",L"frame");
}
*/
+
return 1;
}
};
\ No newline at end of file
diff --git a/jrj/project/printview/Template.Print.ViewEx.cpp b/jrj/project/printview/Template.Print.ViewEx.cpp
index 04de185..57fac78 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,45 +40,13 @@
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_EntityName;
xstring m_EntityID;
@@ -70,7 +56,6 @@
bool updated;
xstring htmlStr;
- cexcel excel;
bool editing;
xstring billName ;
@@ -82,49 +67,26 @@
//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)
- {
- 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];
+ wchar_t szFileName[255];
+ wchar_t szPath[255];
szFileName[0] = 0;
szPath[0] = 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,7 +95,7 @@
}
int nFilterIndex = 1;
- ref MYOPENFILENAMEW ofn = new MYOPENFILENAMEW;
+ OPENFILENAMEW ofn;
ofn.lStructSize = 88;//sizeof(ofn);
ofn.hwndOwner = 0;
@@ -157,14 +119,13 @@
ofn.lpTemplateName = 0;
//debugbreak();
- if(GetSaveFileName(ofn))
+ if(xfile::GetSaveFileNameW(ofn))
{
- delete ofn;
return szPath;
}
else
{
- return "";
+ return L"";
}
}
@@ -178,21 +139,19 @@
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");
+ 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))
+ 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 +159,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 +238,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 +262,7 @@
str = pre + str;
pre = L"";
- len = L"[/$element:".length();
+ len = ((xstring)L"[/$element:").length();
while(true)
{
pos = str.find(L"[/$element:");
@@ -336,16 +293,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 +313,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 +364,97 @@
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");
@@ -513,13 +466,12 @@
if(!m_dataset)
{
xml x0 = new xml;
- x0.setNativePointer(xml::CreateInstance());
- if (url::get(dataUrl,arg.GetString(),x0) != 1)
+ 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,7 +506,7 @@
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"";
@@ -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,60 @@
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;
+ IHTMLDocument3* doc = (IHTMLDocument3 * )ole_print.GetHtmlDocument();
+ IHTMLElementCollection* rows;
+ doc->getElementsByTagName((BSTR)L"tr",&rows);
+ IHTMLElementCollection* rows2;
+ 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 +652,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,7 +679,7 @@
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");
@@ -728,13 +698,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,23 +711,23 @@
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)
{
@@ -767,28 +735,28 @@
showgrid = true;
}*/
xml x1 = new xml;
- x1.setNativePointer(xml::CreateInstance());
- xstring content1 = x.GetXml();
+
+ 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");
@@ -817,22 +785,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 +818,7 @@
}
//焦点激活处理函数
- int OnSetFocus(ref TNotifyEvent evt,int p)
+ int OnSetFocus(TEvent * evt,int p)
{
//重置工具条
SetAgent();
@@ -887,17 +855,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 +874,7 @@
}
rows.Release();
doc.Release();
+#endif
/*
if(PaperPrint == false)
{
@@ -955,7 +925,7 @@
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);
@@ -963,10 +933,9 @@
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();
+ 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 +948,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.setNativePointer(xaserverarg::CreateInstance());
+ 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 +976,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");
@@ -1032,7 +1000,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 +1036,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"");
@@ -1126,37 +1093,37 @@
return 1;
alert(L"xxx");
xml x1 = new xml;
- x1.setNativePointer(xml::CreateInstance());
+
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 +1138,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 +1173,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 +1185,7 @@
else
{
- win32::SetWindowText(GetHWND(),templateName);
+ SetWindowText(GetHWND(),templateName);
OnHtml(arg);
billName = templateName;
billPre = arg.GetArgString(L"template-pre");
@@ -1232,5 +1199,6 @@
OnPrintDialog();
return 1;
}
+};
-};
\ No newline at end of file
+#define _XWIN
\ No newline at end of file
diff --git a/jrj/xframe/kobject/kexcel.hpp b/jrj/xframe/kobject/kexcel.hpp
new file mode 100644
index 0000000..9e3b3d5
--- /dev/null
+++ b/jrj/xframe/kobject/kexcel.hpp
@@ -0,0 +1,18 @@
+#pragma once
+
+#include "kcontrol.hpp"
+
+class CExcelApplication
+{
+public:
+ void Release(CExcelApplication * t); //alias "?Release@CExcelApplication@@QAEXPAV1@@Z";
+ static CExcelApplication* CreateInstance(); //alias "?CreateInstance@CExcelApplication@@SAPAV1@XZ";
+public:
+ void put_Visible(BOOL newValue); //alias "?put_Visible@CExcelApplication@@QAEXH@Z";
+ bool get_Visible(); //alias "?get_Visible@CExcelApplication@@QAEHXZ";
+ void OpenDocument(const LPTSTR FileName); //alias "?OpenDocument@CExcelApplication@@QAEXQA_W@Z";
+ void TransShape(); //alias "?TransShape@CExcelApplication@@QAEXXZ";
+ void SaveToFile(const LPTSTR FileName);// alias "?SaveToFile@CExcelApplication@@QAEXQA_W@Z";
+ void Quit(); //alias "?Quit@CExcelApplication@@QAEXXZ";
+ //LPDISPATCH GetApplication();
+};
\ No newline at end of file
diff --git a/jrj/xframe/kobject/khtml.hpp b/jrj/xframe/kobject/khtml.hpp
new file mode 100644
index 0000000..7a526c9
--- /dev/null
+++ b/jrj/xframe/kobject/khtml.hpp
@@ -0,0 +1,16 @@
+#pragma once
+
+#include "kcontrol.hpp"
+
+class IHTMLDocument2;
+namespace Hxsoft { namespace XFrame {
+class xcOleControlContain : public xcontrol
+{
+public:
+ int LoadHtml(LPTSTR); //alias "?LoadHtml@xcOleControlContain@XFrame@Hxsoft@@QAEHPA_W@Z";
+ int ExecWB(int cmdID, int cmdexecopt); //alias "?ExecWB@xcOleControlContain@XFrame@Hxsoft@@QAEHHH@Z";
+ int LoadText(LPTSTR); //alias "?LoadText@xcOleControlContain@XFrame@Hxsoft@@QAEHPA_W@Z";
+ IHTMLDocument2* GetHtmlDocument(); //alias "?GetHtmlDocument@xcOleControlContain@XFrame@Hxsoft@@QAEPAUIHTMLDocument2@@XZ" ;
+};
+
+}}
\ No newline at end of file
diff --git a/jrj/xframe/kobject/kutil.hpp b/jrj/xframe/kobject/kutil.hpp
index d35c695..3dfc512 100644
--- a/jrj/xframe/kobject/kutil.hpp
+++ b/jrj/xframe/kobject/kutil.hpp
@@ -1,9 +1,11 @@
#pragma once
#include "kbase.hpp"
-
+#ifdef _XWIN
typedef struct HICON__{}*HICON;
typedef HICON HCURSOR;
+#endif
+
namespace Hxsoft{ namespace XFrame
{
class IXFUtil
diff --git a/jrj/xframe/system/base.hpp b/jrj/xframe/system/base.hpp
index 13c9185..baf79a0 100644
--- a/jrj/xframe/system/base.hpp
+++ b/jrj/xframe/system/base.hpp
@@ -30,11 +30,14 @@
typedef const wchar_t* string;
+#ifdef _XWIN
typedef long LONG;
typedef struct HWND__ {} * HWND;
typedef struct HMENU__ {} * HMENU;
typedef struct HDC__ {} * HDC;
-typedef void * HINSTANCE;
+typedef struct HINSTANCE_ {}* HINSTANCE;
+typedef struct HMODULE_ {}* HMODULE;
+typedef short HFILE;
typedef wchar_t wchar;
typedef wchar* BSTR;
@@ -105,6 +108,8 @@
LONG cy;
} SIZE, *PSIZE, *LPSIZE;
+#endif
+
diff --git a/jrj/xframe/vbusiness/vframe/frame.vframe.vbusiness.hpp b/jrj/xframe/vbusiness/vframe/frame.vframe.vbusiness.hpp
index 595ffb9..dc9398a 100644
--- a/jrj/xframe/vbusiness/vframe/frame.vframe.vbusiness.hpp
+++ b/jrj/xframe/vbusiness/vframe/frame.vframe.vbusiness.hpp
@@ -483,13 +483,13 @@
if (content ==L"") return 1;
if (content.find(L"update.modify", 0) > 0 || content.find(L"update.delete", 0) > 0)
{
- int MB_YESNOCANCEL = 3;
- int IDYES = 6;
- int IDNO = 7;
- int IDCANCEL = 2;
- int re = MessageBoxW(GetHWND(),L"数据已经修改,是否保存?",L"提示:", MB_YESNOCANCEL);
- if (re == IDCANCEL) return -1;
- if (re == IDNO) return 1;
+ int MB_YESNOCANCEL_ = 3;
+ int IDYES_ = 6;
+ int IDNO_ = 7;
+ int IDCANCEL_ = 2;
+ int re = MessageBoxW(GetHWND(),L"数据已经修改,是否保存?",L"提示:", MB_YESNOCANCEL_);
+ if (re == IDCANCEL_) return -1;
+ if (re == IDNO_) return 1;
if (DoUpdate(false) == 1) return 1;
return -1;
}
diff --git a/jrj/xframe/vbusiness/vframe/listex.vframe.vbusiness.hpp b/jrj/xframe/vbusiness/vframe/listex.vframe.vbusiness.hpp
index f123891..6ebcee1 100644
--- a/jrj/xframe/vbusiness/vframe/listex.vframe.vbusiness.hpp
+++ b/jrj/xframe/vbusiness/vframe/listex.vframe.vbusiness.hpp
@@ -268,15 +268,15 @@
}
else if (str == L"userid")
{
- ret = publiccode::GetUser().id;
+ ret = publiccode::GetUser()->id;
}
else if (str == L"userno")
{
- ret = publiccode::GetUser().no;
+ ret = publiccode::GetUser()->no;
}
else if (str == L"username")
{
- ret = publiccode::GetUser().name;
+ ret = publiccode::GetUser()->name;
}
return ret;
}
diff --git a/jrj/xframe/vbusiness/vframe/responsewin.vframe.vbusiness.hpp b/jrj/xframe/vbusiness/vframe/responsewin.vframe.vbusiness.hpp
index e69de29..0611dbe 100644
--- a/jrj/xframe/vbusiness/vframe/responsewin.vframe.vbusiness.hpp
+++ b/jrj/xframe/vbusiness/vframe/responsewin.vframe.vbusiness.hpp
@@ -0,0 +1,14 @@
+#pragma once
+
+#include <wobject/xwin.hpp>
+#include <wobject/xurl.hpp>
+#include <wobject/xapp.hpp>
+class responsewin : public xwin
+{
+public:
+ responsewin(void* impl, HWND hWnd) :xwin(impl, hWnd) {}
+ int onload()
+ {
+ return 1;
+ }
+};
\ No newline at end of file
diff --git a/jrj/xframe/vbusiness/vutil/publiccode.vutil.vbusiness.hpp b/jrj/xframe/vbusiness/vutil/publiccode.vutil.vbusiness.hpp
index c6294e3..262ab32 100644
--- a/jrj/xframe/vbusiness/vutil/publiccode.vutil.vbusiness.hpp
+++ b/jrj/xframe/vbusiness/vutil/publiccode.vutil.vbusiness.hpp
@@ -46,7 +46,7 @@
}
//取当前用户
- static PUser GetUser(xstring id)
+ static PUser* GetUser(xstring id)
{
string userno = xaserver::GetUserNo();
//trace(userno);
@@ -89,9 +89,9 @@
if (e.selectSingleNode(L"电话")) p.tel = e.selectSingleNode(L"电话").text();
}
- return p;
+ return &p;
}
- static PUser GetUser()
+ static PUser* GetUser()
{
return GetUser(L"");
}
diff --git a/jrj/xframe/win32/win.hpp b/jrj/xframe/win32/win.hpp
index 0b12726..46f784c 100644
--- a/jrj/xframe/win32/win.hpp
+++ b/jrj/xframe/win32/win.hpp
@@ -2,6 +2,7 @@
#include "system/base.hpp"
+#ifdef _XWIN
typedef struct _GUID {
unsigned long Data1;
unsigned short Data2;
@@ -32,9 +33,9 @@
extern "C"
{
void WINAPI SysFreeString(BSTR str);//OleAut32.dll
- void * WINAPI LoadLibraryW(const wchar_t* lpText);
+ HMODULE WINAPI LoadLibraryW(const wchar_t* lpText);
bool WINAPI FreeLibrary(void * hModule);
- void * WINAPI GetProcAddressW(void* hModule, const char* lpText);
+ void * WINAPI GetProcAddressW(HMODULE hModule, const char* lpText);
LPARAM WINAPI GetPropW(HWND hWnd,string lpString);
@@ -104,8 +105,8 @@
HWND WINAPI FindWindowW(string lpClassName, string lpWindowName);//native from "user32.dll" alias "FindWindowW";
int WINAPI GetTempPathW(int NAME_LEN,string & OutPath) ;//native from "kernel32.dll" alias "GetTempPathW";
- int WINAPI GetModuleHandleW(string lpModuleName) ;//native from "kernel32.dll" alias "GetModuleHandleW";
- int WINAPI GetModuleFileNameW(int hModule ,string lpFileName, int nSize);//native from "kernel32.dll" alias "GetModuleFileNameW";
+ HMODULE WINAPI GetModuleHandleW(string lpModuleName) ;//native from "kernel32.dll" alias "GetModuleHandleW";
+ int WINAPI GetModuleFileNameW(HMODULE hModule ,string lpFileName, int nSize);//native from "kernel32.dll" alias "GetModuleFileNameW";
void WINAPI GetLocalTime(SYSTEMTIME& lpSystemTime) ;//native from "kernel32.dll" alias "GetLocalTime";
int WINAPI PathRemoveFileSpecW(string lpFileName);// native from "shlwapi.dll" alias "PathRemoveFileSpecW";
@@ -119,6 +120,7 @@
#define PathRemoveFileSpec PathRemoveFileSpecW
#define SetWindowText SetWindowTextW
#define GetWindowText GetWindowTextW
+#endif
#if 0
namespace win32
@@ -195,7 +197,7 @@
HWND FindWindowW(string lpClassName, string lpWindowName);//native from "user32.dll" alias "FindWindowW";
int GetTempPathW(int NAME_LEN,string & OutPath) ;//native from "kernel32.dll" alias "GetTempPathW";
- int GetModuleHandleW(string lpModuleName) ;//native from "kernel32.dll" alias "GetModuleHandleW";
+ HMODULE GetModuleHandleW(string lpModuleName) ;//native from "kernel32.dll" alias "GetModuleHandleW";
int GetModuleFileName(int hModule ,string & lpFileName ,int nSize ) ;//native from "kernel32.dll" alias "GetModuleFileName";
void GetLocalTime(SYSTEMTIME& lpSystemTime) ;//native from "kernel32.dll" alias "GetLocalTime";
diff --git a/jrj/xframe/win32/xfile.hpp b/jrj/xframe/win32/xfile.hpp
index 37e1bb1..fc74fd5 100644
--- a/jrj/xframe/win32/xfile.hpp
+++ b/jrj/xframe/win32/xfile.hpp
@@ -3,6 +3,7 @@
#include "system/base.hpp"
#include "win.hpp"
+#if _XWIN
#define CALLBACK __stdcall
#define MAX_PATH 260
@@ -72,81 +73,83 @@
} WIN32_FIND_DATAW;
-
extern "C"
{
- namespace win32
- {
- bool WINAPI GetSaveFileNameW(OPENFILENAMEW&);//native from "comdlg32.dll" alias "GetSaveFileNameW";
- bool WINAPI GetOpenFileNameW(OPENFILENAMEW&);//native from "comdlg32.dll" alias "GetOpenFileNameW";
+ //namespace win32
+ //{
+ bool WINAPI GetSaveFileNameW(OPENFILENAMEW*);//native from "comdlg32.dll" alias "GetSaveFileNameW";
+ bool WINAPI GetOpenFileNameW(OPENFILENAMEW*);//native from "comdlg32.dll" alias "GetOpenFileNameW";
- HANDLE WINAPI FindFirstFileW(const WCHAR* lpFileName, WIN32_FIND_DATAW& lpFindFileData); //native from "kernel32.dll" alias "FindFirstFileW"; //根据文件名查找文件,一旦不再需要,应该用FindClose函数关闭这个句柄
- HANDLE WINAPI FindNextFileW(HANDLE hFindFile, WIN32_FIND_DATAW& lpFindFileData); //native from "kernel32.dll" alias "FindNextFileW"; //继续查找FindFirstFile函数搜索后的文件 ,HANDLE hFindFile搜索的文件句柄 函数执行的时候搜索的是此句柄的下一文件。非零表示成功,零表示失败。如不再有与指定条件相符的文件,会将GetLastError设置成ERROR_NO_MORE_FILES
+ HANDLE WINAPI FindFirstFileW(const WCHAR* lpFileName, WIN32_FIND_DATAW* lpFindFileData); //native from "kernel32.dll" alias "FindFirstFileW"; //根据文件名查找文件,一旦不再需要,应该用FindClose函数关闭这个句柄
+ BOOL WINAPI FindNextFileW(HANDLE hFindFile, WIN32_FIND_DATAW* lpFindFileData); //native from "kernel32.dll" alias "FindNextFileW"; //继续查找FindFirstFile函数搜索后的文件 ,HANDLE hFindFile搜索的文件句柄 函数执行的时候搜索的是此句柄的下一文件。非零表示成功,零表示失败。如不再有与指定条件相符的文件,会将GetLastError设置成ERROR_NO_MORE_FILES
bool WINAPI FindClose(HANDLE hFindFile); //native from "kernel32.dll" alias "FindClose"; //关闭由FindFirstFile函数创建的一个搜索句柄。返回非零表示成功,零表示失败。会设置GetLastError
- int WINAPI CreateFileW(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile); //native from "kernel32.dll" alias "CreateFileW";
- int WINAPI OpenFile(LPCSTR lpFileName, OFSTRUCT lpReOpenBuff, UINT wStyle); //native from "kernel32.dll" alias "OpenFile";
+ HANDLE WINAPI CreateFileW(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile); //native from "kernel32.dll" alias "CreateFileW";
+ HFILE WINAPI OpenFile(LPCSTR lpFileName, OFSTRUCT* lpReOpenBuff, UINT wStyle); //native from "kernel32.dll" alias "OpenFile";
int WINAPI SetFilePointer(HANDLE hFile, LONG lDistanceToMove, LONG* lpDistanceToMoveHigh, DWORD dwMoveMethod); //native from "kernel32.dll" alias "SetFilePointer";
int WINAPI ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped); //native from "kernel32.dll" alias "ReadFile";
int WINAPI WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped); //native from "kernel32.dll" alias "ReadFile";
int WINAPI CloseHandle(HANDLE hFile); //native from "kernel32.dll" alias "CloseHandle";
- int WINAPI GetFileSize(HANDLE hFile, int lpFileSizeHigh); //native from "kernel32.dll" alias "GetFileSize";
- }
+ int WINAPI GetFileSize(HANDLE hFile, DWORD* lpFileSizeHigh); //native from "kernel32.dll" alias "GetFileSize";
+ //}
}
+#endif
+
class xfile
{
public:
- static bool WINAPI GetSaveFileName(OPENFILENAMEW& OpenFileName)
+ static bool GetSaveFileName(OPENFILENAMEW& OpenFileName)
{
- return win32::GetSaveFileNameW(OpenFileName);
+ return ::GetSaveFileNameW(&OpenFileName);
}
- static bool WINAPI GetOpenFileName(OPENFILENAMEW& SaveFileName)
+ static bool GetOpenFileName(OPENFILENAMEW& SaveFileName)
{
- return win32::GetOpenFileNameW(SaveFileName);
+ return ::GetOpenFileNameW(&SaveFileName);
}
- static HANDLE WINAPI FindFirstFile(const WCHAR* lpFileName, WIN32_FIND_DATAW& lpFindFileData)
+ static HANDLE FindFirstFile(const WCHAR* lpFileName, WIN32_FIND_DATAW& lpFindFileData)
{
- return win32::FindFirstFileW(lpFileName, lpFindFileData);
+ return ::FindFirstFileW(lpFileName, &lpFindFileData);
}
- static HANDLE WINAPI FindNextFile(HANDLE hFindFile, WIN32_FIND_DATAW& lpFindFileData)
+ static BOOL FindNextFile(HANDLE hFindFile, WIN32_FIND_DATAW& lpFindFileData)
{
- return win32::FindNextFileW(hFindFile, lpFindFileData);
+ return ::FindNextFileW(hFindFile, &lpFindFileData);
}
- static bool WINAPI FindClose(HANDLE hFindFile)
+ static bool FindClose(HANDLE hFindFile)
{
- return win32::FindClose(hFindFile);
+ return ::FindClose(hFindFile);
}
- static int WINAPI CreateFile(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
+ static HANDLE CreateFile(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
{
- return win32::CreateFileW(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
+ return ::CreateFileW(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
}
- static int WINAPI OpenFile(LPCSTR lpFileName, OFSTRUCT lpReOpenBuff, UINT wStyle)
+ static HFILE OpenFile(LPCSTR lpFileName, OFSTRUCT& lpReOpenBuff, UINT wStyle)
{
- return win32::OpenFile(lpFileName, lpReOpenBuff, wStyle);
+ return ::OpenFile(lpFileName, &lpReOpenBuff, wStyle);
}
- static int WINAPI SetFilePointer(HANDLE hFile, LONG lDistanceToMove, LONG* lpDistanceToMoveHigh, DWORD dwMoveMethod)
+ static int SetFilePointer(HANDLE hFile, LONG lDistanceToMove, LONG* lpDistanceToMoveHigh, DWORD dwMoveMethod)
{
- return win32::SetFilePointer(hFile, lDistanceToMove, lpDistanceToMoveHigh, dwMoveMethod);
+ return ::SetFilePointer(hFile, lDistanceToMove, lpDistanceToMoveHigh, dwMoveMethod);
}
- static int WINAPI ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped)
+ static int ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped)
{
- return win32::ReadFile(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped);
+ return ::ReadFile(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped);
}
- static int WINAPI WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped)
+ static int WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped)
{
- return win32::WriteFile(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped);
+ return ::WriteFile(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped);
}
- static int WINAPI CloseHandle(HANDLE hFile)
+ static int CloseHandle(HANDLE hFile)
{
- return win32::CloseHandle(hFile);
+ return ::CloseHandle(hFile);
}
- static int WINAPI GetFileSize(HANDLE hFile, int lpFileSizeHigh)
+ static int GetFileSize(HANDLE hFile, DWORD& lpFileSizeHigh)
{
- return win32::GetFileSize(hFile, lpFileSizeHigh);
+ return ::GetFileSize(hFile, &lpFileSizeHigh);
}
};
+
diff --git a/jrj/xframe/wobject/xbase.hpp b/jrj/xframe/wobject/xbase.hpp
index 1fc14ab..7dd81c3 100644
--- a/jrj/xframe/wobject/xbase.hpp
+++ b/jrj/xframe/wobject/xbase.hpp
@@ -38,7 +38,13 @@
NMHDR* pNMHDR;
};
*/
+struct xstruct
+{
+};
+
+
+#ifdef _XWIN
typedef unsigned int UINT;
typedef struct NMHDR
@@ -48,67 +54,9 @@
int code;
} * LPNMHDR;
-typedef struct tagEvent
-{
- HWND hWnd;
- DWORD message;
- WPARAM wParam;
- LPARAM lParam;
- DWORD time;
- POINT pt;
- union
- {
- struct {
- int wmId ;
- int wmEvent ;
- HWND hCtrl ;
- }command;
- struct
- {
- LPTSTR pStrID;
- void * pCmdFrom;
- }xcommand;
- struct {
- UINT nFlags;
- POINT point;
- } mouse;
- struct {
- UINT nFlags;
- POINT point;
- } size;
- struct {
- UINT nChar;
- UINT nRepCnt;
- UINT nFlags;
- }key;
- struct {
- HDC hdc;
- }paint;
- struct {
- HWND hWnd ;
- UINT nHitTest;
- UINT mouseMsg;
- }cursor;
- struct {
- UINT nSBCode;
- UINT nPos;
- HWND hWndCtl;
- }scroll;
- struct {
- POINT point;
- UINT_PTR fwKeys;
- short zDelta;
- }wheel;
- struct {
- int idCtrl;
- LPNMHDR pnmh;
- }notify;
- };
- void * pSrcObject;
- LPARAM dwRet;
-} TEvent;
-typedef TEvent TNotifyEvent;
+
+//typedef TEvent TNotifyEvent;
/*
struct TEvent
{
@@ -189,27 +137,6 @@
};
*/
-struct IMGNNMHDR : public NMHDR
-{
- string path;
- string text;
- int nIndex;
-};
-struct PAGENMHDR : public NMHDR
-{
- int max;
- int cur;
-};
-struct LYSNMHDR : public NMHDR
-{
- int nSheet;
-};
-
-struct xstruct
-{
-};
-
-
typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
@@ -234,6 +161,24 @@
WORD Reserved2;
CHAR szPathName[OFS_MAXPATHNAME];
} OFSTRUCT;
+
+#endif
+
+struct IMGNNMHDR : public NMHDR
+{
+ string path;
+ string text;
+ int nIndex;
+};
+struct PAGENMHDR : public NMHDR
+{
+ int max;
+ int cur;
+};
+struct LYSNMHDR : public NMHDR
+{
+ int nSheet;
+};
struct CELLNMHDR : public NMHDR
{
@@ -274,4 +219,66 @@
LPTSTR pStr;
};
+typedef struct tagEvent
+{
+ HWND hWnd;
+ DWORD message;
+ WPARAM wParam;
+ LPARAM lParam;
+ DWORD time;
+ POINT pt;
+ union
+ {
+ struct {
+ int wmId;
+ int wmEvent;
+ HWND hCtrl;
+ }command;
+ struct
+ {
+ LPTSTR pStrID;
+ void* pCmdFrom;
+ }xcommand;
+ struct {
+ UINT nFlags;
+ POINT point;
+ } mouse;
+ struct {
+ UINT nFlags;
+ POINT point;
+ } size;
+ struct {
+ UINT nChar;
+ UINT nRepCnt;
+ UINT nFlags;
+ }key;
+ struct {
+ HDC hdc;
+ }paint;
+ struct {
+ HWND hWnd;
+ UINT nHitTest;
+ UINT mouseMsg;
+ }cursor;
+ struct {
+ UINT nSBCode;
+ UINT nPos;
+ HWND hWndCtl;
+ }scroll;
+ struct {
+ POINT point;
+ UINT_PTR fwKeys;
+ short zDelta;
+ }wheel;
+ struct {
+ int idCtrl;
+ LPNMHDR pnmh;
+ }notify;
+ };
+ void* pSrcObject;
+ LPARAM dwRet;
+} TEvent;
+typedef TEvent TNotifyEvent;
+
+
//typedef int FEvent(TEvent * evt, int p);
\ No newline at end of file
diff --git a/jrj/xframe/wobject/xcontrol.hpp b/jrj/xframe/wobject/xcontrol.hpp
index 04dd7fe..c001204 100644
--- a/jrj/xframe/wobject/xcontrol.hpp
+++ b/jrj/xframe/wobject/xcontrol.hpp
@@ -24,8 +24,8 @@
int SetReadOnlyEx(const bool )
{
- int EM_SETREADONLY = 0x00CF;
- return SendMessage(GetHWND(),EM_SETREADONLY,0,0);
+ int EM_SETREADONLY_ = 0x00CF;
+ return SendMessage(GetHWND(),EM_SETREADONLY_,0,0);
}
int EnableWindow(bool abled)
@@ -35,14 +35,14 @@
int GetTextLength()
{
- int WM_GETTEXTLENGTH = 0x000E;
+ int WM_GETTEXTLENGTH_ = 0x000E;
int nLen = ::GetWindowTextLengthW(GetHWND());
return nLen;
}
xstring GetText()
{
- int WM_GETTEXT = 0x000D;
+ int WM_GETTEXT_ = 0x000D;
int nLen = GetTextLength();
xstring xs;
@@ -52,7 +52,7 @@
int SetText(string value)
{
- int WM_SETTEXT = 0x000C;
+ int WM_SETTEXT_ = 0x000C;
::SetWindowTextW(GetHWND(),value);
return 1;
}
diff --git a/jrj/xframe/wobject/xobject.hpp b/jrj/xframe/wobject/xobject.hpp
index 734f70e..575cbbf 100644
--- a/jrj/xframe/wobject/xobject.hpp
+++ b/jrj/xframe/wobject/xobject.hpp
@@ -5,11 +5,4 @@
class xobject
{
public:
- void * GetFuncPtr(const wchar_t* dll, const char * name)
- {
- void * fnAttachEvent = nullptr;
- void * hModule = LoadLibraryW(dll);
- if(hModule)fnAttachEvent = GetProcAddressW(hModule,name);
- return fnAttachEvent;
- }
};
\ No newline at end of file
diff --git a/jrj/xframe/wobject/xutil.hpp b/jrj/xframe/wobject/xutil.hpp
index b7a6e4d..5a702e7 100644
--- a/jrj/xframe/wobject/xutil.hpp
+++ b/jrj/xframe/wobject/xutil.hpp
@@ -6,6 +6,9 @@
#include "win32/win.hpp"
using kutil = Hxsoft::XFrame::IXFUtil;
+extern "C" {
+ void* WINAPI GetProcAddressW(HMODULE hModule, const char* lpText);
+}
class xutil
{
public:
@@ -34,9 +37,9 @@
return kutil::CacheUrlData((LPWSTR)url,(LPWSTR)data);
}
- static int SaveToFile(const LPTSTR pFile,const LPTSTR pData,const LPTSTR ext, const LPTSTR pFilter, const LPTSTR pFileName=NULL)
+ static int SaveToFile(xstring pFile,xstring pData,xstring ext, xstring pFilter, const LPTSTR pFileName=NULL)
{
- return kutil::SaveToFile((LPWSTR)pFile,(LPWSTR)pData,(LPWSTR)ext,(LPWSTR)pFileName);
+ return kutil::SaveToFile((LPWSTR)pFile.c_str(), (LPWSTR)pData.c_str(), (LPWSTR)ext.c_str(), (LPWSTR)pFileName);
}
static LPWSTR MD5(const wchar_t* pStr)
{
@@ -59,7 +62,7 @@
static xstring GetModulePath()
{
wchar_t buf[255];
- GetModuleFileName(0, buf, 255);
+ ::GetModuleFileNameW(nullptr, buf, 255);
PathRemoveFileSpec(buf);
return xstring(buf);
}
@@ -71,4 +74,11 @@
return tmp;
}
+ static void* GetFuncPtr(const wchar_t* dll, const char* name)
+ {
+ void* fnAttachEvent = nullptr;
+ HMODULE hModule = LoadLibraryW(dll);
+ if (hModule)fnAttachEvent = ::GetProcAddressW(hModule, name);
+ return fnAttachEvent;
+ }
};
\ No newline at end of file
diff --git a/jrj/xframe/wobject/xwin.hpp b/jrj/xframe/wobject/xwin.hpp
index 1afa2b1..618b738 100644
--- a/jrj/xframe/wobject/xwin.hpp
+++ b/jrj/xframe/wobject/xwin.hpp
@@ -11,6 +11,16 @@
using kcontrol = Hxsoft::XFrame::IXFControl;
using knode = Hxsoft::XFrame::IXNode;
+#define DeclWinObject_(ty,pty) class __declspec(dllexport) ty : public pty
+#define CreateWinObject_(ty,pty) \
+public:\
+ ty(void* impl,HWND hWnd):pty(impl,hWnd){}\
+public:\
+ ty * CreateInstance(void* impl,void* hWnd)\
+ {\
+ return new ty(impl,(HWND)hWnd);\
+ }
+
class xwin: public xview
{
public:
@@ -69,16 +79,16 @@
xwin* OpenWindow(string url)
{
- int WS_OVERLAPPEDWINDOW = 0x00cf0000 ;
- kwin* w = kwin::OpenWindow(GetServerUrl(),url,getKWin(),0/*param*/,0/*CmdWind*/,0,WS_OVERLAPPEDWINDOW,0);
+ int WS_OVERLAPPEDWINDOW_ = 0x00cf0000 ;
+ kwin* w = kwin::OpenWindow(GetServerUrl(),url,getKWin(),0/*param*/,0/*CmdWind*/,0,WS_OVERLAPPEDWINDOW_,0);
if(!w) return 0; //response
return (xwin*)GetPropW(w->GetHWND(),L"AttachObject");
}
xwin* OpenWindow(string url,LPARAM p)
{
- int WS_OVERLAPPEDWINDOW = 0x00cf0000;
- kwin* w= kwin::OpenWindow(GetServerUrl(),url,getKWin(),p,0/*CmdWind*/,0/*dwStyleEx*/,WS_OVERLAPPEDWINDOW,0);
+ int WS_OVERLAPPEDWINDOW_ = 0x00cf0000;
+ kwin* w= kwin::OpenWindow(GetServerUrl(),url,getKWin(),p,0/*CmdWind*/,0/*dwStyleEx*/,WS_OVERLAPPEDWINDOW_,0);
if(!w) return 0; //response
return (xwin*)GetPropW(w->GetHWND(),L"AttachObject");
}
diff --git a/jrj/xframe/xcontrol/xcombobox.hpp b/jrj/xframe/xcontrol/xcombobox.hpp
index 6479768..fc2f128 100644
--- a/jrj/xframe/xcontrol/xcombobox.hpp
+++ b/jrj/xframe/xcontrol/xcombobox.hpp
@@ -18,133 +18,133 @@
public:
int GetCurSel()
{
- int CB_GETCURSEL = 0x0147;
- return SendMessage(GetHWND(),CB_GETCURSEL,0,0);
+ int CB_GETCURSEL_ = 0x0147;
+ return SendMessage(GetHWND(),CB_GETCURSEL_,0,0);
}
int SetCurSel( int nIndex)
{
- int CB_SETCURSEL = 0x014E;
- return SendMessage(GetHWND(),CB_SETCURSEL,nIndex,0);
+ int CB_SETCURSEL_ = 0x014E;
+ return SendMessage(GetHWND(),CB_SETCURSEL_,nIndex,0);
}
int GetCount()
{
- int CB_GETCOUNT = 0x0146;
- return SendMessage(GetHWND(),CB_GETCOUNT,0,0);
+ int CB_GETCOUNT_ = 0x0146;
+ return SendMessage(GetHWND(),CB_GETCOUNT_,0,0);
}
string GetLBText(int nIndex)
{
- int CB_GETLBTEXT = 0x0148;
- int CB_GETLBTEXTLEN = 0x0149;
- int nLen = SendMessage(GetHWND(),CB_GETLBTEXTLEN ,nIndex,0);
+ int CB_GETLBTEXT_ = 0x0148;
+ int CB_GETLBTEXTLEN_ = 0x0149;
+ int nLen = SendMessage(GetHWND(),CB_GETLBTEXTLEN_ ,nIndex,0);
string str = new wchar_t[nLen+1];
- SendMessage(GetHWND(),CB_GETLBTEXT ,nIndex, (LPARAM)str);
+ SendMessage(GetHWND(),CB_GETLBTEXT_ ,nIndex, (LPARAM)str);
return str;
}
string GetLBText()
{
- int CB_GETLBTEXT = 0x0148;
- int CB_GETLBTEXTLEN = 0x0149;
+ int CB_GETLBTEXT_ = 0x0148;
+ int CB_GETLBTEXTLEN_ = 0x0149;
int nIndex = GetCurSel();
- int nLen = SendMessage(GetHWND(),CB_GETLBTEXTLEN ,nIndex,0);
+ int nLen = SendMessage(GetHWND(),CB_GETLBTEXTLEN_ ,nIndex,0);
string str = new wchar_t[nLen+1];
- SendMessage(GetHWND(),CB_GETLBTEXT ,nIndex, (LPARAM)str);
+ SendMessage(GetHWND(),CB_GETLBTEXT_ ,nIndex, (LPARAM)str);
return str;
}
int SetItemIndex(int nIndex)
{
- int CB_SETCURSEL = 0x014E;
- return SendMessage(GetHWND(),CB_SETCURSEL ,nIndex, 0);
+ int CB_SETCURSEL_ = 0x014E;
+ return SendMessage(GetHWND(),CB_SETCURSEL_ ,nIndex, 0);
}
int AddItem(string str)
{
- int CB_ADDSTRING = 0x0143;
- return SendMessage(GetHWND(),CB_ADDSTRING ,(WPARAM)0,(LPARAM)str);
+ int CB_ADDSTRING_ = 0x0143;
+ return SendMessage(GetHWND(),CB_ADDSTRING_ ,(WPARAM)0,(LPARAM)str);
}
int FindString(string str)
{
- int CB_FINDSTRINGEXACT = 0x0158;
- return SendMessage(GetHWND(),CB_FINDSTRINGEXACT,0,(LPARAM)str);
+ int CB_FINDSTRINGEXACT_ = 0x0158;
+ return SendMessage(GetHWND(),CB_FINDSTRINGEXACT_,0,(LPARAM)str);
}
int DeleteItem(int nIndex)
{
- int CB_DELETESTRING = 0x0144;
- return SendMessage(GetHWND(),CB_DELETESTRING,nIndex,0);
+ int CB_DELETESTRING_ = 0x0144;
+ return SendMessage(GetHWND(),CB_DELETESTRING_,nIndex,0);
}
int SelectString( int nIndex,string str)
{
- int CB_SELECTSTRING = 0x014D;
- return SendMessage(GetHWND(),CB_SELECTSTRING,nIndex,(LPARAM)str);
+ int CB_SELECTSTRING_ = 0x014D;
+ return SendMessage(GetHWND(),CB_SELECTSTRING_,nIndex,(LPARAM)str);
}
int InsertString( int nIndex,string str)
{
- int CB_INSERTSTRING = 0x014A;
- return SendMessage(GetHWND(),CB_INSERTSTRING,nIndex,(LPARAM)str);
+ int CB_INSERTSTRING_ = 0x014A;
+ return SendMessage(GetHWND(),CB_INSERTSTRING_,nIndex,(LPARAM)str);
}
int InsertString( string str)
{
- int CB_INSERTSTRING = 0x014A;
- return SendMessage(GetHWND(),CB_INSERTSTRING,0,(LPARAM)str);
+ int CB_INSERTSTRING_ = 0x014A;
+ return SendMessage(GetHWND(),CB_INSERTSTRING_,0,(LPARAM)str);
}
int ResetContent()
{
- int CB_RESETCONTENT = 0x014B;
- return SendMessage(GetHWND(),CB_RESETCONTENT,0,0);
+ int CB_RESETCONTENT_ = 0x014B;
+ return SendMessage(GetHWND(),CB_RESETCONTENT_,0,0);
}
int SetItemData(int nIndex, LPARAM p)
{
- int CB_SETITEMDATA = 0x0151;
- return SendMessage(GetHWND(),CB_SETITEMDATA,nIndex,p);
+ int CB_SETITEMDATA_ = 0x0151;
+ return SendMessage(GetHWND(),CB_SETITEMDATA_,nIndex,p);
}
int GetItemData()
{
- int CB_GETITEMDATA = 0x0150;
+ int CB_GETITEMDATA_ = 0x0150;
int nIndex = GetCurSel();
if(nIndex < 0)
return -1;
else
- return SendMessage(GetHWND(),CB_GETITEMDATA,nIndex,0);
+ return SendMessage(GetHWND(),CB_GETITEMDATA_,nIndex,0);
}
LPARAM GetItemData(int nIndex)
{
- int CB_GETITEMDATA = 0x0150;
- return SendMessage(GetHWND(),CB_GETITEMDATA,nIndex,0);
+ int CB_GETITEMDATA_ = 0x0150;
+ return SendMessage(GetHWND(),CB_GETITEMDATA_,nIndex,0);
}
int AddItem(string str, int p)
{
- int CB_ADDSTRING = 0x0143;
- int h = SendMessage(GetHWND(),CB_ADDSTRING ,0,(LPARAM)str);
+ int CB_ADDSTRING_ = 0x0143;
+ int h = SendMessage(GetHWND(),CB_ADDSTRING_ ,0,(LPARAM)str);
SetItemData( h, p);
return h;
}
int AddItem(string str, string p)
{
- int CB_ADDSTRING = 0x0143;
- int h = SendMessage(GetHWND(),CB_ADDSTRING ,0,(LPARAM)str);
+ int CB_ADDSTRING_ = 0x0143;
+ int h = SendMessage(GetHWND(),CB_ADDSTRING_ ,0,(LPARAM)str);
SetItemData( h, (LPARAM)p);
return h;
}
int InsertString( string str, LPARAM p)
{
- int CB_INSERTSTRING = 0x014A;
- int h = SendMessage(GetHWND(),CB_INSERTSTRING,0,(LPARAM)str);
+ int CB_INSERTSTRING_ = 0x014A;
+ int h = SendMessage(GetHWND(),CB_INSERTSTRING_,0,(LPARAM)str);
SetItemData( h, p);
return h;
@@ -154,133 +154,133 @@
/////
static int GetCurSel(HWND hWnd)
{
- int CB_GETCURSEL = 0x0147;
- return SendMessage(hWnd, CB_GETCURSEL, 0, 0);
+ int CB_GETCURSEL_ = 0x0147;
+ return SendMessage(hWnd, CB_GETCURSEL_, 0, 0);
}
static int SetCurSel(HWND hWnd,int nIndex)
{
- int CB_SETCURSEL = 0x014E;
- return SendMessage(hWnd, CB_SETCURSEL, nIndex, 0);
+ int CB_SETCURSEL_ = 0x014E;
+ return SendMessage(hWnd, CB_SETCURSEL_, nIndex, 0);
}
static int GetCount(HWND hWnd)
{
- int CB_GETCOUNT = 0x0146;
- return SendMessage(hWnd, CB_GETCOUNT, 0, 0);
+ int CB_GETCOUNT_ = 0x0146;
+ return SendMessage(hWnd, CB_GETCOUNT_, 0, 0);
}
static string GetLBText(HWND hWnd,int nIndex)
{
- int CB_GETLBTEXT = 0x0148;
- int CB_GETLBTEXTLEN = 0x0149;
- int nLen = SendMessage(hWnd, CB_GETLBTEXTLEN, nIndex, 0);
+ int CB_GETLBTEXT_ = 0x0148;
+ int CB_GETLBTEXTLEN_ = 0x0149;
+ int nLen = SendMessage(hWnd, CB_GETLBTEXTLEN_, nIndex, 0);
string str = new wchar_t[nLen + 1];
- SendMessage(hWnd, CB_GETLBTEXT, nIndex, (LPARAM)str);
+ SendMessage(hWnd, CB_GETLBTEXT_, nIndex, (LPARAM)str);
return str;
}
static string GetLBText(HWND hWnd)
{
- int CB_GETLBTEXT = 0x0148;
- int CB_GETLBTEXTLEN = 0x0149;
+ int CB_GETLBTEXT_ = 0x0148;
+ int CB_GETLBTEXTLEN_ = 0x0149;
int nIndex = GetCurSel(hWnd);
- int nLen = SendMessage(hWnd, CB_GETLBTEXTLEN, nIndex, 0);
+ int nLen = SendMessage(hWnd, CB_GETLBTEXTLEN_, nIndex, 0);
string str = new wchar_t[nLen + 1];
- SendMessage(hWnd, CB_GETLBTEXT, nIndex, (LPARAM)str);
+ SendMessage(hWnd, CB_GETLBTEXT_, nIndex, (LPARAM)str);
return str;
}
static int SetItemIndex(HWND hWnd,int nIndex)
{
- int CB_SETCURSEL = 0x014E;
- return SendMessage(hWnd, CB_SETCURSEL, nIndex, 0);
+ int CB_SETCURSEL_ = 0x014E;
+ return SendMessage(hWnd, CB_SETCURSEL_, nIndex, 0);
}
static int AddItem(HWND hWnd,string str)
{
- int CB_ADDSTRING = 0x0143;
- return SendMessage(hWnd, CB_ADDSTRING, (WPARAM)0, (LPARAM)str);
+ int CB_ADDSTRING_ = 0x0143;
+ return SendMessage(hWnd, CB_ADDSTRING_, (WPARAM)0, (LPARAM)str);
}
static int FindString(HWND hWnd,string str)
{
- int CB_FINDSTRINGEXACT = 0x0158;
- return SendMessage(hWnd, CB_FINDSTRINGEXACT, 0, (LPARAM)str);
+ int CB_FINDSTRINGEXACT_ = 0x0158;
+ return SendMessage(hWnd, CB_FINDSTRINGEXACT_, 0, (LPARAM)str);
}
static int DeleteItem(HWND hWnd,int nIndex)
{
- int CB_DELETESTRING = 0x0144;
- return SendMessage(hWnd, CB_DELETESTRING, nIndex, 0);
+ int CB_DELETESTRING_ = 0x0144;
+ return SendMessage(hWnd, CB_DELETESTRING_, nIndex, 0);
}
static int SelectString(HWND hWnd,int nIndex, string str)
{
- int CB_SELECTSTRING = 0x014D;
- return SendMessage(hWnd, CB_SELECTSTRING, nIndex, (LPARAM)str);
+ int CB_SELECTSTRING_ = 0x014D;
+ return SendMessage(hWnd, CB_SELECTSTRING_, nIndex, (LPARAM)str);
}
static int InsertString(HWND hWnd,int nIndex, string str)
{
- int CB_INSERTSTRING = 0x014A;
- return SendMessage(hWnd, CB_INSERTSTRING, nIndex, (LPARAM)str);
+ int CB_INSERTSTRING_ = 0x014A;
+ return SendMessage(hWnd, CB_INSERTSTRING_, nIndex, (LPARAM)str);
}
static int InsertString(HWND hWnd,string str)
{
- int CB_INSERTSTRING = 0x014A;
- return SendMessage(hWnd, CB_INSERTSTRING, 0, (LPARAM)str);
+ int CB_INSERTSTRING_ = 0x014A;
+ return SendMessage(hWnd, CB_INSERTSTRING_, 0, (LPARAM)str);
}
int ResetContent(HWND hWnd)
{
- int CB_RESETCONTENT = 0x014B;
- return SendMessage(hWnd, CB_RESETCONTENT, 0, 0);
+ int CB_RESETCONTENT_ = 0x014B;
+ return SendMessage(hWnd, CB_RESETCONTENT_, 0, 0);
}
static int SetItemData(HWND hWnd,int nIndex, LPARAM p)
{
- int CB_SETITEMDATA = 0x0151;
- return SendMessage(hWnd, CB_SETITEMDATA, nIndex, p);
+ int CB_SETITEMDATA_ = 0x0151;
+ return SendMessage(hWnd, CB_SETITEMDATA_, nIndex, p);
}
static int GetItemData(HWND hWnd)
{
- int CB_GETITEMDATA = 0x0150;
+ int CB_GETITEMDATA_ = 0x0150;
int nIndex = GetCurSel(hWnd);
if (nIndex < 0)
return -1;
else
- return SendMessage(hWnd, CB_GETITEMDATA, nIndex, 0);
+ return SendMessage(hWnd, CB_GETITEMDATA_, nIndex, 0);
}
static LPARAM GetItemData(HWND hWnd,int nIndex)
{
- int CB_GETITEMDATA = 0x0150;
- return SendMessage(hWnd, CB_GETITEMDATA, nIndex, 0);
+ int CB_GETITEMDATA_ = 0x0150;
+ return SendMessage(hWnd, CB_GETITEMDATA_, nIndex, 0);
}
static int AddItem(HWND hWnd,string str, int p)
{
- int CB_ADDSTRING = 0x0143;
- int h = SendMessage(hWnd, CB_ADDSTRING, 0, (LPARAM)str);
+ int CB_ADDSTRING_ = 0x0143;
+ int h = SendMessage(hWnd, CB_ADDSTRING_, 0, (LPARAM)str);
SetItemData(hWnd,h, p);
return h;
}
static int AddItem(HWND hWnd,string str, string p)
{
- int CB_ADDSTRING = 0x0143;
- int h = SendMessage(hWnd, CB_ADDSTRING, 0, (LPARAM)str);
+ int CB_ADDSTRING_ = 0x0143;
+ int h = SendMessage(hWnd, CB_ADDSTRING_, 0, (LPARAM)str);
SetItemData(hWnd,h, (LPARAM)p);
return h;
}
static int InsertString(HWND hWnd,string str, LPARAM p)
{
- int CB_INSERTSTRING = 0x014A;
- int h = SendMessage(hWnd, CB_INSERTSTRING, 0, (LPARAM)str);
+ int CB_INSERTSTRING_ = 0x014A;
+ int h = SendMessage(hWnd, CB_INSERTSTRING_, 0, (LPARAM)str);
SetItemData(hWnd,h, p);
return h;
diff --git a/jrj/xframe/xcontrol/xexcel.hpp b/jrj/xframe/xcontrol/xexcel.hpp
new file mode 100644
index 0000000..d7e36e6
--- /dev/null
+++ b/jrj/xframe/xcontrol/xexcel.hpp
@@ -0,0 +1,44 @@
+#pragma once
+
+#include "wobject/xcontrol.hpp"
+#include "kobject/kexcel.hpp"
+
+using kexcel = CExcelApplication;
+class xexcel : public xcontrol
+{
+public:
+ xexcel() :xcontrol(kexcel::CreateInstance()) {}
+ ~xexcel(){
+ GetKExcel()->Release(GetKExcel());
+ }
+public:
+ kexcel* GetKExcel()
+ {
+ return (kexcel*)this->GetNativePtr();
+ }
+public:
+ void put_Visible(BOOL newValue) //alias "?put_Visible@CExcelApplication@@QAEXH@Z";
+ {
+ return GetKExcel()->put_Visible(newValue);
+ }
+ bool get_Visible() //alias "?get_Visible@CExcelApplication@@QAEHXZ";
+ {
+ return GetKExcel()->get_Visible();
+ }
+ void OpenDocument(xstring FileName) //alias "?OpenDocument@CExcelApplication@@QAEXQA_W@Z";
+ {
+ return GetKExcel()->OpenDocument((const LPTSTR)FileName.c_str());
+ }
+ void TransShape() //alias "?TransShape@CExcelApplication@@QAEXXZ";
+ {
+ return GetKExcel()->TransShape();
+ }
+ void SaveToFile(xstring FileName)// alias "?SaveToFile@CExcelApplication@@QAEXQA_W@Z";
+ {
+ GetKExcel()->SaveToFile((const LPTSTR)FileName.c_str());
+ }
+ void Quit() //alias "?Quit@CExcelApplication@@QAEXXZ";
+ {
+ GetKExcel()->Quit();
+ }
+};
diff --git a/jrj/xframe/xcontrol/xhtml.hpp b/jrj/xframe/xcontrol/xhtml.hpp
new file mode 100644
index 0000000..e13a497
--- /dev/null
+++ b/jrj/xframe/xcontrol/xhtml.hpp
@@ -0,0 +1,37 @@
+#pragma once
+
+#include "wobject/xcontrol.hpp"
+#include "kobject/khtml.hpp"
+
+using khtml = Hxsoft::XFrame::xcOleControlContain;
+
+class xhtml : public xcontrol
+{
+public:
+ xhtml(void* impl = nullptr) :xcontrol(impl) {}
+public:
+ khtml* GetKHtml()
+ {
+ return (khtml*)this->GetNativePtr();
+ }
+ int LoadHtml(xstring content)
+ {
+ return GetKHtml()->LoadHtml((LPTSTR)content.c_str());
+ }
+ int ExecWB(int cmdID, int cmdexecopt)
+ {
+ return GetKHtml()->ExecWB(cmdID, cmdexecopt);
+ }
+ int LoadText(xstring content)
+ {
+ return GetKHtml()->LoadText((LPTSTR)content.c_str());
+ }
+ IHTMLDocument2* GetHtmlDocument()
+ {
+ return GetKHtml()->GetHtmlDocument();
+ }
+ int innerHTML(KXMLDOMDocument srcTree, KXMLDOMDocument xsltTree, KXMLDOMDocument resTree)
+ {
+ return 1;
+ }
+};
\ No newline at end of file
diff --git a/jrj/xframe/xcontrol/xtreeview.hpp b/jrj/xframe/xcontrol/xtreeview.hpp
index 4fa7b47..e689ad9 100644
--- a/jrj/xframe/xcontrol/xtreeview.hpp
+++ b/jrj/xframe/xcontrol/xtreeview.hpp
@@ -49,6 +49,7 @@
#define TV_FIRST 0x1100
+#ifdef XWIN
struct SCROLLINFO
{
int cbSize;
@@ -59,6 +60,8 @@
int nPos;
int nTrackPos;
};
+#endif
+
struct tvitem
{
@@ -520,13 +523,13 @@
void SetLineAtRoot(bool value)
{
- int GWL_STYLE = -16;
- int TVS_LINESATROOT = 0x0004;
- int style = GetWindowLong(GetHWND(), GWL_STYLE);
+ int GWL_STYLE_ = -16;
+ int TVS_LINESATROOT_ = 0x0004;
+ int style = GetWindowLong(GetHWND(), GWL_STYLE_);
if (value)
- SetWindowLong(GetHWND(), GWL_STYLE, style | TVS_LINESATROOT);
+ SetWindowLong(GetHWND(), GWL_STYLE_, style | TVS_LINESATROOT_);
else
- SetWindowLong(GetHWND(), GWL_STYLE, style & ~TVS_LINESATROOT);
+ SetWindowLong(GetHWND(), GWL_STYLE_, style & ~TVS_LINESATROOT_);
}
};
\ No newline at end of file
--
Gitblit v1.9.3