|  |  | 
 |  |  | #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; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |    int changeddlb; | 
 |  |  |    xcombobox ddlb_1; | 
 |  |  |    xcombobox cbx_datashow; | 
 |  |  |    xcombobox cbx_datashow;  | 
 |  |  |  | 
 |  |  |    xtreeview tv_folder; | 
 |  |  |    xdwgrid   dw_goods; | 
 |  |  | 
 |  |  |       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; | 
 |  |  | 
 |  |  |       xaserver::ExecXQuery(GetServerUrl(), L"[customerfolder.gdn.sql.xq]", arg.GetString(), x); | 
 |  |  |       */ | 
 |  |  |  | 
 |  |  | 		 | 
 |  |  |       KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(), L"[customerfolder.gdn.sql.xq]", L"id", no); | 
 |  |  |       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; | 
 |  |  |  | 
 |  |  | 
 |  |  |       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; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 
 |  |  |       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; | 
 |  |  | 
 |  |  |       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); | 
 |  |  |       } | 
 |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int ViewUpdate(int pr, xstring updateItem, xaserverarg  arg) | 
 |  |  |    int ViewUpdate(LPARAM pr, xstring updateItem, xaserverarg  arg) | 
 |  |  |    { | 
 |  |  |       if (updateItem == L"del") | 
 |  |  |       { | 
 |  |  | 
 |  |  |  | 
 |  |  |       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); | 
 |  |  | 
 |  |  |          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); | 
 |  |  |  | 
 |  |  | 
 |  |  |    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); | 
 |  |  | 
 |  |  |       } | 
 |  |  |       else | 
 |  |  |       { | 
 |  |  |          dw_list.ResetEx(); | 
 |  |  |          dw_list.Reset(); | 
 |  |  |          dw_list.Redraw(); | 
 |  |  |       } | 
 |  |  |       dw_list.SetReadOnly(true); | 
 |  |  | 
 |  |  |             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; | 
 |  |  | 
 |  |  |       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") | 
 |  |  | 
 |  |  |             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(); | 
 |  |  | 
 |  |  |       { | 
 |  |  |          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; | 
 |  |  |    } | 
 |  |  | 
 |  |  |  | 
 |  |  |    int OnSelectDataShowDdlb(TEvent* evt, LPARAM p) | 
 |  |  |    { | 
 |  |  |       HWND wid = cbx_datashow.GetHWND(); | 
 |  |  |       int CB_GETCURSEL = 0x0147; | 
 |  |  |       int nIndex = SendMessageW(HWND(), CB_GETCURSEL, 0, 0); | 
 |  |  |       int nIndex = SendMessageW(wid, CB_GETCURSEL, 0, 0); | 
 |  |  |       KXMLDOMElement e = cbx_datashow.GetElement(); | 
 |  |  |       KXMLDOMElement e2 = e.selectSingleNode(L"item[" + xstring(nIndex + 1) + L"]"); | 
 |  |  |       rows = e2.selectSingleNode(L"@rows").text(); | 
 |  |  | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |    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; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  | 
 |  |  |       dw_custom.SetColumnState(L"ClassifyID", false); | 
 |  |  |       dw_custom.SetColumnState(L"AmountEx", false); | 
 |  |  |       //dw_custom.SetReadOnlyColumn(L"CustName",true); | 
 |  |  |       dw_custom.SetColumnState(L"LineNo", false); | 
 |  |  |       //dw_custom.SetColumnState(L"LineNo", false); | 
 |  |  |  | 
 |  |  |       rows = L"500"; | 
 |  |  |       myDataUrl = L"/sale/data/GDN3/folder/list"; | 
 |  |  | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       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; |