From 8c81832b427aced9508265f8bd804f1e66c2059b Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期五, 20 九月 2024 12:18:37 +0800
Subject: [PATCH] update
---
jrj/project/business/SO/select.gdnitem.so.cpp | 193 ++++++++++++++++++++++++++++++++++++++++++++++++
jrj/ext-jrj/ext-jrj.vcxproj | 1
jrj/ext-jrj/ext-jrj.vcxproj.filters | 3
3 files changed, 197 insertions(+), 0 deletions(-)
diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj
index 25f4495..0688867 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj
+++ b/jrj/ext-jrj/ext-jrj.vcxproj
@@ -928,6 +928,7 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
</ClCompile>
+ <ClCompile Include="..\project\business\SO\select.gdnitem.so.cpp" />
<ClCompile Include="..\project\business\SO\select.item.so.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
diff --git a/jrj/ext-jrj/ext-jrj.vcxproj.filters b/jrj/ext-jrj/ext-jrj.vcxproj.filters
index de61650..913d341 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj.filters
+++ b/jrj/ext-jrj/ext-jrj.vcxproj.filters
@@ -1418,6 +1418,9 @@
<ClCompile Include="JGuiImpl.cpp">
<Filter>jarch.impl</Filter>
</ClCompile>
+ <ClCompile Include="..\project\business\SO\select.gdnitem.so.cpp">
+ <Filter>project\business\SO</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ext-jrj.def">
diff --git a/jrj/project/business/SO/select.gdnitem.so.cpp b/jrj/project/business/SO/select.gdnitem.so.cpp
new file mode 100644
index 0000000..35c8444
--- /dev/null
+++ b/jrj/project/business/SO/select.gdnitem.so.cpp
@@ -0,0 +1,193 @@
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+#include "viewobject/saleorder.view.hpp"
+
+using xml = KXMLDOMDocument;
+ class __declspec(dllexport) SelectGDNItemSOWin : public xframe
+ {
+ public:
+ SelectGDNItemSOWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+ public:
+ static SelectGDNItemSOWin* CreateInstance(void* implPtr, void* hWnd)
+ {
+ SelectGDNItemSOWin* pWin = new SelectGDNItemSOWin(implPtr, (HWND)hWnd);
+ return pWin;
+ }
+ public:
+ xdwgrid dw_list;
+ xnode m_agentNode; //Agent Condition
+
+ xstring CustomerID;
+ int SetAgent()
+ {
+ xstring xfNodeAgentArea = L"agentarea";
+ xnode anode = GetAgentNode(xfNodeAgentArea);
+ if (m_agentNode)
+ {
+ SetAgentNode(anode, m_agentNode);
+ }
+ else
+ {
+ KXMLDOMElement xframeElement = GetElement();
+ KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*");
+ if (agent)
+ {
+ xstring s = agent.xml();
+ m_agentNode = SetAgentNode(anode, s);
+ }
+ }
+ return 1;
+ }
+
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt, LPARAM param)
+ {
+ //重置工具条
+ //SetAgent();
+ return 1;
+ }
+
+ int onxmOK()
+ {
+ xaserverarg arg = GetArg();
+ arg.AddArg(L"items", L"");
+ xstring str = L"";
+ int row = dw_list.GetNextSelectRow(1);
+ while (row > 0 && row <= dw_list.GetRowCount())
+ {
+ KXMLDOMElement ele = dw_list.GetRowElement(row);
+ str += ele.xml();
+ row = dw_list.GetNextSelectRow(row + 1);
+ }
+ if (str != L"")
+ arg.AddArg(L"items", L"<data>" + str + L"</data>");
+ //trace("<data>"+str+"</data>");
+ CloseWindow();
+ return 1;
+ }
+ //命令发布函数
+ int OnCmdDispatch(xstring comdid)
+ {
+
+ if (comdid ==L"xmSelectAll")
+ {
+ for (int i = 1; i <= dw_list.GetRowCount(); i++)
+ {
+ dw_list.SelectRow(i, true);
+ }
+ dw_list.Redraw();
+ return 1;
+ }
+ else if (comdid == L"xmSelectNo")
+ {
+ dw_list.SelectRow(0, false);
+ dw_list.Redraw();
+
+ return 1;
+ }
+ else if (comdid == L"xmOk")
+ {
+ onxmOK();
+ return 1;
+ }
+ else if (comdid == L"xmCancel")
+ {
+ CloseWindow();
+ return 1;
+ }
+ else if (comdid == L"xmSearch")
+ {
+ xcontrol query = GetControl(L"sl_search");
+ xstring queryTxt = query.GetText();
+ xml x = ViewObject::RetrieveData(L"/sale/data/SaleOrder/maint/gdnitem2", L"CustomerPONo", queryTxt, L"CustomerID", CustomerID);
+ dw_list.Retrieve(x);
+ dw_list.SetSelectionMode(3);
+ dw_list.Redraw();
+ return 1;
+ }
+
+ return 0;
+ }
+
+ int OnClicked(TEvent* evt, LPARAM p)
+ {
+ DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+ int row = hdr.row;
+ xstring col = hdr.colname;
+
+ if (col == L"ShipQuantity") return 1;
+
+ for (int i = 1; i <= dw_list.GetRowCount(); i++)
+ {
+ bool selected = dw_list.IsRowSelected(i);;
+ if (i == row && !selected)
+ {
+ if (dw_list.GetItemString(i, L"ShipQuantity") == L"")
+ dw_list.SetItemString(i, L"ShipQuantity", dw_list.GetItemString(i, L"Quantity"));
+ }
+ if (selected != 0)
+ {
+ if (dw_list.GetItemString(i, L"ShipQuantity") == L"")
+ dw_list.SetItemString(i, L"ShipQuantity", dw_list.GetItemString(i, L"Quantity"));
+ }
+ }
+ dw_list.Redraw();
+
+ return 1;
+ }
+
+ //命令处理事件
+ int OnXCommand(TEvent* evt, LPARAM param)
+ {
+ return OnCmdDispatch(evt->xcommand.pStrID);
+ }
+
+ int OnAttachEvent()
+ {
+ //绑定工具条点击事件
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&SelectGDNItemSOWin::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&SelectGDNItemSOWin::OnSetFocus);
+ AttachEvent(L"dw_list", L"DWV_CLICKED", (FEvent)&SelectGDNItemSOWin::OnClicked);
+ AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&SelectGDNItemSOWin::onxmOK);
+
+ return 1;
+ }
+
+ int onload()
+ {
+ SetArg();
+ dw_list = GetControl(L"dw_list");
+ //dw_list.openUrl("/sale/view/SaleOrder/template/itemforgdn");
+ dw_list.openUrl(L"/sale/view/GDN/template/GDN/soitemforgdn");
+
+ xml x;
+ xaserverarg arg = GetArg();
+ if (arg)
+ {
+ xstring SONo = arg.GetArgString(L"SONo");
+ CustomerID = arg.GetArgString(L"CustomerID");
+ //x = SaleOrderView::GetItemListForGDN(SONo,CustomerID);
+
+ x = ViewObject::RetrieveData(L"/sale/data/SaleOrder/maint/gdnitem2", L"CustomerPONo", L"", L"CustomerID", CustomerID);
+ dw_list.Retrieve(x);
+ //dw_list.SetReadOnly(true);
+ dw_list.SetSelectionMode(3);
+ arg.AddArg(L"items", L"");
+ }
+ OnAttachEvent();
+
+ return 1;
+ }
+
+ int onloaded()
+ {
+ //SetAgent();
+
+ return 1;
+ }
+ };
--
Gitblit v1.9.3