From db02064b0a296aaeab02780c892b3ce8e80012b1 Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期二, 29 十月 2024 10:59:13 +0800
Subject: [PATCH] update

---
 jrj/project/business/Affair/Business5.cpp         |  591 ++++++++++++++-------------
 jrj/project/business/Affair/message.business.cpp  |  377 +++++++++--------
 jrj/project/business/Affair/ProcessManagement.cpp |  117 +++--
 jrj/project/business/Affair/message.supplier.cpp  |  162 ++++---
 4 files changed, 649 insertions(+), 598 deletions(-)

diff --git a/jrj/project/business/Affair/Business5.cpp b/jrj/project/business/Affair/Business5.cpp
index 524778f..0441872 100644
--- a/jrj/project/business/Affair/Business5.cpp
+++ b/jrj/project/business/Affair/Business5.cpp
@@ -1,12 +1,17 @@
-use "xcontrol.vframe.vbusiness.vd"
-use "xbase.vframe.vbusiness.vd"
-use "saleorder.view.vd"
-use "publiccode.vutil.vbusiness.vd"
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xcell.hpp>
 
-unit trade 
-[
-	class Business5Win :  public xframe
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+
+	class __declspec(dllexport) Business5Win :  public xframe
 	{
+	public:
 		xdwgrid	dw_list;
 		xdwgrid dw_processed;
 		xdwgrid dw_message;
@@ -18,26 +23,35 @@
 		int		hMessage;
 		int		hTask;
 	
-		string 	agentFor;
-		string    selectname;
+		xstring 	agentFor;
+		xstring    selectname;
 		xwin		sheet;
+
+	public:
+		Business5Win(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+	public:
+		static Business5Win* CreateInstance(void* implPtr, void* hWnd)
+		{
+			Business5Win* pWin = new Business5Win(implPtr, (HWND)hWnd);
+			return pWin;
+		}
 
 		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+"[@for='"+agentFor+"']/*");
+				KXMLDOMElement xframeElement =  GetElement();
+				KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[@for='"+agentFor+L"']/*");
 				if(agent)
 				{
-					string s = agent.xml;
-					m_agentNode =  SetAgentNodeContent (anode,s);
+					xstring s = agent.xml();
+					m_agentNode =  SetAgentNode (anode,s);
 					//FillGoodsCarList();
 				}
 			}
@@ -45,7 +59,7 @@
 		}
 
 		//焦点激活处理函数
-		int OnSetFocus(ref TEvent evt,int param)
+		int OnSetFocus(TEvent* evt, LPARAM param)
 		{
 			//重置工具条
 			SetAgent();
@@ -53,32 +67,33 @@
 		}
 		int RetrieveData()
 		{
-			if(selectname == "已处理任务")
+			xml x;
+			if(selectname == L"已处理任务")
 			{
-				xml x = ViewObject::RetrieveData("/sale/data/business/list/processedtask");
+				 x = ViewObject::RetrieveData(L"/sale/data/business/list/processedtask");
 				dw_processed.Retrieve(x);
 				dw_processed.Redraw();
 				dw_processed.SetReadOnly(true);
-			}else if(selectname == "收件箱")
+			}else if(selectname == L"收件箱")
 			{
-				string UserNO= publiccode::GetUser().no;
+				xstring UserNO= publiccode::GetUser().no;
 				
-				x = ViewObject::RetrieveData("/sale/data/business/list/inbox");
+				x = ViewObject::RetrieveData(L"/sale/data/business/list/inbox");
 				
 				dw_message.Retrieve(x);
 				dw_message.Redraw();
 				dw_message.SetReadOnly(true);
 			}
-			else if(selectname == "发件箱")
+			else if(selectname == L"发件箱")
 			{
-				x = ViewObject::RetrieveData("/sale/data/business/list/outbox");
+				x = ViewObject::RetrieveData(L"/sale/data/business/list/outbox");
 				dw_outbox.Retrieve(x);
 				dw_outbox.Redraw();
 				dw_outbox.SetReadOnly(true);
 			}
-			else if(selectname == "回收箱")
+			else if(selectname == L"回收箱")
 			{
-				x = ViewObject::RetrieveData("/sale/data/business/list/Recovery");
+				x = ViewObject::RetrieveData(L"/sale/data/business/list/Recovery");
 				dw_Recovery.Retrieve(x);
 				dw_Recovery.Redraw();
 				dw_Recovery.SetReadOnly(true);
@@ -90,20 +105,20 @@
 		{
 			int MB_OKCANCEL = 1;
 			int IDOK  = 1;
-			int ret = win32::MessageBox(GetHWND(),"确认删除消息?","提示",MB_OKCANCEL);
+			int ret =MessageBox(GetHWND(),L"确认删除消息?",L"提示",MB_OKCANCEL);
 			if(ret == IDOK)
 			{
-				msxml::IXMLDOMElement ele = dw_message.GetRowElement(dw_message.GetRow());
-				string TaskID = ele.getAttribute("guid");
-				xml x = ViewObject::RetrieveData("/sale/data/business/message/delete","TaskID",TaskID);
-				string status = x.GetXml();
-				if(status.find("ok") == 1)
+				KXMLDOMElement ele = dw_message.GetRowElement(dw_message.GetRow());
+				xstring TaskID = ele.getAttribute(L"guid");
+				xml x = ViewObject::RetrieveData(L"/sale/data/business/message/delete",L"TaskID",TaskID);
+				xstring status = x.xml();
+				if(status.find(L"ok") == 1)
 				{
-					alert("删除成功");
+					alert(L"删除成功");
 					RetrieveData();
 				}else
 				{
-					alert("删除失败");
+					alert(L"删除失败");
 				}
 				
 			}
@@ -114,20 +129,20 @@
 		{
 			int MB_OKCANCEL = 1;
 			int IDOK  = 1;
-			int ret = win32::MessageBox(GetHWND(),"确认恢复消息?","提示",MB_OKCANCEL);
+			int ret =MessageBox(GetHWND(),L"确认恢复消息?",L"提示",MB_OKCANCEL);
 			if(ret == IDOK)
 			{
-				msxml::IXMLDOMElement ele = dw_Recovery.GetRowElement(dw_Recovery.GetRow());
-				string TaskID = ele.getAttribute("guid");
-				xml x = ViewObject::RetrieveData("/sale/data/business/Recovery/UpdateRecovery","TaskID",TaskID);
-				string status = x.GetXml();
-				if(status.find("ok") == 1)
+				KXMLDOMElement ele = dw_Recovery.GetRowElement(dw_Recovery.GetRow());
+				xstring TaskID = ele.getAttribute(L"guid");
+				xml x = ViewObject::RetrieveData(L"/sale/data/business/Recovery/UpdateRecovery",L"TaskID",TaskID);
+				xstring status = x.xml();
+				if(status.find(L"ok") == 1)
 				{
-					alert("恢复成功");
+					alert(L"恢复成功");
 					RetrieveData();
 				}else
 				{
-					alert("恢复失败");
+					alert(L"恢复失败");
 				}
 				
 			}
@@ -138,20 +153,20 @@
 		{
 			int MB_OKCANCEL = 1;
 			int IDOK  = 1;
-			int ret = win32::MessageBox(GetHWND(),"确认彻底删除消息?","提示",MB_OKCANCEL);
+			int ret =MessageBox(GetHWND(),L"确认彻底删除消息?",L"提示",MB_OKCANCEL);
 			if(ret == IDOK)
 			{
-				msxml::IXMLDOMElement ele = dw_Recovery.GetRowElement(dw_Recovery.GetRow());
-				string TaskID = ele.getAttribute("guid");
-				xml x = ViewObject::RetrieveData("/sale/data/business/Recovery/DeleteRecovery","TaskID",TaskID);
-				string status = x.GetXml();
-				if(status.find("ok") == 1)
+				KXMLDOMElement ele = dw_Recovery.GetRowElement(dw_Recovery.GetRow());
+				xstring TaskID = ele.getAttribute(L"guid");
+				xml x = ViewObject::RetrieveData(L"/sale/data/business/Recovery/DeleteRecovery",L"TaskID",TaskID);
+				xstring status = x.xml();
+				if(status.find(L"ok") == 1)
 				{
-					alert("删除成功");
+					alert(L"删除成功");
 					RetrieveData();
 				}else
 				{
-					alert("删除失败");
+					alert(L"删除失败");
 				}
 				
 			}
@@ -160,92 +175,97 @@
 				
 		int OnAdd()
 		{
-			OpenWindow("dev:xpage[message.business.vx]");
-			if(selectname == "发件箱" || selectname == "草稿箱") RetrieveData();	
+			OpenWindow(L"dev:xpage[message.business.vx]");
+			if(selectname == L"发件箱" || selectname == L"草稿箱") RetrieveData();	
 			return 1;
 		}
 				
 				
 		//命令发布函数
-		int OnCmdDispatch(string comdid)
+		int OnCmdDispatch(xstring comdid)
 		{
 			int ret = 0;
-			if(comdid.find("action:",0)>=0)
+			if(comdid.find(L"action:",0)>=0)
 			{
-				ret = win32::SendMessage(sheet.GetHWND(),0x401,comdid,0);
+				ret =SendMessage(GetHWND(),0x401,(LPARAM)comdid,0);
 			}
-			if(comdid=="xmRefreshTask")
+			if(comdid==L"xmRefreshTask")
 			{
-				trace("\r\n----refresh task--------");
-				win32::SendMessage(sheet.GetHWND(),0x401,comdid,0);
+				trace(L"\r\n----refresh task--------");
+				SendMessage(GetHWND(),0x401,(LPARAM)comdid,0);
 				return 1;
 			}
-			if(comdid=="xmRefresh")
+			if(comdid==L"xmRefresh")
 			{
-				trace("\r\n----refresh--------");
-				ret = win32::SendMessage(sheet.GetHWND(),0x401,comdid,0);
+				trace(L"\r\n----refresh--------");
+				ret =SendMessage(GetHWND(),0x401, (LPARAM)comdid,0);
 			}
-			if(comdid == "xmRertieve")
+			if(comdid == L"xmRertieve")
 			{
 				RetrieveData();
 				ret = 1;
 			}
-			if(comdid=="xmAdd")
+			if(comdid==L"xmAdd")
 			{
 				OnAdd();
 				ret = 1;
 			}
-			if(comdid == "xmDelete")
+			if(comdid == L"xmDelete")
 			{
 				OnDelete();
 				ret = 1;
 			}
-			if(comdid == "UpdateRecovery")
+			if(comdid == L"UpdateRecovery")
 			{
 				OnUpdateRecovery();
 				ret = 1;
 			}
-			if(comdid == "DeleteRecovery")
+			if(comdid == L"DeleteRecovery")
 			{
 				OnDeleteRecovery();
 				ret = 1;
 			}
-			if(comdid == "xmImage")
+			if(comdid == L"xmImage")
 			{
 				int row = dw_message.GetRow();
-				string PriceID = dw_message.GetItemString(row,"EntityID");
-				xml x = ViewObject::RetrieveData("/sale/data/Enquiry/PriceList/GetSkunoByPriceID","PriceID",PriceID);
-				msxml::IXMLDOMNodeList items = x.GetXmlDoc().selectNodes("data/Item");
-				msxml::IXMLDOMNode t = items.item(0);
-				string skunos =  t.selectSingleNode("skuno").text;
-				xaserverarg arg_pic=new xaserverarg;
-				arg_pic.setNativePointer(arg_pic.CreateInstance());	
-				arg_pic.AddArg("SKUNoList",skunos);
-				arg_pic.AddArg("ParentWindow",GetHWND().toString());
-				arg_pic.AddArg("OpenFlag","1");
-				OpenWindow("dev:xpage[SKU.PictureView.Product3.vx]",cast(arg_pic as int));	
+				xstring PriceID = dw_message.GetItemString(row,L"EntityID");
+				xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/PriceList/GetSkunoByPriceID",L"PriceID",PriceID);
+				KXMLDOMNodeList items = x.selectNodes(L"data/Item");
+				KXMLDOMNode t = items.item(0);
+				xstring skunos =  t.selectSingleNode(L"skuno").text();
+				xaserverarg arg_pic;
+		
+				arg_pic.AddArg(L"SKUNoList",skunos);
+#if 0
+				arg_pic.AddArg(L"ParentWindow", GetHWND());
+#endif // 0
+
+				
+
+				arg_pic.AddArg(L"OpenFlag",L"1");
+				OpenWindow(L"dev:xpage[SKU.PictureView.Product3.vx]",arg_pic );	
 				return 1;
 			}
-			else if(comdid == "xmSearchOne")
+			else if(comdid == L"xmSearchOne")
 			{
 				OnSearchOne();
 				return 1;
 			}
-			else if(comdid == "xmSearchTwo")
+			else if(comdid == L"xmSearchTwo")
 			{
 				OnSearchTwo();
 				return 1;
 			}
-			else if(comdid=="Lognew")
+			else if(comdid==L"Lognew")
 			{
-				string EntityID = dw_processed.GetItemString(dw_processed.GetRow(),"EntityID");
+				xstring EntityID = dw_processed.GetItemString(dw_processed.GetRow(),L"EntityID");
 				//alert(EntityID);
 	
-				xaserverarg args=new xaserverarg;
-				args.setNativePointer(args.CreateInstance());						
-				args.AddArg("EntityID",EntityID);
-				//OpenWindow("dev:xpage[workflow.actionlog.vx]",cast(args as int));	
-				OpenWindow("dev:xpage[workflow.actionlog_vd.vx]",args.getNativePointer());
+				xaserverarg args;
+										
+				args.AddArg(L"EntityID",EntityID);
+				//OpenWindow(L"dev:xpage[workflow.actionlog.vx]",cast(args as int));	
+				OpenWindow(L"dev:xpage[workflow.actionlog_vd.vx]",args);
 			
 			
 				
@@ -256,16 +276,16 @@
 			
 		int OnSearchOne()
 		{
-			string searchStr="";
-			xaserverarg arg=new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());						
-			arg.AddArg("text", searchStr);
-			OpenWindow("dev:xpage[search.dialog.vx]", cast(arg as int));
-			string str = arg.GetArgString("text");
+			xstring searchStr=L"";
+			xaserverarg arg;
+									
+			arg.AddArg(L"text", searchStr);
+			OpenWindow(L"dev:xpage[search.dialog.vx]", arg);
+			xstring str = arg.GetArgString(L"text");
 			if(str != searchStr)
 			{
 				searchStr = str;
-				dw_message.Filter("*",searchStr);
+				dw_message.Filter(L"*",searchStr);
 				return 1;
 			}
 			return 1;
@@ -273,37 +293,37 @@
 			
 		int OnSearchTwo()
 		{
-			string searchStr="";
-			xaserverarg arg=new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());						
-			arg.AddArg("text", searchStr);
-			OpenWindow("dev:xpage[search.dialog.vx]", cast(arg as int));
-			string str = arg.GetArgString("text");
+			xstring searchStr=L"";
+			xaserverarg arg;
+									
+			arg.AddArg(L"text", searchStr);
+			OpenWindow(L"dev:xpage[search.dialog.vx]", arg);
+			xstring str = arg.GetArgString(L"text");
 			if(str != searchStr)
 			{
 				searchStr = str;
-				dw_Recovery.Filter("*",searchStr);
+				dw_Recovery.Filter(L"*",searchStr);
 				return 1;
 			}
 			return 1;
 		}
 		
 		//命令处理事件
-		int OnXCommand(ref TXCommandEvent evt,int param)
+		int OnXCommand(TEvent* evt, LPARAM param)
 		{
-			return OnCmdDispatch(evt.pStrID);
+			return OnCmdDispatch(evt->xcommand.pStrID);
 		}
 		
 		
 		//查找当前树项的顶级目录
-		int LookupTopFolder(int hItem)
+		HTREEITEM LookupTopFolder(HTREEITEM hItem)
 		{
-			int hRoot = tv_folder.GetRootItem();
-			while(tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
+			HTREEITEM hRoot = tv_folder.GetRootItem();
+			while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
 			return hItem;
 		}
 
-		int ResetAgent(string agentAsk)
+		int ResetAgent(xstring agentAsk)
 		{
 			if(agentFor != agentAsk)
 			{
@@ -314,117 +334,117 @@
 			return 1;
 		}
 		
-		int OnTreeSelChanged(ref TNotifyEvent evt,int p)
+		int OnTreeSelChanged(TEvent* evt, LPARAM p)
 		{
-			ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW);
-			int hItem = nmtv.itemNew.hItem;
-			int hTopItem = LookupTopFolder(hItem);
+			NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
+			HTREEITEM hItem = nmtv.itemNew.hItem;
+			HTREEITEM hTopItem = LookupTopFolder(hItem);
 			
-			string data = tv_folder.GetItemData(hItem);
-			trace("\r\n"+data);
-			//msxml::IXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
-			//if(e)trace(e.xml);
+			xstring data = tv_folder.GetItemData(hItem);
+			trace(L"\r\n"+data);
+			//KXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
+			//if(e)trace(e.xml());
 
-			string name = tv_folder.GetItemLabel(hTopItem);
+			xstring name = tv_folder.GetItemLabel(hTopItem);
 			selectname = tv_folder.GetItemLabel(hItem);
-			if(selectname == "待处理任务")
+			if(selectname == L"待处理任务")
 			{
-				SwitchLayer("sheet2","frame");
-				sheet = GetChildWin("sheet2");
-				ResetAgent("business1");
-			}else if(selectname == "已处理任务")
+				SwitchLayer(L"sheet2",L"frame");
+				sheet = GetChildWin(L"sheet2");
+				ResetAgent(L"business1");
+			}else if(selectname == L"已处理任务")
 			{
-				SwitchLayer("sheet3","frame");
+				SwitchLayer(L"sheet3",L"frame");
 				RetrieveData();
-				ResetAgent("business2");
-			}else if(selectname == "收件箱")
+				ResetAgent(L"business2");
+			}else if(selectname == L"收件箱")
 			{
-				SwitchLayer("sheet4","frame");
+				SwitchLayer(L"sheet4",L"frame");
 				RetrieveData();
-				ResetAgent("business3");
-			}else if(selectname == "发件箱")
+				ResetAgent(L"business3");
+			}else if(selectname == L"发件箱")
 			{
-				SwitchLayer("sheet5","frame");
+				SwitchLayer(L"sheet5",L"frame");
 				RetrieveData();
-				ResetAgent("business2");
+				ResetAgent(L"business2");
 			}
-			else if(selectname == "事务")
+			else if(selectname == L"事务")
 			{
-				SwitchLayer("sheet1","frame");
-			}else if(selectname == "回收箱")
+				SwitchLayer(L"sheet1",L"frame");
+			}else if(selectname == L"回收箱")
 			{
-				SwitchLayer("sheet6","frame");
+				SwitchLayer(L"sheet6",L"frame");
 				RetrieveData();
-				ResetAgent("business5");
+				ResetAgent(L"business5");
 			}
 			return 1;
 		}
-		int OnRowChanged(ref TNotifyEvent evt,int p)
+		int OnRowChanged(TEvent* evt, int p)
 		{
 			//fixed one event only one process
-			ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
+			DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
 			int row = hdr.row;
-			if(selectname == "已处理任务")
-				msxml::IXMLDOMElement ele = dw_processed.GetRowElement(row);
-			else if(selectname == "收件箱")
+			KXMLDOMElement ele;
+			if(selectname == L"已处理任务")
+				 ele = dw_processed.GetRowElement(row);
+			else if(selectname == L"收件箱")
 			{
 				ele = dw_message.GetRowElement(row);
-				string Subject = dw_message.GetItemString(row,"Subject");
-				if(Subject.find("价格单") == -1)
+				xstring Subject = dw_message.GetItemString(row,L"Subject");
+				if(Subject.find(L"价格单") == -1)
 				{
-					ResetAgent("business3");
+					ResetAgent(L"business3");
 				}else{
-					ResetAgent("business4");
+					ResetAgent(L"business4");
 				}
 			}
-			else if(selectname == "回收箱")
+			else if(selectname == L"回收箱")
 			{
 				ele = dw_Recovery.GetRowElement(row);
-				string SubjectOne = dw_Recovery.GetItemString(row,"Subject");
+				xstring SubjectOne = dw_Recovery.GetItemString(row,L"Subject");
 			}
-			else if(selectname == "发件箱")
+			else if(selectname == L"发件箱")
 				ele = dw_outbox.GetRowElement(row);
-			xaserverarg arg=new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());	
-			trace(ele.xml);
-			arg.AddArg("content",ele.xml);
-			xml doc=new xml;
-			doc.setNativePointer(xml::CreateInstance());				
-			if(getUrl("/sale/data/vpage/vstart/task",arg.GetString(),doc)!=1)
+			xaserverarg arg;
+				
+			trace(ele.xml());
+			arg.AddArg(L"content",ele.xml());
+			xml doc=new xml;			
+			if(getUrl(L"/sale/data/vpage/vstart/task",arg.GetString(),doc)!=1)
 			{
-				trace("error->:"+doc.GetXml());
+				trace((xstring)L"error->:"+doc.xml());
 				return 0;
 			}
-			if(doc.GetXml() == "")
+			if(doc.xml() == L"")
 				return -1;
-			//trace(doc.GetXml());
-			htmlctrl ht = GetControl("taskinfo");
-			ht.SetContent(doc.GetXml());
+			//trace(doc.xml());
+			htmlctrl ht = GetControl(L"taskinfo");
+			ht.SetContent(doc.xml());
 			ht.Redraw();
 			return 1;
 		}
-		int OnItemAskStyle(ref TNotifyEvent evt,int p)
+		int OnItemAskStyle(TEvent* evt, int p)
 		{
 			int DMS_CSSSTYLE = 0x8;
 			ref DWASKSTYLENMHDR hdr = trust(evt.pnmh as ref DWASKSTYLENMHDR);
 			int row = hdr.row;
 			int col = hdr.col;
-			string colname = hdr.colname;
+			xstring colname = hdr.colname;
 			int rows = dw_message.GetRowCount();
 			if(row < 1 || row > rows)
 			{
 				return 1;
 			}
-			if(colname=="flowName" || colname=="Process" || colname=="sender" ||
-			colname=="SendDate"||colname=="processer"||colname=="ProcessedDate"||
-			colname=="Subject"||colname=="Content")
+			if(colname==L"flowName" || colname==L"Process" || colname==L"sender" ||
+			colname==L"SendDate"||colname==L"processer"||colname==L"ProcessedDate"||
+			colname==L"Subject"||colname==L"Content")
 			{
-				string ReadedFlag = dw_message.GetItemString(row,"ReadedFlag");
-				if(ReadedFlag != "Y")
+				xstring ReadedFlag = dw_message.GetItemString(row,L"ReadedFlag");
+				if(ReadedFlag != L"Y")
 				{
 					hdr.mask =  DMS_CSSSTYLE;
-					//hdr.cssstyle = "color:#cccccc";
-					hdr.cssstyle = "font-weight:700";
+					//hdr.cssstyle = L"color:#cccccc";
+					hdr.cssstyle = L"font-weight:700";
 					
 				}
 			}
@@ -432,26 +452,26 @@
 			return 1;
 		}
 				
-		int OnDWClick(ref TNotifyEvent evt,int p)
+		int OnDWClick(TEvent* evt, int p)
 		{
-			string UserNO=publiccode::GetUser().no;
-			if(UserNO !="00701")
+			xstring UserNO=publiccode::GetUser().no;
+			if(UserNO !=L"00701")
 			{
-				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;
-				msxml::IXMLDOMElement ele = dw_message.GetRowElement(row);
-				string TaskID = ele.getAttribute("guid");
-				string ReadedFlag = dw_message.GetItemString(row,"ReadedFlag");
-				string flowName = dw_message.GetItemString(row,"flowName");
-				if(ReadedFlag != "Y")
+				KXMLDOMElement ele = dw_message.GetRowElement(row);
+				xstring TaskID = ele.getAttribute(L"guid");
+				xstring ReadedFlag = dw_message.GetItemString(row,L"ReadedFlag");
+				xstring flowName = dw_message.GetItemString(row,L"flowName");
+				if(ReadedFlag != L"Y")
 				{
-					xml x = ViewObject::RetrieveData("/sale/data/business/message/read","TaskID",TaskID);
-					dw_message.SetItemString(row,"ReadedFlag","Y");
-					if(ReadedFlag != "Y" && flowName == "价格单共享")
+					xml x = ViewObject::RetrieveData(L"/sale/data/business/message/read",L"TaskID",TaskID);
+					dw_message.SetItemString(row,L"ReadedFlag",L"Y");
+					if(ReadedFlag != L"Y" && flowName == L"价格单共享")
 					{
-						xml x1 = ViewObject::RetrieveData("/sale/data/business/Recovery/MessageStatus","TaskID",TaskID);
+						xml x1 = ViewObject::RetrieveData(L"/sale/data/business/Recovery/MessageStatus",L"TaskID",TaskID);
 					}
 					dw_message.Redraw();
 					//RetrieveData();
@@ -461,93 +481,93 @@
 			return 1;
 		}
 					
-		int OpenShowroom1(ref TNotifyEvent evt,int p)
+		int OpenShowroom1(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;
-				msxml::IXMLDOMElement ele = dw_outbox.GetRowElement(row);
-				string TaskID = ele.getAttribute("guid");
-				string Category = dw_outbox.GetItemString(row,"flowName");
-				if(Category=="普通"){
-					xaserverarg arg2 = new xaserverarg;
-					arg2.setNativePointer(arg2.CreateInstance());	
+				KXMLDOMElement ele = dw_outbox.GetRowElement(row);
+				xstring TaskID = ele.getAttribute(L"guid");
+				xstring Category = dw_outbox.GetItemString(row,L"flowName");
+				if(Category==L"普通"){
+					xaserverarg arg2;
+						
 					if(dw_outbox.GetRowCount() < 1) return 1;
-					msxml::IXMLDOMElement ele1 = dw_outbox.GetRowElement(dw_outbox.GetRow());
-					arg2.AddArg("EntityID",dw_outbox.GetItemString(dw_outbox.GetRow(),"EntityID"));
-					arg2.AddArg("id",ele1.getAttribute("guid"));
-					OpenWindow("dev:xpage[message.business.vx]", cast(arg2 as int));
+					KXMLDOMElement ele1 = dw_outbox.GetRowElement(dw_outbox.GetRow());
+					arg2.AddArg(L"EntityID",dw_outbox.GetItemString(dw_outbox.GetRow(),L"EntityID"));
+					arg2.AddArg(L"id",ele1.getAttribute(L"guid"));
+					OpenWindow(L"dev:xpage[message.business.vx]",arg2);
 					return 1;
 				}
 				return 1;
 			}
 				
-		int OpenShowroom(ref TNotifyEvent evt,int p)
-			{
-				ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
-				string value = hdr.data;
-				string colname = hdr.colname;
+		int OpenShowroom(TEvent* evt, int p)
+		{
+				DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+				xstring value = hdr.data;
+				xstring colname = hdr.colname;
 				int row = hdr.row;
-				msxml::IXMLDOMElement ele = dw_message.GetRowElement(row);
-				string TaskID = ele.getAttribute("guid");
-				string Category = dw_message.GetItemString(row,"Category");
-				if(Category=="货号申请"){
-					int p1="" ;
-					OpenWindow("dev:xpage[UserProductApply.vx]", p1);
+				KXMLDOMElement ele = dw_message.GetRowElement(row);
+				xstring TaskID = ele.getAttribute(L"guid");
+				xstring Category = dw_message.GetItemString(row,L"Category");
+				if(Category==L"货号申请"){
+					int p1 ;
+					OpenWindow(L"dev:xpage[UserProductApply.vx]", p1);
 				}
-				if(Category=="普通"){
-					xaserverarg arg2 = new xaserverarg;
-					arg2.setNativePointer(arg2.CreateInstance());	
+				if(Category==L"普通"){
+					xaserverarg arg2;
+						
 					if(dw_message.GetRowCount() < 1) return 1;
-					msxml::IXMLDOMElement ele1 = dw_message.GetRowElement(dw_message.GetRow());
-					arg2.AddArg("EntityID",dw_message.GetItemString(dw_message.GetRow(),"EntityID"));
-					arg2.AddArg("id",ele1.getAttribute("guid"));
-					OpenWindow("dev:xpage[message.business.vx]", cast(arg2 as int));
+					KXMLDOMElement ele1 = dw_message.GetRowElement(dw_message.GetRow());
+					arg2.AddArg(L"EntityID",dw_message.GetItemString(dw_message.GetRow(),L"EntityID"));
+					arg2.AddArg(L"id",ele1.getAttribute(L"guid"));
+					OpenWindow(L"dev:xpage[message.business.vx]", arg2);
 					return 1;
 				}
-				else if(Category=="报价单共享")
+				else if(Category==L"报价单共享")
 				{
 					if(dw_message.GetRowCount() < 1) return 1;
-					string No = dw_message.GetItemString(dw_message.GetRow(),"No");
-					OpenWindow("dev:xpage[EnquiryEx.quote.vx]",cast(No as int));
+					xstring No = dw_message.GetItemString(dw_message.GetRow(),L"No");
+					OpenWindow(L"dev:xpage[EnquiryEx.quote.vx]",cast(No as int));
 				}
-				if(Category=="SupplierV3")
+				if(Category==L"SupplierV3")
 				{
-					xaserverarg arg = new xaserverarg;
-					arg.setNativePointer(arg.CreateInstance());	
+					xaserverarg arg;
+						
 					if(dw_message.GetRowCount() < 1) return 1;
-					arg.AddArg("EntityID",dw_message.GetItemString(dw_message.GetRow(),"EntityID"));
-					//OpenWindow("dev:xpage[maint.Owner.Supplier.v3.vx]",cast(arg as int));
-					arg.AddArg("config","/sale/view/SupplierV3/config/supplier/open");
-					OpenWindow("dev:xpage[maintex.Owner.Supplier.v3.vx]",arg.getNativePointer());
+					arg.AddArg(L"EntityID",dw_message.GetItemString(dw_message.GetRow(),L"EntityID"));
+					//OpenWindow(L"dev:xpage[maint.Owner.Supplier.v3.vx]",cast(arg as int));
+					arg.AddArg(L"config",L"/sale/view/SupplierV3/config/supplier/open");
+					OpenWindow(L"dev:xpage[maintex.Owner.Supplier.v3.vx]",arg);
 				}
-				if(Category=="供应商回退")
+				if(Category==L"供应商回退")
 				{
-					xaserverarg arg1 = new xaserverarg;
-					arg1.setNativePointer(arg1.CreateInstance());	
+					xaserverarg arg1;
+						
 					if(dw_message.GetRowCount() < 1) return 1;
-					arg1.AddArg("EntityID",dw_message.GetItemString(dw_message.GetRow(),"EntityID"));
-					OpenWindow("dev:xpage[maint.Owner.Supplier.v3.vx]",cast(arg1 as int));
+					arg1.AddArg(L"EntityID",dw_message.GetItemString(dw_message.GetRow(),L"EntityID"));
+					OpenWindow(L"dev:xpage[maint.Owner.Supplier.v3.vx]",arg1);
 				}
 				return 1;
 			}
 		int OnAttachEvent()
 		{
 			//绑定工具条点击事件
-			AttachEvent("WM_XCOMMAND",OnXCommand);
+			AttachEvent(L"WM_XCOMMAND", (FEvent)&Business5Win::OnXCommand);
 			//获取焦点事件,用于重置工具条
-			AttachEvent("WM_SETFOCUS",OnSetFocus);
+			AttachEvent(L"WM_SETFOCUS", (FEvent)&Business5Win::OnSetFocus);
 			//树选择
-			AttachEvent("tv_folder", "TVN_SELCHANGED",OnTreeSelChanged); 
-			AttachEvent("dw_processed","DWV_ROWFOCUSCHANGED",OnRowChanged);
-			AttachEvent("dw_message","DWV_ROWFOCUSCHANGED",OnRowChanged);
-			AttachEvent("dw_outbox","DWV_ROWFOCUSCHANGED",OnRowChanged);
-			AttachEvent("dw_Recovery","DWV_ROWFOCUSCHANGED",OnRowChanged);
-			AttachEvent("dw_message","DWV_ASKSTYLE",OnItemAskStyle);
-			AttachEvent("dw_message","DWV_CLICKED",OnDWClick);
-			AttachEvent("dw_message","DWV_DOUBLECLICKED",OpenShowroom);
-			AttachEvent("dw_outbox","DWV_DOUBLECLICKED",OpenShowroom1);
+			AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&Business5Win::OnTreeSelChanged);
+			AttachEvent(L"dw_processed",L"DWV_ROWFOCUSCHANGED", (FEvent)&Business5Win::OnRowChanged);
+			AttachEvent(L"dw_message",L"DWV_ROWFOCUSCHANGED", (FEvent)&Business5Win::OnRowChanged);
+			AttachEvent(L"dw_outbox",L"DWV_ROWFOCUSCHANGED", (FEvent)&Business5Win::OnRowChanged);
+			AttachEvent(L"dw_Recovery",L"DWV_ROWFOCUSCHANGED", (FEvent)&Business5Win::OnRowChanged);
+			AttachEvent(L"dw_message",L"DWV_ASKSTYLE", (FEvent)&Business5Win::OnItemAskStyle);
+			AttachEvent(L"dw_message",L"DWV_CLICKED", (FEvent)&Business5Win::OnDWClick);
+			AttachEvent(L"dw_message",L"DWV_DOUBLECLICKED", (FEvent)&Business5Win::OpenShowroom);
+			AttachEvent(L"dw_outbox",L"DWV_DOUBLECLICKED", (FEvent)&Business5Win::OpenShowroom1);
 			
 			return 1;
 		}
@@ -561,30 +581,30 @@
 		
 		int  InitialFolder()
 		{
-			msxml::IXMLDOMElement xframeElement =  GetElement();
-			msxml::IXMLDOMElement e =  xframeElement.selectSingleNode("//xtree[@name='tv_folder']/initial");
+			KXMLDOMElement xframeElement =  GetElement();
+			KXMLDOMElement e =  xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial");
 			
-			//msxml::IXMLDOMElement e =  xframeElement.selectSingleNode("//xtree[@name='tv_folder']/data/item[@name='"+"']");
-			//trace(e.xml);
+			//KXMLDOMElement e =  xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/data/item[@name='"+L"']");
+			//trace(e.xml());
 			if(e)
 				ExpandChildFolder(0,e);
 			return 1;
 		}
 		
-		int  ExpandChildFolder(int hItem, msxml::IXMLDOMElement pElement)
+		int  ExpandChildFolder(int hItem, KXMLDOMElement pElement)
 		{
-			msxml::IXMLDOMNodeList nlist = pElement.SelectNodes("Item");
-			int len = nlist.length;
+			KXMLDOMNodeList nlist = pElement.selectNodes(L"Item");
+			int len = nlist.length();
 			for (int i = 0; i < len; i++)
 			{	
-				msxml::IXMLDOMElement e = nlist.item(i);
-				string name = e.getAttribute("name");
-				string sImage = e.getAttribute("image");
-				string child = e.getAttribute("child");
+				KXMLDOMElement e = nlist.item(i);
+				xstring name = e.getAttribute(L"name");
+				xstring sImage = e.getAttribute(L"image");
+				xstring child = e.getAttribute(L"child");
 				int image = 15;
 				if(sImage) image = sImage.toInt();
 				int h= tv_folder.InsertChildItem(tv_folder.GetId(),hItem,name, trust(e as int),image);
-				if(child !="no" ) tv_folder.SetItemChild(h,1);
+				if(child !=L"no" ) tv_folder.SetItemChild(h,1);
 				ExpandChildFolder(h,e);
 			}
 			return 1;				
@@ -592,18 +612,18 @@
 		
 		int AdjustTip()
 		{
-			xml x = ViewObject::RetrieveData("/sale/data/business/list/AdjustTipNotify");
-			msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("/data/Item"); 
-			msxml::IXMLDOMNode t = nlist.item(0);
-			string informationQuantity =t.selectSingleNode("informationQuantity").text;
-			tv_folder.SetItemLabel(hMessage, "消息"+"("+informationQuantity+")");
+			xml x = ViewObject::RetrieveData(L"/sale/data/business/list/AdjustTipNotify");
+			KXMLDOMNodeList nlist = x.selectNodes(L"/data/Item"); 
+			KXMLDOMNode t = nlist.item(0);
+			xstring informationQuantity =t.selectSingleNode(L"informationQuantity").text();
+			tv_folder.SetItemLabel(hMessage, L"消息"+L"(L"+informationQuantity+L")L");
 			
-			xml x1 = ViewObject::RetrieveData("/sale/data/business/list/AdjustTipTask");
-			//alert(x1.GetXml());
-			msxml::IXMLDOMNodeList nlist1 = x1.GetXmlDoc().SelectNodes("/data/Item");
-			msxml::IXMLDOMNode t1= nlist1.item(0);
-			string informationQuantityTask =t1.selectSingleNode("informationQuantityTask").text;
-			tv_folder.SetItemLabel(hTask, "任务"+"("+informationQuantityTask+")");
+			xml x1 = ViewObject::RetrieveData(L"/sale/data/business/list/AdjustTipTask");
+			//alert(x1.xml());
+			KXMLDOMNodeList nlist1 = x1.selectNodes(L"/data/Item");
+			KXMLDOMNode t1= nlist1.item(0);
+			xstring informationQuantityTask =t1.selectSingleNode(L"informationQuantityTask").text();
+			tv_folder.SetItemLabel(hTask, L"任务"+L"(L"+informationQuantityTask+L")L");
 			
 			/*select count(*) from bpm_task where typ='notify' and  process='N' 
 			and charindex('|'+'00303'+'|','|' + rtrim(receiver) +'|')>=1*/
@@ -612,36 +632,36 @@
 		
 		int onload()
 		{
-			agentFor = "business";
+			agentFor = L"business";
 			OnAttachEvent();
-			dw_list = GetControl("dw_list");
-			dw_processed = GetControl("dw_processed");
-			dw_processed.openUrl("/sale/view/Business3/template/processedtask");
-			dw_processed.SetColumnState("EntityID",false);
-			dw_processed.SetColumnState("Category",false);
+			dw_list = GetControl(L"dw_list");
+			dw_processed = GetControl(L"dw_processed");
+			dw_processed.openUrl(L"/sale/view/Business3/template/processedtask");
+			dw_processed.SetColumnState(L"EntityID",false);
+			dw_processed.SetColumnState(L"Category",false);
 
-			dw_message = GetControl("dw_message");
-			dw_message.openUrl("/sale/view/Business3/template/message");
+			dw_message = GetControl(L"dw_message");
+			dw_message.openUrl(L"/sale/view/Business3/template/message");
 			dw_message.SetAskStyle(true);
-			dw_message.SetColumnState("EntityID",false);
-			dw_message.SetColumnState("Category",false);
-			dw_message.SetColumnState("ReadedFlag",false);
+			dw_message.SetColumnState(L"EntityID",false);
+			dw_message.SetColumnState(L"Category",false);
+			dw_message.SetColumnState(L"ReadedFlag",false);
 			
-			dw_outbox = GetControl("dw_outbox");
-			dw_outbox.openUrl("/sale/view/Business3/template/outbox");
-			dw_outbox.SetColumnState("EntityID",false);
+			dw_outbox = GetControl(L"dw_outbox");
+			dw_outbox.openUrl(L"/sale/view/Business3/template/outbox");
+			dw_outbox.SetColumnState(L"EntityID",false);
 			
-			dw_Recovery = GetControl("dw_Recovery");
-			dw_Recovery.openUrl("/sale/view/Business3/template/message");
-			dw_Recovery.SetColumnState("EntityID",false);
-			dw_Recovery.SetColumnState("Category",false);
-			dw_Recovery.SetColumnState("ReadedFlag",false);
-			dw_Recovery.SetColumnState("No",false);
+			dw_Recovery = GetControl(L"dw_Recovery");
+			dw_Recovery.openUrl(L"/sale/view/Business3/template/message");
+			dw_Recovery.SetColumnState(L"EntityID",false);
+			dw_Recovery.SetColumnState(L"Category",false);
+			dw_Recovery.SetColumnState(L"ReadedFlag",false);
+			dw_Recovery.SetColumnState(L"No",false);
 			
 			
-			tv_folder = GetControl("tv_folder");
+			tv_folder = GetControl(L"tv_folder");
 			tv_folder.SetLineAtRoot(true);
-			sheet = GetChildWin("sheet1");
+			sheet = GetChildWin(L"sheet1");
 			
 			int hItem = tv_folder.GetRootItem();
 			tv_folder.ExpandItem(hItem);
@@ -665,5 +685,4 @@
 			
 			return 1;
 		}		
-	};
-]
\ No newline at end of file
+	};
\ No newline at end of file
diff --git a/jrj/project/business/Affair/ProcessManagement.cpp b/jrj/project/business/Affair/ProcessManagement.cpp
index 25d1132..61d753a 100644
--- a/jrj/project/business/Affair/ProcessManagement.cpp
+++ b/jrj/project/business/Affair/ProcessManagement.cpp
@@ -1,38 +1,50 @@
-use "xcontrol.vframe.vbusiness.vd"
-use "xbase.vframe.vbusiness.vd"
-use "base.view.vd"
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xcell.hpp>
 
-unit trade 
-[
-	class ProcessManagement :  public xframe
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+	class  __declspec(dllexport) ProcessManagement :  public xframe
 	{
+	public:
 		xdwgrid	dw_list;
 		xnode	m_agentNode;	//Agent Condition
 		
-	
+	public:
+		ProcessManagement(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+	public:
+		static ProcessManagement* CreateInstance(void* implPtr, void* hWnd)
+		{
+			ProcessManagement* pWin = new ProcessManagement(implPtr, (HWND)hWnd);
+			return pWin;
+		}
 		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, LPARAM param)
 		{
 			//重置工具条
 			SetAgent();
@@ -40,40 +52,40 @@
 		}
 			
 		//命令发布函数
-		int OnCmdDispatch(string comdid)
+		int OnCmdDispatch(xstring comdid)
 		{	
 			
-			if(comdid == "xmDelete")
+			if(comdid == L"xmDelete")
 			{
 				int MB_OKCANCEL = 1;
 				int IDOK  = 1;
-				int ret = win32::MessageBox(GetHWND(),"确认删除流程?","提示",MB_OKCANCEL);
+				int ret =MessageBox(GetHWND(),L"确认删除流程?",L"提示",MB_OKCANCEL);
 				if(ret == IDOK)
 				{
 					int row = dw_list.GetRow();
-					string TaskID = dw_list.GetItemString(row,"TaskID");
+					xstring TaskID = dw_list.GetItemString(row,L"TaskID");
 				
 				
-					xml x = ViewObject::RetrieveData("/sale/data/business/DelProcessManagement","TaskID",TaskID);
-					string status = x.GetXml();
-					if(status.find("ok") == 1)
+					xml x = ViewObject::RetrieveData(L"/sale/data/business/DelProcessManagement",L"TaskID",TaskID);
+					xstring status = x.xml();
+					if(status.find(L"ok") == 1)
 					{
-						alert("删除成功");
+						alert(L"删除成功");
 						dw_list.DeleteRow(row);
 					}else
 					{
-						alert("删除失败");
+						alert(L"删除失败");
 					}
 				
 				}
 				return 1;
 				
 			}
-			else if (comdid == "xmRefresh")
+			else if (comdid == L"xmRefresh")
 			{
 				OnRetrieve();
 			}
-			else if (comdid == "AA")
+			else if (comdid == L"AA")
 			{
 				AA();
 			}
@@ -82,24 +94,24 @@
 		int AA()
 		{		
 		
-				//string FobUnitPriceEx=dw_cell.GetItemString(row,colFOBPrice);
-			string FobUnitPriceEx="$123.0";
-			if(FobUnitPriceEx=="$") FobUnitPriceEx="123";
-			//alert(FobUnitPriceEx.find("$").toString());
-			if(FobUnitPriceEx.find("$") >=0) FobUnitPriceEx=FobUnitPriceEx.right(FobUnitPriceEx.length() - 1);
+				//xstring FobUnitPriceEx=dw_cell.GetItemString(row,colFOBPrice);
+			xstring FobUnitPriceEx=L"$123.0";
+			if(FobUnitPriceEx==L"$") FobUnitPriceEx=L"123";
+			//alert(FobUnitPriceEx.find(L"$").toString());
+			if(FobUnitPriceEx.find(L"$") >=0) FobUnitPriceEx=FobUnitPriceEx.right(FobUnitPriceEx.length() - 1);
 			trace(FobUnitPriceEx);
 		}
 		//触发鼠标离开后tran事件,通过查找某个参数得到对应的列			
-		int OnBaseItemChanged(ref TNotifyEvent evt,int p)
+		int OnBaseItemChanged(TEvent* evt, int p)
 		{
-			ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
-			string colname=hdr.colname;
-			string value = hdr.data;
+			DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+			xstring colname=hdr.colname;
+			xstring value = hdr.data;
 			
-			string dwname = "dw_list";
-			if(value != "")
+			xstring dwname = L"dw_list";
+			if(value != L"")
 			{
-				msxml::IXMLDOMNodeList nlist = GetElement().selectNodes("//*[@name='"+dwname+"']/trans[@for='"+colname+"']");
+				KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='"+dwname+L"']/trans[@for='"+colname+L"']");
 				ViewObject::TransData(nlist, dw_list, hdr.row, colname, value);
 			}
 
@@ -108,9 +120,9 @@
 			
 		
 		//命令处理事件
-		int OnXCommand(ref TXCommandEvent evt,int param)
+		int OnXCommand(TEvent* evt, LPARAM param)
 		{
-			return OnCmdDispatch(evt.pStrID);
+			return OnCmdDispatch(evt->xcommand.pStrID);
 		}
 			
 		
@@ -118,23 +130,21 @@
 		int OnAttachEvent()
 		{
 			//绑定工具条点击事件
-			AttachEvent("WM_XCOMMAND",OnXCommand);
+			AttachEvent(L"WM_XCOMMAND", (FEvent)&ProcessManagement::OnXCommand);
 			//获取焦点事件,用于重置工具条
-			AttachEvent("WM_SETFOCUS",OnSetFocus);
-			AttachEvent("dw_list","DWV_ITEMCHANGED",OnBaseItemChanged);
+			AttachEvent(L"WM_SETFOCUS", (FEvent)&ProcessManagement::OnSetFocus);
+			AttachEvent(L"dw_list",L"DWV_ITEMCHANGED", (FEvent)&ProcessManagement::OnBaseItemChanged);
+			return 1;
 		}
 			
 
 		int  OnRetrieve()
 		{
-			xml x = new xml;
-			x.setNativePointer(xml::CreateInstance());
-			xaserverarg arg = new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());	
-			
-			if (getUrl("/sale/data/business/ProcessManagement",arg.GetString(),x)!=1)
+			xml x;
+			xaserverarg arg;
+			if (getUrl(L"/sale/data/business/ProcessManagement",arg.GetString(),x)!=1)
 			{
-				trace(x.GetXmlDoc().text);
+				trace(x.text());
 				return -1;
 			}else	
 			{
@@ -148,9 +158,9 @@
 	
 		int onload()
 		{
-			dw_list = GetControl("dw_list");
-			dw_list.openUrl("/sale/view/Business3/template/ProcessManagement");
-			dw_list.SetColumnState("TaskID",false);
+			dw_list = GetControl(L"dw_list");
+			dw_list.openUrl(L"/sale/view/Business3/template/ProcessManagement");
+			dw_list.SetColumnState(L"TaskID",false);
 			
 			OnRetrieve();
 			
@@ -167,5 +177,4 @@
 			
 			return 1;
 		}		
-	};
-]
\ No newline at end of file
+	};
\ No newline at end of file
diff --git a/jrj/project/business/Affair/message.business.cpp b/jrj/project/business/Affair/message.business.cpp
index 9d85ecd..1589db3 100644
--- a/jrj/project/business/Affair/message.business.cpp
+++ b/jrj/project/business/Affair/message.business.cpp
@@ -1,87 +1,100 @@
-use "xcontrol.vframe.vbusiness.vd"
-use "xbase.vframe.vbusiness.vd"
-use "base.view.vd"
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xcell.hpp>
 
-unit trade 
-[
-	class MessageBusinessWin :  public xframe
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+	class  __declspec(dllexport) MessageBusinessWin :  public xframe
 	{
+	public:
 		//xdwgrid	dw_list;
 		xdwtable dw_base;
 		xnode	m_agentNode;	//Agent Condition
 		xwin		sheet;
 		bool      readonly;
-		string  	MessageID;
-		string 	bill;
+		xstring  	MessageID;
+		xstring 	bill;
 	
+	public:
+		MessageBusinessWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+	public:
+		static MessageBusinessWin* CreateInstance(void* implPtr, void* hWnd)
+		{
+			MessageBusinessWin* pWin = new MessageBusinessWin(implPtr, (HWND)hWnd);
+			return pWin;
+		}
 		int SetAgent()
 		{
 			return 1;
 	
-			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, LPARAM param)
 		{
 			//重置工具条
 			SetAgent();
 			return 1;
 		}
 
-		int OnItemChanged(ref TNotifyEvent evt,int p)
+		int OnItemChanged(TEvent* evt, int p)
 		{
-			ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
-			string colname=hdr.colname;
-			string value = hdr.data;
+			DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+			xstring colname=hdr.colname;
+			xstring value = hdr.data;
 			int row = hdr.row;
 			
-			if(colname=="Category")
+			if(colname==L"Category")
 			{
-				if(value=="供应商申请")
+				if(value==L"供应商申请")
 				{
-					dw_base.SetItemString(1,"Receiver","fdp-011");
-					dw_base.SetItemString(1,"Subject","请添加");
+					dw_base.SetItemString(1,L"Receiver",L"fdp-011");
+					dw_base.SetItemString(1,L"Subject",L"请添加");
 				}
 				return 1;
 			
 				bool changed = false;
-				xml x = ViewObject::RetrieveData("/sale/data/business/message/maint","typ",value);
+				xml x = ViewObject::RetrieveData(L"/sale/data/business/message/maint",L"typ",value);
 				if(x)
 				{
-					string xpage_ = x.GetXmlDoc().documentElement.getAttribute("xpage");
-					string templaterpt = x.GetXmlDoc().documentElement.getAttribute("template");
-					if(xpage_ !="")
+					xstring xpage_ = x.documentElement().getAttribute(L"xpage");
+					xstring templaterpt = x.documentElement().getAttribute(L"template");
+					if(xpage_ !=L"")
 					{
-						string s = "<hbox name='agent'>";
-						s += "<xpage  url='" + xpage_ + "'   name='contentex'/>";
-						s += "</hbox>";
-						SetAgentNodeContent (GetAgentNode("agent"),s);
-						SwitchLayer("sheet2","frame");
-						sheet = GetChildWin("contentex");
+						xstring s = L"<hbox name='agent'>";
+						s += L"<xpage  url='" + xpage_ + L"'   name='contentex'/>";
+						s += L"</hbox>";
+						SetAgentNode (GetAgentNode(L"agent"),s);
+						SwitchLayer(L"sheet2",L"frame");
+						sheet = GetChildWin(L"contentex");
 						changed = true;
 					}
 				}
 				if(!changed)
 				{
 					sheet  = 0;
-					SwitchLayer("sheet1","frame");
+					SwitchLayer(L"sheet1",L"frame");
 				}
 			}
 				
@@ -89,26 +102,26 @@
 		}
 				
 		//命令发布函数
-		int OnCmdDispatch(string comdid)
+		int OnCmdDispatch(xstring comdid)
 		{
-			if(comdid=="xmSend")
+			if(comdid==L"xmSend")
 			{
 				if(!readonly) OnSend();
 				return 1;
 			}
-			else if(comdid=="xmSave")
+			else if(comdid==L"xmSave")
 			{
 				if(!readonly) OnSave();
 				return 1;
 			}
-			else if(comdid=="xmCancel")
+			else if(comdid==L"xmCancel")
 			{
 				CloseWindow();
 				return 1;
 			}
-			if(sheet && comdid !="")
+			if(sheet && comdid !=L"")
 			{
-				int ret = win32::SendMessage(sheet.GetHWND(),0x401,comdid,0);
+				int ret =SendMessage(GetHWND(),0x401,(LPARAM)comdid,0);
 				if(ret) return ret;
 			}
 					
@@ -116,50 +129,49 @@
 		}
 		
 		//命令处理事件
-		int OnXCommand(ref TXCommandEvent evt,int param)
+		int OnXCommand(TEvent* evt, LPARAM 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;
-			if (value == "收件人:")
+			DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+			xstring value = hdr.data;
+			xstring colname = hdr.colname;
+			if (value == L"收件人:")
 			{
 			
-				xaserverarg arg2 = new xaserverarg;
-				arg2.setNativePointer(arg2.CreateInstance());	
-				xaserverarg parg2 = GetParam();
-				OpenWindow("dev:xpage[UserGroupPersonSelect.vx]",cast(arg2 as int));
+				xaserverarg arg2 ;
+				xaserverarg parg2 = GetArg();
+				OpenWindow(L"dev:xpage[UserGroupPersonSelect.vx]",arg2);
 				
-				if(arg2.GetArgString("comdid")=="xmOk")
+				if(arg2.GetArgString(L"comdid")==L"xmOk")
 				{
-					string data = arg2.GetArgString("data");
-					xml x2 = new xml;
-					x2.setNativePointer(xml::CreateInstance());
-					x2.LoadXml(data);
-					msxml::IXMLDOMNodeList nodes = x2.GetXmlDoc().selectNodes("/root/item");
-					trace(x2.GetXml());
+					xstring data = arg2.GetArgString(L"data");
+					xml x2;
 					
-					int len = nodes.length;
+					x2.loadXML(data);
+					KXMLDOMNodeList nodes = x2.selectNodes(L"/root/item");
+					trace(x2.xml());
+					
+					int len = nodes.length();
 				
-					string Names = "";
+					xstring Names = L"";
 					for(int i=0;i<len; i++)
 					{
-						msxml::IXMLDOMElement t= nodes.item(i);
+						KXMLDOMElement t= nodes.item(i);
 						
-						if(t.getAttribute("Name"))
+						if(t.getAttribute(L"Name"))
 						{
-							string Name = t.getAttribute("Name");
-							if(Names=="") 
+							xstring Name = t.getAttribute(L"Name");
+							if(Names==L"") 
 								Names = Name;
-							else if(Names.find(Name) < 0) Names+=";"+Name;
+							else if(Names.find(Name) < 0) Names+=L";"+Name;
 						}
 					}
-					dw_base.SetItemString(1,"Receiver",Names);		
+					dw_base.SetItemString(1,L"Receiver",Names);		
 				}
 				return 1;
 			}
@@ -169,46 +181,46 @@
 		int OnAttachEvent()
 		{
 			//绑定工具条点击事件
-			AttachEvent("WM_XCOMMAND",OnXCommand);
+			AttachEvent(L"WM_XCOMMAND", (FEvent)&MessageBusinessWin::OnXCommand);
 			//获取焦点事件,用于重置工具条
-			AttachEvent("WM_SETFOCUS",OnSetFocus);
+			AttachEvent(L"WM_SETFOCUS", (FEvent)&MessageBusinessWin::OnSetFocus);
 			
-			AttachEvent("dw_base","DWV_ITEMCHANGED",OnItemChanged);
-			AttachEvent("dw_base","DWV_CLICKED",OnDWClick);
+			AttachEvent(L"dw_base",L"DWV_ITEMCHANGED", (FEvent)&MessageBusinessWin::OnItemChanged);
+			AttachEvent(L"dw_base",L"DWV_CLICKED", (FEvent)&MessageBusinessWin::OnDWClick);
 			
 			return 1;
 		}
 		
 		int OnSave()
 		{
-			xml x = new xml;
-			x.setNativePointer(xml::CreateInstance());
-			xaserverarg arg1 = MakeArg("scriptbox");
-			string murl = "/sale/data/Business/message/update"; 
-			if(MessageID=="") murl = "/sale/data/Business/message/add2"; 
-			if(url::get(murl, arg1.GetString(),x)!=1)
+			xml x ;
+			
+			xaserverarg arg1 = MakeArg(L"scriptbox");
+			xstring murl = L"/sale/data/Business/message/update"; 
+			if(MessageID==L"") murl = L"/sale/data/Business/message/add2"; 
+			if(xurl::get(murl, arg1.GetString(),x)!=1)
 			{
-				alert("error1:\r\n"+x.GetXmlDoc().text);
+				alert((xstring)L"error1:\r\n"+x.text());
 				return 1;
 			}
-			if(MessageID=="") MessageID= dw_base.GetGuid(1);
-			alert("已保存到草稿箱");
+			if(MessageID==L"") MessageID= dw_base.GetGuid(1);
+			alert(L"已保存到草稿箱");
 			return 1;
 			
-			xaserverarg arg = new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());
+			xaserverarg arg;
+			
 			if(sheet)
 			{
-				int val = cast(arg as int);
-				win32::SendMessage(sheet.GetHWND(),0x401,"GetEntityData:"+val.toString(),0);
-				string data = arg.GetArgString("EntityData");
-				murl = "/sale/data/Business/message/attach/update";
-				arg1.AddArg("url","message/attach");
-				arg1.AddArg("content",data);
-				arg1.AddArg("param",MessageID);
-				if(url::get(murl, arg1.GetString(),x)!=1)
+				
+				SendMessage(sheet.GetHWND(),0x401,L"GetEntityData:"+arg,0);
+				xstring data = arg.GetArgString(L"EntityData");
+				murl = L"/sale/data/Business/message/attach/update";
+				arg1.AddArg(L"url",L"message/attach");
+				arg1.AddArg(L"content",data);
+				arg1.AddArg(L"param",MessageID);
+				if(xurl::get(murl, arg1.GetString(),x)!=1)
 				{
-					alert("error2:\r\n"+x.GetXmlDoc().text);
+					alert((xstring)L"error2:\r\n"+x.text());
 					return 1;
 				}
 			}
@@ -217,88 +229,87 @@
 		
 		int OnSend()
 		{
-			xml x = new xml;
-			x.setNativePointer(xml::CreateInstance());
-			//xaserverarg arg1 = MakeArg("outbox");
-			xaserverarg arg1 = MakeArg("inbox");
-			string murl = "/sale/data/Business/message/update"; 
-			if(MessageID=="") murl = "/sale/data/Business/message/add2"; 
+			xml x ;
+			//xaserverarg arg1 = MakeArg(L"outbox");
+			xaserverarg arg1 = MakeArg(L"inbox");
+			xstring murl = L"/sale/data/Business/message/update"; 
+			if(MessageID==L"") murl = L"/sale/data/Business/message/add2"; 
 				
 			trace(arg1.GetString());
 				
-			if(url::get(murl, arg1.GetString(),x)!=1)
+			if(xurl::get(murl, arg1.GetString(),x)!=1)
 			{
-				alert("error1:\r\n"+x.GetXmlDoc().text);
+				alert((xstring)L"error1:\r\n"+x.text());
 				return 1;
 			}
-			if(MessageID=="") MessageID= dw_base.GetGuid(1);
-			alert("发送完成");
+			if(MessageID==L"") MessageID= dw_base.GetGuid(1);
+			alert(L"发送完成");
 			CloseWindow();
 			
 			return 1;
 			
-			xaserverarg arg = new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());
+			xaserverarg arg;
+			
 			if(sheet)
 			{
-				int val = cast(arg as int);
-				win32::SendMessage(sheet.GetHWND(),0x401,"GetEntityData:"+val.toString(),0);
-				string data = arg.GetArgString("EntityData");
-				murl = "/sale/data/Business/message/attach/update";
-				arg1.AddArg("url","message/attach");
-				arg1.AddArg("content",data);
-				arg1.AddArg("param",MessageID);
-				if(url::get(murl, arg1.GetString(),x)!=1)
+				
+				SendMessage(sheet.GetHWND(),0x401,L"GetEntityData:"+arg,0);
+				xstring data = arg.GetArgString(L"EntityData");
+				murl = L"/sale/data/Business/message/attach/update";
+				arg1.AddArg(L"url",L"message/attach");
+				arg1.AddArg(L"content",data);
+				arg1.AddArg(L"param",MessageID);
+				if(xurl::get(murl, arg1.GetString(),x)!=1)
 				{
-					alert("error2:\r\n"+x.GetXmlDoc().text);
+					alert((xstring)L"error2:\r\n"+x.text());
 					return 1;
 				}
 			}
 			return 1;
 		}
 				
-		xaserverarg MakeArg(string folder)
+		xaserverarg MakeArg(xstring folder)
 		{
 			//ThingImpl:AddMessage($MessageID,$Folder,$EntityNo, $EntityID, $Subject, $Category, $Reciever, $Content)
 			//ThingImpl:UpdateMessage($MessageID,$Folder,$EntityNo, $EntityID, $Subject, $Category, $Reciever, $Content)
 				
-			xaserverarg arg = new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());
+			xaserverarg arg;
 			
-			if(MessageID=="")
+			
+			if(MessageID==L"")
 			{
 				dw_base.SetGuid(1,ViewObject::GetGuid());
-				arg.AddArg("MessageID", dw_base.GetGuid(1));
-				arg.AddArg("EntityID", dw_base.GetGuid(1));
+				arg.AddArg(L"MessageID", dw_base.GetGuid(1));
+				arg.AddArg(L"EntityID", dw_base.GetGuid(1));
 			}
 			else
 			{
-				arg.AddArg("MessageID", MessageID);
-				arg.AddArg("EntityID", MessageID);
+				arg.AddArg(L"MessageID", MessageID);
+				arg.AddArg(L"EntityID", MessageID);
 			}
 			
-			arg.AddArg("Folder", folder);
-			arg.AddArg("EntityNo", dw_base.GetItemString(1,"EntityNo"));
-			arg.AddArg("Subject", dw_base.GetItemString(1,"Subject"));
-			arg.AddArg("Category", dw_base.GetItemString(1,"Category"));
-			arg.AddArg("Reciever", dw_base.GetItemString(1,"Receiver"));
-			arg.AddArg("Note", dw_base.GetItemString(1,"Note"));
-			//arg.AddArg("Content", dw_base.GetItemString(1,"Content"));
-			arg.AddArg("Content",GetControl("content").GetText());
-			arg.AddArg("Content2",bill);
+			arg.AddArg(L"Folder", folder);
+			arg.AddArg(L"EntityNo", dw_base.GetItemString(1,L"EntityNo"));
+			arg.AddArg(L"Subject", dw_base.GetItemString(1,L"Subject"));
+			arg.AddArg(L"Category", dw_base.GetItemString(1,L"Category"));
+			arg.AddArg(L"Reciever", dw_base.GetItemString(1,L"Receiver"));
+			arg.AddArg(L"Note", dw_base.GetItemString(1,L"Note"));
+			//arg.AddArg(L"Content", dw_base.GetItemString(1,L"Content"));
+			arg.AddArg(L"Content",xcontrol(GetControl(L"sle_search")).GetText());
+			arg.AddArg(L"Content2",bill);
 			return arg;
 		}
 			
 		int  OnRetrieve()
 		{
-			xml x = new xml;
-			x.setNativePointer(xml::CreateInstance());
-			xaserverarg arg = new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());	
-			arg.AddArg("id",MessageID);
-			if (getUrl("/sale/data/business/list/fetch",arg.GetString(),x)!=1)
+			xml x;
+			
+			xaserverarg arg;
+				
+			arg.AddArg(L"id",MessageID);
+			if (getUrl(L"/sale/data/business/list/fetch",arg.GetString(),x)!=1)
 			{
-				trace(x.GetXmlDoc().text);
+				trace(x.text());
 				return -1;
 			}else	
 			{
@@ -306,41 +317,41 @@
 				dw_base.Redraw();
 				if(readonly) dw_base.SetReadOnly(true);
 			
-				if(x.GetXmlDoc().selectSingleNode("root/Content"))
+				if(x.selectSingleNode(L"root/Content"))
 				{
-					string str = x.GetXmlDoc().selectSingleNode("root/Content").text;
-					str = str.replace("\n","\r\n");
-					GetControl("content").SetText(str);
+					xstring str = x.selectSingleNode(L"root/Content").text();
+					str = str.replace(L"\n",L"\r\n");
+					GetControl(L"content").SetText(str);
 				}
-				//alert(x.GetXml());
-				if(x.GetXmlDoc().selectSingleNode("root/Content2"))
+				//alert(x.xml());
+				if(x.selectSingleNode(L"root/Content2"))
 				{
 					
-					string str2 = x.GetXmlDoc().selectSingleNode("root/Content2").text;
-					string tm="";
-					string EntityID="";
-					string Category="";
-					int pos = str2.find("EntityID=");
+					xstring str2 = x.selectSingleNode(L"root/Content2").text();
+					xstring tm=L"";
+					xstring EntityID=L"";
+					xstring Category=L"";
+					int pos = str2.find(L"EntityID=L");
 					if(pos >= 0)
 					{
-						tm = str2.mid(pos+"EntityID=".length(),64);
-						if(tm.find(" ")>0) tm = tm.left(tm.find(" "));
+						tm = str2.mid(pos + L"EntityID=L".length(),64);
+						if(tm.find(L" ")>0) tm = tm.left(tm.find(L" "));
 						EntityID=tm;
 					}
-					pos = str2.find("Category=");
+					pos = str2.find(L"Category=L");
 					if(pos >= 0)
 					{
-						tm = str2.mid(pos+"Category=".length(),64);
-						if(tm.find(" ")>0) tm = tm.left(tm.find(" "));
+						tm = str2.mid(pos+L"Category=L".length(),64);
+						if(tm.find(L" ")>0) tm = tm.left(tm.find(L" "));
 						Category=tm;
 					}
-					trace("EntityID:"+EntityID);
-					trace("Category:"+Category);
-					if(EntityID != "" && Category != "")
+					trace(L"EntityID:"+EntityID);
+					trace(L"Category:"+Category);
+					if(EntityID != L"" && Category != L"")
 					{
-						string eleStr = "<row EntityID='"+EntityID+"'";
-						eleStr += " category='" + Category + "'/>";
-						bill = "EntityID="+EntityID+" Category=" + Category;
+						xstring eleStr = L"<row EntityID='"+EntityID+L"'";
+						eleStr += L" category='" + Category + L"'/>";
+						bill = L"EntityID=L"+EntityID+L" Category=L" + Category;
 						ShowDetail(eleStr);
 					}
 				}
@@ -348,23 +359,23 @@
 			return 1;
 		}
 
-		int ShowDetail(string eleStr)
+		int ShowDetail(xstring eleStr)
 		{
-			xaserverarg arg=new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());	
-			arg.AddArg("content",eleStr);
-			xml doc=new xml;
-			doc.setNativePointer(xml::CreateInstance());				
-			if(getUrl("/sale/data/vpage/vstart/task",arg.GetString(),doc)!=1)
+			xaserverarg arg;
+				
+			arg.AddArg(L"content",eleStr);
+			xml doc;
+						
+			if(getUrl(L"/sale/data/vpage/vstart/task",arg.GetString(),doc)!=1)
 			{
-				trace("error->:"+doc.GetXml());
+				trace((xstring)L"error->:"+doc.xml());
 				return 0;
 			}
-			if(doc.GetXml() == "")
+			if(doc.xml() == L"")
 				return -1;
 			
-			htmlctrl ht = GetControl("taskinfo");
-			ht.SetContent(doc.GetXml());
+			htmlctrl ht = GetControl(L"taskinfo");
+			ht.SetContent(doc.xml());
 			ht.Redraw();
 			
 			return 1;
@@ -372,34 +383,35 @@
 			
 		int onload()
 		{
-			dw_base = GetControl("dw_base");
-			dw_base.openUrl("/sale/view/business3/template/message/maint");
+			SetArg();
+			dw_base = GetControl(L"dw_base");
+			dw_base.openUrl(L"/sale/view/business3/template/message/maint");
 			dw_base.SetColHeaderHeight(0);
 			dw_base.SetRowSelectorWidth(0);
 			dw_base.SetHScrollState(false);
 			dw_base.SetVScrollState(false);
 			
-			dw_base.SetItemString(1,"Category","普通");
+			dw_base.SetItemString(1,L"Category",L"普通");
 		
 			OnAttachEvent();	
 			
 			readonly = false;
-			MessageID = "";
-			bill = "";
+			MessageID = L"";
+			bill = L"";
 			
 			SetAgent();			
-			if(GetParam())
+			if(GetWinParam())
 			{
-				xaserverarg arg = GetParam();
-				MessageID = arg.GetArgString("id");
-				if(arg.GetArgString("readonly")=="1") readonly=true;
+				xaserverarg arg = GetArg();
+				MessageID = arg.GetArgString(L"id");
+				if(arg.GetArgString(L"readonly")==L"1") readonly=true;
 				OnRetrieve();
 			
-				if(arg.GetArgString("EntityID")!="")
+				if(arg.GetArgString(L"EntityID")!=L"")
 				{
-					string str = "<row EntityID='"+arg.GetArgString("EntityID")+"'";
-					str += " category='" + arg.GetArgString("EntityName")+"'/>";
-					bill = "EntityID="+arg.GetArgString("EntityID")+" Category=" + arg.GetArgString("EntityName");
+					xstring str = L"<row EntityID='"+arg.GetArgString(L"EntityID")+L"'";
+					str += L" category='" + arg.GetArgString(L"EntityName")+L"'/>";
+					bill = L"EntityID=L"+arg.GetArgString(L"EntityID")+L" Category=L" + arg.GetArgString(L"EntityName");
 					ShowDetail(str);
 				}
 			}
@@ -412,5 +424,4 @@
 			
 			return 1;
 		}		
-	};
-]
\ No newline at end of file
+	};
\ No newline at end of file
diff --git a/jrj/project/business/Affair/message.supplier.cpp b/jrj/project/business/Affair/message.supplier.cpp
index e4a74ab..f53db45 100644
--- a/jrj/project/business/Affair/message.supplier.cpp
+++ b/jrj/project/business/Affair/message.supplier.cpp
@@ -1,66 +1,79 @@
-use "xcontrol.vframe.vbusiness.vd"
-use "xbase.vframe.vbusiness.vd"
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <xcontrol/xcell.hpp>
 
-unit trade 
-[
-	class SupplierMessageWin :  public xframe
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+	class  __declspec(dllexport) SupplierMessageWin :  public xframe
 	{
+	public:
 		xdwtable dw_base;
 		//xdwgrid	dw_list;
 		xnode	m_agentNode;	//Agent Condition
-
+	public:
+		SupplierMessageWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+	public:
+		static SupplierMessageWin* CreateInstance(void* implPtr, void* hWnd)
+		{
+			SupplierMessageWin* pWin = new SupplierMessageWin(implPtr, (HWND)hWnd);
+			return pWin;
+		}
 		int SetAgent()
 		{
 			return 1;
 	
-			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, LPARAM param)
 		{
 			//重置工具条
 			SetAgent();
 			return 1;
 		}
 
-		int UpLoad(string name)
+		int UpLoad(xstring name)
 		{
-			string str = name.mid(0,2);
-			str = str.upper();
-			int ret1 = xaserver::Upload("supplier"+str, name+".jpg", this.GetHWND(),"",false);
+			xstring str = name.mid(0,2);
+			str = str.toUpper();
+			int ret1 = xaserver::Upload(L"supplier"+str, name+L".jpg", GetHWND(),L"",false);
 			return ret1;
 		}				
 	
-		int OnItemClick(ref TNotifyEvent evt,int p)
+		int OnItemClick(TEvent* evt, int p)
 		{
-			ref DWNMHDR  hdr1 = trust(evt.pnmh as ref DWNMHDR);
-			string colname1= hdr1.colname;
+			DWNMHDR& hdr1 = *(DWNMHDR*)evt->notify.pnmh;
+			xstring colname1= hdr1.colname;
 			
-			ref DWNMHDR  hdr = evt.pnmh;
-			string value = hdr.data;
-			xaserverarg arg=new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());
+			DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+			xstring value = hdr.data;
+			xaserverarg arg;
 			
-			if(value == "上传附件")
+			
+			if(value == L"上传附件")
 			{
-				string strguid = publiccode::GetGuid();
+				xstring strguid = publiccode::GetGuid();
 				//alert(strguid);
 				int ret1 = UpLoad(strguid);
 				if(ret1  == -1)
@@ -68,40 +81,40 @@
 				
 				if(ret1  == 0)
 				{
-					alert("上传附件失败");
+					alert(L"上传附件失败");
 					return -1;
 				}
 				else
 				{	
-					alert("上传附件成功");
-					string strimage=dw_base.GetItemString(1,"ImageList1");
+					alert(L"上传附件成功");
+					xstring strimage=dw_base.GetItemString(1,L"ImageList1");
 					//alert(strimage);					
-					if(strimage=="")
-						strimage="<ImageList></ImageList>";
-					xml y=new xml;
-					y.setNativePointer(xml::CreateInstance());
-					y.LoadXml(strimage);
+					if(strimage==L"")
+						strimage=L"<ImageList></ImageList>";
+					xml y;
+					
+					y.loadXML(strimage);
 
-					msxml::IXMLDOMElement ele= y.GetXmlDoc().documentElement;
+					KXMLDOMElement ele= y.documentElement();
 				
-					xml x=new xml;
-					x.setNativePointer(xml::CreateInstance());
-					string xx = "<ImageList><image>"+strguid+".jpg</image></ImageList>";
-					x.LoadXml(xx);
-					msxml::IXMLDOMElement e=  x.GetXmlDoc().selectSingleNode("//image");							
+					xml x;
+					
+					xstring xx = L"<ImageList><image>"+strguid+L".jpg</image></ImageList>";
+					x.loadXML(xx);
+					KXMLDOMElement e=  x.selectSingleNode(L"//image");							
 					ele.appendChild(e);					
-					dw_base.SetItemString(1,"ImageList1",ele.xml);
+					dw_base.SetItemString(1,L"ImageList1",ele.xml());
 					dw_base.Redraw();
 				}	
 			}
 					
-			if(value == "查看")
+			if(value == L"查看")
 			{	
-				arg.AddArg("src",dw_base.GetItemString(1,"ImageList1"));
-				int pa = arg.getNativePointer();
-				openUrl("/sale/view/SupplierV3/xpage/supplierattachment/picture", pa);
-				arg.setNativePointer(pa);	
-				dw_base.SetItemString(1,"ImageList1",arg.GetArgString("src"));
+				arg.AddArg(L"src",dw_base.GetItemString(1,L"ImageList1"));
+				
+				openUrl(L"/sale/view/SupplierV3/xpage/supplierattachment/picture", arg);
+					
+				dw_base.SetItemString(1,L"ImageList1",arg.GetArgString(L"src"));
 			}
 			
 			return 1;
@@ -109,19 +122,19 @@
 		
 		int GetEntityData(xaserverarg arg)
 		{
-			xml x = new xml;
-			x.setNativePointer(xml::CreateInstance());
-			dw_base.DwUpdateAllTo(x.GetXmlDoc());
-			arg.AddArg("EntityData",x.GetXml());
+			xml x;
+			
+			dw_base.DwUpdateAllTo(x);
+			arg.AddArg(L"EntityData",x.xml());
 			
 			return 1;
 		}
 		
-		xaserverarg GetArg(string comdid)
+		xaserverarg GetArg(xstring comdid)
 		{
-			if(comdid.find(":")>=0)
+			if(comdid.find(L":")>=0)
 			{
-				xaserverarg arg = comdid.mid(comdid.find(":")+1,64).toInt();
+				xaserverarg arg = comdid.mid(comdid.find(L":")+1,64).toInt();
 				return arg;
 			}
 			return 0;
@@ -129,39 +142,39 @@
 			
 		int GetEntityInfo(xaserverarg arg)
 		{
-			arg.AddArg("EntityName","Supplier");
-			arg.AddArg("EntityID",dw_base.GetGuid(1));
+			arg.AddArg(L"EntityName",L"Supplier");
+			arg.AddArg(L"EntityID",dw_base.GetGuid(1));
 			return 1;
 		}
 			
 		//命令发布函数
-		int OnCmdDispatch(string comdid)
+		int OnCmdDispatch(xstring comdid)
 		{
-			if(comdid.find("GetEntityInfo:")==0) return GetEntityInfo(GetArg(comdid));
-			else if(comdid.find("GetEntityData:")==0) return GetEntityData(GetArg(comdid));
-			else if(comdid=="xmAddRow") return OnAddRow();
-			else if(comdid=="xmDeleteRow") return OnDeleteRow();
+			if(comdid.find(L"GetEntityInfo:")==0) return GetEntityInfo(GetArg(comdid));
+			else if(comdid.find(L"GetEntityData:")==0) return GetEntityData(GetArg(comdid));
+			else if(comdid==L"xmAddRow") return OnAddRow();
+			else if(comdid==L"xmDeleteRow") return OnDeleteRow();
 			return 0;
 		}
 		
 		//命令处理事件
-		int OnXCommand(ref TXCommandEvent evt,int param)
+		int OnXCommand(TEvent* evt, LPARAM param)
 		{
-			return OnCmdDispatch(evt.pStrID);
+			return OnCmdDispatch(evt->xcommand.pStrID);
 		}
 		
 		int OnAttachEvent()
 		{
 			//绑定工具条点击事件
-			AttachEvent("WM_XCOMMAND",OnXCommand);
+			AttachEvent(L"WM_XCOMMAND", (FEvent)&SupplierMessageWin::OnXCommand);
 			//获取焦点事件,用于重置工具条
-			AttachEvent("WM_SETFOCUS",OnSetFocus);
-			AttachEvent("dw_base","DWV_CLICKED",OnItemClick);
+			AttachEvent(L"WM_SETFOCUS", (FEvent)&SupplierMessageWin::OnSetFocus);
+			AttachEvent(L"dw_base",L"DWV_CLICKED", (FEvent)&SupplierMessageWin::OnItemClick);
 		}
 		
 		int OnAddRow()
 		{
-			xdwtable dw_obj = dw_base.FindDwTable("item");
+			xdwtable dw_obj = dw_base.FindDwTable(L"item");
 			dw_obj.InsertRow(0);
 			return 1;
 		}
@@ -179,11 +192,11 @@
 			xml x = new xml;
 			x.setNativePointer(xml::CreateInstance());
 			xaserverarg arg = new xaserverarg;
-			arg.setNativePointer(arg.CreateInstance());	
-			arg.AddArg("xxx","xxx");
-			if (getUrl("",arg.GetString(),x)!=1)
+				
+			arg.AddArg(L"xxx",L"xxx");
+			if (getUrl(L"",arg.GetString(),x)!=1)
 			{
-				trace(x.GetXmlDoc().text);
+				trace(x.text());
 				return -1;
 			}else	
 			{
@@ -196,8 +209,8 @@
 		
 		int onload()
 		{
-			dw_base = GetControl("dw_base");
-			dw_base.openUrl("/sale/view/SupplierV3/template/supplier/simplebase");
+			dw_base = GetControl(L"dw_base");
+			dw_base.openUrl(L"/sale/view/SupplierV3/template/supplier/simplebase");
 			dw_base.SetColHeaderHeight(0);
 			dw_base.SetRowSelectorWidth(0);
 			//dw_base.SetHScrollState(false);
@@ -214,5 +227,4 @@
 			
 			return 1;
 		}		
-	};
-]
\ No newline at end of file
+	};
\ No newline at end of file

--
Gitblit v1.9.3