¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "files.associations": { |
| | | "xstring": "cpp" |
| | | } |
| | | } |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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" /> |
| | |
| | | <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" /> |
| | |
| | | <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" /> |
| | |
| | | <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"> |
| | |
| | | #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 |
| | | { |
| | | public: |
| | |
| | | SetAgent(); |
| | | return 1; |
| | | } |
| | | } |
| | | |
| | | int SendCtrlCmd(xcontrol xc, xstring cmd) |
| | | { |
| | | win32::SendMessage(xc.GetId(),0x401,cmd,0); |
| | | SendMessage(xc.GetHWND(), 0x401, (WPARAM)cmd.c_str(), 0); |
| | | return 1; |
| | | } |
| | | |
| | |
| | | if(comdid.left(3) == L"IK_") |
| | | { |
| | | xstring cmd = comdid.mid(3, comdid.length()); |
| | | SendCtrlCmd(GetControl(L"cell"),cmd); |
| | | |
| | | SendCtrlCmd(cell.GetHWND(), cmd); |
| | | return 1; |
| | | } |
| | | else if(comdid==L"xmFileOpen") |
| | |
| | | |
| | | return 1; |
| | | } |
| | | |
| | | }; |
| | |
| | | #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 strNode; |
| | | xdwgrid dw_list; |
| | | xdwgrid dw_doclist; |
| | | xole ole_1; |
| | | 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() |
| | | { |
| | | 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()); |
| | | |
| | | //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()); |
| | | |
| | | xstring strHtml = x.GetXmlDoc().transformNode(xsl.GetXmlDoc()); |
| | | //strHtml = str.mid(21,99999); |
| | | ole_1.LoadHtml(strHtml); |
| | | //html_1.SetContent(strHtml); |
| | | //alert(strHtml); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | public: |
| | | int OnRetrieve() |
| | | { |
| | | xstring username = publiccode::GetUser().name; |
| | | xstring username = publiccode::GetUser()->name; |
| | | if(username != L"admin" && m_Dir != username ) |
| | | { |
| | | bupdate = false; |
| | | }else |
| | | } |
| | | else |
| | | { |
| | | bupdate = true; |
| | | } |
| | |
| | | { |
| | | trace(x.text()); |
| | | return -1; |
| | | }else |
| | | } |
| | | else |
| | | { |
| | | xstring s = x.xml(); |
| | | dw_list.Retrieve(x); |
| | |
| | | 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)); |
| | | OpenWindow(L"dev:xpage[Maint.Template.Print.vx]", arg_param); |
| | | CloseWindow(); |
| | | |
| | | } |
| | |
| | | } |
| | | xstring sguid = publiccode::GetGuid(); |
| | | xstring sname= sguid +L".xsl"; |
| | | xstring suri= L"rpttemplate"+L"\\"+m_EntityName; //rpttemplate\SO |
| | | xstring suri = L"rpttemplate\\" + m_EntityName; //rpttemplate\SO |
| | | //suri = L"supplier00"; |
| | | xstring ret = xaserver::UploadFile(suri, sname, this.GetHWND(),L"",false); |
| | | xstring ret = xaserver::UploadFile(suri, sname, GetHWND(), L"", false); |
| | | if (ret == L"-1") |
| | | { |
| | | alert(L"ä¸ä¼ çæä»¶æ²¡éæ©!"); |
| | |
| | | } |
| | | else |
| | | { |
| | | xml x=new xml; |
| | | x.setNativePointer(xml::CreateInstance()); |
| | | xaserverarg args = new xaserverarg; |
| | | args.setNativePointer(args.CreateInstance()); |
| | | xml x; |
| | | xaserverarg args; |
| | | args.AddArg(L"sID",sguid); |
| | | args.AddArg(L"sEntity",m_EntityName); |
| | | args.AddArg(L"sDir",m_Dir); |
| | |
| | | |
| | | args.AddArg(L"sTemplName",ret); |
| | | //trace(args.GetString()); |
| | | if (url::get(L"/sale/data/SysPrintTemplate/Save",args.GetString(),x) != 1) |
| | | 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 |
| | | { |
| | | if (win32::MessageBox(GetHWND(),L"ç¡®å®è¦å é¤éä¸ç模æ¿ï¼",L"æç¤º",1) == 2) |
| | | if (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()); |
| | | xstring sguid = ele.selectSingleNode(L"ID").text(); |
| | | xml x; |
| | | xaserverarg args; |
| | | args.AddArg(L"sID",sguid); |
| | | if (url::get(L"/sale/data/SysPrintTemplate/Delete",args.GetString(),x) != 1) |
| | | if (xurl::get(L"/sale/data/SysPrintTemplate/Delete", args.GetString(), x) != 1) |
| | | { |
| | | trace(L"error:"+x.GetXml()); |
| | | trace((xstring)L"error:" + x.xml()); |
| | | alert(L"å é¤åºéäº!"); |
| | | return 0; |
| | | } |
| | |
| | | return 0; |
| | | } |
| | | |
| | | int OnDocListDoubleClicked(ref TNotifyEvent evt,int p) |
| | | int OnDocListDoubleClicked(TEvent * evt, int p) |
| | | { |
| | | int hCursor = xutil::SetCursorWait(); |
| | | HCURSOR hCursor = xutil::SetCursorWait(); |
| | | OnOpenDocument(); |
| | | xutil::RestoreCursor(hCursor); |
| | | return 1; |
| | | } |
| | | |
| | | int OnDoubleClicked(ref TNotifyEvent evt,int p) |
| | | int OnDoubleClicked(TEvent * evt, int p) |
| | | { |
| | | int hCursor = xutil::SetCursorWait(); |
| | | HCURSOR hCursor = xutil::SetCursorWait(); |
| | | OnOk(); |
| | | xutil::RestoreCursor(hCursor); |
| | | return 1; |
| | |
| | | { |
| | | KXMLDOMElement ele = dw_list.GetRowElement(row); |
| | | trace(L"\r\n---------------"); |
| | | trace(ele.xml); |
| | | trace(ele.xml()); |
| | | |
| | | xstring sguid = ele.selectSingleNode(L"ID").text; |
| | | 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; |
| | | 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; |
| | | 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); |
| | |
| | | int OnSave() |
| | | { |
| | | dw_list.AcceptText(); |
| | | xml x = new xml; |
| | | x.setNativePointer(xml::CreateInstance()); |
| | | dw_list.DwUpdateAllToEx(x.GetXmlDoc()); |
| | | xml x; |
| | | |
| | | xaserverarg arg = new xaserverarg; |
| | | dw_list.DwUpdateAllToEx(x); |
| | | |
| | | xaserverarg arg; |
| | | arg.setNativePointer(xaserverarg::CreateInstance()); |
| | | arg.AddArg(L"content",x.GetXml()); |
| | | arg.AddArg(L"content", x.xml()); |
| | | |
| | | if (url::get(L"/sale/data/SysPrintTemplate/updateinfo",arg.GetString(),x) != 1) |
| | | if (xurl::get(L"/sale/data/SysPrintTemplate/updateinfo", arg.GetString(), x) != 1) |
| | | { |
| | | trace(L"error:"+x.GetXml()); |
| | | trace((xstring)L"error:" + x.xml()); |
| | | alert(L"ä¿ååºéäº!"); |
| | | return 1; |
| | | } |
| | |
| | | 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; |
| | | 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(); |
| | | |
| | |
| | | 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"xmHtml") return OnHtml(); |
| | | if (comdid==L"xmOk") return OnOk(); |
| | | if (comdid==L"xmSave") return OnSave(); |
| | | if(comdid==L"xmOpen") return OnOpenDocument(); |
| | |
| | | //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); |
| | | 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 = new PUser; |
| | | puser = publiccode::GetUser(); |
| | | PUser& puser = *publiccode::GetUser(); |
| | | xstring susername = puser.name; |
| | | if (susername !=L"admin") |
| | | { |
| | |
| | | |
| | | int CreateDir() |
| | | { |
| | | PUser puser = new PUser; |
| | | puser = publiccode::GetUser(); |
| | | PUser& puser = *publiccode::GetUser(); |
| | | xstring susername = puser.name; |
| | | xml x = new xml; |
| | | x.setNativePointer(xml::CreateInstance()); |
| | | xaserverarg arg = new xaserverarg; |
| | | 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 (url::get(L"/sale/data/SysPrintTemplate/Dir",arg.GetString(),x) != 1) |
| | | if (xurl::get(L"/sale/data/SysPrintTemplate/Dir", arg.GetString(), x) != 1) |
| | | { |
| | | trace(x.GetXmlDoc().text); |
| | | trace(x.text()); |
| | | return -1; |
| | | }else |
| | | { |
| | | xstring s = x.GetXml(); |
| | | } |
| | | KXMLDOMNodeList nlist = x.GetXmlDoc().selectNodes(L"//Entity"); |
| | | else |
| | | { |
| | | xstring s = x.xml(); |
| | | } |
| | | KXMLDOMNodeList nlist = x.selectNodes(L"//Entity"); |
| | | int i; |
| | | int nlen = nlist.length; |
| | | int nlen = nlist.length(); |
| | | xstring toolStr = L"<vbox name='Dir'>"; |
| | | xstring deptName= publiccode::GetUser().deptname; |
| | | 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'/>"; |
| | | 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" ) |
| | | } |
| | | 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'/>"; |
| | | 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) |
| | |
| | | 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'/>"; |
| | | 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{ |
| | | } |
| | | 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'/>"; |
| | | 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) |
| | |
| | | int OnInit() |
| | | { |
| | | SetAgent(); |
| | | dw_list = this.GetControl(L"dw_list"); |
| | | 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); |
| | |
| | | xstring sUrl = GetServerUrl(); |
| | | sUrl = sUrl.mid(0, sUrl.length() - 19); |
| | | m_filePath = L"/business/rpttemplate"; |
| | | arg_param = new xaserverarg; |
| | | if (GetParam()) |
| | | arg_param; |
| | | if (GetWinParam()) |
| | | { |
| | | int p = GetParam(); |
| | | arg_param.setNativePointer(p); |
| | | 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 = new xaserverarg; |
| | | 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; |
| | | x.setNativePointer(xml::CreateInstance()); |
| | | if(url::get(L"/sale/data/DocumentList3/bill/doclist", arg.GetString(),x)!=1) |
| | | |
| | | if (xurl::get(L"/sale/data/DocumentList3/bill/doclist", arg.GetString(), x) != 1) |
| | | { |
| | | xstring error = x.GetXmlDoc().text; |
| | | xstring error = x.text(); |
| | | trace(error); |
| | | }else |
| | | } |
| | | else |
| | | { |
| | | dw_doclist.Retrieve(x); |
| | | dw_doclist.SetReadOnly(true); |
| | |
| | | |
| | | int onload() |
| | | { |
| | | SetArg(); |
| | | responsewin::onload(); |
| | | |
| | | /*if (GetParam()) |
| | |
| | | } |
| | | */ |
| | | |
| | | return 1; |
| | | } |
| | | |
| | | int onloaded() |
| | | { |
| | | //responsewin::onload(); |
| | | |
| | | /*if (GetParam()) |
| | | { |
| | | xstring action = arg_param.GetArgString(L"action"); |
| | | if(action==L"open" || (action==L"" && dw_doclist.GetRowCount() > 0)) |
| | | SwitchLayer(L"sheet2",L"frame"); |
| | | } |
| | | */ |
| | | return 1; |
| | | } |
| | | }; |
| | |
| | | |
| | | #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}"; |
| | | |
| | |
| | | void SaveToFile(xstring filename) alias "?SaveToFile@CExcelApplication@@QAEXQA_W@Z"; |
| | | void Quit() alias "?Quit@CExcelApplication@@QAEXXZ"; |
| | | }; |
| | | #endif |
| | | |
| | | struct MYOPENFILENAMEW |
| | | DeclWinObject_(TemplatePrintViewEx, xframe) |
| | | { |
| | | 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) |
| | | }; |
| | | |
| | | class __declspec(dllexport) TemplatePrintViewEx : public xframe |
| | | { |
| | | CreateWinObject_(TemplatePrintViewEx, xframe) |
| | | public: |
| | | xole ole_print; |
| | | xhtml ole_print; |
| | | xcell cell; |
| | | xstring m_EntityName; |
| | | xstring m_EntityID; |
| | |
| | | bool updated; |
| | | |
| | | xstring htmlStr; |
| | | cexcel excel; |
| | | bool editing; |
| | | |
| | | xstring billName ; |
| | |
| | | //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]; |
| | |
| | | } |
| | | |
| | | int nFilterIndex = 1; |
| | | ref MYOPENFILENAMEW ofn = new MYOPENFILENAMEW; |
| | | OPENFILENAMEW ofn; |
| | | |
| | | ofn.lStructSize = 88;//sizeof(ofn); |
| | | ofn.hwndOwner = 0; |
| | |
| | | ofn.lpTemplateName = 0; |
| | | |
| | | //debugbreak(); |
| | | if(GetSaveFileName(ofn)) |
| | | if(xfile::GetSaveFileNameW(ofn)) |
| | | { |
| | | delete ofn; |
| | | return szPath; |
| | | } |
| | | else |
| | | { |
| | | return ""; |
| | | return L""; |
| | | } |
| | | } |
| | | |
| | |
| | | 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; |
| | |
| | | |
| | | 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"; |
| | |
| | | xstring right=L""; |
| | | xstring tag=L""; |
| | | |
| | | len = L"[$element:".length(); |
| | | len = ((xstring)L"[$element:").length(); |
| | | while(true) |
| | | { |
| | | pos = str.find(L"[$element:"); |
| | |
| | | |
| | | str = pre + str; |
| | | pre = L""; |
| | | len = L"[/$element:".length(); |
| | | len = ((xstring)L"[/$element:").length(); |
| | | while(true) |
| | | { |
| | | pos = str.find(L"[/$element:"); |
| | |
| | | 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"; |
| | |
| | | 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"; |
| | |
| | | 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"); |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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); |
| | |
| | | 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""; |
| | |
| | | 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); |
| | |
| | | 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:"); |
| | |
| | | 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"); |
| | |
| | | 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(); |
| | | } |
| | | |
| | |
| | | |
| | | 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") |
| | |
| | | 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>"); |
| | |
| | | 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"); |
| | |
| | | |
| | | 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") |
| | |
| | | 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) |
| | | { |
| | |
| | | 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"); |
| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | //ç¦ç¹æ¿æ´»å¤ç彿° |
| | | int OnSetFocus(ref TNotifyEvent evt,int p) |
| | | int OnSetFocus(TEvent * evt,int p) |
| | | { |
| | | //é置工å
·æ¡ |
| | | SetAgent(); |
| | |
| | | } |
| | | 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(); |
| | |
| | | } |
| | | rows.Release(); |
| | | doc.Release(); |
| | | #endif |
| | | /* |
| | | if(PaperPrint == false) |
| | | { |
| | |
| | | xstring guid = publiccode::GetGuid(); |
| | | |
| | | xstring prestr = guid.mid(0,2); |
| | | prestr = prestr.upper(); |
| | | prestr = prestr.toUpper(); |
| | | |
| | | |
| | | content = content.replace(L"gb2312",L"utf-16",0); |
| | |
| | | content = content.replace(L"&",L"",0); |
| | | |
| | | 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"); |
| | |
| | | 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"ä¿åæå!"); |
| | |
| | | |
| | | 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"); |
| | |
| | | { |
| | | 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") |
| | |
| | | { |
| | | 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""); |
| | |
| | | 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; |
| | |
| | | { |
| | | 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"); |
| | |
| | | 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"") |
| | | { |
| | |
| | | |
| | | else |
| | | { |
| | | win32::SetWindowText(GetHWND(),templateName); |
| | | SetWindowText(GetHWND(),templateName); |
| | | OnHtml(arg); |
| | | billName = templateName; |
| | | billPre = arg.GetArgString(L"template-pre"); |
| | |
| | | OnPrintDialog(); |
| | | return 1; |
| | | } |
| | | |
| | | }; |
| | | |
| | | #define _XWIN |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #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(); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #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" ; |
| | | }; |
| | | |
| | | }} |
| | |
| | | #pragma once |
| | | #include "kbase.hpp" |
| | | |
| | | |
| | | #ifdef _XWIN |
| | | typedef struct HICON__{}*HICON; |
| | | typedef HICON HCURSOR; |
| | | #endif |
| | | |
| | | namespace Hxsoft{ namespace XFrame |
| | | { |
| | | class IXFUtil |
| | |
| | | |
| | | 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; |
| | |
| | | LONG cy; |
| | | } SIZE, *PSIZE, *LPSIZE; |
| | | |
| | | #endif |
| | | |
| | | |
| | | |
| | | |
| | |
| | | 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; |
| | | } |
| | |
| | | } |
| | | 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; |
| | | } |
| | |
| | | #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; |
| | | } |
| | | }; |
| | |
| | | } |
| | | |
| | | //åå½åç¨æ· |
| | | static PUser GetUser(xstring id) |
| | | static PUser* GetUser(xstring id) |
| | | { |
| | | string userno = xaserver::GetUserNo(); |
| | | //trace(userno); |
| | |
| | | |
| | | if (e.selectSingleNode(L"çµè¯")) p.tel = e.selectSingleNode(L"çµè¯").text(); |
| | | } |
| | | return p; |
| | | return &p; |
| | | } |
| | | static PUser GetUser() |
| | | static PUser* GetUser() |
| | | { |
| | | return GetUser(L""); |
| | | } |
| | |
| | | |
| | | #include "system/base.hpp" |
| | | |
| | | #ifdef _XWIN |
| | | typedef struct _GUID { |
| | | unsigned long Data1; |
| | | unsigned short Data2; |
| | |
| | | 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); |
| | | |
| | |
| | | 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"; |
| | | |
| | |
| | | #define PathRemoveFileSpec PathRemoveFileSpecW |
| | | #define SetWindowText SetWindowTextW |
| | | #define GetWindowText GetWindowTextW |
| | | #endif |
| | | |
| | | #if 0 |
| | | namespace win32 |
| | |
| | | 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"; |
| | | |
| | |
| | | #include "system/base.hpp" |
| | | #include "win.hpp" |
| | | |
| | | #if _XWIN |
| | | #define CALLBACK __stdcall |
| | | #define MAX_PATH 260 |
| | | |
| | |
| | | } 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); |
| | | } |
| | | }; |
| | | |
| | |
| | | NMHDR* pNMHDR; |
| | | }; |
| | | */ |
| | | struct xstruct |
| | | { |
| | | }; |
| | | |
| | | |
| | | |
| | | #ifdef _XWIN |
| | | typedef unsigned int UINT; |
| | | |
| | | typedef struct NMHDR |
| | |
| | | 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 |
| | | { |
| | |
| | | }; |
| | | */ |
| | | |
| | | 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; |
| | |
| | | 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 |
| | | { |
| | |
| | | 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); |
| | |
| | | |
| | | 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) |
| | |
| | | |
| | | 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; |
| | |
| | | |
| | | int SetText(string value) |
| | | { |
| | | int WM_SETTEXT = 0x000C; |
| | | int WM_SETTEXT_ = 0x000C; |
| | | ::SetWindowTextW(GetHWND(),value); |
| | | return 1; |
| | | } |
| | |
| | | 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; |
| | | } |
| | | }; |
| | |
| | | #include "win32/win.hpp" |
| | | |
| | | using kutil = Hxsoft::XFrame::IXFUtil; |
| | | extern "C" { |
| | | void* WINAPI GetProcAddressW(HMODULE hModule, const char* lpText); |
| | | } |
| | | class xutil |
| | | { |
| | | public: |
| | |
| | | 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) |
| | | { |
| | |
| | | static xstring GetModulePath() |
| | | { |
| | | wchar_t buf[255]; |
| | | GetModuleFileName(0, buf, 255); |
| | | ::GetModuleFileNameW(nullptr, buf, 255); |
| | | PathRemoveFileSpec(buf); |
| | | return xstring(buf); |
| | | } |
| | |
| | | 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; |
| | | } |
| | | }; |
| | |
| | | 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: |
| | |
| | | |
| | | 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"); |
| | | } |
| | |
| | | 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; |
| | |
| | | ///// |
| | | 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; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #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(); |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #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; |
| | | } |
| | | }; |
| | |
| | | |
| | | #define TV_FIRST 0x1100 |
| | | |
| | | #ifdef XWIN |
| | | struct SCROLLINFO |
| | | { |
| | | int cbSize; |
| | |
| | | int nPos; |
| | | int nTrackPos; |
| | | }; |
| | | #endif |
| | | |
| | | |
| | | struct tvitem |
| | | { |
| | |
| | | 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_); |
| | | } |
| | | |
| | | }; |