LiFan
2024-10-29 db02064b0a296aaeab02780c892b3ce8e80012b1
jrj/project/business/Affair/message.supplier.cpp
@@ -1,66 +1,79 @@
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)
@@ -68,40 +81,40 @@
            
            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;
@@ -109,19 +122,19 @@
      
      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 = comdid.mid(comdid.find(L":")+1,64).toInt();
            return arg;
         }
         return 0;
@@ -129,39 +142,39 @@
         
      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);
      }
      
      int OnAddRow()
      {
         xdwtable dw_obj = dw_base.FindDwTable("item");
         xdwtable dw_obj = dw_base.FindDwTable(L"item");
         dw_obj.InsertRow(0);
         return 1;
      }
@@ -179,11 +192,11 @@
         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   
         {
@@ -196,8 +209,8 @@
      
      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);
@@ -214,5 +227,4 @@
         
         return 1;
      }      
   };
]
   };