From 6a4764ee747fff45d89ef48f98873d6409e4f85e Mon Sep 17 00:00:00 2001 From: LiFan <2308045698@qq.com> Date: 星期二, 16 七月 2024 17:22:23 +0800 Subject: [PATCH] update --- jrj/project/business/BasicCode/ForwarderMaint.cpp | 876 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 441 insertions(+), 435 deletions(-) diff --git a/jrj/project/business/BasicCode/ForwarderMaint.cpp b/jrj/project/business/BasicCode/ForwarderMaint.cpp index d34b7ee..6357734 100644 --- a/jrj/project/business/BasicCode/ForwarderMaint.cpp +++ b/jrj/project/business/BasicCode/ForwarderMaint.cpp @@ -1,461 +1,467 @@ -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> - 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 "viewobject/view.base.hpp" + +using xml = KXMLDOMDocument; +class __declspec(dllexport) ForwarderMaint : public xframe +{ +public: + KXMLDOMDocument m_configDoc; + + xdwtable dw_base; + xstring m_userid; + xstring m_username; + xstring ContactID; + xcell dw_cell; + +public: + ForwarderMaint(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} +public: + static ForwarderMaint* CreateInstance(void* implPtr, void* hWnd) + { + ForwarderMaint* pWin = new ForwarderMaint(implPtr, (HWND)hWnd); + return pWin; + } + int alert(xstring str) + { + //win::MessageBox(GetHWND(),str,L"提示22:",0); + TApp::alert(this, str); + return 0; + } + int setCellReadOnly() + { + dw_base = new xdwtable; + dw_base.setNativePointer(GetControl(L"dw_base")); + dw_cell = new xcell; + dw_cell.setNativePointer(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 TApp::GetGuid(); + } + int OnClear() { + if (m_EntityID == L"") { + trace(1); + m_userid = TApp::GetUserInfo().id; + m_username = TApp::GetUserInfo().name; + dw_base = new xdwtable; + dw_base.setNativePointer(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", TApp::GetCurDate()); + /*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")); + + } + else + { + setCellReadOnly(); + } + return 0; + } + + int OnAddrow() + { + dw_base = new xdwtable; + dw_base.setNativePointer(GetControl(L"dw_base")); + xdwtable dw = new xdwtable; + dw.setNativePointer(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 = new xdwtable; + dw_base.setNativePointer(GetControl(L"dw_base")); + xdwtable dw = new xdwtable; + dw.setNativePointer(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 = new xdwtable; + dw.setNativePointer(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 = new xdwtable; + dw_base.setNativePointer(GetControl(L"dw_base")); + xstring ForwarderNo = dw_base.GetItemString(1, L"ForwarderNo"); + if (ForwarderNo == L"") + { + dw_base.SetItemString(1, L"ForwarderNo", getGoodsNo()); + } + xdwtable dwcon = new xdwtable; + dwcon.setNativePointer(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 = new xdwtable; + dwcon2.setNativePointer(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 = new xdwtable; + dwcon1.setNativePointer(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 = new xdwtable; + dw_base.setNativePointer(GetControl(L"dw_base")); + xaserverarg args; + + xml x; + + dw_base.DwUpdateAllTo(x); + //trace(x.xml()); + + //主联系人 + xstring spGuid; + KXMLDOMElement e; + var 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 = new xdwtable; + dw_base.setNativePointer(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 = new xdwtable; + dw_base.setNativePointer(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 = new xdwtable; + dw_pc.setNativePointer(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() + { + dw_base = new xdwtable; + dw_base.setNativePointer(GetControl(L"dw_base")); - ] - ] -] \ No newline at end of file + OnAttachEvent(); + //if(!m_configDoc) return -1; + + maint::onload(); + + OnClear(); + } + +}; \ No newline at end of file -- Gitblit v1.9.3