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