From de4c5b12eb264c9a5b8244fac8cea25e01be18be Mon Sep 17 00:00:00 2001 From: xj qian <qianxj15@sina.com> Date: 星期三, 26 六月 2024 18:34:05 +0800 Subject: [PATCH] update folder data item --- jrj/xframe/vbusiness/vframe/frame.vframe.vbusiness.hpp | 2 +- jrj/project/business/Product.list.cpp | 3 +-- jrj/project/business/SO3.list.cpp | 20 ++++++++++---------- jrj/xframe/kobject/kxml.hpp | 12 ++++++++++++ 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/jrj/project/business/Product.list.cpp b/jrj/project/business/Product.list.cpp index ba30975..6311956 100644 --- a/jrj/project/business/Product.list.cpp +++ b/jrj/project/business/Product.list.cpp @@ -95,7 +95,7 @@ KXMLDOMElement OnGetCarListRowElement(int row = 0) { if (row < 1) row = dwc_list.GetRow(); - if (row < 1 || row > dwc_list.GetRowCount()) return 0; + if (row < 1 || row > dwc_list.GetRowCount()) return KXMLDOMElement(); KXMLDOMElement e = dw_list.GetRowElement(row); return e; } @@ -1505,7 +1505,6 @@ { agentFor = L"goodslib"; m_customer = 0; - imageElement = 0; OnAttachEvent(); diff --git a/jrj/project/business/SO3.list.cpp b/jrj/project/business/SO3.list.cpp index f5af146..0ce958f 100644 --- a/jrj/project/business/SO3.list.cpp +++ b/jrj/project/business/SO3.list.cpp @@ -46,9 +46,9 @@ if (len > 0) tv_folder.SetItemChild(hItem, 1); for (int i = 0; i < len; i++) { - KXMLDOMElement& e = * new KXMLDOMElement(nlist.item(i)); + KXMLDOMElement e = nlist.item(i); string name = e.getAttribute(L"name"); - HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, image); + HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e.ptr(), image); ExpandCatChildFolder(h, e, 35); } return 1; @@ -62,9 +62,9 @@ int len = nlist.length(); for (int i = 0; i < len; i++) { - KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i)); + KXMLDOMElement e = nlist.item(i); string name = e.getAttribute(L"name"); - HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, 35); + HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e.ptr(), 35); ExpandCatChildFolder(h, e, 35); } return 1; @@ -79,7 +79,7 @@ string name = tv_folder.GetItemLabel(hTopItem); HTREEITEM child = tv_folder.GetChildItem(hItem); - KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem); + KXMLDOMElement e = tv_folder.GetItemData(hItem); if (!child)ExpandFolderItem(hItem, e.getAttribute(L"no")); return 1; @@ -92,15 +92,15 @@ int len = nlist.length(); for (int i = 0; i < len; i++) { - KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i)); + KXMLDOMElement e = nlist.item(i); string 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(); - HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, image); + HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e.ptr(), image); if (child != L"no") tv_folder.SetItemChild(h, 1); - ExpandChildFolder(h, e); + //ExpandChildFolder(h, e); } return 1; } @@ -170,7 +170,7 @@ if (!hItem) return 1; HCURSOR hCursor = xutil::SetCursorWait(); - KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder.GetItemData(hItem); + KXMLDOMElement e1 = tv_folder.GetItemData(hItem); string no = e1.getAttribute(L"no"); KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),myDataUrl, L"no", no, L"QueryTxt", m_QueryTxt, L"rows", rows); if (x) @@ -499,7 +499,7 @@ { HTREEITEM hItem = tv_folder.GetCaretItem(); if (hItem ) return 1; - KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem); + KXMLDOMElement e = tv_folder.GetItemData(hItem); xstring no = e.getAttribute(L"no"); if (no.find(L"Customer:") >= 0) { diff --git a/jrj/xframe/kobject/kxml.hpp b/jrj/xframe/kobject/kxml.hpp index d3c41a1..050b9e5 100644 --- a/jrj/xframe/kobject/kxml.hpp +++ b/jrj/xframe/kobject/kxml.hpp @@ -133,6 +133,16 @@ KXMLDOMNode(const KXMLDOMNode& rhs); const KXMLDOMNode& operator =(const KXMLDOMNode& rhs); public: + unsigned long AddRef(); + unsigned long Release(); + public: + LPARAM ptr() + { + this->AddRef(); + return (LPARAM)this->getImpl(); + } + KXMLDOMNode(LPARAM p) :KXMLDOMNode((void*)p) {} + public: operator bool() { return impl ? true : false; } public: void* getImpl(); @@ -199,6 +209,8 @@ KXMLDOMElement( KXMLDOMNode v); KXMLDOMElement(void* impl) :KXMLDOMNode(impl) {} KXMLDOMElement() :KXMLDOMNode() {} + public: + KXMLDOMElement(LPARAM p) :KXMLDOMNode((void*)p) {} }; class KXMLDOMAttribute : public KXMLDOMNode { diff --git a/jrj/xframe/vbusiness/vframe/frame.vframe.vbusiness.hpp b/jrj/xframe/vbusiness/vframe/frame.vframe.vbusiness.hpp index e7e2c89..550e593 100644 --- a/jrj/xframe/vbusiness/vframe/frame.vframe.vbusiness.hpp +++ b/jrj/xframe/vbusiness/vframe/frame.vframe.vbusiness.hpp @@ -7,7 +7,7 @@ { public: xframe(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) { - this->SetArg(this->GetWinParam()); + this->SetArg(); } static int getUrl(string url1, string para, KXMLDOMDocument x) -- Gitblit v1.9.3