From a4d2315ee4ca3f6177b4fb2526bed2feff3d89be Mon Sep 17 00:00:00 2001
From: lifan <2308045698@qq.com>
Date: 星期三, 22 十月 2025 16:52:58 +0800
Subject: [PATCH] update
---
jrj/project/business/BasicCode/Simple.Menu.Config.cpp | 224 ++++++++++++++++++++++++++++++-------------------------
1 files changed, 122 insertions(+), 102 deletions(-)
diff --git a/jrj/project/business/BasicCode/Simple.Menu.Config.cpp b/jrj/project/business/BasicCode/Simple.Menu.Config.cpp
index 65f8683..7ab5ac8 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,48 @@
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());
- if(hItem > 0)
+ dw_list.DwUpdateAllToEx(x);
+ HTREEITEM hItem =tv_gs.GetSelectedItem();
+ if(hItem)
{
- msxml::IXMLDOMElement e = x.GetXmlDoc().documentElement;
- int p = trust(e as int);
- xtreeview::SetItemData(tv_gs.GetId(), hItem, p);
+ KXMLDOMElement e = x.documentElement();
+ tv_gs.SetItemData(hItem, e);
- while(xtreeview::GetChildItem(tv_gs.GetId(), hItem) > 0)
- xtreeview::DeleteItem(tv_gs.GetId(), xtreeview::GetChildItem(tv_gs.GetId(), hItem));
+ while(tv_gs.GetChildItem( hItem))
+ 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);
+ xstring name = ele.selectSingleNode(L"Name").text();
+ HTREEITEM cItem =tv_gs.InsertChildItem( hItem, name, ele, 15);
+ if(ele.selectSingleNode(L"item"))
+ tv_gs.SetItemChild1(cItem, 1);
}
}
@@ -117,132 +130,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 = 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 = tv_gs.GetItemData(xto);
+ HTREEITEM xpto =tv_gs.GetParentItem(xto);
+ KXMLDOMElement tid = 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 = 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