LiFan
2024-07-10 b520858b7365095ec5926b7c1a16e4396d507747
jrj/project/business/Enquiry/PriceList.PurcharItemSelect.cpp
@@ -1,36 +1,50 @@
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 PurcharItemSelectWin : public xframe
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
using xml = KXMLDOMDocument;
   class __declspec(dllexport) PurcharItemSelectWin : public xframe
   {
   public:
      xdwgrid   dw_list;
      xnode   m_agentNode;   //Agent Condition
   public:
      PurcharItemSelectWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
   public:
      static PurcharItemSelectWin* CreateInstance(void* implPtr, void* hWnd)
      {
         PurcharItemSelectWin* pWin = new PurcharItemSelectWin(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();
@@ -39,9 +53,9 @@
      int OnFilter()
      {
         string str = GetControl("sl_search").GetText();
         xstring str = xcontrol(GetControl(L"sl_search")).GetText();
         xdwgrid dw_obj;
         dw_list.Filter("*", str);
         dw_list.Filter(L"*", str);
         return 1;
      }
@@ -49,47 +63,47 @@
      int OnOK()
      {
         int rw = dw_list.GetNextSelectRow(1);
         string content = "<data>";
         xstring content = L"<data>";
         while (rw > 0)
         {
            msxml::IXMLDOMElement xe = dw_list.GetRowElement(rw);
            content += xe.xml;
            KXMLDOMElement xe = dw_list.GetRowElement(rw);
            content += xe.xml();
            rw = dw_list.GetNextSelectRow(rw + 1);
         }
         content += "</data>";
         xaserverarg  arg = GetParam();
         arg.AddArg("process", "ok");
         arg.AddArg("result", content);
         content += L"</data>";
         xaserverarg  arg ;
         arg.AddArg(L"process", L"ok");
         arg.AddArg(L"result", content);
         CloseWindow();
      }
      //命令发布函数
      int OnCmdDispatch(string comdid)
      int OnCmdDispatch(xstring comdid)
      {
         if (comdid == "xmSearch")
         if (comdid == L"xmSearch")
         {
            OnFilter();
            return 0;
         }
         if (comdid == "xmCancel")
         if (comdid == L"xmCancel")
         {
            CloseWindow();
            return 1;
         }
         if (comdid == "xmOK")
         if (comdid == L"xmOK")
         {
            /*int rw =  dw_list.GetNextSelectRow(1);
            string content = "<data>";
            xstring content = L"<data>";
            while (rw>0)
            {
               msxml::IXMLDOMElement xe = dw_list.GetRowElement(rw);
               content += xe.xml;
               KXMLDOMElement xe = dw_list.GetRowElement(rw);
               content += xe.xml();
               rw =  dw_list.GetNextSelectRow(rw + 1);
            }
            content += "</data>";
            content += L"</data>";
            xaserverarg  arg = GetParam();
            arg.AddArg("process","ok");
            arg.AddArg("result",content);
            arg.AddArg(L"process",L"ok");
            arg.AddArg(L"result",content);
            CloseWindow();*/
            OnOK();
@@ -100,28 +114,29 @@
      }
      //命令处理事件
      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)&PurcharItemSelectWin::OnXCommand);
         //获取焦点事件,用于重置工具条
         AttachEvent("WM_SETFOCUS", OnSetFocus);
         AttachEvent("dw_list", "DWV_DOUBLECLICKED", OnOK);
         AttachEvent(L"WM_SETFOCUS", (FEvent)&PurcharItemSelectWin::OnSetFocus);
         AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&PurcharItemSelectWin::OnOK);
         return 1;
      }
      int  OnRetrieve()
      {
         xml x = new xml;
         x.setNativePointer(xml::CreateInstance());
         xaserverarg  arg = GetParam();
         if (getUrl("/sale/data/Enquiry/PriceList/ItemSelect", arg.GetString(), x) != 1)
         xml x ;
         xaserverarg  arg;
         if (getUrl(L"/sale/data/Enquiry/PriceList/ItemSelect", arg.GetString(), x) != 1)
         {
            trace(x.GetXmlDoc().text);
            trace(x.text());
            return -1;
         }
         else
@@ -135,14 +150,14 @@
      int onload()
      {
         dw_list = GetControl("dw_list");
         dw_list.openUrl("/sale/view/Enquiry3/template/purcharpricelist/item");
         dw_list = GetControl(L"dw_list");
         dw_list.openUrl(L"/sale/view/Enquiry3/template/purcharpricelist/item");
         dw_list.SetReadOnly(true);
         OnAttachEvent();
         OnRetrieve();
         dw_list.SetSelectionMode(3);
         xaserverarg  arg = GetParam();
         arg.AddArg("process", "");
         xaserverarg  arg ;
         arg.AddArg(L"process", L"");
         return 1;
      }
@@ -152,4 +167,3 @@
         return 1;
      }
   };
]