From 7a91c3a1ed37b0332d4ff0ebeae60bd6da3665c0 Mon Sep 17 00:00:00 2001 From: xj qian <qianxj15@sina.com> Date: 星期二, 16 七月 2024 18:28:58 +0800 Subject: [PATCH] Merge branch 'master' of http://116.62.18.175:6699/r/mis-prj --- jrj/project/business/BasicCode/ShipcompanyMaint.cpp | 320 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 320 insertions(+), 0 deletions(-) diff --git a/jrj/project/business/BasicCode/ShipcompanyMaint.cpp b/jrj/project/business/BasicCode/ShipcompanyMaint.cpp new file mode 100644 index 0000000..1d88656 --- /dev/null +++ b/jrj/project/business/BasicCode/ShipcompanyMaint.cpp @@ -0,0 +1,320 @@ +#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 publiccode::GetGuid(); + } + int OnClear() { + if (m_EntityID == L"") { + m_userid = publiccode::GetUser().id; + m_username = publiccode::GetUser().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", publiccode::GetCurrentDate()); + } + 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"") + { + if(m_dels==L"") + { + m_dels=del; + } + else + { + xstring temp=m_dels; + m_dels=del + L"|" + temp; + //+= L"|"+del; + } + + }*/ + 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"") + { + 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"") + { + alert(L"联系人名称必填!"); + return -1; + } + } + else { + xstring ContactID = dwcon.GetItemString(i, L"ContactID"); + if (ContactID == L"") + { + dwcon.SetItemString(i, L"ContactID", GetGuid()); + dwcon.SetItemString(i, L"PCStatus", L"1"); + dw_base.SetItemString(1, L"PrimaryContactID", dwcon.GetItemString(1, L"ContactID")); + } + + + + } + } + 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")) + { + 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; + } + + } + 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; + } + + int onload() + { + + OnAttachEvent(); + //if(!m_configDoc) return -1; + + maint::onload(); + + OnClear(); + + } +}; \ No newline at end of file -- Gitblit v1.9.3