From 61f1fc38bb7c290ccace616b7df4609a8b82a73b Mon Sep 17 00:00:00 2001 From: xj qian <qianxj15@sina.com> Date: 星期五, 06 九月 2024 13:52:36 +0800 Subject: [PATCH] update viewupdate --- jrj/project/business/SO3.maint.cpp | 65 ++++++++++++++++++++++++-------- 1 files changed, 48 insertions(+), 17 deletions(-) diff --git a/jrj/project/business/SO3.maint.cpp b/jrj/project/business/SO3.maint.cpp index 53b8fa6..3132a61 100644 --- a/jrj/project/business/SO3.maint.cpp +++ b/jrj/project/business/SO3.maint.cpp @@ -9,6 +9,11 @@ #include "viewobject/saleorder.view.hpp" #include "viewobject/quote.view.hpp" +#include "jstring.hpp" +#include "JFactory.hpp" +#include "jobjectsvr.hpp" +#include <memory> +#include "JPtr.hpp" class __declspec(dllexport) BaseMaintSOWin : public maint { xdwtable dw_props; @@ -223,17 +228,34 @@ xstring colname = hdr->colname; if (value == L"支付条款") { - //int p1 = vc.xdoc.getNativePointer(); - //openUrl(L"/sale/view/SaleOrder/xpage/payment", p1); + xaserverarg arg; + xml x; + dw_base.DwUpdateAllTo(x); + arg.SetArg(L"content", x.xml()); + openUrl(L"/sale/view/SaleOrder/xpage/payment", (LPARAM)arg); + if (arg.GetArgString(L"process") == L"ok") + { + x.loadXML(arg.GetArgString(L"content")); + dw_base.Retrieve(x); + } dw_base.AcceptText(); + dw_base.Redraw(); return 1; } //交货期维护 if (value == L"交货期") { - //int p2 = vc.xdoc.getNativePointer(); - //openUrl(L"/sale/view/SaleOrder/xpage/delivery1", p2); + xaserverarg arg; + xml x; + dw_base.DwUpdateAllTo(x); + arg.SetArg(L"content", x.xml()); + openUrl(L"/sale/view/SaleOrder/xpage/delivery1", (LPARAM)arg); + if (arg.GetArgString(L"process") == L"ok") + { + x.loadXML(arg.GetArgString(L"content")); + dw_base.Retrieve(x); + } dw_base.AcceptText(); dw_base.Redraw(); return 1; @@ -609,11 +631,10 @@ //str = str.trim(); //if(str==L"") //{ - xaserverarg& arg = *new xaserverarg; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg(L"HWND", xstring((__int64)GetHWND())); + xaserverarg arg; + arg.SetParam(L"HWND", GetHWND()); arg.AddArg(L"CustomerID", dw_base.GetItemString(1, L"CustomerID")); - OpenWindow(L"dev:xpage[Product.Select.SO.vx]", (LPARAM)&arg); + OpenWindow(L"dev:xpage[Product.Select.SO.vx]", arg); //OpenWindow(L"dev:xpage[Product.Select.vx]",cast(arg1 as int)); //} //else @@ -940,8 +961,16 @@ return 1; } + int onload() { + /* + using JFString = JFactory<JString>; + JPtr<JFString> jfString(JObjectSvr::CreateInstance<JFString>(L"JFactoryString")); + //auto jfString = JObjectSvr::CreateInstance<JFString>(L"JFactoryString"); + JPtr<JString> pStr(jfString->make()); + */ + dw_props = GetControl(L"dw_props"); /*KXMLDOMDocument x = SaleOrderView::GetMaintFormForBase(); dw_props.SetDataObject(x); @@ -1001,22 +1030,24 @@ }*/ xstring SONo; xstring CustomerID; - xaserverarg* arg = 0; - if (GetParam()) + xaserverarg arg; + if (GetWinParam()) { - arg = (xaserverarg *)GetParam(); - SONo = arg->GetArgString(L"SONo"); - if (SONo == L"") SONo = arg->GetArgString(L"EntityNo"); + arg = GetArg(); + SONo = arg.GetArgString(L"SONo"); + if (SONo == L"") SONo = arg.GetArgString(L"EntityNo"); } if (SONo != L"") { KXMLDOMDocument x = SaleOrderView::GetMaintDataForBase(SONo); + BSTR str = (BSTR)x.xml(); dw_base.Retrieve(x); dw_item.Retrieve(x); } else { KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/SaleOrder/newinitial"); + BSTR str = (BSTR)x.xml(); dw_base.Retrieve(x); xstring sdate = publiccode::GetCurrentDate(); @@ -1046,8 +1077,8 @@ if (CustomerID != L"") { - dw_base.ItemChangeTo(1, L"CustomerID", arg->GetArgString(L"CustomerID")); - dw_base.SetItemDisplayString(1, L"CustomerID", arg->GetArgString(L"CustomerName")); + dw_base.ItemChangeTo(1, L"CustomerID", arg.GetArgString(L"CustomerID")); + dw_base.SetItemDisplayString(1, L"CustomerID", arg.GetArgString(L"CustomerName")); xstring dwname = L"dw_base"; xstring colname = L"CustomerID"; xstring value = CustomerID; @@ -1065,9 +1096,9 @@ { SetAgent(); - if (GetParam()) + if (GetWinParam()) { - xaserverarg& arg = *(xaserverarg * )GetParam(); + xaserverarg arg = GetArg(); HCURSOR hCursor = xutil::SetCursorWait(); xstring SONo = arg.GetArgString(L"SONo"); if (SONo == L"") SONo = arg.GetArgString(L"EntityNo"); -- Gitblit v1.9.3