|  |  | 
 |  |  | use "xcontrol.vframe.vbusiness.vd" | 
 |  |  | use "xbase.vframe.vbusiness.vd" | 
 |  |  | #include <wobject/xstring.hpp> | 
 |  |  | #include <xcontrol/xtreeview.hpp> | 
 |  |  | #include <xcontrol/xdwgrid.hpp> | 
 |  |  | #include <xcontrol/xcell.hpp> | 
 |  |  |  | 
 |  |  | unit trade  | 
 |  |  | [ | 
 |  |  |    class SupplierMessageWin :  public xframe | 
 |  |  |  | 
 |  |  | #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" | 
 |  |  | #include "viewobject/view.base.hpp" | 
 |  |  |  | 
 |  |  | using xml = KXMLDOMDocument; | 
 |  |  |    class  __declspec(dllexport) SupplierMessageWin :  public xframe | 
 |  |  |    { | 
 |  |  |    public: | 
 |  |  |       xdwtable dw_base; | 
 |  |  |       //xdwgrid   dw_list; | 
 |  |  |       xnode   m_agentNode;   //Agent Condition | 
 |  |  |  | 
 |  |  |    public: | 
 |  |  |       SupplierMessageWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} | 
 |  |  |    public: | 
 |  |  |       static SupplierMessageWin* CreateInstance(void* implPtr, void* hWnd) | 
 |  |  |       { | 
 |  |  |          SupplierMessageWin* pWin = new SupplierMessageWin(implPtr, (HWND)hWnd); | 
 |  |  |          return pWin; | 
 |  |  |       } | 
 |  |  |       int SetAgent() | 
 |  |  |       { | 
 |  |  |          return 1; | 
 |  |  |     | 
 |  |  |          string xfNodeAgentArea  = "agentarea"; | 
 |  |  |          xstring xfNodeAgentArea  = L"agentarea"; | 
 |  |  |          xnode anode = GetAgentNode(xfNodeAgentArea); | 
 |  |  |          if(m_agentNode) | 
 |  |  |          { | 
 |  |  |             SetAgentNodeContent (anode,m_agentNode); | 
 |  |  |             SetAgentNode (anode,m_agentNode); | 
 |  |  |          } | 
 |  |  |          else | 
 |  |  |          { | 
 |  |  |             msxml::IXMLDOMElement xframeElement =  GetElement(); | 
 |  |  |             msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); | 
 |  |  |             KXMLDOMElement xframeElement =  GetElement(); | 
 |  |  |             KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); | 
 |  |  |             if(agent) | 
 |  |  |             { | 
 |  |  |                string s = agent.xml; | 
 |  |  |                m_agentNode =  SetAgentNodeContent (anode,s); | 
 |  |  |                xstring s = agent.xml(); | 
 |  |  |                m_agentNode =  SetAgentNode (anode,s); | 
 |  |  |             } | 
 |  |  |          } | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       //焦点激活处理函数 | 
 |  |  |       int OnSetFocus(ref TEvent evt,int param) | 
 |  |  |       int OnSetFocus(TEvent* evt, LPARAM param) | 
 |  |  |       { | 
 |  |  |          //重置工具条 | 
 |  |  |          SetAgent(); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       int UpLoad(string name) | 
 |  |  |       int UpLoad(xstring name) | 
 |  |  |       { | 
 |  |  |          string str = name.mid(0,2); | 
 |  |  |          str = str.upper(); | 
 |  |  |          int ret1 = xaserver::Upload("supplier"+str, name+".jpg", this.GetHWND(),"",false); | 
 |  |  |          xstring str = name.mid(0,2); | 
 |  |  |          str = str.toUpper(); | 
 |  |  |          int ret1 = xaserver::Upload(L"supplier"+str, name+L".jpg", GetHWND(),L"",false); | 
 |  |  |          return ret1; | 
 |  |  |       }             | 
 |  |  |     | 
 |  |  |       int OnItemClick(ref TNotifyEvent evt,int p) | 
 |  |  |       int OnItemClick(TEvent* evt, int p) | 
 |  |  |       { | 
 |  |  |          ref DWNMHDR  hdr1 = trust(evt.pnmh as ref DWNMHDR); | 
 |  |  |          string colname1= hdr1.colname; | 
 |  |  |          DWNMHDR& hdr1 = *(DWNMHDR*)evt->notify.pnmh; | 
 |  |  |          xstring colname1= hdr1.colname; | 
 |  |  |           | 
 |  |  |          ref DWNMHDR  hdr = evt.pnmh; | 
 |  |  |          string value = hdr.data; | 
 |  |  |          xaserverarg arg=new xaserverarg; | 
 |  |  |          arg.setNativePointer(arg.CreateInstance()); | 
 |  |  |          DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; | 
 |  |  |          xstring value = hdr.data; | 
 |  |  |          xaserverarg arg; | 
 |  |  |           | 
 |  |  |          if(value == "上传附件") | 
 |  |  | 			 | 
 |  |  |          if(value == L"上传附件") | 
 |  |  |          { | 
 |  |  |             string strguid = publiccode::GetGuid(); | 
 |  |  |             xstring strguid = publiccode::GetGuid(); | 
 |  |  |             //alert(strguid); | 
 |  |  |             int ret1 = UpLoad(strguid); | 
 |  |  |             if(ret1  == -1) | 
 |  |  | 
 |  |  |              | 
 |  |  |             if(ret1  == 0) | 
 |  |  |             { | 
 |  |  |                alert("上传附件失败"); | 
 |  |  |                alert(L"上传附件失败"); | 
 |  |  |                return -1; | 
 |  |  |             } | 
 |  |  |             else | 
 |  |  |             {    | 
 |  |  |                alert("上传附件成功"); | 
 |  |  |                string strimage=dw_base.GetItemString(1,"ImageList1"); | 
 |  |  |                alert(L"上传附件成功"); | 
 |  |  |                xstring strimage=dw_base.GetItemString(1,L"ImageList1"); | 
 |  |  |                //alert(strimage);                | 
 |  |  |                if(strimage=="") | 
 |  |  |                   strimage="<ImageList></ImageList>"; | 
 |  |  |                xml y=new xml; | 
 |  |  |                y.setNativePointer(xml::CreateInstance()); | 
 |  |  |                y.LoadXml(strimage); | 
 |  |  |                if(strimage==L"") | 
 |  |  |                   strimage=L"<ImageList></ImageList>"; | 
 |  |  |                xml y; | 
 |  |  | 					 | 
 |  |  |                y.loadXML(strimage); | 
 |  |  |  | 
 |  |  |                msxml::IXMLDOMElement ele= y.GetXmlDoc().documentElement; | 
 |  |  |                KXMLDOMElement ele= y.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");							 | 
 |  |  |                xml x; | 
 |  |  | 					 | 
 |  |  |                xstring xx = L"<ImageList><image>"+strguid+L".jpg</image></ImageList>"; | 
 |  |  |                x.loadXML(xx); | 
 |  |  |                KXMLDOMElement e=  x.selectSingleNode(L"//image");							 | 
 |  |  |                ele.appendChild(e);                | 
 |  |  |                dw_base.SetItemString(1,"ImageList1",ele.xml); | 
 |  |  |                dw_base.SetItemString(1,L"ImageList1",ele.xml()); | 
 |  |  |                dw_base.Redraw(); | 
 |  |  |             }    | 
 |  |  |          } | 
 |  |  |                 | 
 |  |  |          if(value == "查看") | 
 |  |  |          if(value == L"查看") | 
 |  |  |          {    | 
 |  |  |             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")); | 
 |  |  |             arg.AddArg(L"src",dw_base.GetItemString(1,L"ImageList1")); | 
 |  |  | 				 | 
 |  |  |             openUrl(L"/sale/view/SupplierV3/xpage/supplierattachment/picture", arg); | 
 |  |  | 					 | 
 |  |  |             dw_base.SetItemString(1,L"ImageList1",arg.GetArgString(L"src")); | 
 |  |  |          } | 
 |  |  |           | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |        | 
 |  |  |       int GetEntityData(xaserverarg arg) | 
 |  |  |       int GetEntityData(xaserverarg* arg) | 
 |  |  |       { | 
 |  |  |          xml x = new xml; | 
 |  |  |          x.setNativePointer(xml::CreateInstance()); | 
 |  |  |          dw_base.DwUpdateAllTo(x.GetXmlDoc()); | 
 |  |  |          arg.AddArg("EntityData",x.GetXml()); | 
 |  |  |          xml x; | 
 |  |  | 			 | 
 |  |  |          dw_base.DwUpdateAllTo(x); | 
 |  |  |          arg->AddArg(L"EntityData",x.xml()); | 
 |  |  |           | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |        | 
 |  |  |       xaserverarg GetArg(string comdid) | 
 |  |  |       xaserverarg* GetArg(xstring comdid) | 
 |  |  |       { | 
 |  |  |          if(comdid.find(":")>=0) | 
 |  |  |          if(comdid.find(L":")>=0) | 
 |  |  |          { | 
 |  |  |             xaserverarg arg = comdid.mid(comdid.find(":")+1,64).toInt(); | 
 |  |  |             xaserverarg* arg = (xaserverarg * )comdid.mid(comdid.find(L":")+1,64).toInt64(); | 
 |  |  |             return arg; | 
 |  |  |          } | 
 |  |  |          return 0; | 
 |  |  |       } | 
 |  |  |           | 
 |  |  |       int GetEntityInfo(xaserverarg arg) | 
 |  |  |       int GetEntityInfo(xaserverarg* arg) | 
 |  |  |       { | 
 |  |  |          arg.AddArg("EntityName","Supplier"); | 
 |  |  |          arg.AddArg("EntityID",dw_base.GetGuid(1)); | 
 |  |  |          arg->AddArg(L"EntityName",L"Supplier"); | 
 |  |  |          arg->AddArg(L"EntityID",dw_base.GetGuid(1)); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |           | 
 |  |  |       //命令发布函数 | 
 |  |  |       int OnCmdDispatch(string comdid) | 
 |  |  |       int OnCmdDispatch(xstring 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(); | 
 |  |  |          if(comdid.find(L"GetEntityInfo:")==0) return GetEntityInfo(GetArg(comdid)); | 
 |  |  |          else if(comdid.find(L"GetEntityData:")==0) return GetEntityData(GetArg(comdid)); | 
 |  |  |          else if(comdid==L"xmAddRow") return OnAddRow(); | 
 |  |  |          else if(comdid==L"xmDeleteRow") return OnDeleteRow(); | 
 |  |  |          return 0; | 
 |  |  |       } | 
 |  |  |        | 
 |  |  |       //命令处理事件 | 
 |  |  |       int OnXCommand(ref TXCommandEvent evt,int param) | 
 |  |  |       int OnXCommand(TEvent* evt, LPARAM param) | 
 |  |  |       { | 
 |  |  |          return OnCmdDispatch(evt.pStrID); | 
 |  |  |          return OnCmdDispatch(evt->xcommand.pStrID); | 
 |  |  |       } | 
 |  |  |        | 
 |  |  |       int OnAttachEvent() | 
 |  |  |       { | 
 |  |  |          //绑定工具条点击事件 | 
 |  |  |          AttachEvent("WM_XCOMMAND",OnXCommand); | 
 |  |  |          AttachEvent(L"WM_XCOMMAND", (FEvent)&SupplierMessageWin::OnXCommand); | 
 |  |  |          //获取焦点事件,用于重置工具条 | 
 |  |  |          AttachEvent("WM_SETFOCUS",OnSetFocus); | 
 |  |  |          AttachEvent("dw_base","DWV_CLICKED",OnItemClick); | 
 |  |  |          AttachEvent(L"WM_SETFOCUS", (FEvent)&SupplierMessageWin::OnSetFocus); | 
 |  |  |          AttachEvent(L"dw_base",L"DWV_CLICKED", (FEvent)&SupplierMessageWin::OnItemClick); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |        | 
 |  |  |       int OnAddRow() | 
 |  |  |       { | 
 |  |  |          xdwtable dw_obj = dw_base.FindDwTable("item"); | 
 |  |  |          xdwtable dw_obj = dw_base.FindDwTable(L"item"); | 
 |  |  |          dw_obj.InsertRow(0); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  | 
 |  |  |          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) | 
 |  |  | 				 | 
 |  |  |          arg.AddArg(L"xxx",L"xxx"); | 
 |  |  |          if (getUrl(L"",arg.GetString(),x)!=1) | 
 |  |  |          { | 
 |  |  |             trace(x.GetXmlDoc().text); | 
 |  |  |             trace(x.text()); | 
 |  |  |             return -1; | 
 |  |  |          }else    | 
 |  |  |          { | 
 |  |  | 
 |  |  |        | 
 |  |  |       int onload() | 
 |  |  |       { | 
 |  |  |          dw_base = GetControl("dw_base"); | 
 |  |  |          dw_base.openUrl("/sale/view/SupplierV3/template/supplier/simplebase"); | 
 |  |  |          dw_base = GetControl(L"dw_base"); | 
 |  |  |          dw_base.openUrl(L"/sale/view/SupplierV3/template/supplier/simplebase"); | 
 |  |  |          dw_base.SetColHeaderHeight(0); | 
 |  |  |          dw_base.SetRowSelectorWidth(0); | 
 |  |  |          //dw_base.SetHScrollState(false); | 
 |  |  | 
 |  |  |           | 
 |  |  |          return 1; | 
 |  |  |       }       | 
 |  |  |    }; | 
 |  |  | ] | 
 |  |  |    }; |