LiFan
2024-07-18 b6e2fbfc0469657db86b9757c1813d72f6727962
jrj/project/business/Quote/QuoteFilePurched.cpp
@@ -1,36 +1,51 @@
use "xcontrol.vframe.vbusiness.vd"
use "xbase.vframe.vbusiness.vd"
#include <wobject/xstring.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xdwgrid.hpp>
#include <wobject/xdouble.hpp>
#include <xcontrol/xlayersheet.hpp>
#include <xcontrol/xdatetimepick.hpp>
unit trade
[
   class QuoteFilePurched :  public xframe
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
using xml = KXMLDOMDocument;
   class __declspec(dllexport) QuoteFilePurched :  public xframe
   {
   public:
      xdwgrid   dw_list;
      xnode   m_agentNode;   //Agent Condition
   public:
      QuoteFilePurched(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
   public:
      static QuoteFilePurched* CreateInstance(void* implPtr, void* hWnd)
      {
         QuoteFilePurched* pWin = new QuoteFilePurched(implPtr, (HWND)hWnd);
         return pWin;
      }
      int SetAgent()
      {
         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();
@@ -42,21 +57,21 @@
         /*
         for(int row=1;row<=dw_list.GetRowCount();row++)
         {
            if(dw_list.GetItemString(row,"IsSend")=="1")
            if(dw_list.GetItemString(row,L"IsSend")==L"1")
            {
               if(dw_list.GetItemString(row,"ItemName")=="")
               if(dw_list.GetItemString(row,L"ItemName")==L"")
               {
                  alert("第"+row.toString()+"行商品英文名称未输入,补全后再发送给业务员");
                  alert(L"第"+row.toString()+L"行商品英文名称未输入,补全后再发送给业务员");
                  return 0;
               }
               if(dw_list.GetItemString(row,"ItemCName")=="")
               if(dw_list.GetItemString(row,L"ItemCName")==L"")
               {
                  alert("第"+row.toString()+"行商品名称未输入,补全后再发送给业务员");
                  alert(L"第"+row.toString()+L"行商品名称未输入,补全后再发送给业务员");
                  return 0;
               }
               if(dw_list.GetItemString(row,"Package")=="")
               if(dw_list.GetItemString(row,L"Package")==L"")
               {
                  alert("第"+row.toString()+"行商品包装未输入,补全后再发送给业务员");
                  alert(L"第"+row.toString()+L"行商品包装未输入,补全后再发送给业务员");
                  return 0;
               }
            }
@@ -69,14 +84,14 @@
      {
         if(OnValid()==0) return 1;
               
         xml x = new xml;
         x.setNativePointer(xml::CreateInstance());
         dw_list.DwUpdateAllToEx(x.GetXmlDoc());
         if(GetParam())
         xml x ;
         dw_list.DwUpdateAllToEx(x);
         if(GetWinParam())
         {
            xaserverarg arg = GetParam();
            arg.AddArg("process","ok");
            arg.AddArg("value",x.GetXml());
            xaserverarg arg = GetArg();
            arg.AddArg(L"process",L"ok");
            arg.AddArg(L"value",x.xml());
         }
         CloseWindow();
         return 1;
@@ -92,7 +107,7 @@
      {
         for(int row = 1; row <= dw_list.GetRowCount(); row++)
         {
            dw_list.SetItemString(row,"IsSend","1");
            dw_list.SetItemString(row,L"IsSend",L"1");
         }
         dw_list.Redraw();
         return 1;
@@ -102,48 +117,49 @@
      {
         for(int row = 1; row <= dw_list.GetRowCount(); row++)
         {
            dw_list.SetItemString(row,"IsSend","0");
            dw_list.SetItemString(row,L"IsSend",L"0");
         }
         dw_list.Redraw();
         return 1;
      }
      
      //命令发布函数
      int OnCmdDispatch(string comdid)
      int OnCmdDispatch(xstring comdid)
      {
         if(comdid=="xmOK") return OnOK();
         else if(comdid=="xmCancel") return OnCancel();
         else if(comdid=="xmSelectAll") return SelectAll();
         else if(comdid=="xmUnSelectAll") return UnSelectAll();
         if(comdid==L"xmOK") return OnOK();
         else if(comdid==L"xmCancel") return OnCancel();
         else if(comdid==L"xmSelectAll") return SelectAll();
         else if(comdid==L"xmUnSelectAll") return UnSelectAll();
         
         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)&QuoteFilePurched::OnXCommand);
         //获取焦点事件,用于重置工具条
         AttachEvent("WM_SETFOCUS",OnSetFocus);
         AttachEvent(L"WM_SETFOCUS", (FEvent)&QuoteFilePurched::OnSetFocus);
         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)
         xml x ;
         xaserverarg arg ;
         arg.AddArg(L"xxx",L"xxx");
         if (getUrl(L"",arg.GetString(),x)!=1)
         {
            trace(x.GetXmlDoc().text);
            trace(x.text());
            return -1;
         }else   
         {
@@ -156,16 +172,17 @@
      
      int onload()
      {
         dw_list = GetControl("dw_list");
         dw_list.openUrl("/sale/view/Quote3/template/Quote/QuoteFilePurchedItem");
         SetArg();
         dw_list = GetControl(L"dw_list");
         dw_list.openUrl(L"/sale/view/Quote3/template/Quote/QuoteFilePurchedItem");
      
         if(GetParam())
         if(GetWinParam())
         {
            xaserverarg arg = GetParam();
            string val = arg.GetArgString("value");
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            x.LoadXml(val);
            xaserverarg arg = GetArg();
            xstring val = arg.GetArgString(L"value");
            xml x ;
            x.loadXML(val);
            dw_list.Retrieve(x);
         }
         OnAttachEvent();   
@@ -179,5 +196,4 @@
         
         return 1;
      }      
   };
]
   };