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