From 8ff4f704c43f98078f7d7b151d41411c73f031bf Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期二, 29 十月 2024 09:50:33 +0800
Subject: [PATCH] update

---
 jrj/project/business/Affair/Business5.cpp         |  669 ++++++++++++++++++++++++++
 jrj/project/business/Affair/message.business.cpp  |  416 ++++++++++++++++
 jrj/project/business/Affair/ProcessManagement.cpp |  171 ++++++
 jrj/project/business/Affair/message.supplier.cpp  |  218 ++++++++
 jrj/ext-jrj/ext-jrj.vcxproj                       |   12 
 jrj/ext-jrj/ext-jrj.vcxproj.filters               |   12 
 6 files changed, 1,498 insertions(+), 0 deletions(-)

diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj
index 7d78754..ce6f236 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj
+++ b/jrj/ext-jrj/ext-jrj.vcxproj
@@ -282,6 +282,18 @@
   <ItemGroup>
     <ClCompile Include="..\jarch.impl\JStringImpl.cpp" />
     <ClCompile Include="..\project\analysis\DataVanalysisWin.cpp" />
+    <ClCompile Include="..\project\business\Affair\Business5.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\project\business\Affair\message.business.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\project\business\Affair\message.supplier.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\project\business\Affair\ProcessManagement.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="..\project\business\AP\APBank.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
     </ClCompile>
diff --git a/jrj/ext-jrj/ext-jrj.vcxproj.filters b/jrj/ext-jrj/ext-jrj.vcxproj.filters
index dd68d4f..70d5b1d 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj.filters
+++ b/jrj/ext-jrj/ext-jrj.vcxproj.filters
@@ -1442,6 +1442,18 @@
     <ClCompile Include="..\project\business\PO\paymentmethod.cpp">
       <Filter>project\business\PO</Filter>
     </ClCompile>
+    <ClCompile Include="..\project\business\Affair\Business5.cpp">
+      <Filter>project\business\Affair</Filter>
+    </ClCompile>
+    <ClCompile Include="..\project\business\Affair\message.business.cpp">
+      <Filter>project\business\Affair</Filter>
+    </ClCompile>
+    <ClCompile Include="..\project\business\Affair\message.supplier.cpp">
+      <Filter>project\business\Affair</Filter>
+    </ClCompile>
+    <ClCompile Include="..\project\business\Affair\ProcessManagement.cpp">
+      <Filter>project\business\Affair</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <None Include="ext-jrj.def">
diff --git a/jrj/project/business/Affair/Business5.cpp b/jrj/project/business/Affair/Business5.cpp
new file mode 100644
index 0000000..524778f
--- /dev/null
+++ b/jrj/project/business/Affair/Business5.cpp
@@ -0,0 +1,669 @@
+use "xcontrol.vframe.vbusiness.vd"
+use "xbase.vframe.vbusiness.vd"
+use "saleorder.view.vd"
+use "publiccode.vutil.vbusiness.vd"
+
+unit trade 
+[
+	class Business5Win :  public xframe
+	{
+		xdwgrid	dw_list;
+		xdwgrid dw_processed;
+		xdwgrid dw_message;
+		xdwgrid dw_outbox;
+		xdwgrid dw_Recovery;
+		xnode	m_agentNode;	//Agent Condition
+		xtreeview tv_folder;
+		
+		int		hMessage;
+		int		hTask;
+	
+		string 	agentFor;
+		string    selectname;
+		xwin		sheet;
+
+		int SetAgent()
+		{
+			string xfNodeAgentArea  = "agentarea";
+			xnode anode = GetAgentNode(xfNodeAgentArea);
+			if(m_agentNode)
+			{
+				SetAgentNodeContent (anode,m_agentNode);
+			}
+			else
+			{
+				msxml::IXMLDOMElement xframeElement =  GetElement();
+				msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[@for='"+agentFor+"']/*");
+				if(agent)
+				{
+					string s = agent.xml;
+					m_agentNode =  SetAgentNodeContent (anode,s);
+					//FillGoodsCarList();
+				}
+			}
+			return 1;
+		}
+
+		//焦点激活处理函数
+		int OnSetFocus(ref TEvent evt,int param)
+		{
+			//重置工具条
+			SetAgent();
+			return 1;
+		}
+		int RetrieveData()
+		{
+			if(selectname == "已处理任务")
+			{
+				xml x = ViewObject::RetrieveData("/sale/data/business/list/processedtask");
+				dw_processed.Retrieve(x);
+				dw_processed.Redraw();
+				dw_processed.SetReadOnly(true);
+			}else if(selectname == "收件箱")
+			{
+				string UserNO= publiccode::GetUser().no;
+				
+				x = ViewObject::RetrieveData("/sale/data/business/list/inbox");
+				
+				dw_message.Retrieve(x);
+				dw_message.Redraw();
+				dw_message.SetReadOnly(true);
+			}
+			else if(selectname == "发件箱")
+			{
+				x = ViewObject::RetrieveData("/sale/data/business/list/outbox");
+				dw_outbox.Retrieve(x);
+				dw_outbox.Redraw();
+				dw_outbox.SetReadOnly(true);
+			}
+			else if(selectname == "回收箱")
+			{
+				x = ViewObject::RetrieveData("/sale/data/business/list/Recovery");
+				dw_Recovery.Retrieve(x);
+				dw_Recovery.Redraw();
+				dw_Recovery.SetReadOnly(true);
+			}
+			AdjustTip();
+			return 1;
+		}
+		int OnDelete()
+		{
+			int MB_OKCANCEL = 1;
+			int IDOK  = 1;
+			int ret = win32::MessageBox(GetHWND(),"确认删除消息?","提示",MB_OKCANCEL);
+			if(ret == IDOK)
+			{
+				msxml::IXMLDOMElement ele = dw_message.GetRowElement(dw_message.GetRow());
+				string TaskID = ele.getAttribute("guid");
+				xml x = ViewObject::RetrieveData("/sale/data/business/message/delete","TaskID",TaskID);
+				string status = x.GetXml();
+				if(status.find("ok") == 1)
+				{
+					alert("删除成功");
+					RetrieveData();
+				}else
+				{
+					alert("删除失败");
+				}
+				
+			}
+			return 1;
+		}
+		
+		int OnUpdateRecovery()
+		{
+			int MB_OKCANCEL = 1;
+			int IDOK  = 1;
+			int ret = win32::MessageBox(GetHWND(),"确认恢复消息?","提示",MB_OKCANCEL);
+			if(ret == IDOK)
+			{
+				msxml::IXMLDOMElement ele = dw_Recovery.GetRowElement(dw_Recovery.GetRow());
+				string TaskID = ele.getAttribute("guid");
+				xml x = ViewObject::RetrieveData("/sale/data/business/Recovery/UpdateRecovery","TaskID",TaskID);
+				string status = x.GetXml();
+				if(status.find("ok") == 1)
+				{
+					alert("恢复成功");
+					RetrieveData();
+				}else
+				{
+					alert("恢复失败");
+				}
+				
+			}
+			return 1;
+		}
+				
+		int OnDeleteRecovery()
+		{
+			int MB_OKCANCEL = 1;
+			int IDOK  = 1;
+			int ret = win32::MessageBox(GetHWND(),"确认彻底删除消息?","提示",MB_OKCANCEL);
+			if(ret == IDOK)
+			{
+				msxml::IXMLDOMElement ele = dw_Recovery.GetRowElement(dw_Recovery.GetRow());
+				string TaskID = ele.getAttribute("guid");
+				xml x = ViewObject::RetrieveData("/sale/data/business/Recovery/DeleteRecovery","TaskID",TaskID);
+				string status = x.GetXml();
+				if(status.find("ok") == 1)
+				{
+					alert("删除成功");
+					RetrieveData();
+				}else
+				{
+					alert("删除失败");
+				}
+				
+			}
+			return 1;
+		}
+				
+		int OnAdd()
+		{
+			OpenWindow("dev:xpage[message.business.vx]");
+			if(selectname == "发件箱" || selectname == "草稿箱") RetrieveData();	
+			return 1;
+		}
+				
+				
+		//命令发布函数
+		int OnCmdDispatch(string comdid)
+		{
+			int ret = 0;
+			if(comdid.find("action:",0)>=0)
+			{
+				ret = win32::SendMessage(sheet.GetHWND(),0x401,comdid,0);
+			}
+			if(comdid=="xmRefreshTask")
+			{
+				trace("\r\n----refresh task--------");
+				win32::SendMessage(sheet.GetHWND(),0x401,comdid,0);
+				return 1;
+			}
+			if(comdid=="xmRefresh")
+			{
+				trace("\r\n----refresh--------");
+				ret = win32::SendMessage(sheet.GetHWND(),0x401,comdid,0);
+			}
+			if(comdid == "xmRertieve")
+			{
+				RetrieveData();
+				ret = 1;
+			}
+			if(comdid=="xmAdd")
+			{
+				OnAdd();
+				ret = 1;
+			}
+			if(comdid == "xmDelete")
+			{
+				OnDelete();
+				ret = 1;
+			}
+			if(comdid == "UpdateRecovery")
+			{
+				OnUpdateRecovery();
+				ret = 1;
+			}
+			if(comdid == "DeleteRecovery")
+			{
+				OnDeleteRecovery();
+				ret = 1;
+			}
+			if(comdid == "xmImage")
+			{
+				int row = dw_message.GetRow();
+				string PriceID = dw_message.GetItemString(row,"EntityID");
+				xml x = ViewObject::RetrieveData("/sale/data/Enquiry/PriceList/GetSkunoByPriceID","PriceID",PriceID);
+				msxml::IXMLDOMNodeList items = x.GetXmlDoc().selectNodes("data/Item");
+				msxml::IXMLDOMNode t = items.item(0);
+				string skunos =  t.selectSingleNode("skuno").text;
+				xaserverarg arg_pic=new xaserverarg;
+				arg_pic.setNativePointer(arg_pic.CreateInstance());	
+				arg_pic.AddArg("SKUNoList",skunos);
+				arg_pic.AddArg("ParentWindow",GetHWND().toString());
+				arg_pic.AddArg("OpenFlag","1");
+				OpenWindow("dev:xpage[SKU.PictureView.Product3.vx]",cast(arg_pic as int));	
+				return 1;
+			}
+			else if(comdid == "xmSearchOne")
+			{
+				OnSearchOne();
+				return 1;
+			}
+			else if(comdid == "xmSearchTwo")
+			{
+				OnSearchTwo();
+				return 1;
+			}
+			else if(comdid=="Lognew")
+			{
+				string EntityID = dw_processed.GetItemString(dw_processed.GetRow(),"EntityID");
+				//alert(EntityID);
+	
+				xaserverarg args=new xaserverarg;
+				args.setNativePointer(args.CreateInstance());						
+				args.AddArg("EntityID",EntityID);
+				//OpenWindow("dev:xpage[workflow.actionlog.vx]",cast(args as int));	
+				OpenWindow("dev:xpage[workflow.actionlog_vd.vx]",args.getNativePointer());
+			
+			
+				
+			}
+			return ret;
+		}
+		
+			
+		int OnSearchOne()
+		{
+			string searchStr="";
+			xaserverarg arg=new xaserverarg;
+			arg.setNativePointer(arg.CreateInstance());						
+			arg.AddArg("text", searchStr);
+			OpenWindow("dev:xpage[search.dialog.vx]", cast(arg as int));
+			string str = arg.GetArgString("text");
+			if(str != searchStr)
+			{
+				searchStr = str;
+				dw_message.Filter("*",searchStr);
+				return 1;
+			}
+			return 1;
+		}
+			
+		int OnSearchTwo()
+		{
+			string searchStr="";
+			xaserverarg arg=new xaserverarg;
+			arg.setNativePointer(arg.CreateInstance());						
+			arg.AddArg("text", searchStr);
+			OpenWindow("dev:xpage[search.dialog.vx]", cast(arg as int));
+			string str = arg.GetArgString("text");
+			if(str != searchStr)
+			{
+				searchStr = str;
+				dw_Recovery.Filter("*",searchStr);
+				return 1;
+			}
+			return 1;
+		}
+		
+		//命令处理事件
+		int OnXCommand(ref TXCommandEvent evt,int param)
+		{
+			return OnCmdDispatch(evt.pStrID);
+		}
+		
+		
+		//查找当前树项的顶级目录
+		int LookupTopFolder(int hItem)
+		{
+			int hRoot = tv_folder.GetRootItem();
+			while(tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
+			return hItem;
+		}
+
+		int ResetAgent(string agentAsk)
+		{
+			if(agentFor != agentAsk)
+			{
+				agentFor = agentAsk;
+				m_agentNode = 0;
+				SetAgent();
+			}
+			return 1;
+		}
+		
+		int OnTreeSelChanged(ref TNotifyEvent evt,int p)
+		{
+			ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW);
+			int hItem = nmtv.itemNew.hItem;
+			int hTopItem = LookupTopFolder(hItem);
+			
+			string data = tv_folder.GetItemData(hItem);
+			trace("\r\n"+data);
+			//msxml::IXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement);
+			//if(e)trace(e.xml);
+
+			string name = tv_folder.GetItemLabel(hTopItem);
+			selectname = tv_folder.GetItemLabel(hItem);
+			if(selectname == "待处理任务")
+			{
+				SwitchLayer("sheet2","frame");
+				sheet = GetChildWin("sheet2");
+				ResetAgent("business1");
+			}else if(selectname == "已处理任务")
+			{
+				SwitchLayer("sheet3","frame");
+				RetrieveData();
+				ResetAgent("business2");
+			}else if(selectname == "收件箱")
+			{
+				SwitchLayer("sheet4","frame");
+				RetrieveData();
+				ResetAgent("business3");
+			}else if(selectname == "发件箱")
+			{
+				SwitchLayer("sheet5","frame");
+				RetrieveData();
+				ResetAgent("business2");
+			}
+			else if(selectname == "事务")
+			{
+				SwitchLayer("sheet1","frame");
+			}else if(selectname == "回收箱")
+			{
+				SwitchLayer("sheet6","frame");
+				RetrieveData();
+				ResetAgent("business5");
+			}
+			return 1;
+		}
+		int OnRowChanged(ref TNotifyEvent evt,int p)
+		{
+			//fixed one event only one process
+			ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
+			int row = hdr.row;
+			if(selectname == "已处理任务")
+				msxml::IXMLDOMElement ele = dw_processed.GetRowElement(row);
+			else if(selectname == "收件箱")
+			{
+				ele = dw_message.GetRowElement(row);
+				string Subject = dw_message.GetItemString(row,"Subject");
+				if(Subject.find("价格单") == -1)
+				{
+					ResetAgent("business3");
+				}else{
+					ResetAgent("business4");
+				}
+			}
+			else if(selectname == "回收箱")
+			{
+				ele = dw_Recovery.GetRowElement(row);
+				string SubjectOne = dw_Recovery.GetItemString(row,"Subject");
+			}
+			else if(selectname == "发件箱")
+				ele = dw_outbox.GetRowElement(row);
+			xaserverarg arg=new xaserverarg;
+			arg.setNativePointer(arg.CreateInstance());	
+			trace(ele.xml);
+			arg.AddArg("content",ele.xml);
+			xml doc=new xml;
+			doc.setNativePointer(xml::CreateInstance());				
+			if(getUrl("/sale/data/vpage/vstart/task",arg.GetString(),doc)!=1)
+			{
+				trace("error->:"+doc.GetXml());
+				return 0;
+			}
+			if(doc.GetXml() == "")
+				return -1;
+			//trace(doc.GetXml());
+			htmlctrl ht = GetControl("taskinfo");
+			ht.SetContent(doc.GetXml());
+			ht.Redraw();
+			return 1;
+		}
+		int OnItemAskStyle(ref TNotifyEvent evt,int p)
+		{
+			int DMS_CSSSTYLE = 0x8;
+			ref DWASKSTYLENMHDR hdr = trust(evt.pnmh as ref DWASKSTYLENMHDR);
+			int row = hdr.row;
+			int col = hdr.col;
+			string colname = hdr.colname;
+			int rows = dw_message.GetRowCount();
+			if(row < 1 || row > rows)
+			{
+				return 1;
+			}
+			if(colname=="flowName" || colname=="Process" || colname=="sender" ||
+			colname=="SendDate"||colname=="processer"||colname=="ProcessedDate"||
+			colname=="Subject"||colname=="Content")
+			{
+				string ReadedFlag = dw_message.GetItemString(row,"ReadedFlag");
+				if(ReadedFlag != "Y")
+				{
+					hdr.mask =  DMS_CSSSTYLE;
+					//hdr.cssstyle = "color:#cccccc";
+					hdr.cssstyle = "font-weight:700";
+					
+				}
+			}
+			
+			return 1;
+		}
+				
+		int OnDWClick(ref TNotifyEvent evt,int p)
+		{
+			string UserNO=publiccode::GetUser().no;
+			if(UserNO !="00701")
+			{
+				ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
+				string value = hdr.data;
+				string colname = hdr.colname;
+				int row = hdr.row;
+				msxml::IXMLDOMElement ele = dw_message.GetRowElement(row);
+				string TaskID = ele.getAttribute("guid");
+				string ReadedFlag = dw_message.GetItemString(row,"ReadedFlag");
+				string flowName = dw_message.GetItemString(row,"flowName");
+				if(ReadedFlag != "Y")
+				{
+					xml x = ViewObject::RetrieveData("/sale/data/business/message/read","TaskID",TaskID);
+					dw_message.SetItemString(row,"ReadedFlag","Y");
+					if(ReadedFlag != "Y" && flowName == "价格单共享")
+					{
+						xml x1 = ViewObject::RetrieveData("/sale/data/business/Recovery/MessageStatus","TaskID",TaskID);
+					}
+					dw_message.Redraw();
+					//RetrieveData();
+				}
+				AdjustTip();
+			}
+			return 1;
+		}
+					
+		int OpenShowroom1(ref TNotifyEvent evt,int p)
+			{
+				ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
+				string value = hdr.data;
+				string colname = hdr.colname;
+				int row = hdr.row;
+				msxml::IXMLDOMElement ele = dw_outbox.GetRowElement(row);
+				string TaskID = ele.getAttribute("guid");
+				string Category = dw_outbox.GetItemString(row,"flowName");
+				if(Category=="普通"){
+					xaserverarg arg2 = new xaserverarg;
+					arg2.setNativePointer(arg2.CreateInstance());	
+					if(dw_outbox.GetRowCount() < 1) return 1;
+					msxml::IXMLDOMElement ele1 = dw_outbox.GetRowElement(dw_outbox.GetRow());
+					arg2.AddArg("EntityID",dw_outbox.GetItemString(dw_outbox.GetRow(),"EntityID"));
+					arg2.AddArg("id",ele1.getAttribute("guid"));
+					OpenWindow("dev:xpage[message.business.vx]", cast(arg2 as int));
+					return 1;
+				}
+				return 1;
+			}
+				
+		int OpenShowroom(ref TNotifyEvent evt,int p)
+			{
+				ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
+				string value = hdr.data;
+				string colname = hdr.colname;
+				int row = hdr.row;
+				msxml::IXMLDOMElement ele = dw_message.GetRowElement(row);
+				string TaskID = ele.getAttribute("guid");
+				string Category = dw_message.GetItemString(row,"Category");
+				if(Category=="货号申请"){
+					int p1="" ;
+					OpenWindow("dev:xpage[UserProductApply.vx]", p1);
+				}
+				if(Category=="普通"){
+					xaserverarg arg2 = new xaserverarg;
+					arg2.setNativePointer(arg2.CreateInstance());	
+					if(dw_message.GetRowCount() < 1) return 1;
+					msxml::IXMLDOMElement ele1 = dw_message.GetRowElement(dw_message.GetRow());
+					arg2.AddArg("EntityID",dw_message.GetItemString(dw_message.GetRow(),"EntityID"));
+					arg2.AddArg("id",ele1.getAttribute("guid"));
+					OpenWindow("dev:xpage[message.business.vx]", cast(arg2 as int));
+					return 1;
+				}
+				else if(Category=="报价单共享")
+				{
+					if(dw_message.GetRowCount() < 1) return 1;
+					string No = dw_message.GetItemString(dw_message.GetRow(),"No");
+					OpenWindow("dev:xpage[EnquiryEx.quote.vx]",cast(No as int));
+				}
+				if(Category=="SupplierV3")
+				{
+					xaserverarg arg = new xaserverarg;
+					arg.setNativePointer(arg.CreateInstance());	
+					if(dw_message.GetRowCount() < 1) return 1;
+					arg.AddArg("EntityID",dw_message.GetItemString(dw_message.GetRow(),"EntityID"));
+					//OpenWindow("dev:xpage[maint.Owner.Supplier.v3.vx]",cast(arg as int));
+					arg.AddArg("config","/sale/view/SupplierV3/config/supplier/open");
+					OpenWindow("dev:xpage[maintex.Owner.Supplier.v3.vx]",arg.getNativePointer());
+				}
+				if(Category=="供应商回退")
+				{
+					xaserverarg arg1 = new xaserverarg;
+					arg1.setNativePointer(arg1.CreateInstance());	
+					if(dw_message.GetRowCount() < 1) return 1;
+					arg1.AddArg("EntityID",dw_message.GetItemString(dw_message.GetRow(),"EntityID"));
+					OpenWindow("dev:xpage[maint.Owner.Supplier.v3.vx]",cast(arg1 as int));
+				}
+				return 1;
+			}
+		int OnAttachEvent()
+		{
+			//绑定工具条点击事件
+			AttachEvent("WM_XCOMMAND",OnXCommand);
+			//获取焦点事件,用于重置工具条
+			AttachEvent("WM_SETFOCUS",OnSetFocus);
+			//树选择
+			AttachEvent("tv_folder", "TVN_SELCHANGED",OnTreeSelChanged); 
+			AttachEvent("dw_processed","DWV_ROWFOCUSCHANGED",OnRowChanged);
+			AttachEvent("dw_message","DWV_ROWFOCUSCHANGED",OnRowChanged);
+			AttachEvent("dw_outbox","DWV_ROWFOCUSCHANGED",OnRowChanged);
+			AttachEvent("dw_Recovery","DWV_ROWFOCUSCHANGED",OnRowChanged);
+			AttachEvent("dw_message","DWV_ASKSTYLE",OnItemAskStyle);
+			AttachEvent("dw_message","DWV_CLICKED",OnDWClick);
+			AttachEvent("dw_message","DWV_DOUBLECLICKED",OpenShowroom);
+			AttachEvent("dw_outbox","DWV_DOUBLECLICKED",OpenShowroom1);
+			
+			return 1;
+		}
+		
+		
+		int  OnRetrieve()
+		{
+			
+			return 1;
+		}
+		
+		int  InitialFolder()
+		{
+			msxml::IXMLDOMElement xframeElement =  GetElement();
+			msxml::IXMLDOMElement e =  xframeElement.selectSingleNode("//xtree[@name='tv_folder']/initial");
+			
+			//msxml::IXMLDOMElement e =  xframeElement.selectSingleNode("//xtree[@name='tv_folder']/data/item[@name='"+"']");
+			//trace(e.xml);
+			if(e)
+				ExpandChildFolder(0,e);
+			return 1;
+		}
+		
+		int  ExpandChildFolder(int hItem, msxml::IXMLDOMElement pElement)
+		{
+			msxml::IXMLDOMNodeList nlist = pElement.SelectNodes("Item");
+			int len = nlist.length;
+			for (int i = 0; i < len; i++)
+			{	
+				msxml::IXMLDOMElement e = nlist.item(i);
+				string name = e.getAttribute("name");
+				string sImage = e.getAttribute("image");
+				string child = e.getAttribute("child");
+				int image = 15;
+				if(sImage) image = sImage.toInt();
+				int h= tv_folder.InsertChildItem(tv_folder.GetId(),hItem,name, trust(e as int),image);
+				if(child !="no" ) tv_folder.SetItemChild(h,1);
+				ExpandChildFolder(h,e);
+			}
+			return 1;				
+		}
+		
+		int AdjustTip()
+		{
+			xml x = ViewObject::RetrieveData("/sale/data/business/list/AdjustTipNotify");
+			msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("/data/Item"); 
+			msxml::IXMLDOMNode t = nlist.item(0);
+			string informationQuantity =t.selectSingleNode("informationQuantity").text;
+			tv_folder.SetItemLabel(hMessage, "消息"+"("+informationQuantity+")");
+			
+			xml x1 = ViewObject::RetrieveData("/sale/data/business/list/AdjustTipTask");
+			//alert(x1.GetXml());
+			msxml::IXMLDOMNodeList nlist1 = x1.GetXmlDoc().SelectNodes("/data/Item");
+			msxml::IXMLDOMNode t1= nlist1.item(0);
+			string informationQuantityTask =t1.selectSingleNode("informationQuantityTask").text;
+			tv_folder.SetItemLabel(hTask, "任务"+"("+informationQuantityTask+")");
+			
+			/*select count(*) from bpm_task where typ='notify' and  process='N' 
+			and charindex('|'+'00303'+'|','|' + rtrim(receiver) +'|')>=1*/
+			return 1;
+		}
+		
+		int onload()
+		{
+			agentFor = "business";
+			OnAttachEvent();
+			dw_list = GetControl("dw_list");
+			dw_processed = GetControl("dw_processed");
+			dw_processed.openUrl("/sale/view/Business3/template/processedtask");
+			dw_processed.SetColumnState("EntityID",false);
+			dw_processed.SetColumnState("Category",false);
+
+			dw_message = GetControl("dw_message");
+			dw_message.openUrl("/sale/view/Business3/template/message");
+			dw_message.SetAskStyle(true);
+			dw_message.SetColumnState("EntityID",false);
+			dw_message.SetColumnState("Category",false);
+			dw_message.SetColumnState("ReadedFlag",false);
+			
+			dw_outbox = GetControl("dw_outbox");
+			dw_outbox.openUrl("/sale/view/Business3/template/outbox");
+			dw_outbox.SetColumnState("EntityID",false);
+			
+			dw_Recovery = GetControl("dw_Recovery");
+			dw_Recovery.openUrl("/sale/view/Business3/template/message");
+			dw_Recovery.SetColumnState("EntityID",false);
+			dw_Recovery.SetColumnState("Category",false);
+			dw_Recovery.SetColumnState("ReadedFlag",false);
+			dw_Recovery.SetColumnState("No",false);
+			
+			
+			tv_folder = GetControl("tv_folder");
+			tv_folder.SetLineAtRoot(true);
+			sheet = GetChildWin("sheet1");
+			
+			int hItem = tv_folder.GetRootItem();
+			tv_folder.ExpandItem(hItem);
+			int hcItem =tv_folder.GetChildItem(hItem);
+			hTask = hcItem;
+			tv_folder.ExpandItemAll(hcItem);
+			tv_folder.ItemFocus(tv_folder.GetChildItem(hcItem));
+			hcItem = tv_folder.GetNextItem(hcItem);
+			hMessage = hcItem;
+			tv_folder.ExpandItemAll(hcItem);
+			
+			AdjustTip();
+			
+			return 1;
+		}
+		
+		int onloaded()
+		{
+			SetAgent();	
+			
+			
+			return 1;
+		}		
+	};
+]
\ No newline at end of file
diff --git a/jrj/project/business/Affair/ProcessManagement.cpp b/jrj/project/business/Affair/ProcessManagement.cpp
new file mode 100644
index 0000000..25d1132
--- /dev/null
+++ b/jrj/project/business/Affair/ProcessManagement.cpp
@@ -0,0 +1,171 @@
+use "xcontrol.vframe.vbusiness.vd"
+use "xbase.vframe.vbusiness.vd"
+use "base.view.vd"
+
+unit trade 
+[
+	class ProcessManagement :  public xframe
+	{
+		xdwgrid	dw_list;
+		xnode	m_agentNode;	//Agent Condition
+		
+	
+		int SetAgent()
+		{
+			string xfNodeAgentArea  = "agentarea";
+			xnode anode = GetAgentNode(xfNodeAgentArea);
+			if(m_agentNode)
+			{
+				SetAgentNodeContent (anode,m_agentNode);
+			}
+			else
+			{
+				msxml::IXMLDOMElement xframeElement =  GetElement();
+				msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
+				if(agent)
+				{
+					string s = agent.xml;
+					m_agentNode =  SetAgentNodeContent (anode,s);
+				}
+			}
+			return 1;
+		}
+
+		//焦点激活处理函数
+		int OnSetFocus(ref TEvent evt,int param)
+		{
+			//重置工具条
+			SetAgent();
+			return 1;
+		}
+			
+		//命令发布函数
+		int OnCmdDispatch(string comdid)
+		{	
+			
+			if(comdid == "xmDelete")
+			{
+				int MB_OKCANCEL = 1;
+				int IDOK  = 1;
+				int ret = win32::MessageBox(GetHWND(),"确认删除流程?","提示",MB_OKCANCEL);
+				if(ret == IDOK)
+				{
+					int row = dw_list.GetRow();
+					string TaskID = dw_list.GetItemString(row,"TaskID");
+				
+				
+					xml x = ViewObject::RetrieveData("/sale/data/business/DelProcessManagement","TaskID",TaskID);
+					string status = x.GetXml();
+					if(status.find("ok") == 1)
+					{
+						alert("删除成功");
+						dw_list.DeleteRow(row);
+					}else
+					{
+						alert("删除失败");
+					}
+				
+				}
+				return 1;
+				
+			}
+			else if (comdid == "xmRefresh")
+			{
+				OnRetrieve();
+			}
+			else if (comdid == "AA")
+			{
+				AA();
+			}
+			return 0;
+		}
+		int AA()
+		{		
+		
+				//string FobUnitPriceEx=dw_cell.GetItemString(row,colFOBPrice);
+			string FobUnitPriceEx="$123.0";
+			if(FobUnitPriceEx=="$") FobUnitPriceEx="123";
+			//alert(FobUnitPriceEx.find("$").toString());
+			if(FobUnitPriceEx.find("$") >=0) FobUnitPriceEx=FobUnitPriceEx.right(FobUnitPriceEx.length() - 1);
+			trace(FobUnitPriceEx);
+		}
+		//触发鼠标离开后tran事件,通过查找某个参数得到对应的列			
+		int OnBaseItemChanged(ref TNotifyEvent evt,int p)
+		{
+			ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
+			string colname=hdr.colname;
+			string value = hdr.data;
+			
+			string dwname = "dw_list";
+			if(value != "")
+			{
+				msxml::IXMLDOMNodeList nlist = GetElement().selectNodes("//*[@name='"+dwname+"']/trans[@for='"+colname+"']");
+				ViewObject::TransData(nlist, dw_list, hdr.row, colname, value);
+			}
+
+			return 1;
+		}
+			
+		
+		//命令处理事件
+		int OnXCommand(ref TXCommandEvent evt,int param)
+		{
+			return OnCmdDispatch(evt.pStrID);
+		}
+			
+		
+		
+		int OnAttachEvent()
+		{
+			//绑定工具条点击事件
+			AttachEvent("WM_XCOMMAND",OnXCommand);
+			//获取焦点事件,用于重置工具条
+			AttachEvent("WM_SETFOCUS",OnSetFocus);
+			AttachEvent("dw_list","DWV_ITEMCHANGED",OnBaseItemChanged);
+		}
+			
+
+		int  OnRetrieve()
+		{
+			xml x = new xml;
+			x.setNativePointer(xml::CreateInstance());
+			xaserverarg arg = new xaserverarg;
+			arg.setNativePointer(arg.CreateInstance());	
+			
+			if (getUrl("/sale/data/business/ProcessManagement",arg.GetString(),x)!=1)
+			{
+				trace(x.GetXmlDoc().text);
+				return -1;
+			}else	
+			{
+				dw_list.Retrieve(x);
+				dw_list.Redraw();
+				dw_list.SetReadOnly(true);
+				dw_list.SetSelectionMode(1);
+			}
+			return 1;
+		}
+	
+		int onload()
+		{
+			dw_list = GetControl("dw_list");
+			dw_list.openUrl("/sale/view/Business3/template/ProcessManagement");
+			dw_list.SetColumnState("TaskID",false);
+			
+			OnRetrieve();
+			
+			OnAttachEvent();	
+			
+			return 1;
+		}
+		
+		int onloaded()
+		{
+			SetAgent();
+			
+			
+			
+			return 1;
+		}		
+	};
+]
\ No newline at end of file
diff --git a/jrj/project/business/Affair/message.business.cpp b/jrj/project/business/Affair/message.business.cpp
new file mode 100644
index 0000000..9d85ecd
--- /dev/null
+++ b/jrj/project/business/Affair/message.business.cpp
@@ -0,0 +1,416 @@
+use "xcontrol.vframe.vbusiness.vd"
+use "xbase.vframe.vbusiness.vd"
+use "base.view.vd"
+
+unit trade 
+[
+	class MessageBusinessWin :  public xframe
+	{
+		//xdwgrid	dw_list;
+		xdwtable dw_base;
+		xnode	m_agentNode;	//Agent Condition
+		xwin		sheet;
+		bool      readonly;
+		string  	MessageID;
+		string 	bill;
+	
+		int SetAgent()
+		{
+			return 1;
+	
+			string xfNodeAgentArea  = "agentarea";
+			xnode anode = GetAgentNode(xfNodeAgentArea);
+			if(m_agentNode)
+			{
+				SetAgentNodeContent (anode,m_agentNode);
+			}
+			else
+			{
+				msxml::IXMLDOMElement xframeElement =  GetElement();
+				msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
+				if(agent)
+				{
+					string s = agent.xml;
+					m_agentNode =  SetAgentNodeContent (anode,s);
+				}
+			}
+			return 1;
+		}
+
+		//焦点激活处理函数
+		int OnSetFocus(ref TEvent evt,int param)
+		{
+			//重置工具条
+			SetAgent();
+			return 1;
+		}
+
+		int OnItemChanged(ref TNotifyEvent evt,int p)
+		{
+			ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
+			string colname=hdr.colname;
+			string value = hdr.data;
+			int row = hdr.row;
+			
+			if(colname=="Category")
+			{
+				if(value=="供应商申请")
+				{
+					dw_base.SetItemString(1,"Receiver","fdp-011");
+					dw_base.SetItemString(1,"Subject","请添加");
+				}
+				return 1;
+			
+				bool changed = false;
+				xml x = ViewObject::RetrieveData("/sale/data/business/message/maint","typ",value);
+				if(x)
+				{
+					string xpage_ = x.GetXmlDoc().documentElement.getAttribute("xpage");
+					string templaterpt = x.GetXmlDoc().documentElement.getAttribute("template");
+					if(xpage_ !="")
+					{
+						string s = "<hbox name='agent'>";
+						s += "<xpage  url='" + xpage_ + "'   name='contentex'/>";
+						s += "</hbox>";
+						SetAgentNodeContent (GetAgentNode("agent"),s);
+						SwitchLayer("sheet2","frame");
+						sheet = GetChildWin("contentex");
+						changed = true;
+					}
+				}
+				if(!changed)
+				{
+					sheet  = 0;
+					SwitchLayer("sheet1","frame");
+				}
+			}
+				
+			return 1;
+		}
+				
+		//命令发布函数
+		int OnCmdDispatch(string comdid)
+		{
+			if(comdid=="xmSend")
+			{
+				if(!readonly) OnSend();
+				return 1;
+			}
+			else if(comdid=="xmSave")
+			{
+				if(!readonly) OnSave();
+				return 1;
+			}
+			else if(comdid=="xmCancel")
+			{
+				CloseWindow();
+				return 1;
+			}
+			if(sheet && comdid !="")
+			{
+				int ret = win32::SendMessage(sheet.GetHWND(),0x401,comdid,0);
+				if(ret) return ret;
+			}
+					
+			return 0;
+		}
+		
+		//命令处理事件
+		int OnXCommand(ref TXCommandEvent evt,int param)
+		{
+			return OnCmdDispatch(evt.pStrID);
+		}
+		
+			
+		int OnDWClick(ref TNotifyEvent evt,int p)
+		{
+			ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
+			string value = hdr.data;
+			string colname = hdr.colname;
+			if (value == "收件人:")
+			{
+			
+				xaserverarg arg2 = new xaserverarg;
+				arg2.setNativePointer(arg2.CreateInstance());	
+				xaserverarg parg2 = GetParam();
+				OpenWindow("dev:xpage[UserGroupPersonSelect.vx]",cast(arg2 as int));
+				
+				if(arg2.GetArgString("comdid")=="xmOk")
+				{
+					string data = arg2.GetArgString("data");
+					xml x2 = new xml;
+					x2.setNativePointer(xml::CreateInstance());
+					x2.LoadXml(data);
+					msxml::IXMLDOMNodeList nodes = x2.GetXmlDoc().selectNodes("/root/item");
+					trace(x2.GetXml());
+					
+					int len = nodes.length;
+				
+					string Names = "";
+					for(int i=0;i<len; i++)
+					{
+						msxml::IXMLDOMElement t= nodes.item(i);
+						
+						if(t.getAttribute("Name"))
+						{
+							string Name = t.getAttribute("Name");
+							if(Names=="") 
+								Names = Name;
+							else if(Names.find(Name) < 0) Names+=";"+Name;
+						}
+					}
+					dw_base.SetItemString(1,"Receiver",Names);		
+				}
+				return 1;
+			}
+			
+		}
+							
+		int OnAttachEvent()
+		{
+			//绑定工具条点击事件
+			AttachEvent("WM_XCOMMAND",OnXCommand);
+			//获取焦点事件,用于重置工具条
+			AttachEvent("WM_SETFOCUS",OnSetFocus);
+			
+			AttachEvent("dw_base","DWV_ITEMCHANGED",OnItemChanged);
+			AttachEvent("dw_base","DWV_CLICKED",OnDWClick);
+			
+			return 1;
+		}
+		
+		int OnSave()
+		{
+			xml x = new xml;
+			x.setNativePointer(xml::CreateInstance());
+			xaserverarg arg1 = MakeArg("scriptbox");
+			string murl = "/sale/data/Business/message/update"; 
+			if(MessageID=="") murl = "/sale/data/Business/message/add2"; 
+			if(url::get(murl, arg1.GetString(),x)!=1)
+			{
+				alert("error1:\r\n"+x.GetXmlDoc().text);
+				return 1;
+			}
+			if(MessageID=="") MessageID= dw_base.GetGuid(1);
+			alert("已保存到草稿箱");
+			return 1;
+			
+			xaserverarg arg = new xaserverarg;
+			arg.setNativePointer(arg.CreateInstance());
+			if(sheet)
+			{
+				int val = cast(arg as int);
+				win32::SendMessage(sheet.GetHWND(),0x401,"GetEntityData:"+val.toString(),0);
+				string data = arg.GetArgString("EntityData");
+				murl = "/sale/data/Business/message/attach/update";
+				arg1.AddArg("url","message/attach");
+				arg1.AddArg("content",data);
+				arg1.AddArg("param",MessageID);
+				if(url::get(murl, arg1.GetString(),x)!=1)
+				{
+					alert("error2:\r\n"+x.GetXmlDoc().text);
+					return 1;
+				}
+			}
+			return 1;
+		}
+		
+		int OnSend()
+		{
+			xml x = new xml;
+			x.setNativePointer(xml::CreateInstance());
+			//xaserverarg arg1 = MakeArg("outbox");
+			xaserverarg arg1 = MakeArg("inbox");
+			string murl = "/sale/data/Business/message/update"; 
+			if(MessageID=="") murl = "/sale/data/Business/message/add2"; 
+				
+			trace(arg1.GetString());
+				
+			if(url::get(murl, arg1.GetString(),x)!=1)
+			{
+				alert("error1:\r\n"+x.GetXmlDoc().text);
+				return 1;
+			}
+			if(MessageID=="") MessageID= dw_base.GetGuid(1);
+			alert("发送完成");
+			CloseWindow();
+			
+			return 1;
+			
+			xaserverarg arg = new xaserverarg;
+			arg.setNativePointer(arg.CreateInstance());
+			if(sheet)
+			{
+				int val = cast(arg as int);
+				win32::SendMessage(sheet.GetHWND(),0x401,"GetEntityData:"+val.toString(),0);
+				string data = arg.GetArgString("EntityData");
+				murl = "/sale/data/Business/message/attach/update";
+				arg1.AddArg("url","message/attach");
+				arg1.AddArg("content",data);
+				arg1.AddArg("param",MessageID);
+				if(url::get(murl, arg1.GetString(),x)!=1)
+				{
+					alert("error2:\r\n"+x.GetXmlDoc().text);
+					return 1;
+				}
+			}
+			return 1;
+		}
+				
+		xaserverarg MakeArg(string folder)
+		{
+			//ThingImpl:AddMessage($MessageID,$Folder,$EntityNo, $EntityID, $Subject, $Category, $Reciever, $Content)
+			//ThingImpl:UpdateMessage($MessageID,$Folder,$EntityNo, $EntityID, $Subject, $Category, $Reciever, $Content)
+				
+			xaserverarg arg = new xaserverarg;
+			arg.setNativePointer(arg.CreateInstance());
+			
+			if(MessageID=="")
+			{
+				dw_base.SetGuid(1,ViewObject::GetGuid());
+				arg.AddArg("MessageID", dw_base.GetGuid(1));
+				arg.AddArg("EntityID", dw_base.GetGuid(1));
+			}
+			else
+			{
+				arg.AddArg("MessageID", MessageID);
+				arg.AddArg("EntityID", MessageID);
+			}
+			
+			arg.AddArg("Folder", folder);
+			arg.AddArg("EntityNo", dw_base.GetItemString(1,"EntityNo"));
+			arg.AddArg("Subject", dw_base.GetItemString(1,"Subject"));
+			arg.AddArg("Category", dw_base.GetItemString(1,"Category"));
+			arg.AddArg("Reciever", dw_base.GetItemString(1,"Receiver"));
+			arg.AddArg("Note", dw_base.GetItemString(1,"Note"));
+			//arg.AddArg("Content", dw_base.GetItemString(1,"Content"));
+			arg.AddArg("Content",GetControl("content").GetText());
+			arg.AddArg("Content2",bill);
+			return arg;
+		}
+			
+		int  OnRetrieve()
+		{
+			xml x = new xml;
+			x.setNativePointer(xml::CreateInstance());
+			xaserverarg arg = new xaserverarg;
+			arg.setNativePointer(arg.CreateInstance());	
+			arg.AddArg("id",MessageID);
+			if (getUrl("/sale/data/business/list/fetch",arg.GetString(),x)!=1)
+			{
+				trace(x.GetXmlDoc().text);
+				return -1;
+			}else	
+			{
+				dw_base.Retrieve(x);
+				dw_base.Redraw();
+				if(readonly) dw_base.SetReadOnly(true);
+			
+				if(x.GetXmlDoc().selectSingleNode("root/Content"))
+				{
+					string str = x.GetXmlDoc().selectSingleNode("root/Content").text;
+					str = str.replace("\n","\r\n");
+					GetControl("content").SetText(str);
+				}
+				//alert(x.GetXml());
+				if(x.GetXmlDoc().selectSingleNode("root/Content2"))
+				{
+					
+					string str2 = x.GetXmlDoc().selectSingleNode("root/Content2").text;
+					string tm="";
+					string EntityID="";
+					string Category="";
+					int pos = str2.find("EntityID=");
+					if(pos >= 0)
+					{
+						tm = str2.mid(pos+"EntityID=".length(),64);
+						if(tm.find(" ")>0) tm = tm.left(tm.find(" "));
+						EntityID=tm;
+					}
+					pos = str2.find("Category=");
+					if(pos >= 0)
+					{
+						tm = str2.mid(pos+"Category=".length(),64);
+						if(tm.find(" ")>0) tm = tm.left(tm.find(" "));
+						Category=tm;
+					}
+					trace("EntityID:"+EntityID);
+					trace("Category:"+Category);
+					if(EntityID != "" && Category != "")
+					{
+						string eleStr = "<row EntityID='"+EntityID+"'";
+						eleStr += " category='" + Category + "'/>";
+						bill = "EntityID="+EntityID+" Category=" + Category;
+						ShowDetail(eleStr);
+					}
+				}
+			}
+			return 1;
+		}
+
+		int ShowDetail(string eleStr)
+		{
+			xaserverarg arg=new xaserverarg;
+			arg.setNativePointer(arg.CreateInstance());	
+			arg.AddArg("content",eleStr);
+			xml doc=new xml;
+			doc.setNativePointer(xml::CreateInstance());				
+			if(getUrl("/sale/data/vpage/vstart/task",arg.GetString(),doc)!=1)
+			{
+				trace("error->:"+doc.GetXml());
+				return 0;
+			}
+			if(doc.GetXml() == "")
+				return -1;
+			
+			htmlctrl ht = GetControl("taskinfo");
+			ht.SetContent(doc.GetXml());
+			ht.Redraw();
+			
+			return 1;
+		}
+			
+		int onload()
+		{
+			dw_base = GetControl("dw_base");
+			dw_base.openUrl("/sale/view/business3/template/message/maint");
+			dw_base.SetColHeaderHeight(0);
+			dw_base.SetRowSelectorWidth(0);
+			dw_base.SetHScrollState(false);
+			dw_base.SetVScrollState(false);
+			
+			dw_base.SetItemString(1,"Category","普通");
+		
+			OnAttachEvent();	
+			
+			readonly = false;
+			MessageID = "";
+			bill = "";
+			
+			SetAgent();			
+			if(GetParam())
+			{
+				xaserverarg arg = GetParam();
+				MessageID = arg.GetArgString("id");
+				if(arg.GetArgString("readonly")=="1") readonly=true;
+				OnRetrieve();
+			
+				if(arg.GetArgString("EntityID")!="")
+				{
+					string str = "<row EntityID='"+arg.GetArgString("EntityID")+"'";
+					str += " category='" + arg.GetArgString("EntityName")+"'/>";
+					bill = "EntityID="+arg.GetArgString("EntityID")+" Category=" + arg.GetArgString("EntityName");
+					ShowDetail(str);
+				}
+			}
+			
+			return 1;
+		}
+		
+		int onloaded()
+		{
+			
+			return 1;
+		}		
+	};
+]
\ No newline at end of file
diff --git a/jrj/project/business/Affair/message.supplier.cpp b/jrj/project/business/Affair/message.supplier.cpp
new file mode 100644
index 0000000..e4a74ab
--- /dev/null
+++ b/jrj/project/business/Affair/message.supplier.cpp
@@ -0,0 +1,218 @@
+use "xcontrol.vframe.vbusiness.vd"
+use "xbase.vframe.vbusiness.vd"
+
+unit trade 
+[
+	class SupplierMessageWin :  public xframe
+	{
+		xdwtable dw_base;
+		//xdwgrid	dw_list;
+		xnode	m_agentNode;	//Agent Condition
+
+		int SetAgent()
+		{
+			return 1;
+	
+			string xfNodeAgentArea  = "agentarea";
+			xnode anode = GetAgentNode(xfNodeAgentArea);
+			if(m_agentNode)
+			{
+				SetAgentNodeContent (anode,m_agentNode);
+			}
+			else
+			{
+				msxml::IXMLDOMElement xframeElement =  GetElement();
+				msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
+				if(agent)
+				{
+					string s = agent.xml;
+					m_agentNode =  SetAgentNodeContent (anode,s);
+				}
+			}
+			return 1;
+		}
+
+		//焦点激活处理函数
+		int OnSetFocus(ref TEvent evt,int param)
+		{
+			//重置工具条
+			SetAgent();
+			return 1;
+		}
+
+		int UpLoad(string name)
+		{
+			string str = name.mid(0,2);
+			str = str.upper();
+			int ret1 = xaserver::Upload("supplier"+str, name+".jpg", this.GetHWND(),"",false);
+			return ret1;
+		}				
+	
+		int OnItemClick(ref TNotifyEvent evt,int p)
+		{
+			ref DWNMHDR  hdr1 = trust(evt.pnmh as ref DWNMHDR);
+			string colname1= hdr1.colname;
+			
+			ref DWNMHDR  hdr = evt.pnmh;
+			string value = hdr.data;
+			xaserverarg arg=new xaserverarg;
+			arg.setNativePointer(arg.CreateInstance());
+			
+			if(value == "上传附件")
+			{
+				string strguid = publiccode::GetGuid();
+				//alert(strguid);
+				int ret1 = UpLoad(strguid);
+				if(ret1  == -1)
+					return -1;
+				
+				if(ret1  == 0)
+				{
+					alert("上传附件失败");
+					return -1;
+				}
+				else
+				{	
+					alert("上传附件成功");
+					string strimage=dw_base.GetItemString(1,"ImageList1");
+					//alert(strimage);					
+					if(strimage=="")
+						strimage="<ImageList></ImageList>";
+					xml y=new xml;
+					y.setNativePointer(xml::CreateInstance());
+					y.LoadXml(strimage);
+
+					msxml::IXMLDOMElement ele= y.GetXmlDoc().documentElement;
+				
+					xml x=new xml;
+					x.setNativePointer(xml::CreateInstance());
+					string xx = "<ImageList><image>"+strguid+".jpg</image></ImageList>";
+					x.LoadXml(xx);
+					msxml::IXMLDOMElement e=  x.GetXmlDoc().selectSingleNode("//image");							
+					ele.appendChild(e);					
+					dw_base.SetItemString(1,"ImageList1",ele.xml);
+					dw_base.Redraw();
+				}	
+			}
+					
+			if(value == "查看")
+			{	
+				arg.AddArg("src",dw_base.GetItemString(1,"ImageList1"));
+				int pa = arg.getNativePointer();
+				openUrl("/sale/view/SupplierV3/xpage/supplierattachment/picture", pa);
+				arg.setNativePointer(pa);	
+				dw_base.SetItemString(1,"ImageList1",arg.GetArgString("src"));
+			}
+			
+			return 1;
+		}
+		
+		int GetEntityData(xaserverarg arg)
+		{
+			xml x = new xml;
+			x.setNativePointer(xml::CreateInstance());
+			dw_base.DwUpdateAllTo(x.GetXmlDoc());
+			arg.AddArg("EntityData",x.GetXml());
+			
+			return 1;
+		}
+		
+		xaserverarg GetArg(string comdid)
+		{
+			if(comdid.find(":")>=0)
+			{
+				xaserverarg arg = comdid.mid(comdid.find(":")+1,64).toInt();
+				return arg;
+			}
+			return 0;
+		}
+			
+		int GetEntityInfo(xaserverarg arg)
+		{
+			arg.AddArg("EntityName","Supplier");
+			arg.AddArg("EntityID",dw_base.GetGuid(1));
+			return 1;
+		}
+			
+		//命令发布函数
+		int OnCmdDispatch(string comdid)
+		{
+			if(comdid.find("GetEntityInfo:")==0) return GetEntityInfo(GetArg(comdid));
+			else if(comdid.find("GetEntityData:")==0) return GetEntityData(GetArg(comdid));
+			else if(comdid=="xmAddRow") return OnAddRow();
+			else if(comdid=="xmDeleteRow") return OnDeleteRow();
+			return 0;
+		}
+		
+		//命令处理事件
+		int OnXCommand(ref TXCommandEvent evt,int param)
+		{
+			return OnCmdDispatch(evt.pStrID);
+		}
+		
+		int OnAttachEvent()
+		{
+			//绑定工具条点击事件
+			AttachEvent("WM_XCOMMAND",OnXCommand);
+			//获取焦点事件,用于重置工具条
+			AttachEvent("WM_SETFOCUS",OnSetFocus);
+			AttachEvent("dw_base","DWV_CLICKED",OnItemClick);
+		}
+		
+		int OnAddRow()
+		{
+			xdwtable dw_obj = dw_base.FindDwTable("item");
+			dw_obj.InsertRow(0);
+			return 1;
+		}
+
+		int OnDeleteRow()
+		{
+			xdwtable dw_obj = dw_base.GetCurTable();
+			dw_obj.DeleteRow(0);
+			return 1;
+		}
+		
+		/*
+		int  OnRetrieve()
+		{
+			xml x = new xml;
+			x.setNativePointer(xml::CreateInstance());
+			xaserverarg arg = new xaserverarg;
+			arg.setNativePointer(arg.CreateInstance());	
+			arg.AddArg("xxx","xxx");
+			if (getUrl("",arg.GetString(),x)!=1)
+			{
+				trace(x.GetXmlDoc().text);
+				return -1;
+			}else	
+			{
+				//dw_list.Retrieve(x);
+				//dw_list.Redraw();
+			}
+			return 1;
+		}
+		*/
+		
+		int onload()
+		{
+			dw_base = GetControl("dw_base");
+			dw_base.openUrl("/sale/view/SupplierV3/template/supplier/simplebase");
+			dw_base.SetColHeaderHeight(0);
+			dw_base.SetRowSelectorWidth(0);
+			//dw_base.SetHScrollState(false);
+			//dw_base.SetVScrollState(false);
+		
+			OnAttachEvent();	
+			
+			return 1;
+		}
+		
+		int onloaded()
+		{
+			SetAgent();			
+			
+			return 1;
+		}		
+	};
+]
\ No newline at end of file

--
Gitblit v1.9.3