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