From a4d2315ee4ca3f6177b4fb2526bed2feff3d89be Mon Sep 17 00:00:00 2001
From: lifan <2308045698@qq.com>
Date: 星期三, 22 十月 2025 16:52:58 +0800
Subject: [PATCH] update
---
jrj/project/business/BasicCode/ForwarderMaint.cpp | 863 ++++++++++++++++++++++++++++-----------------------------
1 files changed, 428 insertions(+), 435 deletions(-)
diff --git a/jrj/project/business/BasicCode/ForwarderMaint.cpp b/jrj/project/business/BasicCode/ForwarderMaint.cpp
index d34b7ee..3e8ce37 100644
--- a/jrj/project/business/BasicCode/ForwarderMaint.cpp
+++ b/jrj/project/business/BasicCode/ForwarderMaint.cpp
@@ -1,461 +1,454 @@
-use "system.vl"
-use "win.vl"
-use "maint.vl"
-use "file.vl"
-use "dev:vm[xcell.vm]"
-unit vbusiness.entity
-[
- ForwarderMaint is extend maint;
- about ForwarderMaint
- [
- field:
- [
- msxml::IXMLDOMDocument m_configDoc;
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
+#include <xcontrol/xcell.hpp>
- xdwtable__ dw_base;
- string m_userid;
- string m_username;
- string ContactID;
- xcell__ dw_cell;
- ]
-
- method:
- [
- int alert(string str)
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "vbusiness/vframe/maint.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+class __declspec(dllexport) ForwarderMaint : public maint
+{
+public:
+ KXMLDOMDocument m_configDoc;
+
+ xdwtable dw_base;
+ xstring m_userid;
+ xstring m_username;
+ xstring ContactID;
+ xcell dw_cell;
+ xstring m_EntityID = L"";
+public:
+ ForwarderMaint(void* implPtr, HWND hWnd) :maint(implPtr, hWnd) {}
+public:
+ static ForwarderMaint* CreateInstance(void* implPtr, void* hWnd)
+ {
+ ForwarderMaint* pWin = new ForwarderMaint(implPtr, (HWND)hWnd);
+ return pWin;
+ }
+
+ int setCellReadOnly()
+ {
+ dw_base =GetControl(L"dw_base");
+ dw_cell = dw_base.QueryItem(L"ixcell");
+ xstring strnew = L"<cellprop celltype='' cellformatex='' cellformat='' cellprotectex='' cellprotect='保护' cellvisibleex='' cellvisible='' cellvalid='' cellinitial=''/>";
+ //dw_cell.SetCellProps(2,2,strnew);
+ return 0;
+ }
+
+ xstring GetGuid() {
+ return publiccode::GetGuid();
+ }
+ int OnClear() {
+ if (m_EntityID == L"") {
+ m_userid = publiccode::GetUser().personid;
+ m_username = publiccode::GetUser().name;
+ dw_base = GetControl(L"dw_base");
+ dw_base.SetItemString(1, L"ForwarderID", GetGuid());
+ dw_base.SetItemString(1, L"PartyID", GetGuid());
+ dw_base.SetItemString(1, L"PStatus", L"1");
+ dw_base.SetItemDisplayString(1, L"PStatus", L"普通");
+ dw_base.SetItemString(1, L"CreatorID", m_userid);
+ dw_base.SetItemString(1, L"PADStatus", L"1");
+ dw_base.SetItemString(1, L"AddressID", GetGuid());
+ dw_base.SetItemString(1, L"PADIdentifyAddressFlag", L"Y");
+ dw_base.SetItemString(1, L"PADPrimaryFlag", L"Y");
+ //dw_base.SetItemString(1,L"BankAccountID",GetGuid());
+ dw_base.SetItemString(1, L"Type", L"5");
+ dw_base.SetItemString(1, L"EnterName", m_userid);
+ dw_base.SetItemDisplayString(1, L"EnterName", m_username);
+ dw_base.SetItemString(1, L"CreateDate", publiccode::GetCurrentDate());
+ /*xdwtable dw = new xdwtable;
+ dw.setNativePointer(dw_base.GetCurTable());
+ xdwtable dwcon = new xdwtable;
+ dwcon.setNativePointer(dw.FindDwTable(L"Contacters",0));
+ dwcon.SetItemString(1,L"ContactID",GetGuid());
+ dwcon.SetItemString(1,L"PCStatus",L"1");*/
+ //dw_base.SetItemString(1,L"EBankAccountID",GetGuid());
+ //dw_base.SetItemString(1,L"CBankAccountID",GetGuid());
+ /*xdwtable dweon = new xdwtable;
+ dweon.setNativePointer(dw_base.FindDwTable(L"item1",0));
+ xdwtable dwcon = new xdwtable;
+ dwcon.setNativePointer(dw_base.FindDwTable(L"item2",0));
+ dweon.SetItemString(1,L"EPBAStatus",L"Y");
+ dwcon.SetItemString(1,L"CPBAStatus",L"Y");
+ dweon.SetItemString(1,L"ECurrencyCode",L"USD");
+ dwcon.SetItemString(1,L"CCurrencyCode",L"RMB");*/
+ dw_base.SetItemString(1, L"ForwarderType", L"1");
+ dw_base.SetItemDisplayString(1, L"ForwarderType", L"预付货");
+ //dw_base.SetItemString(1,L"PrimaryContactID",dwcon.GetItemString(1,L"ContactID"));
+ return 0;
+ }
+ else
+ {
+ setCellReadOnly();
+ }
+ return 0;
+ }
+
+ int OnAddrow()
+ {
+ dw_base = GetControl(L"dw_base");
+ xdwtable dw = dw_base.GetCurTable();
+ xstring dw_n = dw.GetDwName();
+ if (dw_n == L"item")
+ {
+ dw.InsertRow(0);
+ int rows = dw.GetRowCount();
+ dw.SetRow(rows);
+ }
+ return 1;
+ }
+ int OnInsertRow()
+ {
+ dw_base = GetControl(L"dw_base");
+ xdwtable dw = dw_base.GetCurTable();
+ xstring dw_n = dw.GetDwName();
+ if (dw_n == L"item")
+ {
+ int row = dw.GetRow();
+ if (row < 1) return 0;
+ dw.InsertRow(row);
+ dw.SetRow(row);
+ }
+ return 1;
+ }
+
+ int OnDeleteRow()
+ {
+ dw_base = new xdwtable;
+ dw_base.setNativePointer(GetControl(L"dw_base"));
+ xdwtable dw = dw_base.GetCurTable();
+ xstring dw_n = dw.GetDwName();
+ if (dw_n == L"item")
+ {
+ int row = dw.GetRow();
+ if (row < 1) return 0;
+ /*xstring del = dw.GetItemString(row,8);
+ if(del!=L"")
{
- //win__::MessageBox(this.GetHWND(),str,"提示22:",0);
- TApp::alert(this,str);
- return 0;
- }
- int setCellReadOnly()
- {
- dw_base = new xdwtable__;
- dw_base.setNativePointer(this.GetControl("dw_base"));
- dw_cell = new xcell__;
- dw_cell.setNativePointer(dw_base.QueryItem("ixcell"));
- string strnew = "<cellprop celltype='' cellformatex='' cellformat='' cellprotectex='' cellprotect='保护' cellvisibleex='' cellvisible='' cellvalid='' cellinitial=''/>";
- //dw_cell.SetCellProps(2,2,strnew);
- return 0;
- }
-
- string GetGuid(){
- return TApp::GetGuid();
- }
- int OnClear(){
- if(this.m_EntityID ==""){
- trace(1);
- m_userid = TApp::GetUserInfo().id;
- m_username = TApp::GetUserInfo().name;
- dw_base = new xdwtable__;
- dw_base.setNativePointer(this.GetControl("dw_base"));
- dw_base.SetItemString(1,"ForwarderID",GetGuid());
- dw_base.SetItemString(1,"PartyID",GetGuid());
- dw_base.SetItemString(1,"PStatus","1");
- dw_base.SetItemDisplayString(1,"PStatus","普通");
- dw_base.SetItemString(1,"CreatorID",m_userid);
- dw_base.SetItemString(1,"PADStatus","1");
- dw_base.SetItemString(1,"AddressID",GetGuid());
- dw_base.SetItemString(1,"PADIdentifyAddressFlag","Y");
- dw_base.SetItemString(1,"PADPrimaryFlag","Y");
- //dw_base.SetItemString(1,"BankAccountID",GetGuid());
- dw_base.SetItemString(1,"Type","5");
- dw_base.SetItemString(1,"EnterName",m_userid);
- dw_base.SetItemDisplayString(1,"EnterName",m_username);
- dw_base.SetItemString(1,"CreateDate",TApp::GetCurDate());
- /*xdwtable__ dw = new xdwtable__;
- dw.setNativePointer(dw_base.GetCurTable());
- xdwtable__ dwcon = new xdwtable__;
- dwcon.setNativePointer(dw.FindDwTable("Contacters",0));
- dwcon.SetItemString(1,"ContactID",GetGuid());
- dwcon.SetItemString(1,"PCStatus","1");*/
- //dw_base.SetItemString(1,"EBankAccountID",GetGuid());
- //dw_base.SetItemString(1,"CBankAccountID",GetGuid());
- /*xdwtable__ dweon = new xdwtable__;
- dweon.setNativePointer(dw_base.FindDwTable("item1",0));
- xdwtable__ dwcon = new xdwtable__;
- dwcon.setNativePointer(dw_base.FindDwTable("item2",0));
- dweon.SetItemString(1,"EPBAStatus","Y");
- dwcon.SetItemString(1,"CPBAStatus","Y");
- dweon.SetItemString(1,"ECurrencyCode","USD");
- dwcon.SetItemString(1,"CCurrencyCode","RMB");*/
- dw_base.SetItemString(1,"ForwarderType","1");
- dw_base.SetItemDisplayString(1,"ForwarderType","预付货");
- //dw_base.SetItemString(1,"PrimaryContactID",dwcon.GetItemString(1,"ContactID"));
-
+ if(m_dels==L"")
+ {
+ m_dels=del;
}
else
{
- setCellReadOnly();
- }
- return 0;
- }
+ xstring temp=m_dels;
+ m_dels=del + L"|" + temp;
+ //+= L"|"+del;
+ }
- int OnAddrow()
- {
- dw_base = new xdwtable__;
- dw_base.setNativePointer(this.GetControl("dw_base"));
- xdwtable__ dw = new xdwtable__;
- dw.setNativePointer(dw_base.GetCurTable());
- string dw_n=dw.GetDwName();
- if(dw_n=="item")
- {
- dw.InsertRow(0);
- int rows = dw.GetRowCount();
- dw.SetRow(rows);
- }
- return 1;
- }
- int OnInsertRow()
- {
- dw_base = new xdwtable__;
- dw_base.setNativePointer(this.GetControl("dw_base"));
- xdwtable__ dw = new xdwtable__;
- dw.setNativePointer(dw_base.GetCurTable());
- string dw_n=dw.GetDwName();
- if(dw_n=="item")
- {
- int row=dw.GetRow();
- if(row<1) return 0;
- dw.InsertRow(row);
- dw.SetRow(row);
- }
- return 1;
- }
+ }*/
+ dw.DeleteRow(row);
+ dw.SetRow(row - 1);
+ }
+ //trace(m_dels);
+ return 1;
+ }
+ xstring getGoodsNo()
+ {
+ xml x;
- int OnDeleteRow()
- {
- dw_base = new xdwtable__;
- dw_base.setNativePointer(this.GetControl("dw_base"));
- xdwtable__ dw = new xdwtable__;
- dw.setNativePointer(dw_base.GetCurTable());
- string dw_n=dw.GetDwName();
- if(dw_n=="item")
- {
- int row=dw.GetRow();
- if(row<1) return 0;
- /*string del = dw.GetItemString(row,8);
- if(del!="")
- {
- if(m_dels=="")
- {
- m_dels=del;
- }
- else
- {
- string temp=m_dels;
- m_dels=del + "|" + temp;
- //+= "|"+del;
- }
+ xaserverarg arg;
- }*/
- dw.DeleteRow(row);
- dw.SetRow(row - 1);
- }
- //trace(m_dels);
- return 1;
- }
- string getGoodsNo()
+ if (getUrl(L"/sale/data/LogisticsCode/pref/PartyNo", arg.GetString(), x) != 1)
+ {
+ trace(x.xml());
+ return L"";
+ }
+ KXMLDOMElement e = x.documentElement();
+ if (e)
+ {
+ xstring code = e.text();
+ trace(code);
+ return L"F" + code;
+ }
+ return L"F1000";
+ }
+ int OnPreSave()
+ {
+ dw_base.AcceptText();
+ dw_base = GetControl(L"dw_base");
+ xstring ForwarderNo = dw_base.GetItemString(1, L"ForwarderNo");
+ if (ForwarderNo == L"")
+ {
+ dw_base.SetItemString(1, L"ForwarderNo", getGoodsNo());
+ }
+ xdwtable dwcon =dw_base.FindDwTable(L"item", 0);
+ int i;
+ for (i = 1; i <= dwcon.GetRowCount(); i++)
+ {
+ xstring aTemp;
+ xstring aName = dwcon.GetItemString(i, L"ContacterName");
+ trace(aName);
+ if (aName == L"")
{
- xml__ x=new xml__;
- x.setNativePointer(xml__::CreateInstance());
- xaserverarg__ arg=new xaserverarg__;
- arg.setNativePointer(arg.CreateInstance());
- if (getUrl("/sale/data/LogisticsCode/pref/PartyNo",arg.GetString(),x) != 1)
+ aTemp = dwcon.GetItemString(i, L"Mobile") + dwcon.GetItemString(i, L"TEL") + dwcon.GetItemString(i, L"Fax") + dwcon.GetItemString(i, L"Email") + dwcon.GetItemString(i, L"PCRemark") + dwcon.GetItemString(i, L"fz");
+ trace(aTemp);
+ if (aTemp != L"")
{
- trace(x.GetXml());
- return "";
- }
- msxml::IXMLDOMElement e = x.GetXmlDoc().documentElement;
- if(e)
- {
- string code = e.text;
- trace(code);
- return "F"+code;
- }
- return "F1000";
- }
- int OnPreSave()
- {
- dw_base.AcceptText();
- dw_base = new xdwtable__;
- dw_base.setNativePointer(this.GetControl("dw_base"));
- string ForwarderNo = dw_base.GetItemString(1,"ForwarderNo",0);
- if (ForwarderNo=="" || ForwarderNo== nil)
- {
- dw_base.SetItemString(1,"ForwarderNo",getGoodsNo());
- }
- xdwtable__ dwcon = new xdwtable__;
- dwcon.setNativePointer(dw_base.FindDwTable("item",0));
- int i;
- for(i=1;i<=dwcon.GetRowCount();i++)
- {
- string aTemp;
- string aName = dwcon.GetItemString(i,"ContacterName",0);
- trace(aName);
- if (aName=="" || aName== nil)
- {
- aTemp=dwcon.GetItemString(i,"Mobile",0)+dwcon.GetItemString(i,"TEL",0)+dwcon.GetItemString(i,"Fax",0)+dwcon.GetItemString(i,"Email",0)+dwcon.GetItemString(i,"PCRemark",0)+dwcon.GetItemString(i,"fz",0);
- trace(aTemp);
- if(aTemp !="" && aTemp != nil)
- {
- alert("联系人名称必填!");
- return -1;
- }
- }
- else{
- string ContactID = dwcon.GetItemString(i,"ContactID",0);
- if (ContactID=="" || ContactID== nil)
- {
- dwcon.SetItemString(i,"ContactID",GetGuid());
- dwcon.SetItemString(i,"PCStatus","Y");
- dw_base.SetItemString(1,"PrimaryContactID",dwcon.GetItemString(1,"ContactID"));
- }
- }
- }
- xdwtable__ dwcon2 = new xdwtable__;
- dwcon2.setNativePointer(dw_base.FindDwTable("item2",0));
- int k;
- for (k=1;k <= dwcon2.GetRowCount();k++)
- {
- string sPBABankName2 = dwcon2.GetItemString(k,"CBank");
- string sPBABankAccountNo2 = dwcon2.GetItemString(k,"CBankNo");
- if (sPBABankName2 == nil) sPBABankName2 = "";
- if (sPBABankAccountNo2 == nil) sPBABankAccountNo2 = "";
- string sPBAAll2 = sPBABankName2 + sPBABankAccountNo2;
-
- if (sPBAAll2 != "")
- {
- if (sPBABankName2 == "")
- {
- alert("人民币银行名称不能为空");
- return -1;
- }
- if (sPBABankAccountNo2 == "")
- {
- alert("人民币银行账户不能为空");
- return -1;
- }
- dwcon2.SetItemString(k,"CPBAStatus","Y");
- dwcon2.SetItemString(k,"CCurrencyCode","RMB");
- dwcon2.SetItemString(k,"CBankAccountID",GetGuid());
-
- if(dwcon2.GetItemString(k,"CBankAccountID")!="" && this.m_EntityID =="")
- {
- dw_base.SetItemString(1,"CBkAccountID",dwcon2.GetItemString(k,"CBankAccountID"));
- }
- }
- }
- xdwtable__ dwcon1 = new xdwtable__;
- dwcon1.setNativePointer(dw_base.FindDwTable("item1",0));
- int j;
- for (j=1;j <= dwcon1.GetRowCount();j++)
- {
- string sPBABankName1 = dwcon1.GetItemString(j,"EBank");
- string sPBABankAccountNo1 = dwcon1.GetItemString(j,"EBankNo");
- if (sPBABankName1 == nil) sPBABankName1 = "";
- if (sPBABankAccountNo1 == nil) sPBABankAccountNo1 = "";
- string sPBAAll1 = sPBABankName1 + sPBABankAccountNo1;
- if (sPBAAll1 != "")
- {
- if (sPBABankName1 == "")
- {
- alert("美金银行名称不能为空");
- return -1;
- }
- if (sPBABankAccountNo1 == "")
- {
- alert("美金银行账户不能为空");
- return -1;
- }
- dwcon1.SetItemString(j,"EPBAStatus","Y");
- dwcon1.SetItemString(j,"ECurrencyCode","USD");
- dwcon1.SetItemString(j,"EBankAccountID",GetGuid());
- if(dwcon1.GetItemString(j,"EBankAccountID")!="" && this.m_EntityID =="")
- {
- dw_base.SetItemString(1,"EBkAccountID",dwcon1.GetItemString(j,"EBankAccountID"));
- }
- }
- }
- return 1;
- }
- int OnPostSave()
- {
- dw_base = new xdwtable__;
- dw_base.setNativePointer(this.GetControl("dw_base"));
- xaserverarg__ args = new xaserverarg__;
- args.setNativePointer(args.CreateInstance());
- xml__ x = new xml__;
- x.setNativePointer(xml__::CreateInstance());
- dw_base.DwUpdateAllTo(x.GetXmlDoc());
- //trace(x.GetXml());
-
- //主联系人
- string spGuid;
- msxml::IXMLDOMElement e;
- var list = x.GetXmlDoc().selectNodes("//item");
- int nlen = list.length;
- int i;
- for(i=0; i<nlen; i++)
- {
- e = list.item(i);
- if (i == 0) spGuid = e.selectSingleNode("@guid").text;
- string sP = e.selectSingleNode("PPrimaryFlag").text;
- if (sP == "Y")
- {
- spGuid = e.selectSingleNode("@guid").text;
- break;
- }
- }
- if (spGuid == "" || spGuid == nil)
- {
- trace("error");
- return 0;
- }
- args.AddArg("contact",spGuid);
- //trace("<---->");
- //trace(spGuid);
- xml__ x1 = new xml__;
- x1.setNativePointer(x1.CreateInstance());
- if (getUrl("/sale/data/SupplierSubmit/pref/primarycontact",args.GetString(),x) != 1)
- {
- string error = x1.GetXmlDoc().text;
- trace(error);
- return 0;
- }
-
-
- return 1;
- }
- int OnSave()
- {
- dw_base = new xdwtable__;
- dw_base.setNativePointer(this.GetControl("dw_base"));
- string SName = dw_base.GetItemString(1,"Name");
- if(SName==""){
- alert("请输入货代名称!");
+ alert(L"联系人名称必填!");
return -1;
}
- int rec =OnPreSave();
- if (rec== -1) return -1;
- xml__ x=new xml__;
- x.setNativePointer(xml__::CreateInstance());
- dw_base.DwUpdateAllTo(x.GetXmlDoc());
- trace(x.GetXml());
- xaserverarg__ arg=new xaserverarg__;
- arg.setNativePointer(arg.CreateInstance());
- arg.AddArg("content",x.GetXml());
- arg.AddArg("dbmap","Forwarder.dbmap");
- //arg.AddArg("m_dels",m_dels);
- if (getUrl("/sale/data/LogisticsCode/entity/save",arg.GetString(),x) != 1)
+ }
+ else {
+ xstring ContactID = dwcon.GetItemString(i, L"ContactID");
+ if (ContactID == L"")
{
- trace("error:"+x.GetXml());
- alert("保存失败!");
- return 0;
- }
- else
- {
- trace(x.GetXml());
- if(x.GetXmlDoc().selectSingleNode("error"))
- {
- alert("保存出错2!");
- return 0;
- }
- alert("保存成功!");
- dw_base.ResetUpdateStatus();
- OnPostSave();
+ dwcon.SetItemString(i, L"ContactID", GetGuid());
+ dwcon.SetItemString(i, L"PCStatus", L"Y");
+ dw_base.SetItemString(1, L"PrimaryContactID", dwcon.GetItemString(1, L"ContactID"));
}
- dw_base.Redraw();
- //m_dels="";
- return 0;
- }
- int OnCmdDispatch(string comdid)
+ }
+ }
+ xdwtable dwcon2 = dw_base.FindDwTable(L"item2", 0);
+ int k;
+ xstring sPBABankName2 = L"";
+ xstring sPBABankAccountNo2 = L"";
+ for (k = 1; k <= dwcon2.GetRowCount(); k++)
+ {
+ sPBABankName2 = dwcon2.GetItemString(k, L"CBank");
+ sPBABankAccountNo2 = dwcon2.GetItemString(k, L"CBankNo");
+
+ xstring sPBAAll2 = sPBABankName2 + sPBABankAccountNo2;
+
+ if (sPBAAll2 != L"")
{
- if(comdid.find("action:bill.row.add",0)>=0) {
- OnAddrow();
+ if (sPBABankName2 == L"")
+ {
+ alert(L"人民币银行名称不能为空");
+ return -1;
}
- else if(comdid.find("bill.row.insert",0)>=0) {
- OnInsertRow();
+ if (sPBABankAccountNo2 == L"")
+ {
+ alert(L"人民币银行账户不能为空");
+ return -1;
}
- else if(comdid.find("bill.row.delete",0)>=0) {
- OnDeleteRow();
+ dwcon2.SetItemString(k, L"CPBAStatus", L"Y");
+ dwcon2.SetItemString(k, L"CCurrencyCode", L"RMB");
+ dwcon2.SetItemString(k, L"CBankAccountID", GetGuid());
+
+ if (dwcon2.GetItemString(k, L"CBankAccountID") != L"" && m_EntityID == L"")
+ {
+ dw_base.SetItemString(1, L"CBkAccountID", dwcon2.GetItemString(k, L"CBankAccountID"));
}
- else if(comdid.find("bill.save",0)>=0) {
- trace(1);
- OnSave();
- }
+ }
+ }
+ xdwtable dwcon1 = dw_base.FindDwTable(L"item1", 0);
+ int j;
+ xstring sPBABankName1 = L"";
+ xstring sPBABankAccountNo1 = L"";
+ for (j = 1; j <= dwcon1.GetRowCount(); j++)
+ {
+ xstring sPBABankName1 = dwcon1.GetItemString(j, L"EBank");
+ xstring sPBABankAccountNo1 = dwcon1.GetItemString(j, L"EBankNo");
+
+ xstring sPBAAll1 = sPBABankName1 + sPBABankAccountNo1;
+ if (sPBAAll1 != L"")
+ {
+ if (sPBABankName1 == L"")
+ {
+ alert(L"美金银行名称不能为空");
+ return -1;
+ }
+ if (sPBABankAccountNo1 == L"")
+ {
+ alert(L"美金银行账户不能为空");
+ return -1;
+ }
+ dwcon1.SetItemString(j, L"EPBAStatus", L"Y");
+ dwcon1.SetItemString(j, L"ECurrencyCode", L"USD");
+ dwcon1.SetItemString(j, L"EBankAccountID", GetGuid());
+ if (dwcon1.GetItemString(j, L"EBankAccountID") != L"" && m_EntityID == L"")
+ {
+ dw_base.SetItemString(1, L"EBkAccountID", dwcon1.GetItemString(j, L"EBankAccountID"));
+ }
+ }
+ }
+ return 1;
+ }
+ int OnPostSave()
+ {
+ dw_base = GetControl(L"dw_base");
+ xaserverarg args;
+
+ xml x;
+
+ dw_base.DwUpdateAllTo(x);
+ //trace(x.xml());
+
+ //主联系人
+ xstring spGuid;
+ KXMLDOMElement e;
+ auto list = x.selectNodes(L"//item");
+ int nlen = list.length();
+ int i;
+ for (i = 0; i < nlen; i++)
+ {
+ e = list.item(i);
+ if (i == 0) spGuid = e.selectSingleNode(L"@guid").text();
+ xstring sP = e.selectSingleNode(L"PPrimaryFlag").text();
+ if (sP == L"Y")
+ {
+ spGuid = e.selectSingleNode(L"@guid").text();
+ break;
+ }
+ }
+ if (spGuid == L"")
+ {
+ trace(L"error");
+ return 0;
+ }
+ args.AddArg(L"contact", spGuid);
+ //trace(L"<---->");
+ //trace(spGuid);
+ xml x1;
+
+ if (getUrl(L"/sale/data/SupplierSubmit/pref/primarycontact", args.GetString(), x) != 1)
+ {
+ xstring error = x1.text();
+ trace(error);
+ return 0;
+ }
+
+
+ return 1;
+ }
+ int OnSave()
+ {
+ dw_base = GetControl(L"dw_base");
+ xstring SName = dw_base.GetItemString(1, L"Name");
+ if (SName == L"") {
+ alert(L"请输入货代名称!");
+ return -1;
+ }
+ int rec = OnPreSave();
+ if (rec == -1) return -1;
+ xml x;
+
+ dw_base.DwUpdateAllTo(x);
+ trace(x.xml());
+ xaserverarg arg;
+
+ arg.AddArg(L"content", x.xml());
+ arg.AddArg(L"dbmap", L"Forwarder.dbmap");
+ //arg.AddArg(L"m_dels",m_dels);
+ if (getUrl(L"/sale/data/LogisticsCode/entity/save", arg.GetString(), x) != 1)
+ {
+ trace(L"error:" + (xstring)x.xml());
+ alert(L"保存失败!");
+ return 0;
+ }
+ else
+ {
+ trace(x.xml());
+ if (x.selectSingleNode(L"error"))
+ {
+ alert(L"保存出错2!");
+ return 0;
+ }
+ alert(L"保存成功!");
+ dw_base.ResetUpdateStatus();
+ OnPostSave();
+ }
+ dw_base.Redraw();
+ //m_dels=L"";
+ return 0;
+ }
+ int OnCmdDispatch(xstring comdid)
+ {
+ if (comdid.find(L"action:bill.row.add", 0) >= 0) {
+ OnAddrow();
+ }
+ else if (comdid.find(L"bill.row.insert", 0) >= 0) {
+ OnInsertRow();
+ }
+ else if (comdid.find(L"bill.row.delete", 0) >= 0) {
+ OnDeleteRow();
+ }
+ else if (comdid.find(L"bill.save", 0) >= 0) {
+ //trace(1);
+ OnSave();
+ }
+ return 0;
+ }
+
+ int OnXCommand(TEvent* evt, LPARAM param)
+ {
+ return OnCmdDispatch(evt->xcommand.pStrID);
+ }
+ int OnCellChanged(TEvent* evt, LPARAM p)
+ {
+ dw_base = GetControl(L"dw_base");
+ DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+ xstring colname = hdr.colname;
+ xstring coldata = hdr.data;
+ trace(colname);
+ if (colname == L"ForwarderNo")
+ {
+ xstring cspec = dw_base.GetItemString(1, 1);
+ trace(cspec);
+ xstring SpecRule = L"^\\d*$";
+ xaserverarg args;
+
+ args.AddArg(L"CSpec", cspec);
+ args.AddArg(L"SpecRule", SpecRule);
+ xml x;
+
+ getUrl(L"/sale/data/LogisticsCode/pref/forwarderno/check", args.GetString(), x);
+
+ if (x.selectSingleNode(L"root/spec"))
+ {
+ alert(L"请输入数字!");
return 0;
}
- int OnXCommand(ref TXCommandEvent evt,int p)
+ }
+ //只能选一个主联系人
+ else if (colname == L"PPrimaryFlag" && coldata == L"Y")
+ {
+ xdwtable dw_pc;
+ dw_pc = dw_base.FindDwTable(L"item");
+ if (dw_pc)
{
- return OnCmdDispatch(evt.pStrID);
- }
- int OnCellChanged(ref TNotifyEvent evt,int p)
- {
- dw_base = new xdwtable__;
- dw_base.setNativePointer(this.GetControl("dw_base"));
- ref DWNMHDR hdr = evt.pnmh;
- string colname=hdr.colname;
- string coldata = hdr.data;
- trace(colname);
- if(colname=="ForwarderNo")
+ int i;
+ for (i = 1; i <= dw_pc.GetRowCount(); i++)
{
- string cspec = dw_base.GetItemString(1,1);
- trace(cspec);
- string SpecRule="^\\d*$";
- xaserverarg__ args = new xaserverarg__;
- args.setNativePointer(args.CreateInstance());
- args.AddArg("CSpec",cspec);
- args.AddArg("SpecRule",SpecRule);
- xml__ x= new xml__;
- x.setNativePointer(xml__::CreateInstance());
- getUrl("/sale/data/LogisticsCode/pref/forwarderno/check",args.GetString(),x);
-
- if(x.GetXmlDoc().selectSingleNode("root/spec"))
- {
- alert("请输入数字!");
- return 0;
- }
-
+ if (i != hdr.row)
+ dw_pc.SetItemString(i, L"PPrimaryFlag", L"N");
}
- //只能选一个主联系人
- else if (colname == "PPrimaryFlag" && coldata == "Y")
- {
- xdwtable__ dw_pc;
- dw_pc = new xdwtable__;
- dw_pc.setNativePointer(dw_base.FindDwTable("item"));
- if (dw_pc)
- {
- int i;
- for (i=1;i <= dw_pc.GetRowCount();i++)
- {
- if (i != hdr.row)
- dw_pc.SetItemString(i,"PPrimaryFlag","N");
- }
- }
- }
- return 1;
- }
- int OnAttachEvent()
- {
- AttachEvent("WM_XCOMMAND",OnXCommand);
- //AttachEvent("WM_SETFOCUS",OnSetFocus);
- AttachEvent("dw_base","DWV_ITEMCHANGED",OnCellChanged);
- return 0;
- }
- int onload()
- {
- dw_base = new xdwtable__;
- dw_base.setNativePointer(this.GetControl("dw_base"));
-
- OnAttachEvent();
- //if(!m_configDoc) return -1;
-
- maint::onload();
-
- OnClear();
}
+ }
+ return 1;
+ }
+ int OnAttachEvent()
+ {
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&ForwarderMaint::OnXCommand);
+ //AttachEvent(L"WM_SETFOCUS",OnSetFocus);
+ AttachEvent(L"dw_base", L"DWV_ITEMCHANGED", (FEvent)&ForwarderMaint::OnCellChanged);
+ return 1;
+ }
+ int onload()
+ {
- ]
- ]
-]
\ No newline at end of file
+ SetArg();
+ dw_base = GetControl(L"dw_base");
+
+ OnAttachEvent();
+ //if(!m_configDoc) return -1;
+
+ maint::onload();
+
+ OnClear();
+ return 1;
+ }
+
+ int onloaded()
+ {
+ return maint::onloaded();
+ }
+
+};
\ No newline at end of file
--
Gitblit v1.9.3