From eb39d3d2ca26581f9f0254acd0b1f5d56c9869a8 Mon Sep 17 00:00:00 2001 From: xj qian <qianxj15@sina.com> Date: 星期二, 23 七月 2024 11:19:29 +0800 Subject: [PATCH] Merge branch 'master' of http://116.62.18.175:6699/r/mis-prj --- jrj/project/total3/ViewEx1.total.cpp | 280 +++++++++++++++++++++++++++++-------------------------- 1 files changed, 149 insertions(+), 131 deletions(-) diff --git a/jrj/project/total3/ViewEx1.total.cpp b/jrj/project/total3/ViewEx1.total.cpp index f9d4a7a..dcc2c9f 100644 --- a/jrj/project/total3/ViewEx1.total.cpp +++ b/jrj/project/total3/ViewEx1.total.cpp @@ -1,41 +1,59 @@ -use "xcontrol.vframe.vbusiness.vd" -use "xbase.vframe.vbusiness.vd" +#include <wobject/xwin.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <xcontrol/xoffice.hpp> +#include <xcontrol/xcell.hpp> +#include <xcontrol/xflowchart.hpp> +#include <xcontrol/ximageview.hpp> +#include <xcontrol/xcombobox.hpp> -unit trade -[ - class ViewEx1TotalWin : public xwin +#include <vbusiness/vutil/publiccode.vutil.vbusiness.hpp> +#include "viewobject/view.base.hpp" + + +using xml = KXMLDOMDocument; + + class __declspec(dllexport) ViewEx1TotalWin : public xwin { + public: + ViewEx1TotalWin(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {} + public: + static ViewEx1TotalWin* CreateInstance(void* implPtr, void* hWnd) + { + ViewEx1TotalWin* pWin = new ViewEx1TotalWin(implPtr, (HWND)hWnd); + return pWin; + } + public: xdwgrid dw_list; xoffice dw_office; xcell dw_cell; xnode m_agentNode; //Agent Condition - msxml::IXMLDOMElement rptEle; - string m_category; - string argStr; + KXMLDOMElement rptEle; + xstring m_category; + xstring argStr; int SetAgent() { - string xfNodeAgentArea = "agentarea"; + xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if(m_agentNode) { - SetAgentNodeContent (anode,m_agentNode); + SetAgentNode (anode,m_agentNode); } else { - msxml::IXMLDOMElement xframeElement = GetElement(); - msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + KXMLDOMElement xframeElement = GetElement(); + KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); if(agent) { - string s = agent.xml; - m_agentNode = SetAgentNodeContent (anode,s); + xstring s = agent.xml(); + m_agentNode = SetAgentNode (anode,s); } } return 1; } //焦点激活处理函数 - int OnSetFocus(ref TEvent evt,int param) + int OnSetFocus(TEvent* evt, int param) { //重置工具条 SetAgent(); @@ -43,90 +61,89 @@ } //命令发布函数 - int OnCmdDispatch(string comdid) + int OnCmdDispatch(xstring comdid) { - int hCursor = 0; - if(comdid=="xmAnalysis") + HCURSOR hCursor = 0; + if(comdid==L"xmAnalysis") { hCursor = xutil::SetCursorWait(); - string str = dw_list.DataAnalysis(""); - xaserverarg arg=new xaserverarg; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("html", str); - int obj = cast(dw_list as int); - arg.AddArg("obj",obj.toString()); - OpenWindow("dev:xpage[data.vanalysis.vx]", cast(arg as int)); + xstring str = dw_list.DataAnalysis(L""); + xaserverarg arg; + + arg.AddArg(L"html", str); + + OpenWindow(L"dev:xpage[data.vanalysis.vx]", arg); xutil::RestoreCursor(hCursor); return 1; } - if(comdid=="xmTrans") + if(comdid==L"xmTrans") return OnTransData(); - if(comdid=="xmQuery") + if(comdid==L"xmQuery") { if(rptEle) { - string argUrl = rptEle.getAttribute("arg"); - if(argUrl !="") + xstring argUrl = rptEle.getAttribute(L"arg"); + if(argUrl !=L"") { - xaserverarg ar = new xaserverarg; - ar.setNativePointer(ar.CreateInstance()); - ar.AddArg("argurl",argUrl); - if(argStr !="") - ar.AddArg("arg",argStr); - OpenWindow("dev:xpage[view.total.arg.vx]",cast(ar as int)); - string arstr = ar.GetArgString("arg"); - if(arstr != "" && ar.GetArgString("action")=="ok") + xaserverarg ar ; + + ar.AddArg(L"argurl",argUrl); + if(argStr !=L"") + ar.AddArg(L"arg",argStr); + OpenWindow(L"dev:xpage[view.total.arg.vx]",ar); + xstring arstr = ar.GetArgString(L"arg"); + if(arstr != L"" && ar.GetArgString(L"action")==L"ok") { argStr = arstr; hCursor = xutil::SetCursorWait(); - OnRetrieve(rptEle.getAttribute("data"),argStr); + OnRetrieve(rptEle.getAttribute(L"data"),argStr); xutil::RestoreCursor(hCursor); } } else { - argStr=""; - OnRetrieve(rptEle.getAttribute("data"),argStr); + argStr=L""; + OnRetrieve(rptEle.getAttribute(L"data"),argStr); } } return 1; } - if(comdid=="xmSaveAs") + if(comdid==L"xmSaveAs") { - dw_list.SaveAs(""); + dw_list.SaveAs(L""); return 1; } return 0; } - int SwitchReport(msxml::IXMLDOMElement e) + int SwitchReport(KXMLDOMElement e) { - string dwname = e.getAttribute("template"); - string dataurl = e.getAttribute("data"); - string sheettype = e.getAttribute("reporttype"); + xstring dwname = e.getAttribute(L"template"); + xstring dataurl = e.getAttribute(L"data"); + xstring sheettype = e.getAttribute(L"reporttype"); if(rptEle != e) { - argStr = ""; + argStr = L""; rptEle = e; } - if(sheettype=="") sheettype="report"; - SwitchLayer("dw_"+sheettype,"report"); - if(sheettype=="report")dw_list.openUrl(dwname); + if(sheettype==L"") sheettype=L"report"; + SwitchLayer(L"dw_"+sheettype,L"report"); + if(sheettype==L"report")dw_list.openUrl(dwname); SetAgent(); return 1; } - int OnCombboChanged(ref TCommandEvent evt,int lParam) + int OnCombboChanged(TEvent* evt, int lParam) { - int h = xcombobox::GetCurSel(evt.hCtrl); + int h = xcombobox::GetCurSel(evt->command.hCtrl); if(h > -1) { - int hCursor = xutil::SetCursorWait(); - msxml::IXMLDOMElement e = xcombobox::GetItemData(evt.hCtrl, h); + HCURSOR hCursor = xutil::SetCursorWait(); + KXMLDOMElement e = xcombobox::GetItemData(evt->command.hCtrl, h); SwitchReport(e); - win32::PostMessage(GetHWND(),0x401,"xmQuery",0); - //OnCmdDispatch("xmQuery"); + PostMessage(GetHWND(),0x401,(LPARAM)L"xmQuery",0); + //OnCmdDispatch(L"xmQuery"); xutil::RestoreCursor(hCursor); } return 1; @@ -134,20 +151,20 @@ int OnTransData() { - int ret = win32::MessageBox(GetHWND(),"是否更新数据?\n更新过程预计需要四十分钟,如果中间弹出等待时间过长的提示,请点击中间重试按钮,或等待到一定时间再点击","提示",0x4 /*yesno*/); + int ret = MessageBox(GetHWND(),L"是否更新数据?\n更新过程预计需要四十分钟,如果中间弹出等待时间过长的提示,请点击中间重试按钮,或等待到一定时间再点击",L"提示",0x4 /*yesno*/); if(ret != 6 /*IDYES */ ) return 1; - xml x = new xml; - x.setNativePointer(xml::CreateInstance()); - int hCursor = xutil::SetCursorWait(); - if (url::get("/sale/data/Total3/total/transdata","",x)!=1) + xml x ; + + HCURSOR hCursor = xutil::SetCursorWait(); + if (xurl::get(L"/sale/data/Total3/total/transdata",L"",x)!=1) { xutil::RestoreCursor(hCursor); return 1; }else { xutil::RestoreCursor(hCursor); - alert("数据传输完成!"); + alert(L"数据传输完成!"); return 1; } @@ -155,49 +172,49 @@ } //命令处理事件 - int OnXCommand(ref TXCommandEvent evt,int param) + int OnXCommand(TEvent* evt, int param) { - return OnCmdDispatch(evt.pStrID); + return OnCmdDispatch(evt->xcommand.pStrID); } - int OnDWClick(ref TNotifyEvent evt,int p) + int OnDWClick(TEvent* evt, int p) { - ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); - string value = hdr.data; - string colname = hdr.colname; + DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; + xstring value = hdr.data; + xstring colname = hdr.colname; int row = hdr.row; if(row < 1) return 1; xaserverarg arg; /* - if(colname=="SONo") + if(colname==L"SONo") { - string SONo = dw_list.GetItemString(row,colname); + xstring SONo = dw_list.GetItemString(row,colname); arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("EntityNo",SONo); - arg.AddArg("ReadOnly","true"); - OpenWindow("dev:xpage[base.maint.so.vx]",arg.getNativePointer()); + arg.AddArg(L"EntityNo",SONo); + arg.AddArg(L"ReadOnly",L"true"); + OpenWindow(L"dev:xpage[base.maint.so.vx]",arg.getNativePointer()); } - if(colname=="InvoiceNo") + if(colname==L"InvoiceNo") { - string InvoiceNo= dw_list.GetItemString(row,colname); + xstring InvoiceNo= dw_list.GetItemString(row,colname); arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("EntityNo",InvoiceNo); - arg.AddArg("ReadOnly","true"); - OpenWindow("dev:xpage[maint.GDN3.vx]",arg.getNativePointer()); + arg.AddArg(L"EntityNo",InvoiceNo); + arg.AddArg(L"ReadOnly",L"true"); + OpenWindow(L"dev:xpage[maint.GDN3.vx]",arg.getNativePointer()); } - if(colname=="InvoiceNoEx") + if(colname==L"InvoiceNoEx") { - string InvoiceNoEx= dw_list.GetItemString(row,colname); + xstring InvoiceNoEx= dw_list.GetItemString(row,colname); arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("EntityNo",InvoiceNoEx); - arg.AddArg("invoiceno",InvoiceNoEx); - arg.AddArg("ReadOnly","true"); - OpenWindow("dev:xpage[maint.vatnotify.vx]",arg.getNativePointer()); + arg.AddArg(L"EntityNo",InvoiceNoEx); + arg.AddArg(L"invoiceno",InvoiceNoEx); + arg.AddArg(L"ReadOnly",L"true"); + OpenWindow(L"dev:xpage[maint.vatnotify.vx]",arg.getNativePointer()); } */ return 1; @@ -206,47 +223,48 @@ int OnAttachEvent() { //绑定工具条点击事件 - AttachEvent("WM_XCOMMAND",OnXCommand); + AttachEvent(L"WM_XCOMMAND", (FEvent)&ViewEx1TotalWin::OnXCommand); //获取焦点事件,用于重置工具条 - AttachEvent("WM_SETFOCUS",OnSetFocus); - AttachEvent("cb_report","CBN_SELCHANGE",OnCombboChanged); - AttachEvent("dw_report","DWV_CLICKED",OnDWClick); + AttachEvent(L"WM_SETFOCUS", (FEvent)&ViewEx1TotalWin::OnSetFocus); + AttachEvent(L"cb_report",L"CBN_SELCHANGE", (FEvent)&ViewEx1TotalWin::OnCombboChanged); + AttachEvent(L"dw_report",L"DWV_CLICKED", (FEvent)&ViewEx1TotalWin::OnDWClick); + return 1; } - int OnRetrieve(string dataurl, string argstr) + int OnRetrieve(xstring dataurl, xstring argstr) { if(!rptEle) return 0; dw_list.Reset(); - xml x = new xml; - x.setNativePointer(xml::CreateInstance()); - xaserverarg arg = new xaserverarg; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("arg",argstr); + xml x ; - string sheettype = rptEle.getAttribute("reporttype"); - if(sheettype=="") sheettype="report"; - if (url::get(dataurl,arg.GetString(),x)!=1) + xaserverarg arg ; + + arg.AddArg(L"arg",argstr); + + xstring sheettype = rptEle.getAttribute(L"reporttype"); + if(sheettype==L"") sheettype=L"report"; + if (xurl::get(dataurl,arg.GetString(),x)!=1) { - trace("\r\n--------"+x.GetXmlDoc().text); + trace(L"\r\n--------"+(xstring)x.text()); dw_list.Redraw(); return -1; }else { - //xutil::SaveToFile("C:\\Temp\\Total3.xml",x.GetXml(),"","",""); - if(sheettype=="report") + //xutil::SaveToFile(L"C:\\Temp\\Total3.xml()",x.GetXml(),L"",L"",L""); + if(sheettype==L"report") { dw_list.Retrieve(x); dw_list.Redraw(); dw_list.SetReadOnly(true); } - else if(sheettype=="cell") + else if(sheettype==L"cell") { } - else if(sheettype=="office") + else if(sheettype==L"office") { - dw_office.LoadTemplate(x); + dw_office.LoadTemplate(x,0); for(int i=0; i<dw_office.GetSheetCount();i++) { xcell sheet = dw_office.GetSheet(i); @@ -257,14 +275,14 @@ return 1; } - xml getReportSet(string category) + xml getReportSet(xstring category) { - xml x = new xml; - x.setNativePointer(xml::CreateInstance()); - xaserverarg arg = new xaserverarg; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("category",category); - if (url::get("/sale/data/Total3/reportset",arg.GetString(),x)!=1) + xml x ; + + xaserverarg arg ; + + arg.AddArg(L"category",category); + if (xurl::get(L"/sale/data/Total3/reportset",arg.GetString(),x)!=1) { return 0; } @@ -273,32 +291,33 @@ int onload() { - dw_list = GetControl("dw_report"); - dw_office = GetControl("dw_office"); - dw_cell = GetControl("dw_cell"); - dw_list.openUrl("/sale/view/Total3/template/sodetail"); + SetArg(); + dw_list = GetControl(L"dw_report"); + dw_office = GetControl(L"dw_office"); + dw_cell = GetControl(L"dw_cell"); + dw_list.openUrl(L"/sale/view/Total3/template/sodetail"); - argStr =""; - rptEle = 0; - xcombobox xc = GetControl("cb_report"); + argStr =L""; + //rptEle = 0; + xcombobox xc = GetControl(L"cb_report"); - //m_category = "total/business"; - m_category = "total/sample"; - if(GetParam()) { - xaserverarg arg = new xaserverarg; - arg.setNativePointer(GetParam()); - m_category = arg.GetArgString("category"); + //m_category = L"total/business"; + m_category = L"total/sample"; + if(GetWinParam()) { + xaserverarg arg =GetArg(); + + m_category = arg.GetArgString(L"category"); } xml x = getReportSet(m_category); if(x) { - msxml::IXMLDOMNodeList nlist =x.GetXmlDoc().selectNodes("//reports/report"); - int len = nlist.length; + KXMLDOMNodeList nlist =x.selectNodes(L"//reports/report"); + int len = nlist.length(); for(int i=0; i<len; i++) { - msxml::IXMLDOMElement rpt = nlist.item(i); - string name = rpt.getAttribute("name"); - xcombobox::AddItem(xc.GetId(),name,trust(rpt as int)); + KXMLDOMElement rpt = nlist.item(i); + xstring name = rpt.getAttribute(L"name"); + xc.AddItem(name, rpt); if(i==0) xc.SetText(name); if(i==0) rptEle = rpt; } @@ -314,10 +333,9 @@ if(rptEle) { SwitchReport(rptEle); - //OnCmdDispatch("xmQuery"); + //OnCmdDispatch(L"xmQuery"); } return 1; } - }; -] \ No newline at end of file + }; \ No newline at end of file -- Gitblit v1.9.3