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/ShipcompanyMaint.cpp | 610 ++++++++++++++++++++++++++++---------------------------
1 files changed, 310 insertions(+), 300 deletions(-)
diff --git a/jrj/project/business/BasicCode/ShipcompanyMaint.cpp b/jrj/project/business/BasicCode/ShipcompanyMaint.cpp
index 390b1d9..3147264 100644
--- a/jrj/project/business/BasicCode/ShipcompanyMaint.cpp
+++ b/jrj/project/business/BasicCode/ShipcompanyMaint.cpp
@@ -1,316 +1,326 @@
-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 <xcontrol/xcell.hpp>
+
+#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) ShipcompanyMaint : public maint
+{
+public:
+ KXMLDOMDocument m_configDoc;
+ xstring m_userid;
+ xstring m_username;
+ xstring ContactID;
+ xdwtable dw_base;
+ xstring m_EntityID = L"";
+ xcell dw_cell;
+public:
+ ShipcompanyMaint(void* implPtr, HWND hWnd) :maint(implPtr, hWnd) {}
+public:
+ static ShipcompanyMaint* CreateInstance(void* implPtr, void* hWnd)
+ {
+ ShipcompanyMaint* pWin = new ShipcompanyMaint(implPtr, (HWND)hWnd);
+ return pWin;
+ }
+
+ 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().personid;
+ m_username = publiccode::GetUser().name;
+ /*dw_base = new xdwtable;
+ dw_base.setNativePointer(GetControl(L"dw_base"));*/
+ dw_base = 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());
+ return 0;
+ }
+ 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();
-
- }
- ]
- ]
-]
\ No newline at end of file
+ int onload()
+ {
+ SetArg();
+ 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