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/FCL.cpp |  679 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 344 insertions(+), 335 deletions(-)

diff --git a/jrj/project/business/BasicCode/FCL.cpp b/jrj/project/business/BasicCode/FCL.cpp
index 100fe1a..8116240 100644
--- a/jrj/project/business/BasicCode/FCL.cpp
+++ b/jrj/project/business/BasicCode/FCL.cpp
@@ -1,345 +1,354 @@
-use "list.vl"
-use "dev:vm[combobox.vm]"
-use "dev:vm[gridpages.vm]"
-use "dev:vm[xutil.vm]"
-use "dev:vm[xpage.vm]"
-use "dev:vm[xdwtable.vm]"
-use "file.vl"
-unit vbusiness.entity
-[
-	FCL is extend frame;
-	about FCL
-	[
-		field:
-		[		
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
 
-			combobox__ ddlb_1;
-			int	changeddlb;
-			xdwgrid__	dw_list;			
-			int m_PageSize; //每页显示数量
-			int m_PageIndex; //第几页
-			string m_QueryTxt; //查询条件
-			xdwtable__	dw_base;			
-			xnode__	m_agentNode;	//Agent Condition
-			string	m_agentCond;	//Agent Node
-			string m_config;
-			string m_spec;			
-		]
-		
-		method:
-		[
-			int SetAgent()
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+class __declspec(dllexport) FCL : public xframe
+{
+public:
+	xcombobox ddlb_1;
+	int	changeddlb;
+	xdwgrid	dw_list;
+	int m_PageSize; //每页显示数量
+	int m_PageIndex; //第几页
+	xstring m_QueryTxt; //查询条件
+	xdwtable	dw_base;
+	xnode	m_agentNode;	//Agent Condition
+	xstring	m_agentCond;	//Agent Node
+	xstring m_config;
+	xstring m_spec;
+public:
+	FCL(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+public:
+	static FCL* CreateInstance(void* implPtr, void* hWnd)
+	{
+		FCL* pWin = new FCL(implPtr, (HWND)hWnd);
+		return pWin;
+	}
+	int SetAgent()
+	{
+		xstring xfNodeAgentArea = L"agentarea";
+		xnode anode = GetAgentNode(xfNodeAgentArea);
+		if (m_agentNode)
+		{
+			SetAgentNode(anode, m_agentNode);
+		}
+		else
+		{
+			KXMLDOMElement xframeElement = GetElement();
+			KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
+			if (agent)
 			{
-				string xfNodeAgentArea  = "agentarea";
-				xnode__ anode = new xnode__;
-				anode.setNativePointer(GetAgentNode(xfNodeAgentArea));
-				var xframeElement =  GetElement();
-				var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
-				if(agent){
-					SetAgentNodeContent (anode,agent.xml);
-				}
-				return 1;
-			}				
-			
-			int OnRetrieve()
+				xstring s = agent.xml();
+				m_agentNode = SetAgentNode(anode, s);
+			}
+		}
+		return 1;
+	}
+
+	int OnRetrieve()
+	{
+		xaserverarg arg;
+
+		xdwpages zz = new xdwpages;
+		zz.setNativePointer(GetControl(L"pages"));
+		xml x;
+
+		getUrl(L"/sale/data/FCL/entity/list", arg.GetString(), x);
+		KXMLDOMElement e = x.documentElement();
+		if (e.selectSingleNode(L"@TotalPage"))
+		{
+			xstring s = e.selectSingleNode(L"@TotalPage").text(); //总数量				
+			zz.SetMaxPage(s.toInt());
+		}
+		dw_list.Retrieve(x);
+		dw_list.Redraw();
+		return 1;
+	}
+	int SetPriceBaseEmpty()
+	{
+		int rows = dw_base.GetColumnCount();
+		int i;
+		for (i = 1; i <= rows; i++)
+		{
+			dw_base.SetItemString(1, i, L"");
+			//dw_base.SetItemDisplayString(1,i,L"");				
+		}
+		dw_base.ResetUpdateStatus();
+		dw_base.Redraw();
+		return 1;
+	}
+	int SetCellEdit(int row, xstring name, xstring value, xstring display)
+	{
+		dw_base.SetItemString(row, name, value);
+		dw_base.Redraw();
+		if (display != L"")
+		{
+			dw_base.SetItemDisplayString(row, name, display);
+		}
+		dw_base.AcceptText();
+		dw_base.ResetUpdateStatus();
+		dw_base.Redraw();
+		return 1;
+	}
+	int OnSetCTGValue(int row)
+	{
+		dw_base.AcceptText();
+		SetPriceBaseEmpty();
+		KXMLDOMElement e = dw_list.GetRowElement(row);
+		var list = e.selectNodes(L"*");
+		if (list)
+		{
+			int s = list.length;
+			int i;
+			for (i = 0; i < s; i++)
 			{
-				xaserverarg__ arg = new xaserverarg__;
-				arg.setNativePointer(arg.CreateInstance());					
-				xdwpages__ zz = new xdwpages__;
-				zz.setNativePointer(this.GetControl("pages"));				
-				xml__ x = new xml__;
-				x.setNativePointer(xml__ ::CreateInstance());
-				getUrl("/sale/data/FCL/entity/list",arg.GetString(),x);
-				msxml::IXMLDOMElement e=x.GetXmlDoc().documentElement;
-				if(e.selectSingleNode("@TotalPage"))
+				xml x;
+				;
+				KXMLDOMElement xitem = list.item(i);
+				x.loadXML(xitem.xml());
+				//trace(xitem.xml);
+				KXMLDOMElement e1 = x.documentElement();
+				xstring name = e1.tagName();
+				trace(name);
+				trace(e1.text());
+				xstring display;
+				if (e1.selectSingleNode(L"@_displaystring"))
 				{
-					string s=e.selectSingleNode("@TotalPage").text; //总数量				
-					zz.SetMaxPage(s.toInt());
+					display = e1.selectSingleNode(L"@_displaystring").text();
+					SetCellEdit(1, name, e1.text(), L"" + display);
 				}
-				dw_list.Retrieve(x);		
-				dw_list.Redraw();			
-				return 1;
-			}
-			int SetPriceBaseEmpty()
-			{
-				int rows=dw_base.GetColumnCount();
-				int i;
-				for( i=1; i<=rows; i++)
-				{	
-					dw_base.SetItemString(1,i,"");
-					//dw_base.SetItemDisplayString(1,i,"");				
-				}
-				dw_base.ResetUpdateStatus();				
-				dw_base.Redraw();					
-				return 1;
-			}		
-			int SetCellEdit(int row,string name,string value,string display)
-			{			
-				dw_base.SetItemString(row,name,value);
-				dw_base.Redraw();						
-				if(display !="")
-				{	
-					dw_base.SetItemDisplayString(row,name,display);						
-				}
-                dw_base.AcceptText();					
-				dw_base.ResetUpdateStatus();				
-				dw_base.Redraw();		
-				return 1;
-			}
-			int OnSetCTGValue(int row)
-			{
-				dw_base.AcceptText();					
-				SetPriceBaseEmpty();
-				msxml::IXMLDOMElement e = dw_list.GetRowElement(row);		
-				var list = e.SelectNodes("*");
-				if(list)
-				{	
-					int s = list.length;			
-					int i;
-					for(i=0;i<s;i++)
-					{
-						xml__ x = new xml__;
-						x.setNativePointer(xml__ ::CreateInstance());				
-						msxml::IXMLDOMElement xitem = list.item(i);
-						x.LoadXml(xitem.xml);
-						//trace(xitem.xml);
-						msxml::IXMLDOMElement e1=x.GetXmlDoc().documentElement;
-						string name = e1.tagName;
-						trace(name);
-						trace(e1.text);
-						string display;
-						if( e1.selectSingleNode("@_displaystring"))
-						{
-							display= e1.selectSingleNode("@_displaystring").text;
-							SetCellEdit(1,name,e1.text,""+display);								
-						}						
-						else
-							SetCellEdit(1,name,e1.text,"");
-			
-					}
-				}
-				return 1;
-			}					
-			int OnRowClicked(ref TNotifyEvent evt,int p)
-			{	
-				ref DWNMHDR  hdr = evt.pnmh;
-				int row = hdr.row;			
-				OnSetCTGValue(row);
-				return 1;	
-			}
-			int setMaint()
-			{
-				xml__ x=new xml__;
-				x.setNativePointer(xml__::CreateInstance());
-				dw_base.DwUpdateAllTo(x.GetXmlDoc());
-				int row =dw_list.GetRow();
-				dw_list.SetItemString(row, "PriceInfo", x.GetXml());
-				return 1;
-			}
-			int SetTotalAmount(int row,string name)
-			{
-				if(name=="price20base" || name=="price20BAF"|| name=="price20CAF"|| name=="price20add"|| name=="price20comm"|| name=="price20other")
-				{
-					double price20base = dw_base.GetItemString(row, "price20base").toDouble();
-					double price20BAF = dw_base.GetItemString(row, "price20BAF").toDouble();
-					double price20CAF = dw_base.GetItemString(row, "price20CAF").toDouble();	
-					double price20add = dw_base.GetItemString(row, "price20add").toDouble();	
-					double price20comm = dw_base.GetItemString(row, "price20comm").toDouble();	
-					double price20other = dw_base.GetItemString(row, "price20other").toDouble();
-					double price20=price20base+price20BAF+(price20CAF/100)*price20base+price20add - (price20comm/100)*price20base+price20other;
-					dw_base.SetItemString(1,"price20",price20.toString());				
-				}
-				
-				if(name=="price40base" || name=="price40BAF"|| name=="price40CAF"|| name=="price40add"|| name=="price40comm"|| name=="price40other")
-				{					
-					double price40base = dw_base.GetItemString(row, "price40base").toDouble();
-					double price40BAF = dw_base.GetItemString(row, "price40BAF").toDouble();
-					double price40CAF = dw_base.GetItemString(row, "price40CAF").toDouble();	
-					double price40add = dw_base.GetItemString(row, "price40add").toDouble();	
-					double price40comm = dw_base.GetItemString(row, "price40comm").toDouble();	
-					double price40other = dw_base.GetItemString(row, "price40other").toDouble();
-					double price40=price40base+price40BAF+(price40CAF/100)*price40base+price40add - (price40comm/100)*price40base+price40other;	
-					dw_base.SetItemString(1,"price40",price40.toString());					
-				}
+				else
+					SetCellEdit(1, name, e1.text(), L"");
 
-				if(name=="price40Hbase" || name=="price40HBAF"|| name=="price40HCAF"|| name=="price40Hadd"|| name=="price40Hcomm"|| name=="price40Hother")
-				{					
-					double price40Hbase = dw_base.GetItemString(row, "price40Hbase").toDouble();
-					double price40HBAF = dw_base.GetItemString(row, "price40HBAF").toDouble();
-					double price40HCAF = dw_base.GetItemString(row, "price40HCAF").toDouble();	
-					double price40Hadd = dw_base.GetItemString(row, "price40Hadd").toDouble();	
-					double price40Hcomm = dw_base.GetItemString(row, "price40Hcomm").toDouble();	
-					double price40Hother = dw_base.GetItemString(row, "price40Hother").toDouble();	
-					double price40H=price40Hbase+price40HBAF+(price40HCAF/100)*price40Hbase+price40Hadd - (price40Hcomm/100)*price40Hbase+price40Hother;	
-					dw_base.SetItemString(1,"price40h",price40H.toString());				
-				}
-				return 1;
-			}			
-			int OnPriceBaseChanged(ref TNotifyEvent evt,int p)
-			{
-				trace("123");
-				ref DWNMHDR  hdr = evt.pnmh;
-				string name=hdr.colname;
-				string value = hdr.data;
-				SetTotalAmount(1,name);	
-				string price20=dw_base.GetItemString(1,"price20");
-				string price40=dw_base.GetItemString(1,"price40");
-				string price40h=dw_base.GetItemString(1,"price40h");				
-				dw_list.SetItemString(dw_list.GetRow(),"price20",price20);	
-				dw_list.SetItemString(dw_list.GetRow(),"price40",price40);	
-				dw_list.SetItemString(dw_list.GetRow(),"price40h",price40h);
-				dw_list.Redraw();
-				setMaint();
-				return 1;
 			}
-			int OnListChanged(ref TNotifyEvent evt,int p)
+		}
+		return 1;
+	}
+	int OnRowClicked(TEvent* evt, LPARAM p)
+	{
+		DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+		int row = hdr.row;
+		OnSetCTGValue(row);
+		return 1;
+	}
+	int setMaint()
+	{
+		xml x;
+
+		dw_base.DwUpdateAllTo(x);
+		int row = dw_list.GetRow();
+		dw_list.SetItemString(row, L"PriceInfo", x.xml());
+		return 1;
+	}
+	int SetTotalAmount(int row, xstring name)
+	{
+		if (name == L"price20base" || name == L"price20BAF" || name == L"price20CAF" || name == L"price20add" || name == L"price20comm" || name == L"price20other")
+		{
+			double price20base = dw_base.GetItemString(row, L"price20base").toDouble();
+			double price20BAF = dw_base.GetItemString(row, L"price20BAF").toDouble();
+			double price20CAF = dw_base.GetItemString(row, L"price20CAF").toDouble();
+			double price20add = dw_base.GetItemString(row, L"price20add").toDouble();
+			double price20comm = dw_base.GetItemString(row, L"price20comm").toDouble();
+			double price20other = dw_base.GetItemString(row, L"price20other").toDouble();
+			double price20 = price20base + price20BAF + (price20CAF / 100) * price20base + price20add - (price20comm / 100) * price20base + price20other;
+			dw_base.SetItemString(1, L"price20", xstring(price20));
+		}
+
+		if (name == L"price40base" || name == L"price40BAF" || name == L"price40CAF" || name == L"price40add" || name == L"price40comm" || name == L"price40other")
+		{
+			double price40base = dw_base.GetItemString(row, L"price40base").toDouble();
+			double price40BAF = dw_base.GetItemString(row, L"price40BAF").toDouble();
+			double price40CAF = dw_base.GetItemString(row, L"price40CAF").toDouble();
+			double price40add = dw_base.GetItemString(row, L"price40add").toDouble();
+			double price40comm = dw_base.GetItemString(row, L"price40comm").toDouble();
+			double price40other = dw_base.GetItemString(row, L"price40other").toDouble();
+			double price40 = price40base + price40BAF + (price40CAF / 100) * price40base + price40add - (price40comm / 100) * price40base + price40other;
+			dw_base.SetItemString(1, L"price40", xstring(price40));
+		}
+
+		if (name == L"price40Hbase" || name == L"price40HBAF" || name == L"price40HCAF" || name == L"price40Hadd" || name == L"price40Hcomm" || name == L"price40Hother")
+		{
+			double price40Hbase = dw_base.GetItemString(row, L"price40Hbase").toDouble();
+			double price40HBAF = dw_base.GetItemString(row, L"price40HBAF").toDouble();
+			double price40HCAF = dw_base.GetItemString(row, L"price40HCAF").toDouble();
+			double price40Hadd = dw_base.GetItemString(row, L"price40Hadd").toDouble();
+			double price40Hcomm = dw_base.GetItemString(row, L"price40Hcomm").toDouble();
+			double price40Hother = dw_base.GetItemString(row, L"price40Hother").toDouble();
+			double price40H = price40Hbase + price40HBAF + (price40HCAF / 100) * price40Hbase + price40Hadd - (price40Hcomm / 100) * price40Hbase + price40Hother;
+			dw_base.SetItemString(1, L"price40h", xstring(price40H));
+		}
+		return 1;
+	}
+	int OnPriceBaseChanged(TEvent* evt, LPARAM p)
+	{
+		trace(L"123");
+		DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+		xstring name = hdr.colname;
+		xstring value = hdr.data;
+		SetTotalAmount(1, name);
+		xstring price20 = dw_base.GetItemString(1, L"price20");
+		xstring price40 = dw_base.GetItemString(1, L"price40");
+		xstring price40h = dw_base.GetItemString(1, L"price40h");
+		dw_list.SetItemString(dw_list.GetRow(), L"price20", price20);
+		dw_list.SetItemString(dw_list.GetRow(), L"price40", price40);
+		dw_list.SetItemString(dw_list.GetRow(), L"price40h", price40h);
+		dw_list.Redraw();
+		setMaint();
+		return 1;
+	}
+	int OnListChanged(TEvent* evt, LPARAM p)
+	{
+		DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+		int row = hdr.row;
+		xstring colname = hdr.colname;
+		xstring value = hdr.data;
+		if (colname == L"port")
+		{
+			xml x;
+
+			xaserverarg arg;
+
+			arg.AddArg(L"code", value);
+			if (getUrl(L"/sale/data/FCL/pref/shipthread", arg.GetString(), x) != 1)
 			{
-				ref DWNMHDR  hdr = evt.pnmh;
-				int row = hdr.row;
-				string colname=hdr.colname;
-				string value = hdr.data;
-				if(colname=="port")
-				{	
-					xml__ x = new xml__;
-					x.setNativePointer(xml__ ::CreateInstance());
-					xaserverarg__ arg = new xaserverarg__;
-					arg.setNativePointer(arg.CreateInstance());
-					arg.AddArg("code", value);				
-					if (getUrl("/sale/data/FCL/pref/shipthread",arg.GetString(),x) != 1)
-					{
-						trace(x.GetXml());
-					}			
-					msxml::IXMLDOMElement e = x.GetXmlDoc().documentElement;
-					dw_list.SetItemString(row,"shipthread", e.text);
-					dw_list.Redraw();					
-				}	
+				trace(x.xml());
+			}
+			KXMLDOMElement e = x.documentElement();
+			dw_list.SetItemString(row, L"shipthread", e.text());
+			dw_list.Redraw();
+		}
 
 
-				return 1;	
-			}
-			int OnChangePages(ref TNotifyEvent evt,int p)
-			{
-				ref PAGENMHDR h = evt.pnmh;
-				int c = h.cur;
-				int hCursor = xutil__::SetCursorWait();
-				m_pageIndex = c;
-				OnRetrieve();
-				xutil__::RestoreCursor(hCursor);
-				return 1;
-			}
-			int  onSave()
-			{
-				xml__ x = new xml__;
-				x.setNativePointer(xml__::CreateInstance());
-				dw_list.DwUpdateAllToEx(x.GetXmlDoc());		
-				trace(x.GetXml());
-			}
-			int OnDeleteRow()
-			{
-				int row = dw_list.GetRow();
-				if(row<1 || row>dw_list.GetRowCount())
-				{
-					return -1;
-				}				
-					dw_list.DeleteRow(row);									
-	
-			}			
-			int OnAddrow()
-			{
-				int row=dw_list.InsertRow(0);
-				dw_list.SetItemString(row,"modifieddate",TApp::GetCurDate());
-				SetPriceBaseEmpty();				
-				return 1;				
-			}
-			int OnInsertRow()
-			{
-				int row=dw_list.GetRow();
-				if(row<1) return 0;					
-				int newrow=dw_list.InsertRow(row);				
-				dw_list.SetItemString(newrow,"modifieddate",TApp::GetCurDate());
-				SetPriceBaseEmpty();				
-				return 1;				
-			}
-			int OnDeleteRow()
-			{
-				int row = dw_list.GetRow();
-				if(row>0 && row<=dw_list.GetRowCount())
-				{	
-					dw_list.DeleteRow(row);
-					//OnSetCTGValue(row);						
-				}					
-				return 1;				
-			}			
-			int OnCmdDispatch(string comdid)
-			{
-				if(comdid.find("add",0)>=0)
-					OnAddrow();
-				else if(comdid.find("insert",0)>=0) 
-					OnInsertRow();			
-				else if(comdid.find("del",0)>=0) 
-					OnDeleteRow();
-				else if(comdid.find("save",0)>=0) 
-					onSave();				
-				return 1;
-			}
-			int OnSetFocus(ref TNotifyEvent evt,int p){
-				SetAgent();
-				return 1;
-			}
-			int OnXCommand(ref TXCommandEvent evt,int p)
-			{
-				return OnCmdDispatch(evt.pStrID);
-			}
-			int OnItemError(ref TNotifyEvent evt,int p)
-			{
-				ref DWNMHDR  hdr = evt.pnmh;
-				string value=hdr.data;
-				int e = hdr.idFrom;
-				if(e == -1000)
-					alert("【"+value+"】不是有效的数字!");
-				if(e == -1001)
-					alert("【"+value+"】不是有效的数字!");
-				if(e == -1002)
-					alert("【"+value+"】不是有效的日期!");
-				return 1;
-			}				
-			int OnAttachEvent()
-			{
-				AttachEvent("WM_XCOMMAND",OnXCommand);						
-				AttachEvent("dw_list","DWV_ROWFOCUSCHANGED",OnRowClicked);				
-				AttachEvent("WM_SETFOCUS",OnSetFocus);
-				AttachEvent("pages","PAGE_CLICK",OnChangePages);	
-				AttachEvent("dw_base","DWV_ITEMCHANGED",OnPriceBaseChanged);
-				AttachEvent("dw_base","DWV_ITEMERROR",OnItemError);
-				AttachEvent("dw_list","DWV_ITEMCHANGED",OnListChanged);				
-			
-			}				
-			int OnInit()
-			{
-				dw_list = new xdwgrid__;						
-				dw_list.setNativePointer(this.GetControl("dw_list"));
-				dw_list.openUrl("/sale/view/FCL/template/FCL/List");				
-				dw_base = new xdwtable__;
-				dw_base.setNativePointer(GetControl("dw_base"));
-				dw_base.openUrl("/sale/view/FCL/template/FCL/pricebase");
-				dw_list.SetReadOnlyColumn("shipthread",true);				
-				dw_list.SetReadOnlyColumn("price20",true);
-				dw_list.SetReadOnlyColumn("price40",true);
-				dw_list.SetReadOnlyColumn("price40h",true);				
-				return 1;
-			}
-			
-			int onload()
-			{	
-				m_PageSize=30; //每页显示数量
-				m_PageIndex=1; //第几页
-				m_QueryTxt=""; //查询条件
-				OnInit();				
-				OnAttachEvent();				
-				OnRetrieve();
-				SetAgent();				
-				return 1;
-			}
-		]
-	]
-]
\ No newline at end of file
+		return 1;
+	}
+	int OnChangePages(TEvent* evt, LPARAM p)
+	{
+		PAGENMHDR& h = *(PAGENMHDR*)evt->notify.pnmh;
+		int c = h.cur;
+		HCURSOR hCursor = xutil::SetCursorWait();
+		m_pageIndex = c;
+		OnRetrieve();
+		xutil::RestoreCursor(hCursor);
+		return 1;
+	}
+	int  onSave()
+	{
+		xml x;
+
+		dw_list.DwUpdateAllToEx(x);
+		trace(x.xml());
+	}
+	int OnDeleteRow()
+	{
+		int row = dw_list.GetRow();
+		if (row<1 || row>dw_list.GetRowCount())
+		{
+			return -1;
+		}
+		dw_list.DeleteRow(row);
+
+	}
+	int OnAddrow()
+	{
+		int row = dw_list.InsertRow(0);
+		dw_list.SetItemString(row, L"modifieddate", TApp::GetCurDate());
+		SetPriceBaseEmpty();
+		return 1;
+	}
+	int OnInsertRow()
+	{
+		int row = dw_list.GetRow();
+		if (row < 1) return 0;
+		int newrow = dw_list.InsertRow(row);
+		dw_list.SetItemString(newrow, L"modifieddate", TApp::GetCurDate());
+		SetPriceBaseEmpty();
+		return 1;
+	}
+	int OnDeleteRow()
+	{
+		int row = dw_list.GetRow();
+		if (row > 0 && row <= dw_list.GetRowCount())
+		{
+			dw_list.DeleteRow(row);
+			//OnSetCTGValue(row);						
+		}
+		return 1;
+	}
+	int OnCmdDispatch(xstring comdid)
+	{
+		if (comdid.find(L"add", 0) >= 0)
+			OnAddrow();
+		else if (comdid.find(L"insert", 0) >= 0)
+			OnInsertRow();
+		else if (comdid.find(L"del", 0) >= 0)
+			OnDeleteRow();
+		else if (comdid.find(L"save", 0) >= 0)
+			onSave();
+		return 1;
+	}
+	int OnSetFocus(TEvent* evt, LPARAM p) {
+		SetAgent();
+		return 1;
+	}
+	int OnXCommand(TEvent* evt, LPARAM param)
+	{
+		return OnCmdDispatch(evt->xcommand.pStrID);
+	}
+	int OnItemError(TEvent* evt, LPARAM p)
+	{
+		DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+		xstring value = hdr.data;
+		int e = hdr.idFrom;
+		if (e == -1000)
+			alert(L"【" + value + L"】不是有效的数字!");
+		if (e == -1001)
+			alert(L"【" + value + L"】不是有效的数字!");
+		if (e == -1002)
+			alert(L"【" + value + L"】不是有效的日期!");
+		return 1;
+	}
+	int OnAttachEvent()
+	{
+		AttachEvent(L"WM_XCOMMAND", (FEvent)&FCL::OnXCommand);
+		AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&FCL::OnRowClicked);
+		AttachEvent(L"WM_SETFOCUS", (FEvent)&FCL::OnSetFocus);
+		AttachEvent(L"pages", L"PAGE_CLICK", (FEvent)&FCL::OnChangePages);
+		AttachEvent(L"dw_base", L"DWV_ITEMCHANGED", (FEvent)&FCL::OnPriceBaseChanged);
+		AttachEvent(L"dw_base", L"DWV_ITEMERROR", (FEvent)&FCL::OnItemError);
+		AttachEvent(L"dw_list", L"DWV_ITEMCHANGED", (FEvent)&FCL::OnListChanged);
+		return 1;
+
+	}
+	int OnInit()
+	{
+		dw_list = new xdwgrid;
+		dw_list.setNativePointer(GetControl(L"dw_list"));
+		dw_list.openUrl(L"/sale/view/FCL/template/FCL/List");
+		dw_base = new xdwtable;
+		dw_base.setNativePointer(GetControl(L"dw_base"));
+		dw_base.openUrl(L"/sale/view/FCL/template/FCL/pricebase");
+		dw_list.SetReadOnlyColumn(L"shipthread", true);
+		dw_list.SetReadOnlyColumn(L"price20", true);
+		dw_list.SetReadOnlyColumn(L"price40", true);
+		dw_list.SetReadOnlyColumn(L"price40h", true);
+		return 1;
+	}
+
+	int onload()
+	{
+		m_PageSize = 30; //每页显示数量
+		m_PageIndex = 1; //第几页
+		m_QueryTxt = L""; //查询条件
+		OnInit();
+		OnAttachEvent();
+		OnRetrieve();
+		SetAgent();
+		return 1;
+	}
+};
\ No newline at end of file

--
Gitblit v1.9.3