| | |
| | | use "system.vl" |
| | | use "win.vl" |
| | | use "maint.vl" |
| | | use "file.vl" |
| | | use "dev:vm[xcell.vm]" |
| | | unit vbusiness.entity |
| | | [ |
| | | ShipcompanyMaint is extend maint; |
| | | about ShipcompanyMaint |
| | | [ |
| | | field: |
| | | [ |
| | | msxml::IXMLDOMDocument m_configDoc; |
| | | string m_userid; |
| | | string m_username; |
| | | string ContactID; |
| | | xdwtable__ dw_base; |
| | | xcell__ dw_cell; |
| | | ] |
| | | |
| | | method: |
| | | [ |
| | | int alert(string str) |
| | | #include <wobject/xstring.hpp> |
| | | #include <xcontrol/xtreeview.hpp> |
| | | #include <xcontrol/xdwgrid.hpp> |
| | | #include <wobject/xdouble.hpp> |
| | | #include <xcontrol/xlayersheet.hpp> |
| | | |
| | | #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" |
| | | #include "viewobject/view.base.hpp" |
| | | |
| | | using xml = KXMLDOMDocument; |
| | | class __declspec(dllexport) ShipcompanyMaint : public xframe |
| | | { |
| | | public: |
| | | KXMLDOMDocument m_configDoc; |
| | | xstring m_userid; |
| | | xstring m_username; |
| | | xstring ContactID; |
| | | xdwtable dw_base; |
| | | xcell dw_cell; |
| | | public: |
| | | ShipcompanyMaint(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} |
| | | public: |
| | | static ShipcompanyMaint* CreateInstance(void* implPtr, void* hWnd) |
| | | { |
| | | ShipcompanyMaint* pWin = new ShipcompanyMaint(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; |
| | | } |
| | | int OnSetFocus(TEvent* evt, LPARAM p) |
| | | { |
| | | SetAgent(L"maint"); |
| | | return 1; |
| | | } |
| | | xstring GetGuid() { |
| | | return TApp::GetGuid(); |
| | | } |
| | | int OnClear() { |
| | | if (m_EntityID == L"") { |
| | | 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"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"Type", L"6"); |
| | | dw_base.SetItemString(1, L"AddressID", GetGuid()); |
| | | dw_base.SetItemString(1, L"PADIdentifyAddressFlag", L"Y"); |
| | | dw_base.SetItemString(1, L"PrimaryFlag", L"Y"); |
| | | dw_base.SetItemString(1, L"EnterName", m_userid); |
| | | dw_base.SetItemDisplayString(1, L"EnterName", m_username); |
| | | dw_base.SetItemString(1, L"CreateDate", TApp::GetCurDate()); |
| | | } |
| | | 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; |
| | | } |
| | | int OnSetFocus(ref TNotifyEvent evt,int p) |
| | | { |
| | | SetAgent("maint"); |
| | | return 1; |
| | | } |
| | | string GetGuid(){ |
| | | return TApp::GetGuid(); |
| | | } |
| | | int OnClear(){ |
| | | if(this.m_EntityID ==""){ |
| | | 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,"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,"Type","6"); |
| | | dw_base.SetItemString(1,"AddressID",GetGuid()); |
| | | dw_base.SetItemString(1,"PADIdentifyAddressFlag","Y"); |
| | | dw_base.SetItemString(1,"PrimaryFlag","Y"); |
| | | dw_base.SetItemString(1,"EnterName",m_userid); |
| | | dw_base.SetItemDisplayString(1,"EnterName",m_username); |
| | | dw_base.SetItemString(1,"CreateDate",TApp::GetCurDate()); |
| | | 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.DeleteRow(row); |
| | | dw.SetRow(row - 1); |
| | | } |
| | | return 1; |
| | | } |
| | | xstring getGoodsNo() |
| | | { |
| | | xml x; |
| | | |
| | | xaserverarg arg; |
| | | |
| | | if (getUrl(L"/sale/data/LogisticsCode/pref/shipcompany/PartyNo", arg.GetString(), x) != 1) |
| | | { |
| | | trace(x.xml()); |
| | | return L""; |
| | | } |
| | | KXMLDOMElement e = x.documentElement(); |
| | | if (e) |
| | | { |
| | | xstring code = e.text(); |
| | | trace(code); |
| | | return L"P" + code; |
| | | } |
| | | return L"P1000"; |
| | | } |
| | | int OnPreSave() |
| | | { |
| | | dw_base.AcceptText(); |
| | | dw_base = new xdwtable; |
| | | dw_base.setNativePointer(GetControl(L"dw_base")); |
| | | xstring ShipNo = dw_base.GetItemString(1, L"ShipNo"); |
| | | if (ShipNo == L"") |
| | | { |
| | | dw_base.SetItemString(1, L"ShipNo", 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"") |
| | | { |
| | | 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") |
| | | 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"); |
| | | trace(aTemp); |
| | | if (aTemp != L"") |
| | | { |
| | | 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(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; |
| | | } |
| | | |
| | | }*/ |
| | | dw.DeleteRow(row); |
| | | dw.SetRow(row - 1); |
| | | } |
| | | return 1; |
| | | } |
| | | string getGoodsNo() |
| | | { |
| | | xml__ x=new xml__; |
| | | x.setNativePointer(xml__::CreateInstance()); |
| | | xaserverarg__ arg=new xaserverarg__; |
| | | arg.setNativePointer(arg.CreateInstance()); |
| | | if (getUrl("/sale/data/LogisticsCode/pref/shipcompany/PartyNo",arg.GetString(),x) != 1) |
| | | { |
| | | trace(x.GetXml()); |
| | | return ""; |
| | | } |
| | | msxml::IXMLDOMElement e = x.GetXmlDoc().documentElement; |
| | | if(e) |
| | | { |
| | | string code = e.text; |
| | | trace(code); |
| | | return "P"+code; |
| | | } |
| | | return "P1000"; |
| | | } |
| | | int OnPreSave() |
| | | { |
| | | dw_base.AcceptText(); |
| | | dw_base = new xdwtable__; |
| | | dw_base.setNativePointer(this.GetControl("dw_base")); |
| | | string ShipNo = dw_base.GetItemString(1,"ShipNo",0); |
| | | if (ShipNo=="" || ShipNo== nil) |
| | | { |
| | | dw_base.SetItemString(1,"ShipNo",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); |
| | | 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","1"); |
| | | dw_base.SetItemString(1,"PrimaryContactID",dwcon.GetItemString(1,"ContactID")); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | 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","Shipcompany.dbmap"); |
| | | //arg.AddArg("m_dels",m_dels); |
| | | |
| | | if (getUrl("/sale/data/LogisticsCode/entity/shipcompany/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(); |
| | | setCellReadOnly(); |
| | | dwcon.SetItemString(i, L"ContactID", GetGuid()); |
| | | dwcon.SetItemString(i, L"PCStatus", L"1"); |
| | | dw_base.SetItemString(1, L"PrimaryContactID", dwcon.GetItemString(1, L"ContactID")); |
| | | } |
| | | dw_base.Redraw(); |
| | | //m_dels=""; |
| | | return 0; |
| | | } |
| | | int OnCmdDispatch(string comdid) |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | 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"Shipcompany.dbmap"); |
| | | //arg.AddArg(L"m_dels",m_dels); |
| | | |
| | | if (getUrl(L"/sale/data/LogisticsCode/entity/shipcompany/save", arg.GetString(), x) != 1) |
| | | { |
| | | trace(L"error:" + (xstring)x.xml()); |
| | | alert(L"保存失败!"); |
| | | return 0; |
| | | } |
| | | else |
| | | { |
| | | trace(x.xml()); |
| | | if (x.selectSingleNode(L"error")) |
| | | { |
| | | trace(comdid); |
| | | if(comdid.find("action:bill.row.add",0)>=0) { |
| | | OnAddrow(); |
| | | } |
| | | else if(comdid.find("bill.row.insert",0)>=0) { |
| | | OnInsertRow(); |
| | | } |
| | | else if(comdid.find("bill.row.delete",0)>=0) { |
| | | OnDeleteRow(); |
| | | } |
| | | else if(comdid.find("bill.save",0)>=0) { |
| | | trace(1); |
| | | dw_base.AcceptText(); |
| | | OnSave(); |
| | | } |
| | | alert(L"保存出错2!"); |
| | | return 0; |
| | | } |
| | | alert(L"保存成功!"); |
| | | dw_base.ResetUpdateStatus(); |
| | | setCellReadOnly(); |
| | | } |
| | | dw_base.Redraw(); |
| | | //m_dels=L""; |
| | | return 0; |
| | | } |
| | | int OnCmdDispatch(xstring comdid) |
| | | { |
| | | trace(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); |
| | | dw_base.AcceptText(); |
| | | 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; |
| | | //trace(colname); |
| | | if (colname == L"ShipNo") |
| | | { |
| | | 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) |
| | | { |
| | | 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; |
| | | //trace(colname); |
| | | if(colname=="ShipNo") |
| | | { |
| | | 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; |
| | | } |
| | | |
| | | } |
| | | return 1; |
| | | } |
| | | int OnAttachEvent() |
| | | { |
| | | AttachEvent("WM_XCOMMAND",OnXCommand); |
| | | AttachEvent("WM_SETFOCUS",OnSetFocus); |
| | | AttachEvent("dw_base","DWV_ITEMCHANGED",OnCellChanged); |
| | | return 0; |
| | | } |
| | | |
| | | int onload() |
| | | { |
| | | |
| | | OnAttachEvent(); |
| | | //if(!m_configDoc) return -1; |
| | | } |
| | | return 1; |
| | | } |
| | | int OnAttachEvent() |
| | | { |
| | | AttachEvent(L"WM_XCOMMAND", (FEvent)&ShipcompanyMaint::OnXCommand); |
| | | AttachEvent(L"WM_SETFOCUS", (FEvent)&ShipcompanyMaint::OnSetFocus); |
| | | AttachEvent(L"dw_base", L"DWV_ITEMCHANGED", (FEvent)&ShipcompanyMaint::OnCellChanged); |
| | | return 1; |
| | | } |
| | | |
| | | maint::onload(); |
| | | |
| | | OnClear(); |
| | | |
| | | } |
| | | ] |
| | | ] |
| | | ] |
| | | int onload() |
| | | { |
| | | |
| | | OnAttachEvent(); |
| | | //if(!m_configDoc) return -1; |
| | | |
| | | maint::onload(); |
| | | |
| | | OnClear(); |
| | | |
| | | } |
| | | }; |