use "system.vl"
|
use "win.vl"
|
use "maint.vl"
|
use "file.vl"
|
use "dev:vm[xcell.vm]"
|
unit vbusiness.entity
|
[
|
TestingCompanyMaint is extend maint;
|
about TestingCompanyMaint
|
[
|
field:
|
[
|
msxml::IXMLDOMDocument m_configDoc;
|
string m_userid;
|
string m_username;
|
string ContactID;
|
xdwtable__ dw_base;
|
xcell__ dw_cell;
|
]
|
|
method:
|
[
|
int alert(string str)
|
{
|
//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","20");
|
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());
|
}
|
else
|
{
|
setCellReadOnly();
|
}
|
return 0;
|
}
|
|
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;
|
}
|
|
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("ÇëÊäÈë´¬¹«Ë¾Ãû³Æ£¡");
|
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)
|
{
|
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();
|
}
|
dw_base.Redraw();
|
//m_dels="";
|
return 0;
|
}
|
int OnCmdDispatch(string comdid)
|
{
|
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();
|
}
|
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;
|
|
maint::onload();
|
|
OnClear();
|
|
}
|
]
|
]
|
]
|