From b1d01ea6fa62ce12c2e592b3315186f6b3c8359d Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期三, 17 七月 2024 15:20:38 +0800
Subject: [PATCH] Merge branch 'master' of http://116.62.18.175:6699/r/mis-prj

---
 jrj/project/business/SystemSettings/level.Customer.v3.cpp |  375 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 375 insertions(+), 0 deletions(-)

diff --git a/jrj/project/business/SystemSettings/level.Customer.v3.cpp b/jrj/project/business/SystemSettings/level.Customer.v3.cpp
new file mode 100644
index 0000000..9326ae6
--- /dev/null
+++ b/jrj/project/business/SystemSettings/level.Customer.v3.cpp
@@ -0,0 +1,375 @@
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xdatetimepick.hpp>
+
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+class  __declspec(dllexport) levelCustomerv3 : public listwin
+{
+public:
+	xdwgrid dw_goods;
+	xtreeview tv_1;
+	xcombobox ddlb_1;
+	int	changeddlb;
+	
+	xstring m_sType; //type
+	xstring m_sTypeTxt; //选中树的data
+//	xstring m_searchtxt;
+	int PIndex;
+	xnode	m_agentNode;	//Agent Condition
+	xstring	m_agentCond;	//Agent Node
+
+public:
+	levelCustomerv3(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {}
+public:
+	static levelCustomerv3* CreateInstance(void* implPtr, void* hWnd)
+	{
+		levelCustomerv3* pWin = new levelCustomerv3(implPtr, (HWND)hWnd);
+		return pWin;
+	}
+	int OnPreRetrieve()
+	{
+		xml x ;
+		
+		xaserverarg arg ;
+		;	
+		arg.AddArg(L"pageindex", xstring(PIndex)); //第几页
+		arg.AddArg(L"pagenumber", xstring(m_pageNumber)); //每页数量
+		arg.AddArg(L"QueryTxt",m_QueryTxt );
+		arg.AddArg(L"sType", m_sType);//没有参数
+		arg.AddArg(L"sTypeTxt", m_sTypeTxt);//没有参数		
+		
+		if(getUrl(L"/sale/data/"+GetEntityName(1)+L"/entity/list",arg.GetString(),x)!=1)
+		{
+			alert(L"出现错误请联系管理员!");
+			return 0;
+		}else	
+		{
+			KXMLDOMElement e=x.documentElement();
+			if(listwin::dw_pages.ptr_native_ && e.selectSingleNode(L"@TotalPage"))
+			{
+				xstring s=e.selectSingleNode(L"@TotalPage").text(); //总数量				
+				listwin::dw_pages.SetMaxPage(s.toInt());
+			}
+			listwin::dw_list.Retrieve(x);
+			listwin::dw_list.Redraw();
+			listwin::dw_list.SetReadOnly(true);		
+		}
+		return 1;
+	}
+			
+	int OnChangePages(TEvent* evt, int p)
+	{
+		PAGENMHDR& h = *(PAGENMHDR*)evt->notify.pnmh;
+		
+		int c = h.cur;
+		HCURSOR hCursor = xutil::SetCursorWait();
+		OnRetrieve();
+		PIndex=c;
+		xutil::RestoreCursor(hCursor);
+		return 1;
+	}
+	
+	int ViewUpdate(int pr,xstring updateItem,xaserverarg  arg)
+	{
+		if(updateItem == L"refresh")
+		{
+			xdwpages zz = GetControl(L"pages");
+			int h = zz.SetCurPage(1);	
+			OnRetrieve();
+		}
+		return 1;
+	}
+
+	//树选择
+	int OnTreeSelChanged(TEvent* evt, int p)
+	{
+		if (changeddlb != 1)
+		{				
+			
+			HTREEITEM h=tv_1.GetSelectedItem();
+			KXMLDOMElement e = tv_1.GetItemData(h);
+			
+			xstring t = e.selectSingleNode(L"@type").text();
+			m_sType=t+L"";
+			xstring txt = e.selectSingleNode(L"@code").text();
+			if (txt == L"")
+				txt = e.selectSingleNode(L"@name").text();
+			m_sTypeTxt= txt+L"";
+
+			PIndex= 1;	
+			OnRetrieve();
+		}			
+		return 1;
+	}
+			
+	int  createSubTree(HTREEITEM h, KXMLDOMElement ele)
+	{
+		KXMLDOMNodeList nlist=ele.selectNodes(L"item");
+		int i;
+		int s=nlist.length();
+		if (s>0)
+			for (i=0; i<s; i++)
+			{
+				KXMLDOMElement* e = new KXMLDOMElement(nlist.item(i));
+				xstring name = e->selectSingleNode(L"@name").text();
+				HTREEITEM hw = tv_1.InsertChildItem(h, name, (LPARAM)e, 15);
+				createSubTree(hw, *e);
+			}		
+		return 1;
+	}
+
+
+	int OnCreateTree(xstring sType)
+	{
+		
+		while (tv_1.GetRootItem()>0)
+			tv_1.DeleteItem(tv_1.GetRootItem());
+		
+		xml x ;
+		
+		xaserverarg arg ;
+		;
+		arg.AddArg(L"sType",sType);
+		if(getUrl(L"/sale/data/"+GetEntityName(1)+L"/pref/list/tree",arg.GetString(),x)!=1)
+		{
+			trace(x.text());
+			return -1;
+		}else	
+		{
+			KXMLDOMNodeList nlist=x.selectNodes(L"root/item");
+			int len = nlist.length();
+			if (len >0)
+			{
+				int i;
+				for (i=0;i <len; i++)
+				{
+					KXMLDOMElement* e = new KXMLDOMElement(nlist.item(i));
+					xstring name = e->selectSingleNode(L"@name").text();
+					HTREEITEM hw = tv_1.InsertChildItem(0, name, (LPARAM)e, 15);
+
+					createSubTree(hw, *e);
+					tv_1.ExpandItem(hw);
+				}
+				tv_1.ExpandItem(0);
+			}
+		}	
+		
+		return 1;
+	}
+			
+	//xcombobox下拉
+	int OnSelectDdlb(TEvent* evt, int p)
+	{
+		changeddlb = 1;
+
+		int CB_GETCURSEL = 0x0147;
+		int nIndex = SendMessageW(ddlb_1.GetHWND(), CB_GETCURSEL, 0, 0);
+		KXMLDOMElement e = ddlb_1.GetElement();//GetitemData(wid,nIndex);//ddlb_1.GetElement();
+		KXMLDOMElement e2 = e.selectSingleNode(L"item[" + xstring((nIndex + 1)) + L"]");
+		xstring text = e2.selectSingleNode(L"@element").text();
+		OnCreateTree(text);
+		changeddlb = 0;
+		return 1;
+	}
+
+	int OnDeleteRow()
+	{
+		int row = listwin::dw_list.GetNextSelectRow(1);
+		if (row < 1){
+			row = listwin::dw_list.GetRow();
+			if (row < 1) {
+				return -1;
+			}
+		}
+			
+		KXMLDOMElement e = listwin::dw_list.GetRowElement(row);
+		xstring sguid = e.selectSingleNode(L"@guid").text();
+		xstring sName = e.selectSingleNode(L"Name").text()+(xstring)L"";
+		int  MB_YESNO = 0x00000004;
+		int  IDYES =  6;	
+		if(MessageBox(GetHWND(),L"确认要删除客户 "+sName+L" 的信息吗?",L"提示",MB_YESNO)!=IDYES) return 1;
+		xml x ;
+		
+		xaserverarg arg ;
+		;
+		arg.AddArg(L"guid",sguid);
+		if (xurl::post(L"/sale/data/"+GetEntityName(1)+L"/entity/delete",arg.GetString(),x) != 1)
+		{
+			xstring error = x.text();
+			trace(error);
+		}
+		else
+		{
+			listwin::dw_list.DeleteRow(row);
+		}
+		return 1;
+	}
+
+	int OnSelectAllRow()
+	{
+		int rows =  listwin::dw_list.GetRowCount();
+		if(rows < 1) return -1;
+		 listwin::dw_list.SelectRow(1, rows, true);
+		 listwin::dw_list.Redraw();
+		return 1;
+	}
+
+	int OnRClick(TEvent* evt, int p)
+	{
+		return 1;
+	}			
+	int OnLogOff()
+	{
+		return 1;
+	}
+	//设置层级弹出窗与保存
+	int OnLevelCustomer()
+	{
+		xaserverarg arg ;
+		;
+		OpenWindow(L"dev:xpage[maint.Level.Customer3.vx]", arg);
+		
+		xml ux ;
+		
+		ux.loadXML(L"<Partys/>");
+		KXMLDOMElement ele = ux.documentElement();
+
+		if(arg.GetArgString(L"ok")==L"true")
+		{
+			xml x ;
+			
+			x.loadXML(arg.GetArgString(L"arg"));
+			KXMLDOMElement uele = x.documentElement(); 
+			xstring ParentPartyID = uele.selectSingleNode(L"//ParentPartyID").text();
+			xstring ParentPartyName = L"";
+			xstring GroupPartyID = uele.selectSingleNode(L"//GroupPartyID").text();
+			xstring GroupPartyName = L"";
+			
+			if( uele.selectSingleNode(L"//ParentPartyID/@_displaystring"))
+				ParentPartyName = uele.selectSingleNode(L"//ParentPartyID/@_displaystring").text();
+			if(uele.selectSingleNode(L"//GroupPartyID/@_displaystring"))
+				GroupPartyName = uele.selectSingleNode(L"//GroupPartyID/@_displaystring").text();
+			
+			int row =  dw_list.GetNextSelectRow(1);
+			while(row > 0)
+			{
+				dw_list.SetItemString(row,L"ParentPartyID",ParentPartyID);
+				dw_list.SetItemDisplayString(row,L"ParentPartyID",ParentPartyName);
+				dw_list.SetItemString(row,L"GroupPartyID",GroupPartyID);
+				dw_list.SetItemDisplayString(row,L"GroupPartyID",GroupPartyName);
+				ele.appendChild(dw_list.GetRowElement(row).cloneNode(-1));
+				row =  dw_list.GetNextSelectRow(row + 1);
+			}
+			dw_list.Redraw();
+			arg.AddArg(L"content",ele.xml());
+			if (getUrl(L"/sale/data/CustomerV3/level/update",arg.GetString(),x)!=1)
+			{
+				trace(x.text());
+				 alert(L"设置错误!");
+				return -1;
+			}else
+			{
+				 alert(L"设置成功!");
+			}
+		}		
+		return 1;
+	}
+	
+	int PreOnCmdDispatch(xstring comdid)
+	{
+		if(comdid.find(L"action:LogOff",0)>=0) return OnLogOff();
+		if(comdid.find(L"action:bill.delete",0)>=0) return OnDeleteRow();
+		//if(comdid==L"action:search1") return GridSearch();
+		if(comdid==L"action:bill.refresh") 
+		{
+			return OnRetrieve();
+		}
+		if(comdid==L"action:level.customer")
+		{
+			return OnLevelCustomer();
+		}
+
+		return 1;
+	}
+
+	int OnRowChangedEx(TEvent* evt, int p)
+	{
+		DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+		int row = hdr.row;
+		KXMLDOMElement ele = listwin::dw_list.GetRowElement(row);
+		xstring entity = ele.selectSingleNode(L"CustomerID").text();
+		xml x ;
+		
+		xaserverarg arg ;
+		;
+		arg.AddArg(L"EntityID",entity);
+		if (getUrl(L"/sale/data/CustomerV3/entity/customeritem",arg.GetString(),x)!=1)
+		{
+			trace(x.text());
+			return -1;
+		}else
+		{
+			dw_goods.Retrieve(x);
+			dw_goods.Redraw();
+			dw_goods.SetReadOnly(true);
+		}
+		return 1;
+	}
+		
+
+	int PostOnAttachEvent()
+	{
+		//获得树的选择事件
+		AttachEvent(L"tv_1", L"TVN_SELCHANGED", (FEvent)&levelCustomerv3::OnTreeSelChanged);
+		AttachEvent(L"cbx_1",L"CBN_SELCHANGE", (FEvent)&levelCustomerv3::OnSelectDdlb);
+		AttachEvent(L"pages",L"PAGE_CLICK", (FEvent)&levelCustomerv3::OnChangePages);
+		AttachEvent(L"dw_list",L"DWV_RCLICKED", (FEvent)&levelCustomerv3::OnRClick);//鼠标右键
+		//AttachEvent(L"dw_list",L"DWV_CLICKED",OnClick);//鼠标右键
+		AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED", (FEvent)&levelCustomerv3::OnRowChangedEx);
+		
+		return 1;
+	}
+			
+	int onload()
+	{
+		PIndex=1;
+		listwin::m_QueryTxt =L""; //查询条件
+		m_sType=L""; //type
+		m_sTypeTxt=L""; //选中树的data
+
+		listwin::onload();
+		
+		tv_1 =  GetControl(L"tv_1");	
+		ddlb_1 = GetControl(L"cbx_1");
+		
+		changeddlb = 0;
+		OnCreateTree(L"Source");
+		dw_goods = GetControl(L"dw_goods");
+		dw_goods.openUrl(L"/sale/view/CustomerV3/template/customer/customeritem");
+
+		return 1;
+	}
+	
+	int onloaded()
+	{
+		listwin::onloaded();
+		
+		xstring EntityID;
+		int row =  dw_list.GetRow();
+		if(row<0 || row>dw_list.GetRowCount()) return (xstring)L"";
+		KXMLDOMElement ele = dw_list.GetRowElement(row);
+		xstring id = listwin::m_configDoc.selectSingleNode(L"//entity/EntityID[1]").text();
+		if(ele.selectSingleNode(id))
+			EntityID = ele.selectSingleNode(id).text();
+		
+		return 1;
+	}
+
+};
\ No newline at end of file

--
Gitblit v1.9.3