From 6a4764ee747fff45d89ef48f98873d6409e4f85e Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期二, 16 七月 2024 17:22:23 +0800
Subject: [PATCH] update

---
 jrj/project/business/BasicCode/Simple.Menu.Config.cpp |  224 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 123 insertions(+), 101 deletions(-)

diff --git a/jrj/project/business/BasicCode/Simple.Menu.Config.cpp b/jrj/project/business/BasicCode/Simple.Menu.Config.cpp
index 65f8683..d201903 100644
--- a/jrj/project/business/BasicCode/Simple.Menu.Config.cpp
+++ b/jrj/project/business/BasicCode/Simple.Menu.Config.cpp
@@ -1,13 +1,28 @@
-use "frame.vd"
-use "publiccode.vd"
-use "xcontrol.vd"
-use "xtreeview.vd"
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
 
-class SimpleMenuConfig : public frame
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+
+class  __declspec(dllexport) SimpleMenuConfig : public xframe
 {
+public:
 	xdwgrid dw_list;
 	xtreeview tv_gs;
-
+	xnode	m_agentNode;
+public:
+	SimpleMenuConfig(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+public:
+	static SimpleMenuConfig* CreateInstance(void* implPtr, void* hWnd)
+	{
+		SimpleMenuConfig* pWin = new SimpleMenuConfig(implPtr, (HWND)hWnd);
+		return pWin;
+	}
 	int AddRow()
 	{
 		dw_list.InsertRow(0);
@@ -41,50 +56,50 @@
 		int i=0;
 		for(i=1; i<=dw_list.GetRowCount();i++)
 		{
-			string seq = dw_list.GetItemString(i, "SeqNo");
-			if(seq != i.toString())
-				dw_list.SetItemString(i, "SeqNo", i.toString());
+			xstring seq = dw_list.GetItemString(i, L"SeqNo");
+			if(seq != xstring(i))
+				dw_list.SetItemString(i, L"SeqNo", xstring(i));
 		}
 		
-		xml x=new xml;
-		x.setNativePointer(xml::CreateInstance());
-		xaserverarg arg=new xaserverarg;
-		arg.setNativePointer(arg.CreateInstance());	
-		dw_list.DwUpdateAllToEx(x.GetXmlDoc());
-		arg.AddArg("content", x.GetXml());
-		if(getUrl("/workflow/action/ItemPictureMenu.dbmap/bill.update", arg.GetString(), x) != 1)
-			alert("保存失败!");
+		xml x;
+		
+		xaserverarg arg;
+			
+		dw_list.DwUpdateAllToEx(x);
+		arg.AddArg(L"content", x.xml());
+		if(getUrl(L"/workflow/action/ItemPictureMenu.dbmap/bill.update", arg.GetString(), x) != 1)
+			alert(L"保存失败!");
 		else
 		{
-			string str = x.GetXml();
+			xstring str = x.xml();
 			//alert(str);
-			if(str.find("失败", 0) > 0)
-				alert("保存失败!");
+			if(str.find(L"失败", 0) > 0)
+				alert(L"保存失败!");
 			else
 			{
-				//alert("保存成功!");
+				//alert(L"保存成功!");
 				dw_list.ResetUpdateStatus();
-				dw_list.DwUpdateAllToEx(x.GetXmlDoc());
-				int hItem = xtreeview::GetSelectedItem(tv_gs.GetId());
+				dw_list.DwUpdateAllToEx(x);
+				HTREEITEM hItem =tv_gs.GetSelectedItem();
 				if(hItem > 0)
 				{
-					msxml::IXMLDOMElement e =  x.GetXmlDoc().documentElement;
-					int p = trust(e as int);
-					xtreeview::SetItemData(tv_gs.GetId(), hItem, p);
+					KXMLDOMElement e =  x.documentElement();
+					int p = trust(e);
+					tv_gs.SetItemData(hItem, p);
 				
-					while(xtreeview::GetChildItem(tv_gs.GetId(), hItem) > 0)
-						xtreeview::DeleteItem(tv_gs.GetId(), xtreeview::GetChildItem(tv_gs.GetId(), hItem));
+					while(tv_gs.GetChildItem( hItem) > 0)
+						tv_gs.DeleteItem(tv_gs.GetChildItem( hItem));
 				
-					msxml::IXMLDOMNodeList li =  x.GetXmlDoc().selectNodes("item/item");
-					int s = li.length;
+					KXMLDOMNodeList li =  x.selectNodes(L"item/item");
+					int s = li.length();
 					for(i=0;i<s;i++)
 					{
-						msxml::IXMLDOMElement ele =  li.item(i);
-						int pa = trust(ele as int);
-						string name = ele.selectSingleNode("Name").text;
-						int cItem = xtreeview::InsertChildItem(tv_gs.GetId(), hItem, name, pa, 15);
-						if(ele.selectSingleNode("item"))
-							xtreeview::SetItemChild1(tv_gs.GetId(), cItem, 1);
+						KXMLDOMElement ele =  li.item(i);
+						int pa = trust(ele);
+						xstring name = ele.selectSingleNode(L"Name").text();
+						HTREEITEM cItem =tv_gs.InsertChildItem( hItem, name, pa, 15);
+						if(ele.selectSingleNode(L"item"))
+							tv_gs.SetItemChild1(cItem, 1);
 					}
 				}
 				
@@ -117,132 +132,139 @@
 		return 1;
 	}
 						
-	int OnCmdDispatch(string comdid)
+	int OnCmdDispatch(xstring comdid)
 	{
-		int hCursor = xutil::SetCursorWait();
-		if(comdid == "AddRow")  AddRow();
-		else if(comdid == "InsertRow")  InsertRow();
-		else if(comdid == "DeleteRow")  DeleteRow();
-		else if(comdid == "Save")  Save();
-		else if(comdid == "UpRow")  UpRow();
-		else if(comdid == "DownRow")  DownRow();
+		HCURSOR hCursor = xutil::SetCursorWait();
+		if(comdid == L"AddRow")  AddRow();
+		else if(comdid == L"InsertRow")  InsertRow();
+		else if(comdid == L"DeleteRow")  DeleteRow();
+		else if(comdid == L"Save")  Save();
+		else if(comdid == L"UpRow")  UpRow();
+		else if(comdid == L"DownRow")  DownRow();
 		xutil::RestoreCursor(hCursor);
 		return 0;
 	}		
 
 	int SetAgent()
 	{
-		string xfNodeAgentArea  = "agentarea";
+		xstring xfNodeAgentArea = L"agentarea";
 		xnode anode = GetAgentNode(xfNodeAgentArea);
-		msxml::IXMLDOMElement xframeElement =  GetElement();
-		msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"/*");
-		if(agent)
+		if (m_agentNode)
 		{
-			string s = agent.xml;
-			SetAgentNodeContent(anode,s);
+			SetAgentNode(anode, m_agentNode);
+		}
+		else
+		{
+			KXMLDOMElement xframeElement = GetElement();
+			KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
+			if (agent)
+			{
+				xstring s = agent.xml();
+				m_agentNode = SetAgentNode(anode, s);
+			}
 		}
 		return 1;
 	}
 		
-	int OnSetFocus(ref TEvent evt,int p)
+	int OnSetFocus(TEvent* evt, LPARAM p)
 	{		
 		SetAgent()	;	
 		return 1;
 	}		
 	
-	int OnXCommand(ref TXCommandEvent evt,int p)
+	int OnXCommand(TEvent* evt, LPARAM param)
 	{
-		return OnCmdDispatch(evt.pStrID);
-	}	
+		return OnCmdDispatch(evt->xcommand.pStrID);
+	}
 		
-	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;
-		msxml::IXMLDOMElement e =  trust(xtreeview::GetItemData(tv_gs.GetId(), hItem) as msxml::IXMLDOMElement);
-		//trace("%s", e.xml);
-		//string id = e.selectSingleNode("MenuID").text;
+		
+		NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
+		HTREEITEM hItem = nmtv.itemNew.hItem;
+		KXMLDOMElement& e = *(KXMLDOMElement*)tv_gs.GetItemData(hItem);
+		//trace(L"%s", e.xml);
+		//xstring id = e.selectSingleNode(L"MenuID").text();
 		dw_list.AcceptText();
 		dw_list.Retrieve(e);
 		dw_list.Redraw();
 		return 1;
 	}	
 
-	int OnTreeMoveNode(ref TNotifyEvent evt,int p)	
+	int OnTreeMoveNode(TEvent* evt, LPARAM p)	
 	{
-		ref TVNNMHDR nmtv = trust(evt.pnmh as ref TVNNMHDR);
-		int xfrom = nmtv.FromItem;
-		int xto = nmtv.ToItem;
+		TVNNMHDR& nmtv = *(TVNNMHDR*)evt->notify.pnmh;
+		HTREEITEM xfrom = nmtv.FromItem;
+		HTREEITEM xto = nmtv.ToItem;
 		
-		int ret = xwin::MessageBox(this.GetHWND(), "确定移动节点!","提示:",1);
+		int ret = MessageBox(GetHWND(), L"确定移动节点!",L"提示:",1);
 		//trace(ret);
 		if(ret == 2)
 		{
-			xtreeview::DeleteItem(tv_gs.GetId(), xto);
+			tv_gs.DeleteItem(xto);
 			return -1;
 		}
+		KXMLDOMElement& fid = *(KXMLDOMElement*)tv_gs.GetItemData(xto);
+		HTREEITEM xpto =tv_gs.GetParentItem(xto);
+		KXMLDOMElement& tid = *(KXMLDOMElement*)tv_gs.GetItemData(xto);
+		//trace(L"%s-------------------------%s",fid.xml,tid.xml);
+		xml x ;
 		
-		msxml::IXMLDOMElement fid = trust(xtreeview::GetItemData(tv_gs.GetId(), xfrom) as msxml::IXMLDOMElement);
-		int xpto = xtreeview::GetParentItem(tv_gs.GetId(), xto);
-		msxml::IXMLDOMElement tid = trust(xtreeview::GetItemData(tv_gs.GetId(), xpto) as msxml::IXMLDOMElement);
-		//trace("%s-------------------------%s",fid.xml,tid.xml);
-		xml x = new xml;
-		x.setNativePointer(xml::CreateInstance());
-		xaserverarg arg=new xaserverarg;
-		arg.setNativePointer(arg.CreateInstance());		
+		xaserverarg arg;
+				
 		
-		string id1 = fid.selectSingleNode("@guid").text;
-		string id2 = tid.selectSingleNode("@guid").text;
-		//trace("%s-------------------------%s",id1,id2);
-		string str = "update ItemPictureMenu set parentid='"+id2+"' where menuid='"+id1+"' ";
-		str += " select 1 for xml path('root')";
+		xstring id1 = fid.selectSingleNode(L"@guid").text();
+		xstring id2 = tid.selectSingleNode(L"@guid").text();
+		//trace(L"%s-------------------------%s",id1,id2);
+		xstring str = L"update ItemPictureMenu set parentid='"+id2+L"' where menuid='"+id1+L"' ";
+		str += L" select 1 for xml path('root')L";
 		
-		arg.AddArg("sql", str);
+		arg.AddArg(L"sql", str);
 		if(getSql(arg.GetString(),x)!=1)
 		{
-			trace("error:"+x.GetXml());
-			alert("移动节点出错!");
-			xtreeview::DeleteItem(tv_gs.GetId(), xto);
+			trace(L"error:"+(xstring)x.xml());
+			alert(L"移动节点出错!");
+			tv_gs.DeleteItem(xto);
 			return 0;
 		}
-		//trace("================");
+		//trace(L"================L");
 		//
-		int xpfrom = xtreeview::GetParentItem(tv_gs.GetId(), xfrom);
-		trace("%d", xpfrom);
-		msxml::IXMLDOMElement fe = trust(xtreeview::GetItemData(tv_gs.GetId(), xpfrom) as msxml::IXMLDOMElement);
-		//trace("%s-------------------------%s",fe.xml,tid.xml);
-		msxml::IXMLDOMElement fe1 = fe.selectSingleNode("item[@guid='"+id1+"']");
+		HTREEITEM xpfrom =tv_gs.GetParentItem(xfrom);
+		//trace(L"%d", xpfrom);
+		KXMLDOMElement& fe = *(KXMLDOMElement*)tv_gs.GetItemData(xpfrom);
+		//trace(L"%s-------------------------%s",fe.xml,tid.xml);
+		KXMLDOMElement fe1 = fe.selectSingleNode(L"item[@guid='"+id1+L"']");
 		fe.removeChild(fe1);
 		tid.appendChild(fid);
 		
-		xtreeview::DeleteItem(tv_gs.GetId(), xfrom);
+		tv_gs.DeleteItem(xfrom);
 		return 1;
 	}
 
 	int OnInitial()
 	{			
-		int rItem = xtreeview::GetRootItem(tv_gs.GetId());
-		xtreeview::ExpandItemEx(tv_gs.GetId(), rItem);
-		xtreeview::ItemFocus(tv_gs.GetId(), rItem);
+		HTREEITEM rItem =tv_gs.GetRootItem();
+		tv_gs.ExpandItemEx( rItem);
+		tv_gs.ItemFocus(rItem);
 		return 1;
 	}
 		
 	int OnAttachEvent()
 	{
-		AttachEvent("WM_XCOMMAND",OnXCommand);
-		AttachEvent("WM_SETFOCUS",OnSetFocus);
-		AttachEvent("tv_gs","TVN_SELCHANGED",OnTreeSelChanged);
-		AttachEvent("tv_gs", "TVN_ENDDRAG",OnTreeMoveNode);
+		AttachEvent(L"WM_XCOMMAND", (FEvent)&SimpleMenuConfig::OnXCommand);
+		AttachEvent(L"WM_SETFOCUS", (FEvent)&SimpleMenuConfig::OnSetFocus);
+		AttachEvent(L"tv_gs",L"TVN_SELCHANGED", (FEvent)&SimpleMenuConfig::OnTreeSelChanged);
+		AttachEvent(L"tv_gs", L"TVN_ENDDRAG", (FEvent)&SimpleMenuConfig::OnTreeMoveNode);
 		return 1;
 	}		
 	
 	int onload()
 	{
-		dw_list = GetControl("dw_list");
-		dw_list.openUrl("/sale/view/SimpleProduct/template/Simple/Menu");
-		dw_list.SetColumnState("SeqNo", false);
+		dw_list = GetControl(L"dw_list");
+		dw_list.openUrl(L"/sale/view/SimpleProduct/template/Simple/Menu");
+		dw_list.SetColumnState(L"SeqNo", false);
 		
-		tv_gs = GetControl("tv_gs");
+		tv_gs = GetControl(L"tv_gs");
 		
 		SetAgent();
 		OnAttachEvent();

--
Gitblit v1.9.3