xj qian
2024-07-17 0b8444d0eef50d1ee4e0d0b51e174fa5b447d802
jrj/project/business/Enquiry/EnquiryEx.quote.vx.cpp
@@ -1,31 +1,44 @@
use "xcontrol.vframe.vbusiness.vd"
use "xbase.vframe.vbusiness.vd"
use "base.view.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 EnquiryExQuoteWin : public frame
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
using xml = KXMLDOMDocument;
   class __declspec(dllexport) EnquiryExQuoteWin : public xframe
   {
   public:
      xdwgrid   dw_list;
      xnode   m_agentNode;   //Agent Condition
   public:
      EnquiryExQuoteWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
   public:
      static EnquiryExQuoteWin* CreateInstance(void* implPtr, void* hWnd)
      {
         EnquiryExQuoteWin* pWin = new EnquiryExQuoteWin(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;
@@ -34,19 +47,19 @@
      int  OnSearch()
      {
         xml x = new xml;
         string EnquiryNo;
         x.setNativePointer(xml::CreateInstance());
         xaserverarg arg = GetParam();
         xcontrol QuoteNo = GetControl("QuoteNo");
         xml x ;
         xstring EnquiryNo;
         xaserverarg arg;
         xcontrol QuoteNo = GetControl(L"QuoteNo");
         EnquiryNo = QuoteNo.GetText();
         //alert(EnquiryNo);
         //string PartyID = arg.GetArgString("PartyID");
         //x = ViewObject::RetrieveData("/sale/data/Customerv3/entity/XmShare");
         //xstring PartyID = arg.GetArgString(L"PartyID");
         //x = ViewObject::RetrieveData(L"/sale/data/Customerv3/entity/XmShare");
         x = ViewObject::RetrieveData("/sale/data/Quote3/maint", "id", EnquiryNo);
         x = ViewObject::RetrieveData(L"/sale/data/Quote3/maint", L"id", EnquiryNo);
         if (x)dw_list.Retrieve(x);
         dw_list.SetReadOnly(true);
         dw_list.Redraw();
@@ -55,7 +68,7 @@
      }
      //焦点激活处理函数
      int OnSetFocus(ref TEvent evt, int param)
      int OnSetFocus(TEvent* evt, LPARAM param)
      {
         //重置工具条
         SetAgent();
@@ -64,95 +77,95 @@
      int OnSaveAs()
      {
         int i = dw_list.SaveAs("");
         int i = dw_list.SaveAs(L"");
         if (i == 1)
            alert("导出成功");
            alert(L"导出成功");
         return 1;
      }
      int OnMatch()
      {
         xaserverarg arg = new xaserverarg;
         arg.setNativePointer(arg.CreateInstance());
         xaserverarg arg;
         int row = dw_list.GetNextSelectRow(1);
         string items = "";
         xstring items = L"";
         while (row > 0 && row <= dw_list.GetRowCount())
         {
            msxml::IXMLDOMElement e = dw_list.GetRowElement(row);
            string id = e.selectSingleNode("@guid").text;
            KXMLDOMElement e = dw_list.GetRowElement(row);
            xstring id = e.selectSingleNode(L"@guid").text();
            if (items == "")
            if (items == L"")
               items = id;
            else
               items += "," + id;
               items += L",L" + id;
            row = dw_list.GetNextSelectRow(row + 1);
         }
         xml x = ViewObject::RetrieveData("/sale/data/Enquiry/Update/UpdateQuoteLine", "ItemList", items);
         xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/Update/UpdateQuoteLine", L"ItemList", items);
         OnSearch();
         return 1;
      }
      int OnPriceListSupplierEx()
      {
         xaserverarg arg = new xaserverarg;
         arg.setNativePointer(arg.CreateInstance());
         arg.AddArg("sheetname", "tab_list2");
         arg.AddArg("EntityName", "Enquiry3");
         arg.AddArg("EntityID", "");
         arg.AddArg("EntityNo", "");
         arg.AddArg("Source", "quote");
         arg.AddArg("QuoteNo", GetControl("QuoteNo").GetText());
         xaserverarg arg;
         arg.AddArg(L"sheetname", L"tab_list2");
         arg.AddArg(L"EntityName", L"Enquiry3");
         arg.AddArg(L"EntityID", L"");
         arg.AddArg(L"EntityNo", L"");
         arg.AddArg(L"Source", L"quote");
         arg.AddArg(L"QuoteNo", xcontrol(GetControl(L"QuoteNo")).GetText());
         int row = dw_list.GetNextSelectRow(1);
         string items = "";
         xstring items = L"";
         //while(row > 0 && row <= dw_list.GetRowCount())
         for (row = 1; row <= dw_list.GetRowCount(); row++)
         {
            msxml::IXMLDOMElement e = dw_list.GetRowElement(row);
            string id = e.selectSingleNode("@guid").text;
            KXMLDOMElement e = dw_list.GetRowElement(row);
            xstring id = e.selectSingleNode(L"@guid").text();
            if (items == "")
            if (items == L"")
               items = id;
            else
               items += "," + id;
               items += L",L" + id;
            //row =  dw_list.GetNextSelectRow(row + 1);
         }
         arg.AddArg("EntityIDList", items);
         int p = arg.ptr_native_;
         OpenWindow("dev:xpage[Enquiry.maint.vx]", p);
         arg.AddArg(L"EntityIDList", items);
         OpenWindow(L"dev:xpage[Enquiry.maint.vx]", arg);
         return 1;
      }
      //命令发布函数
      int OnCmdDispatch(string comdid)
      int OnCmdDispatch(xstring comdid)
      {
         if (comdid == "xmClose")
         if (comdid == L"xmClose")
         {
            CloseWindow();
            return 1;
         }
         if (comdid == "xmSearch")
         if (comdid == L"xmSearch")
         {
            OnSearch();
            return 1;
         }
         if (comdid == "xmMatch")
         if (comdid == L"xmMatch")
         {
            OnMatch();
            return 1;
         }
         if (comdid == "xmMaint")
         if (comdid == L"xmMaint")
         {
            //win32::HideWindow(1);
            OnPriceListSupplierEx();
            CloseWindow();
            return 1;
         }
         if (comdid == "xmSave")
         if (comdid == L"xmSave")
         {
            return 1;
         }
         if (comdid == "xmSaveAs")
         if (comdid == L"xmSaveAs")
         {
            return OnSaveAs();
         }
@@ -160,29 +173,30 @@
      }
      //命令处理事件
      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)&EnquiryExQuoteWin::OnXCommand);
         //获取焦点事件,用于重置工具条
         AttachEvent("WM_SETFOCUS", OnSetFocus);
         AttachEvent(L"WM_SETFOCUS", (FEvent)&EnquiryExQuoteWin::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
         {
@@ -196,21 +210,22 @@
      int onload()
      {
         dw_list = GetControl("dw_list");
         dw_list.openUrl("/sale/view/Quote3/template/item/pricelist");
         dw_list.SetColumnState("ItemID", false);
         dw_list.SetColumnState("Picture", false);
         dw_list.SetColumnState("category", false);
         dw_list.SetColumnState("RealEnquiryLineID", false);
         dw_list.SetColumnState("RelEnquiryLineID", false);
         SetArg();
         dw_list = GetControl(L"dw_list");
         dw_list.openUrl(L"/sale/view/Quote3/template/item/pricelist");
         dw_list.SetColumnState(L"ItemID", false);
         dw_list.SetColumnState(L"Picture", false);
         dw_list.SetColumnState(L"category", false);
         dw_list.SetColumnState(L"RealEnquiryLineID", false);
         dw_list.SetColumnState(L"RelEnquiryLineID", false);
         dw_list.SetSelectionMode(3);
         if (GetParam())
         if (GetWinParam())
         {
            string no = GetParam();
            xstring no = GetWinParam();
            GetControl("QuoteNo").SetText(no);
            xcontrol(GetControl(L"QuoteNo")).SetText(no);
            OnSearch();
         }
@@ -226,4 +241,3 @@
         return 1;
      }
   };
]