xj qian
2024-11-05 06a9a4b01cda9c380e52eb875d7bb7c1c874954a
jrj/project/business/GDN3.list.cpp
@@ -5,14 +5,15 @@
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
class __declspec(dllexport) GDN3list : public listwin
using xml = KXMLDOMDocument;
class __declspec(dllexport) ListGDN3Win : public listwin
{
public:
   GDN3list(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {}
   ListGDN3Win(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {}
public:
   static GDN3list* CreateInstance(void* implPtr, void* hWnd)
   static ListGDN3Win* CreateInstance(void* implPtr, void* hWnd)
   {
      GDN3list* pWin = new GDN3list(implPtr, (HWND)hWnd);
      ListGDN3Win* pWin = new ListGDN3Win(implPtr, (HWND)hWnd);
      return pWin;
   }
@@ -69,9 +70,9 @@
      if (len > 0) tv_folder.SetItemChild(hItem, 1);
      for (int i = 0; i < len; i++)
      {
         KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
         KXMLDOMElement e = nlist.item(i);
         string name = e.getAttribute(L"name");
         HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, image);
         HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
         ExpandCatChildFolder(h, e, 35);
      }
      return 1;
@@ -80,23 +81,29 @@
   int ExpandFolderItem(HTREEITEM hItem, xstring no)
   {
      //xml x = ViewObject::RetrieveData(urlTree,L"no",no);
      xml x = xml::Make();
      /*xml x = xml::Make();
      xaserverarg arg = xaserverarg::Make();
      arg.AddArg(L"no", no);
      xaserver::ExecXQuery(GetServerUrl(), L"[customerfolder.gdn.sql.xq]", arg.GetString(), x);
      */
      KXMLDOMDocument x;
      xaserverarg arg;
      arg.AddArg(L"no", no);
      xaserver::ExecXQuery(GetServerUrl(), L"[customerfolder.gdn.sql.xq]", arg.GetString(), x);
      //KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(), L"[customerfolder.gdn.sql.xq]", L"id", no);
      if (!x) return 0;
      KXMLDOMNodeList nlist = x.SelectNodes(L"/data/item");
      KXMLDOMNodeList nlist = x.selectNodes(L"/data/item");
      int len = nlist.length();
      for (int i = 0; i < len; i++)
      {
         KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
         KXMLDOMElement e = nlist.item(i);
         string name = e.getAttribute(L"name");
         HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, 35);
         HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, 35);
         ExpandCatChildFolder(h, e, 35);
      }
      x.Free();
      return 1;
   }
@@ -109,7 +116,7 @@
      xstring name = tv_folder.GetItemLabel(hTopItem);
      HTREEITEM child = tv_folder.GetChildItem(hItem);
      KXMLDOMElement& e = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
      KXMLDOMElement e = tv_folder.GetItemData(hItem);
      if (!child)ExpandFolderItem(hItem, e.getAttribute(L"no"));
      return 1;
@@ -121,13 +128,13 @@
      int len = nlist.length();
      for (int i = 0; i < len; i++)
      {
         KXMLDOMElement& e = *new KXMLDOMElement(nlist.item(i));
         KXMLDOMElement e = nlist.item(i);
         string name = e.getAttribute(L"name");
         xstring sImage = e.getAttribute(L"image");
         xstring child = e.getAttribute(L"child");
         int image = 15;
         if (sImage) image = sImage.toInt();
         HTREEITEM h = tv_folder.InsertChildItem(hItem, name, (LPARAM)&e, image);
         HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
         if (child != L"no") tv_folder.SetItemChild(h, 1);
         ExpandChildFolder(h, e);
      }
@@ -150,7 +157,7 @@
      return 1;
   }
   int ViewUpdate(int pr, xstring updateItem, xaserverarg  arg)
   int ViewUpdate(LPARAM pr, xstring updateItem, xaserverarg  arg)
   {
      if (updateItem == L"del")
      {
@@ -197,21 +204,22 @@
      if (readed) return 1;
      HTREEITEM hItem = tv_folder.GetSelectedItem();
      if (hItem <= 0)
      if (!hItem)
      {
         hItem = tv_folder.GetRootItem();
         if (hItem <= 0)  return 1;
         if (!hItem)  return 1;
      }
      HCURSOR hCursor = xutil::SetCursorWait();
      KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
      KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
      xstring no = e1.getAttribute(L"no");
      //xml x = 0;
      //x = ViewObject::RetrieveData(myDataUrl,L"no",no,L"QueryTxt", m_QueryTxt,L"rows",rows);
      xstring DeptName = publiccode::GetUser().deptname;
      xaserverarg arg = xaserverarg::Make();
      xaserverarg arg ;
      arg.AddArg(L"no", no);
      arg.AddArg(L"QueryTxt", m_QueryTxt);
      arg.AddArg(L"rows", rows);
      trace(no + L"***" + m_QueryTxt + L"***" + rows);
      /*if(DeptName==L"跟单部"){
         dw_list.DwRetrieve(GetServerUrl(),L"[list.creator.gdn.sql.xq]",arg.GetString());
@@ -219,7 +227,6 @@
         dw_list.DwRetrieve(GetServerUrl(),L"[list.folder.gdn.sql.xq]",arg.GetString());
      }*/
      dw_list.DwRetrieve(GetServerUrl(), L"[list.folder.gdn.sql.xq]", arg.GetString());
      arg.Free();
      dw_list.SetReadOnly(true);
      dw_list.SetRowSort(L"ETD", false);
@@ -233,11 +240,11 @@
   int OnPreRetrieve()
   {
      HTREEITEM hItem = tv_folder.GetSelectedItem();
      if (hItem <= 0) return 1;
      if (!hItem) return 1;
      HCURSOR hCursor = xutil::SetCursorWait();
      KXMLDOMElement& e1 = *(KXMLDOMElement*)tv_folder.GetItemData(hItem);
      KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
      xstring no = e1.getAttribute(L"no");
      trace(L"\r\n" + no + L"\r\n" + m_QueryTxt);
@@ -249,7 +256,7 @@
      }
      else
      {
         dw_list.ResetEx();
         dw_list.Reset();
         dw_list.Redraw();
      }
      dw_list.SetReadOnly(true);
@@ -416,7 +423,7 @@
            KXMLDOMDocument supplier_x = ViewObject::RetrieveData(L"/sale/data/SupplierV3/entity/FindBySaleType", L"id", s);
            if (supplier_x)
            {
               if (supplier_x.text() != L"跟单")
               if ((xstring)supplier_x.text() != L"跟单")
               {
                  alert(L"当前角色不是跟单员不能新增单子,请重新选择角色");
                  return 0;
@@ -427,11 +434,11 @@
      else if (comdid == L"action:bill.GDNDelay")
      {
         xstring EntityIDEx = dw_list.GetGuid(dw_list.GetRow());
         xaserverarg& argEx = *new xaserverarg;
         argEx.setNativePointer(argEx.CreateInstance());
         trace(EntityIDEx);
         xaserverarg argEx;
         //alert(EntityIDEx);
         argEx.AddArg(L"GDNID", EntityIDEx);
         OpenWindow(L"dev:xpage[GDNDelay.vx]", (LPARAM)&argEx);
         OpenWindow(L"dev:xpage[GDNDelay.vx]", argEx);
         return 1;
      }
      else if (comdid == L"action:bill.check.ask")
@@ -484,11 +491,11 @@
            return 0;
         }*/
         xaserverarg& arg = *new xaserverarg;
         arg.setNativePointer(arg.CreateInstance());
         xaserverarg arg ;
         trace(EntityID);
         arg.AddArg(L"GDNID", EntityID);
         OpenWindow(L"dev:xpage[GDNDelay.vx]", (LPARAM)&arg);
         OpenWindow(L"dev:xpage[GDNDelay.vx]", arg);
      }
      else if (comdid == L"action:bill.SourceRemark") return OnSourceRemark();
@@ -507,10 +514,10 @@
      {
         Content = t.selectSingleNode(L"Content").text();
      }
      xaserverarg& arg1 = *new xaserverarg;
      arg1.setNativePointer(arg1.CreateInstance());
      xaserverarg arg1 ;
      arg1.AddArg(L"value", Content);
      OpenWindow(L"dev:xpage[memo.edit.new.vx]", (LPARAM)&arg1);
      OpenWindow(L"dev:xpage[memo.edit.new.vx]",arg1);
      return 1;
   }
@@ -556,9 +563,8 @@
   int OnSelectDdlb(TEvent* evt, LPARAM p)
   {
      changeddlb = 1;
      int wid = ddlb_1.GetId();
      int CB_GETCURSEL = 0x0147;
      int nIndex = SendMessageW(wid, CB_GETCURSEL, 0, 0);
      int nIndex = SendMessageW(HWND(), CB_GETCURSEL, 0, 0);
      KXMLDOMElement e = ddlb_1.GetElement();
      KXMLDOMElement e2 = e.selectSingleNode(L"item[" + xstring(nIndex + 1) + L"]");
      xstring no = e2.selectSingleNode(L"@element").text();
@@ -575,7 +581,7 @@
   int OnSelectDataShowDdlb(TEvent* evt, LPARAM p)
   {
      int wid = cbx_datashow.GetId();
      HWND wid = cbx_datashow.GetHWND();
      int CB_GETCURSEL = 0x0147;
      int nIndex = SendMessageW(wid, CB_GETCURSEL, 0, 0);
      KXMLDOMElement e = cbx_datashow.GetElement();
@@ -587,13 +593,14 @@
   }
   int AttachEvent()
   int PostOnAttachEvent()
   {
      AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&GDN3list::OnTreeSelChanged); //树选择
      //AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING",(FEvent)&GDN3list::OnTreeExpanding); //树展开
      AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&GDN3list::OnRowChanged);
      AttachEvent(L"cbx_1", L"CBN_SELCHANGE", (FEvent)&GDN3list::OnSelectDdlb);
      AttachEvent(L"cbx_datashow", L"CBN_SELCHANGE", (FEvent)&GDN3list::OnSelectDataShowDdlb);
      AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&ListGDN3Win::OnTreeSelChanged); //树选择
      //AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING",(FEvent)&ListGDN3Win::OnTreeExpanding); //树展开
      AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&ListGDN3Win::OnRowChanged);
      AttachEvent(L"cbx_1", L"CBN_SELCHANGE", (FEvent)&ListGDN3Win::OnSelectDdlb);
      AttachEvent(L"cbx_datashow", L"CBN_SELCHANGE", (FEvent)&ListGDN3Win::OnSelectDataShowDdlb);
      return 1;
   }
@@ -679,7 +686,7 @@
      //attach my control event
      AttachEvent();
      PostOnAttachEvent();
      readed = false;
@@ -704,14 +711,14 @@
      }
      HTREEITEM hItem = tv_folder.GetCaretItem();
      if (hItem <= 0) return 1;
      if (!hItem) return 1;
      KXMLDOMElement e = tv_folder.GetItemData(hItem);
      xstring  no = e.getAttribute(L"no");
      if (no.find(L"Customer:") >= 0)
      {
         arg.AddArg(L"CustomerID", e.getAttribute(L"id"));
         xstring name = e.getAttribute(L"name");
         if (name.find(L"(L") >= 0) name = name.left(name.find(L"(L"));
         if (name.find(L"(") >= 0) name = name.left(name.find(L"("));
         arg.AddArg(L"CustomerName", name);
      }
      return 1;