From f087a50629e95666db2e0b0ba4373834e2b9593b Mon Sep 17 00:00:00 2001 From: LiFan <2308045698@qq.com> Date: 星期二, 16 七月 2024 14:43:07 +0800 Subject: [PATCH] update BasicCode --- jrj/project/business/BasicCode/SKUItem.categoryselect.cpp | 216 + jrj/project/business/BasicCode/ForwarderList.cpp | 136 + jrj/project/business/BasicCode/AddUomGroup.cpp | 122 jrj/project/business/BasicCode/PaymentTerm.maint.cpp | 415 +++ jrj/project/business/BasicCode/SKUTemplate.cpp | 419 +++ jrj/project/business/BasicCode/basicfareTypeList.cpp | 143 + jrj/project/business/BasicCode/TestingCompanyMaint.cpp | 316 ++ jrj/project/business/BasicCode/ProfitParam.cpp | 126 jrj/project/business/BasicCode/ShipcompanyList.cpp | 33 jrj/project/business/BasicCode/ExchangeRate.cpp | 212 + jrj/project/business/BasicCode/FCL.cpp | 345 ++ jrj/project/business/BasicCode/BrandInforMaint.cpp | 98 jrj/project/business/BasicCode/QuickCode_Tree.cpp | 690 +++++ jrj/project/business/BasicCode/ColorCardNew.cpp | 403 +++ jrj/project/business/BasicCode/ForwarderMaint.cpp | 461 +++ jrj/project/business/BasicCode/ExpressList.cpp | 34 jrj/project/business/BasicCode/QuickCode.cpp | 676 +++++ jrj/project/business/BasicCode/CustomerMarketMaint.cpp | 89 jrj/project/business/BasicCode/TypeList.maint.supplier.cpp | 172 + jrj/project/business/BasicCode/SetUpRemarks.cpp | 143 + jrj/project/business/BasicCode/AccountUnitMaint.cpp | 140 + jrj/project/business/BasicCode/TestingCompanyList.cpp | 33 jrj/project/business/BasicCode/Simple.Menu.Config.cpp | 254 + jrj/project/business/BasicCode/brand.regtype.cpp | 147 + jrj/project/business/BasicCode/CartermList.cpp | 165 + jrj/project/business/BasicCode/SKUItem.select.cpp | 126 jrj/project/business/BasicCode/ShipcompanyMaint.cpp | 316 ++ jrj/project/business/BasicCode/ExpressMaint.cpp | 342 ++ jrj/project/business/BasicCode/CustomerMarketList.cpp | 29 jrj/project/business/BasicCode/SpecialDeductFeeList.cpp | 144 + jrj/project/business/BasicCode/FreightExpenseType.cpp | 161 + jrj/project/business/BasicCode/SKUTemplate.select.cpp | 120 jrj/project/business/BasicCode/SourceRemark.cpp | 143 + jrj/project/business/BasicCode/BrandInforList.cpp | 29 jrj/project/business/BasicCode/SKUItem.cpp | 302 ++ jrj/ext-jrj/ext-jrj.vcxproj | 36 jrj/project/business/BasicCode/PaymentTerm.list.cpp | 126 37 files changed, 7,862 insertions(+), 0 deletions(-) diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj index c96b076..7461b2a 100644 --- a/jrj/ext-jrj/ext-jrj.vcxproj +++ b/jrj/ext-jrj/ext-jrj.vcxproj @@ -287,6 +287,42 @@ <ClCompile Include="..\project\business\AR\maint.SettlementExchange.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> </ClCompile> + <ClCompile Include="..\project\business\BasicCode\AccountUnitMaint.cpp" /> + <ClCompile Include="..\project\business\BasicCode\AddUomGroup.cpp" /> + <ClCompile Include="..\project\business\BasicCode\basicfareTypeList.cpp" /> + <ClCompile Include="..\project\business\BasicCode\brand.regtype.cpp" /> + <ClCompile Include="..\project\business\BasicCode\BrandInforList.cpp" /> + <ClCompile Include="..\project\business\BasicCode\BrandInforMaint.cpp" /> + <ClCompile Include="..\project\business\BasicCode\CartermList.cpp" /> + <ClCompile Include="..\project\business\BasicCode\ColorCardNew.cpp" /> + <ClCompile Include="..\project\business\BasicCode\CustomerMarketList.cpp" /> + <ClCompile Include="..\project\business\BasicCode\CustomerMarketMaint.cpp" /> + <ClCompile Include="..\project\business\BasicCode\ExchangeRate.cpp" /> + <ClCompile Include="..\project\business\BasicCode\ExpressList.cpp" /> + <ClCompile Include="..\project\business\BasicCode\ExpressMaint.cpp" /> + <ClCompile Include="..\project\business\BasicCode\FCL.cpp" /> + <ClCompile Include="..\project\business\BasicCode\ForwarderList.cpp" /> + <ClCompile Include="..\project\business\BasicCode\ForwarderMaint.cpp" /> + <ClCompile Include="..\project\business\BasicCode\FreightExpenseType.cpp" /> + <ClCompile Include="..\project\business\BasicCode\PaymentTerm.list.cpp" /> + <ClCompile Include="..\project\business\BasicCode\PaymentTerm.maint.cpp" /> + <ClCompile Include="..\project\business\BasicCode\ProfitParam.cpp" /> + <ClCompile Include="..\project\business\BasicCode\QuickCode.cpp" /> + <ClCompile Include="..\project\business\BasicCode\QuickCode_Tree.cpp" /> + <ClCompile Include="..\project\business\BasicCode\SetUpRemarks.cpp" /> + <ClCompile Include="..\project\business\BasicCode\ShipcompanyList.cpp" /> + <ClCompile Include="..\project\business\BasicCode\ShipcompanyMaint.cpp" /> + <ClCompile Include="..\project\business\BasicCode\Simple.Menu.Config.cpp" /> + <ClCompile Include="..\project\business\BasicCode\SKUItem.categoryselect.cpp" /> + <ClCompile Include="..\project\business\BasicCode\SKUItem.cpp" /> + <ClCompile Include="..\project\business\BasicCode\SKUItem.select.cpp" /> + <ClCompile Include="..\project\business\BasicCode\SKUTemplate.cpp" /> + <ClCompile Include="..\project\business\BasicCode\SKUTemplate.select.cpp" /> + <ClCompile Include="..\project\business\BasicCode\SourceRemark.cpp" /> + <ClCompile Include="..\project\business\BasicCode\SpecialDeductFeeList.cpp" /> + <ClCompile Include="..\project\business\BasicCode\TestingCompanyList.cpp" /> + <ClCompile Include="..\project\business\BasicCode\TestingCompanyMaint.cpp" /> + <ClCompile Include="..\project\business\BasicCode\TypeList.maint.supplier.cpp" /> <ClCompile Include="..\project\business\Company\CompanyList.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> </ClCompile> diff --git a/jrj/project/business/BasicCode/AccountUnitMaint.cpp b/jrj/project/business/BasicCode/AccountUnitMaint.cpp new file mode 100644 index 0000000..8d8023f --- /dev/null +++ b/jrj/project/business/BasicCode/AccountUnitMaint.cpp @@ -0,0 +1,140 @@ +use "xcontrol.vframe.vbusiness.vd" +use "xbase.vframe.vbusiness.vd" + +unit trade +[ + class AccountUnitMaintWin : public xwin + { + xdwgrid dw_list; + xnode m_agentNode; //Agent Condition + + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNodeContent (anode,m_agentNode); + } + else + { + msxml::IXMLDOMElement xframeElement = GetElement(); + msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent) + { + string s = agent.xml; + m_agentNode = SetAgentNodeContent (anode,s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt,int param) + { + //重置工具条 + SetAgent(); + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if(comdid=="xmAddRow") + { + dw_list.InsertRow(0); + return 1; + } + else if(comdid=="xmDeleteRow") + { + dw_list.DeleteRow(0); + return 1; + } + else if(comdid=="xmSave") + return OnSave(); + else if(comdid=="xmRefresh") + return OnRetrieve(); + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + } + + int OnSave() + { + xml x=new xml; + x.setNativePointer(xml::CreateInstance()); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + xaserverarg arg=new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("content",x.GetXml()); + if (url::get("/sale/data/TradeFinance3/accountunit/update",arg.GetString(),x) != 1) + { + trace("error:"+x.GetXml()); + alert("保存失败!"); + return 0; + } + else + { + trace(x.GetXml()); + if(x.GetXmlDoc().selectSingleNode("error")) + { + alert("保存出错2!"); + return 0; + } + win32::MessageBox(GetHWND(),"保存成功!","提示",0); + dw_list.ResetUpdateStatus(); + } + dw_list.Redraw(); + return 1; + } + + int OnRetrieve() + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + if (url::get("/sale/data/TradeFinance3/accountunit/list",arg.GetString(),x)!=1) + { + trace(x.GetXmlDoc().text); + return -1; + }else + { + dw_list.Retrieve(x); + dw_list.Redraw(); + } + return 1; + } + + int onload() + { + dw_list = GetControl("dw_list"); + dw_list.openUrl("/sale/view/FinancialCode/template/AccountUnit"); + dw_list.SetColumnState("TAUID",false); + + OnRetrieve(); + + OnAttachEvent(); + return 1; + } + + int onloaded() + { + SetAgent(); + + return 1; + } + }; +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/AddUomGroup.cpp b/jrj/project/business/BasicCode/AddUomGroup.cpp new file mode 100644 index 0000000..20fea8e --- /dev/null +++ b/jrj/project/business/BasicCode/AddUomGroup.cpp @@ -0,0 +1,122 @@ +use "win.vl" +use "treeview.vm" +use "dev:vm[xdwgrid.vm]" +use "dev:vm[xdwtable.vm]" +use "pref.vl" +use "dev:vm[xml.vm]" +use "dev:vm[xaserverarg.vm]" +use "dev:vm[xaserver.vm]" +use "dev:vm[xutil.vm]" +use "dev:vm[control.vm]" + +unit vbusiness.xpage +[ + AddUomGroup is extend win__; + about AddUomGroup + [ + control: + + method: + [ + + + int SetAgent() + { + return 1; + } + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt,int p) + { + int SetAgent(); + + //重置工具条 + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if (comdid=="cb_cancel") + CloseWindow(); + else if(comdid=="cb_ok") + { + control__ xc = new control__; + xc.setNativePointer(this.GetControl("Txt")); + string name = xc.GetText(); + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg = GetParam(); + arg.AddArg("GroupName",name); + arg.AddArg("return","ok"); + CloseWindow(); + } + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + } + + int OnInitial() + { + SetAgent(); + + OnAttachEvent(); + + return 1; + } + + + + int onload() + { + OnInitial(); + + if(this.GetParam()) + { + + if (GetParam()) + { + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg = GetParam(); + string note = arg.GetArgString("note"); + if(note=="修改") + { + string name = arg.GetArgString("GroupName"); + control__ xc = new control__; + xc.setNativePointer(GetControl("Txt")); + xc.SetText(name); + } + string id = arg.GetArgString("m_id"); + if(id =="FND_UOM") + { + win__::SetWindowText(this.GetHWND(),"计量单位"); + } + else if(id =="FND_CustomerSource") + { + win__::SetWindowText(this.GetHWND(),"客户来源"); + } + else if(id =="FND_AuxiliaryAttribute") + { + win__::SetWindowText(this.GetHWND(),"辅助属性"); + } + } + } + + return 1; + } + ] + + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/BrandInforList.cpp b/jrj/project/business/BasicCode/BrandInforList.cpp new file mode 100644 index 0000000..7beda87 --- /dev/null +++ b/jrj/project/business/BasicCode/BrandInforList.cpp @@ -0,0 +1,29 @@ +use "system.vl" +use "win.vl" +use "list.vl" +unit vbusiness.entity +[ + BrandInforList is extend list; + about BrandInforList + [ + + + method: + [ + int ViewUpdate(param pr,string updateItem,xaserverarg__ arg) + { + if( updateItem=="del"){ + int DelRow = this.dw_list.GetRow(); + this.dw_list.DeleteRow(DelRow); + } + return 1; + } + int onload() + { + list::onload(); + return -1; + } + + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/BrandInforMaint.cpp b/jrj/project/business/BasicCode/BrandInforMaint.cpp new file mode 100644 index 0000000..a13f50f --- /dev/null +++ b/jrj/project/business/BasicCode/BrandInforMaint.cpp @@ -0,0 +1,98 @@ +use "system.vl" +use "win.vl" +use "maint.vl" +use "file.vl" +use "dev:vm[xcell.vm]" +use "publiccode.vl" +use "dev:vm[pagecontrol.vm]" +unit vbusiness.entity +[ + BrandInforMaint is extend maint; + about BrandInforMaint + [ + 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 ViewUpdate(param pr,string updateItem,xaserverarg__ arg) + { + if(updateItem=="update") + { + + dw_base.ResetUpdateStatus(); + return 1; + } + } + string GetEntityData(param pr) + { + xml__ x = new xml__; + x.setNativePointer(xml__::CreateInstance()); + dw_base.DwUpdateAllTo(x.GetXmlDoc()); + //trace("------x"); + trace(x.GetXml()); + return x.GetXml(); + } + int onload() + { + maint::onload(); + dw_base = new xdwtable__; + dw_base.setNativePointer(GetControl("dw_base")); + + dw_base.SetColHeaderHeight(0); + dw_base.SetRowSelectorWidth(0); + + dw_base.SetScrollState(false); + + + /*if (!maint::m_EntityID) + { + //string suserid = TApp::GetUserInfo().id; + string suserid = xaserver__::GetUserId(); + string susername = TApp::GetUserInfo().name; + string sdate = TApp::GetCurDate(); + dw_base.SetItemString(dw_base.GetRow(),"CreatorID",suserid);//Party + dw_base.SetItemDisplayString(dw_base.GetRow(),"CreatorID",susername); + dw_base.SetItemString(dw_base.GetRow(),"CreateDate",sdate); + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("id", suserid); + if(xaserver__::ExecXQuery("","[OrgInfo.xq]",arg.GetString(),x)!=1) + { + trace(x.GetXml()); + return nil; + } + //alert(x.GetXml()); + msxml::IXMLDOMElement e= x.GetXmlDoc().documentElement; + trace(e.xml); + if(e.selectSingleNode("orgid")) + { + string orgid= e.selectSingleNode("orgid").text; + dw_base.SetItemString(1,"OrgID",orgid); + } + + if(e.selectSingleNode("orgname")) + { + string orgname = e.selectSingleNode("orgname").text; + dw_base.SetItemDisplayString(1,"OrgID",orgname); + } + }*/ + } + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/CartermList.cpp b/jrj/project/business/BasicCode/CartermList.cpp new file mode 100644 index 0000000..0e5c1d0 --- /dev/null +++ b/jrj/project/business/BasicCode/CartermList.cpp @@ -0,0 +1,165 @@ +use "system.vl" +use "win.vl" +use "list.vl" +use "file.vl" +unit vbusiness.entity +[ + CartermList is extend list; + about CartermList + [ + field: + [ + xdwpages__ dw_pages; + string m_QueryTxt; + msxml::IXMLDOMDocument m_configDoc; + static int dw_hWnd; + ] + + method: + [ + + int alert(string str) + { + //win__::MessageBox(this.GetHWND(),str,"提示22:",0); + TApp::alert(this,str); + return 0; + } + + + string GetGuid(){ + return TApp::GetGuid(); + } + int OnAddrow() + { + this.dw_list.InsertRow(0); + int rows = this.dw_list.GetRowCount(); + this.dw_list.SetRow(rows); + this.dw_list.SetItemString(rows,"PartyID",GetGuid()); + this.dw_list.SetItemString(rows,"ContactID",GetGuid()); + this.dw_list.SetItemString(rows,"PAStatus","1"); + this.dw_list.SetItemString(rows,"PStatus","1"); + this.dw_list.SetItemString(rows,"PCStatus","1"); + this.dw_list.SetItemString(rows,"Type","7"); + } + int OnInsertRow() + { + int row = this.dw_list.GetRow(); + if(row<1 || row>this.dw_list.GetRowCount()) return 0; + this.dw_list.InsertRow(row); + this.dw_list.SetItemString(row,"PartyID",GetGuid()); + this.dw_list.SetItemString(row,"ContactID",GetGuid()); + this.dw_list.SetItemString(row,"PAStatus","1"); + this.dw_list.SetItemString(row,"PStatus","1"); + this.dw_list.SetItemString(row,"PCStatus","1"); + this.dw_list.SetItemString(row,"Type","7"); + } + + int ViewUpdate(param pr,string updateItem,xaserverarg__ arg) + { + if( updateItem=="del") + { + int DelRow = this.dw_list.GetRow(); + this.dw_list.DeleteRow(DelRow); + + } + + return 1; + } + + int OnDeleteRow() + { + int rows = this.dw_list.GetRowCount(); + int row2 = this.dw_list.GetPrevSelectRow(rows); + while(row2 > 0){ + this.dw_list.DeleteRow(row2); + row2 = this.dw_list.GetPrevSelectRow(row2 - 1); + } + this.dw_list.SelectRow(0, false); + } + + int OnSave() + { + /*string no = this.dw_list.GetItemString(1,"CarTermNo"); + if(no==""){ + alert("请输入车队编码!"); + return -1; + } + string SName = this.dw_list.GetItemString(1,"Name"); + if(SName==""){ + alert("请输入车队名称!"); + return -1; + } + string ContacterName = this.dw_list.GetItemString(1,"ContacterName"); + if(ContacterName==""){ + alert("请输入联系人名称!"); + return -1; + } */ + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + this.dw_list.AcceptText(); + this.dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + trace(x.GetXml()); + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("content",x.GetXml()); + arg.AddArg("dbmap","CarTerm.dbmap"); + if (getUrl("/sale/data/CarTerm/entity/carterm/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("保存成功!"); + this.dw_list.ResetUpdateStatus(); + } + this.dw_list.Redraw(); + return 0; + } + int OnCmdDispatch(string 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); + OnSave(); + } + return 0; + } + + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + AttachEvent("WM_XCOMMAND",OnXCommand); + return 0; + } + + int onload() + { + OnAttachEvent(); + list::onload(); + this.dw_list.SetReadOnly(false); + return -1; + } + + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/ColorCardNew.cpp b/jrj/project/business/BasicCode/ColorCardNew.cpp new file mode 100644 index 0000000..f73a6c6 --- /dev/null +++ b/jrj/project/business/BasicCode/ColorCardNew.cpp @@ -0,0 +1,403 @@ +/*use "list.vd" +use "xtreeview.vd" +use "publiccode.vd"*/ +use "xcontrol.vframe.vbusiness.vd" +use "xbase.vframe.vbusiness.vd" +unit trade +[ +class ColorCardNew : public listwin +{ + xdwgrid dw_list; + xdwgrid dw_detail; + bool ismodify; + xnode m_agentNode; + string m_agentCond; + + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + msxml::IXMLDOMElement xframeElement = GetElement(); + msxml::IXMLDOMNode agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent) + SetAgentNodeContent(anode, agent.xml); + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt,int param) + { + SetAgent(); + + //重置工具条 + return 1; + } + int ProcessFlowAction(string guid,string comdid) + { + //int pr = pr1; + //string action = comdid;//.mid(comdid.find("action:",0)+7,9999); + /*if(action == "bill.delete" || action == "bill.deleteEx") + { + if (MessageBox(GetHWND(),"是否确定删除记录!","提示1",1) == 2) + return 1; + }*/ + + xaserverarg arg0 = new xaserverarg ; + arg0.setNativePointer(arg0.CreateInstance()); + //arg0.AddArg("Action", action,"xs:string"); + arg0.AddArg("EntityName", "ColorCard","xs:string"); + arg0.AddArg("EntityIDName", "ColorCardID","xs:string"); + arg0.AddArg("EntityID", guid,"xs:string"); + arg0.AddArg("FunctionCode", comdid,"xs:string"); + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + + if(url::get("/sale/data/Role.config/sys/sql/action", arg0.GetString(), x) != 1) + { + //ismodify=false; + //dw_list.SetReadOnly(ismodify); + return -1; + } + string kk=x.GetXml(); + if(kk.find("<root/>",0)>=0) + { + //ismodify=true; + //dw_list.SetReadOnly(ismodify); + return 1; + } + return -1; + } + + int ModifyProcessAction(string guid,string comdid) + { + if(ProcessFlowAction(guid,comdid)>0) + { + ismodify=true; + dw_list.SetReadOnly(ismodify); + return -1; + } + else + { + ismodify=false; + dw_list.SetReadOnly(ismodify); + return -1; + } + } + int DeleteProcessAction(string guid,string comdid) + { + if(ProcessFlowAction(guid,comdid)>0) + { + return -1; //没有权限 + } + else + { + return 1; //有权限 + } + } + + //根据ColorCardID加载Detail数据 + int OnRetrieveDetail(string ColorCardID) + { + xml x=new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg=new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + + arg.AddArg("ColorCardID",ColorCardID); + if (url::get("ColorCard/entity/list1",arg.GetString(),x) != 1) + { + trace(x.GetXmlDoc().text); + return -1; + } + dw_detail.Retrieve(x); + dw_detail.Redraw(); + dw_detail.SetReadOnly(ismodify); + return 1; + } + + int OnPreSave() + { + if (dw_list) + { + string colorCardCName; + string colorCardName; + string orgID; + int i; + int row = dw_list.GetRowCount(); + for (i=1; i<=row;i++) + { + colorCardCName=dw_list.GetItemString(i,"ColorCardCName",0)+""; + colorCardName=dw_list.GetItemString(i,"ColorCardName",0)+""; + orgID=dw_list.GetItemString(i,"OrgID",0)+""; + if (colorCardCName=="" || !colorCardCName) + { + alert("第"+i.toString()+"行色卡名称中文为空"); + return -1; + } + if (colorCardName=="" || !colorCardName) + { + alert("第"+i.toString()+"行色卡名称为空"); + return -1; + } + if (orgID=="" || !orgID) + { + alert("第"+i.toString()+"行关联组织为空"); + return -1; + } + } + } + + return 1 ; + } + + //保存 + int OnSave() + { + dw_list.AcceptText(); + dw_detail.AcceptText(); + int rec; + rec = OnPreSave(); + if (rec == -1) + return -1; + xml x= new xml; + x.setNativePointer(xml::CreateInstance()); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + msxml::IXMLDOMElement e= x.GetXmlDoc().selectSingleNode("root"); + arg.AddArg("content",e.xml); + arg.AddArg("dbmap","ColorCard.dbmap"); + if (url::get("ColorCard/pref/colorcard.save",arg.GetString(),x) != 1) + { + trace("error:"+x.GetXml()); + alert("保存失败!"); + return 0; + } + else + { + alert("保存成功!"); + dw_list.ResetUpdateStatus(); + } + dw_list.Redraw(); + } + + //新增 + int OnAdd() + { + dw_list.AcceptText(); + int nrow=dw_list.InsertRow(0); + dw_list.ShowRowTo(nrow); + string tempguid = publiccode::GetGuid(); + dw_list.SetItemString(nrow,"ColorCardID",tempguid); + OnRetrieveDetail(tempguid); + } + + //插入 + int OnInsert() + { + dw_list.AcceptText(); + int row = dw_list.GetRow(); + if(row<1) return 0; + int nrow=dw_list.InsertRow(row); + string tempguid = publiccode::GetGuid(); + dw_list.SetItemString(nrow,"ColorCardID",tempguid); + OnRetrieveDetail(tempguid); + } + + //删除 + int OnDelete() + { + dw_list.AcceptText(); + int row = dw_list.GetRow(); + if(row<1) return 0; + string id=dw_list.GetItemString(row,"ColorCardID"); + if(DeleteProcessAction(id,"DeleteColorCard")<0) + { + alert("您没有权限删除该数据"); + return -1; + } + if(id !="") + { + xml x=new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("ColorCardID", id); + if(url::get("ColorCard/pref/beforedelete",arg.GetString(),x)!=1) + { + trace("error:"+x.GetXml()); + alert("删除出错!"); + return 0; + } + msxml::IXMLDOMElement e= x.GetXmlDoc().documentElement; + if(e.selectSingleNode("error")) + { + alert(e.selectSingleNode("error").text); + return 0; + } + } + dw_list.DeleteRow(row); + } + + int OnAddRowDetail() + { + dw_detail.AcceptText(); + int nrow=dw_detail.InsertRow(0); + string tempguid = publiccode::GetGuid(); + dw_detail.SetItemString(dw_detail.GetRow(),"ColorCardID",dw_list.GetItemString(dw_list.GetRow(),"ColorCardID")); + dw_detail.SetItemString(dw_detail.GetRow(),"ColorID",tempguid); + //OnRetrieveDetail(tempguid); + dw_detail.ShowRowTo(nrow); + + return 1; + } + + int OnInsertRowDetail() + { + dw_detail.AcceptText(); + int row = dw_detail.GetRow(); + if(row<1) return 0; + int nrow=dw_detail.InsertRow(row); + string tempguid = publiccode::GetGuid(); + dw_detail.SetItemString(dw_detail.GetRow(),"ColorCardID",dw_list.GetItemString(dw_list.GetRow(),"ColorCardID")); + dw_detail.SetItemString(dw_detail.GetRow(),"ColorID",tempguid); + + return 1; + } + + int OnDelRowDetail() + { + int row = dw_detail.GetRow(); + int rowz = dw_list.GetRow(); + if(row<1)return 0; + dw_detail.DeleteRow(row); + msxml::IXMLDOMElement ez= this.dw_list.GetRowElement(rowz); + xml xz=new xml; + xz.setNativePointer(xml::CreateInstance()); + dw_detail.DwUpdateAllToEx(xz.GetXmlDoc()); + if (ez.selectSingleNode("root")) + ez.removeChild(ez.selectSingleNode("root")); + ez.appendChild(xz.GetXmlDoc().documentElement); + + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if(comdid=="save") OnSave(); + else if(comdid=="add") OnAdd(); + else if(comdid=="insert") OnInsert(); + else if(comdid=="del") OnDelete(); + else if(comdid=="addrowDetail") OnAddRowDetail(); + else if(comdid=="insertrowDetail") OnInsertRowDetail(); + else if(comdid=="deleterowDetail") OnDelRowDetail(); + + return 1; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + //行改变事件 + int OnListRowChanged(ref TNotifyEvent evt,int p) + { + dw_detail.AcceptText(); + ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); + int row = hdr.row; + dw_list.Redraw(); + msxml::IXMLDOMElement e = dw_list.GetRowElement(row); + string ColorCardID = e.selectSingleNode("ColorCardID").text; + OnRetrieveDetail(ColorCardID); + + return 1; + } + + int OnDetailChanged(ref TNotifyEvent evt,int p) + { + int row = dw_list.GetRow(); + msxml::IXMLDOMElement e= this.dw_list.GetRowElement(row); + xml x=new xml; + x.setNativePointer(xml::CreateInstance()); + dw_detail.DwUpdateAllToEx(x.GetXmlDoc()); + if (e.selectSingleNode("root")) + e.removeChild(e.selectSingleNode("root")); + e.appendChild(x.GetXmlDoc().documentElement); + + return 0; + } + + int OnDwListClick(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); + int row = hdr.row; + dw_list.Redraw(); + msxml::IXMLDOMElement e = dw_list.GetRowElement(row); + string ColorCardID = e.selectSingleNode("ColorCardID").text; + ModifyProcessAction(ColorCardID,"ModifyColorCard"); + + return 1; + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + //行改变事件 + AttachEvent("dw_list","DWV_ROWFOCUSCHANGED",OnListRowChanged); + AttachEvent("dw_detail","DWV_ITEMCHANGED",OnDetailChanged); + //AttachEvent("dw_list","DWV_ITEMCHANGED",OnDetailChanged); + AttachEvent("dw_list","DWV_CLICKED",OnDwListClick); + + return 1; + } + + int OnRetrieve(string str) + { + xml x=new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg=new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("id",str); + if (url::get("ColorCard/entity/list",arg.GetString(),x) != 1) + { + trace(x.GetXmlDoc().text); + return -1; + } + //doc=x; + dw_list.Retrieve(x); + dw_list.Redraw(); + + return 1; + } + + int OnInitial() + { + SetAgent(); + + OnAttachEvent(); + + return 1; + } + + int onload() + { + + dw_list = GetControl("dw_list"); + dw_list.openUrl("产品设置.vface/template/ColorCard/list"); + + dw_detail = GetControl("dw_detail"); + dw_detail.openUrl("产品设置.vface/template/ColorCard/listex"); + OnInitial(); + + OnRetrieve("FND_ColorCard"); + + return 1; + } +}; +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/CustomerMarketList.cpp b/jrj/project/business/BasicCode/CustomerMarketList.cpp new file mode 100644 index 0000000..c6843e4 --- /dev/null +++ b/jrj/project/business/BasicCode/CustomerMarketList.cpp @@ -0,0 +1,29 @@ +use "system.vl" +use "win.vl" +use "list.vl" +unit vbusiness.entity +[ + CustomerMarketList is extend list; + about CustomerMarketList + [ + + + method: + [ + int ViewUpdate(param pr,string updateItem,xaserverarg__ arg) + { + if( updateItem=="del"){ + int DelRow = this.dw_list.GetRow(); + this.dw_list.DeleteRow(DelRow); + } + return 1; + } + int onload() + { + list::onload(); + return -1; + } + + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/CustomerMarketMaint.cpp b/jrj/project/business/BasicCode/CustomerMarketMaint.cpp new file mode 100644 index 0000000..136986c --- /dev/null +++ b/jrj/project/business/BasicCode/CustomerMarketMaint.cpp @@ -0,0 +1,89 @@ +use "system.vl" +use "win.vl" +use "maint.vl" +use "file.vl" +use "dev:vm[xcell.vm]" +unit vbusiness.entity +[ + CustomerMarketMaint is extend maint; + about CustomerMarketMaint + [ + 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 ViewUpdate(param pr,string updateItem,xaserverarg__ arg) + { + if(updateItem=="update") + { + + dw_base.ResetUpdateStatus(); + return 1; + } + } + string GetEntityData(param pr) + { + xml__ x = new xml__; + x.setNativePointer(xml__::CreateInstance()); + dw_base.DwUpdateAllTo(x.GetXmlDoc()); + //trace("------x"); + trace(x.GetXml()); + return x.GetXml(); + } + int onload() + { + maint::onload(); + dw_base = new xdwtable__; + dw_base.setNativePointer(this.GetControl("dw_base")); + if (!maint::m_EntityID) + { + //string suserid = TApp::GetUserInfo().id; + string suserid = xaserver__::GetUserId(); + string susername = TApp::GetUserInfo().name; + string sdate = TApp::GetCurDate(); + dw_base.SetItemString(dw_base.GetRow(),"CreatorID",suserid);//Party + dw_base.SetItemDisplayString(dw_base.GetRow(),"CreatorID",susername); + dw_base.SetItemString(dw_base.GetRow(),"CreateDate",sdate); + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("id", suserid); + if(xaserver__::ExecXQuery("","[OrgInfo.xq]",arg.GetString(),x)!=1) + { + trace(x.GetXml()); + return nil; + } + //alert(x.GetXml()); + msxml::IXMLDOMElement e= x.GetXmlDoc().documentElement; + trace(e.xml); + if(e.selectSingleNode("orgid")) + { + string orgid= e.selectSingleNode("orgid").text; + dw_base.SetItemString(1,"OrgID",orgid); + } + + if(e.selectSingleNode("orgname")) + { + string orgname = e.selectSingleNode("orgname").text; + dw_base.SetItemDisplayString(1,"OrgID",orgname); + } + } + } + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/ExchangeRate.cpp b/jrj/project/business/BasicCode/ExchangeRate.cpp new file mode 100644 index 0000000..b2e0b61 --- /dev/null +++ b/jrj/project/business/BasicCode/ExchangeRate.cpp @@ -0,0 +1,212 @@ + use "xcontrol.vframe.vbusiness.vd" + use "xbase.vframe.vbusiness.vd" + use "base.view.vd" + + unit trade + [ + class ExchangeRateWin : public xframe + { + xdwgrid dw_list; + int hSignWin; + xnode m_agentNode; //Agent Condition + + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNodeContent (anode,m_agentNode); + } + else + { + msxml::IXMLDOMElement xframeElement = GetElement(); + msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent) + { + string s = agent.xml; + m_agentNode = SetAgentNodeContent (anode,s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt,int param) + { + //重置工具条 + SetAgent(); + return 1; + } + + int OnSave() + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + dw_list.AcceptText(); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + xml x0 = ViewObject::MakeXml(); + x0.LoadXml("<data/>"); + + msxml::IXMLDOMNodeList t = x.GetXmlDoc().selectNodes("data/Item[@update.modify='1' or @update.delete ='1']"); + msxml::IXMLDOMElement e1= x0.GetXmlDoc().documentElement; + int len = t.length; + for(int i=0;i<len;i++) + { + e1.appendChild(t.item(i)); + } + xaserverarg arg = ViewObject::MakeArg(); + arg.AddArg("content",x0.GetXml()); + trace(x0.GetXml()); + if(url::get("/sale/data/expense3/update/ExchangeRate", arg.GetString(),x)!=1) + { + string error = x.GetXmlDoc().text; + alert("err:"+error); + return 1; + } + string str = x.GetXmlDoc().documentElement.getAttribute("text"); + if(str == "true") + { + dw_list.ResetUpdateStatus(); + alert("保存成功!"); + }else + { + alert("保存失败!"); + } + return 1; + } + + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if(comdid=="xmAddRow") + { + string sdate = publiccode::GetCurrentDate(); + string suserid = publiccode::GetUser().id; + string susername = publiccode::GetUser().name; + int row =dw_list.GetRowCount(); + dw_list.InsertRow(0); + dw_list.SetItemString(row+1,"CreatorID",suserid); + dw_list.SetItemDisplayString(row+1,"CreatorID",susername); + dw_list.SetItemString(row+1,"CreateDate",sdate); + return 1; + } + else if(comdid=="xmDeleteRow") + { + dw_list.DeleteRow(0); + return 1; + } + else if (comdid == "xmSave") + { + OnSave(); + } + else if (comdid == "xmRefresh") + { + OnRetrieve(); + } + else if(comdid =="ToUpdate") + { + ToUpdate(); + } + + return 0; + } + + + int ToUpdate() + { + string Months = dw_list.GetItemString(dw_list.GetRow(),"Months"); + int MB_OKCANCEL = 1; + int IDOK = 1; + int ret = win32::MessageBox(GetHWND(),"确认更新"+Months+"盈亏汇率?","提示",MB_OKCANCEL); + if(ret == IDOK) + { + xml x = ViewObject::RetrieveData("/sale/data/Expense3/ExchangeRateUpdateEx","Months",Months); + string status = x.GetXml(); + if(status.find("ok") == 1) + { + alert("更新成功"); + }else + { + alert("更新失败"); + } + } + return 1; + } + + //触发鼠标离开后tran事件,通过查找某个参数得到对应的列 + int OnBaseItemChanged(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); + string colname=hdr.colname; + string value = hdr.data; + + string dwname = "dw_list"; + if(value != "") + { + msxml::IXMLDOMNodeList nlist = GetElement().selectNodes("//*[@name='"+dwname+"']/trans[@for='"+colname+"']"); + ViewObject::TransData(nlist, dw_list, hdr.row, colname, value); + } + + return 1; + } + + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + AttachEvent("dw_list","DWV_ITEMCHANGED",OnBaseItemChanged); + } + + + int OnRetrieve() + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("QueryTxt",GetControl("search").GetText()); + + + if (getUrl("/sale/data/Expense3/ExchangeRateList",arg.GetString(),x)!=1) + { + trace(x.GetXmlDoc().text); + return -1; + }else + { + dw_list.Retrieve(x); + dw_list.Redraw(); + } + return 1; + } + + int onload() + { + dw_list = GetControl("dw_list"); + dw_list.openUrl("/sale/view/Expense3/ExchangeRate"); + + + OnRetrieve(); + + OnAttachEvent(); + + return 1; + } + + int onloaded() + { + SetAgent(); + return 1; + } + }; + ] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/ExpressList.cpp b/jrj/project/business/BasicCode/ExpressList.cpp new file mode 100644 index 0000000..047b16d --- /dev/null +++ b/jrj/project/business/BasicCode/ExpressList.cpp @@ -0,0 +1,34 @@ +use "system.vl" +use "win.vl" +use "list.vl" +unit vbusiness.entity +[ + ExpressList is extend list; + about ExpressList + [ + + + method: + [ + int onload() + { + list::onload(); + return -1; + } + + int ViewUpdate(param pr,string updateItem,xaserverarg__ arg) + { + + if( updateItem=="del") + { + int DelRow = this.dw_list.GetRow(); + this.dw_list.DeleteRow(DelRow); + + } + + return 1; + } + + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/ExpressMaint.cpp b/jrj/project/business/BasicCode/ExpressMaint.cpp new file mode 100644 index 0000000..e0402a7 --- /dev/null +++ b/jrj/project/business/BasicCode/ExpressMaint.cpp @@ -0,0 +1,342 @@ +use "system.vl" +use "win.vl" +use "maint.vl" +use "file.vl" +use "dev:vm[xcell.vm]" +unit vbusiness.entity +[ + ExpressMaint is extend maint; + about ExpressMaint + [ + field: + [ + msxml::IXMLDOMDocument m_configDoc; + xdwtable__ dw_base; + string m_userid; + string m_username; + string ContactID; + 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; + } + + + 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,"PartyID",GetGuid()); + dw_base.SetItemString(1,"PStatus","1"); + dw_base.SetItemDisplayString(1,"PStatus","有效"); + dw_base.SetItemString(1,"PADStatus","1"); + dw_base.SetItemString(1,"CreatorID",m_userid); + dw_base.SetItemString(1,"AddressID",GetGuid()); + dw_base.SetItemString(1,"PADIdentifyAddressFlag","Y"); + dw_base.SetItemString(1,"PrimaryFlag","Y"); + dw_base.SetItemString(1,"Type","8"); + dw_base.SetItemString(1,"EnterName",m_userid); + dw_base.SetItemDisplayString(1,"EnterName",m_username); + dw_base.SetItemString(1,"CreateDate",TApp::GetCurDate()); + dw_base.SetItemString(1,"PBAStatus","Y"); + + + } + return 0; + } + + int OnSetFocus(ref TNotifyEvent evt,int p) + { + SetAgent("maint"); + return 1; + } + 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); + } + //trace(m_dels); + 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/express/PartyNo",arg.GetString(),x) != 1) + { + trace(x.GetXml()); + return ""; + } + msxml::IXMLDOMElement e = x.GetXmlDoc().documentElement; + if(e) + { + string code = e.text; + trace(code); + return "E"+code; + } + return "E1000"; + } + int OnPreSave() + { + dw_base.AcceptText(); + dw_base = new xdwtable__; + dw_base.setNativePointer(this.GetControl("dw_base")); + string ExpressNo = dw_base.GetItemString(1,"ExpressNo",0); + if (ExpressNo=="" || ExpressNo== nil) + { + dw_base.SetItemString(1,"ExpressNo",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); + 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")); + } + + + + } + } + xdwtable__ dwcon1 = new xdwtable__; + dwcon1.setNativePointer(dw_base.FindDwTable("PartyBankAccount",0)); + int j; + for (j=1;j <= dwcon1.GetRowCount();j++) + { + string sPBABankName = dwcon1.GetItemString(j,"Bank"); + string sPBABankAccountNo = dwcon1.GetItemString(j,"BankNo"); + if (sPBABankName == nil) sPBABankName = ""; + if (sPBABankAccountNo == nil) sPBABankAccountNo = ""; + string sPBAAll = sPBABankName + sPBABankAccountNo; + if (sPBAAll != "") + { + if (sPBABankName == "") + { + alert("银行名称不能为空"); + return -1; + } + if (sPBABankAccountNo == "") + { + alert("银行账户不能为空"); + return -1; + } + } + } + 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","Express.dbmap"); + //arg.AddArg("m_dels",m_dels); + if (getUrl("/sale/data/LogisticsCode/entity/express/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) + { + 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); + 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=="ExpressNo") + { + 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() + { + dw_base = new xdwtable__; + dw_base.setNativePointer(this.GetControl("dw_base")); + + OnAttachEvent(); + //if(!m_configDoc) return -1; + + maint::onload(); + OnClear(); + + } + + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/FCL.cpp b/jrj/project/business/BasicCode/FCL.cpp new file mode 100644 index 0000000..100fe1a --- /dev/null +++ b/jrj/project/business/BasicCode/FCL.cpp @@ -0,0 +1,345 @@ +use "list.vl" +use "dev:vm[combobox.vm]" +use "dev:vm[gridpages.vm]" +use "dev:vm[xutil.vm]" +use "dev:vm[xpage.vm]" +use "dev:vm[xdwtable.vm]" +use "file.vl" +unit vbusiness.entity +[ + FCL is extend frame; + about FCL + [ + field: + [ + + combobox__ ddlb_1; + int changeddlb; + xdwgrid__ dw_list; + int m_PageSize; //每页显示数量 + int m_PageIndex; //第几页 + string m_QueryTxt; //查询条件 + xdwtable__ dw_base; + xnode__ m_agentNode; //Agent Condition + string m_agentCond; //Agent Node + string m_config; + string m_spec; + ] + + method: + [ + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode__ anode = new xnode__; + anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); + var xframeElement = GetElement(); + var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent){ + SetAgentNodeContent (anode,agent.xml); + } + return 1; + } + + int OnRetrieve() + { + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + xdwpages__ zz = new xdwpages__; + zz.setNativePointer(this.GetControl("pages")); + xml__ x = new xml__; + x.setNativePointer(xml__ ::CreateInstance()); + getUrl("/sale/data/FCL/entity/list",arg.GetString(),x); + msxml::IXMLDOMElement e=x.GetXmlDoc().documentElement; + if(e.selectSingleNode("@TotalPage")) + { + string s=e.selectSingleNode("@TotalPage").text; //总数量 + zz.SetMaxPage(s.toInt()); + } + dw_list.Retrieve(x); + dw_list.Redraw(); + return 1; + } + int SetPriceBaseEmpty() + { + int rows=dw_base.GetColumnCount(); + int i; + for( i=1; i<=rows; i++) + { + dw_base.SetItemString(1,i,""); + //dw_base.SetItemDisplayString(1,i,""); + } + dw_base.ResetUpdateStatus(); + dw_base.Redraw(); + return 1; + } + int SetCellEdit(int row,string name,string value,string display) + { + dw_base.SetItemString(row,name,value); + dw_base.Redraw(); + if(display !="") + { + dw_base.SetItemDisplayString(row,name,display); + } + dw_base.AcceptText(); + dw_base.ResetUpdateStatus(); + dw_base.Redraw(); + return 1; + } + int OnSetCTGValue(int row) + { + dw_base.AcceptText(); + SetPriceBaseEmpty(); + msxml::IXMLDOMElement e = dw_list.GetRowElement(row); + var list = e.SelectNodes("*"); + if(list) + { + int s = list.length; + int i; + for(i=0;i<s;i++) + { + xml__ x = new xml__; + x.setNativePointer(xml__ ::CreateInstance()); + msxml::IXMLDOMElement xitem = list.item(i); + x.LoadXml(xitem.xml); + //trace(xitem.xml); + msxml::IXMLDOMElement e1=x.GetXmlDoc().documentElement; + string name = e1.tagName; + trace(name); + trace(e1.text); + string display; + if( e1.selectSingleNode("@_displaystring")) + { + display= e1.selectSingleNode("@_displaystring").text; + SetCellEdit(1,name,e1.text,""+display); + } + else + SetCellEdit(1,name,e1.text,""); + + } + } + return 1; + } + int OnRowClicked(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = evt.pnmh; + int row = hdr.row; + OnSetCTGValue(row); + return 1; + } + int setMaint() + { + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + dw_base.DwUpdateAllTo(x.GetXmlDoc()); + int row =dw_list.GetRow(); + dw_list.SetItemString(row, "PriceInfo", x.GetXml()); + return 1; + } + int SetTotalAmount(int row,string name) + { + if(name=="price20base" || name=="price20BAF"|| name=="price20CAF"|| name=="price20add"|| name=="price20comm"|| name=="price20other") + { + double price20base = dw_base.GetItemString(row, "price20base").toDouble(); + double price20BAF = dw_base.GetItemString(row, "price20BAF").toDouble(); + double price20CAF = dw_base.GetItemString(row, "price20CAF").toDouble(); + double price20add = dw_base.GetItemString(row, "price20add").toDouble(); + double price20comm = dw_base.GetItemString(row, "price20comm").toDouble(); + double price20other = dw_base.GetItemString(row, "price20other").toDouble(); + double price20=price20base+price20BAF+(price20CAF/100)*price20base+price20add - (price20comm/100)*price20base+price20other; + dw_base.SetItemString(1,"price20",price20.toString()); + } + + if(name=="price40base" || name=="price40BAF"|| name=="price40CAF"|| name=="price40add"|| name=="price40comm"|| name=="price40other") + { + double price40base = dw_base.GetItemString(row, "price40base").toDouble(); + double price40BAF = dw_base.GetItemString(row, "price40BAF").toDouble(); + double price40CAF = dw_base.GetItemString(row, "price40CAF").toDouble(); + double price40add = dw_base.GetItemString(row, "price40add").toDouble(); + double price40comm = dw_base.GetItemString(row, "price40comm").toDouble(); + double price40other = dw_base.GetItemString(row, "price40other").toDouble(); + double price40=price40base+price40BAF+(price40CAF/100)*price40base+price40add - (price40comm/100)*price40base+price40other; + dw_base.SetItemString(1,"price40",price40.toString()); + } + + if(name=="price40Hbase" || name=="price40HBAF"|| name=="price40HCAF"|| name=="price40Hadd"|| name=="price40Hcomm"|| name=="price40Hother") + { + double price40Hbase = dw_base.GetItemString(row, "price40Hbase").toDouble(); + double price40HBAF = dw_base.GetItemString(row, "price40HBAF").toDouble(); + double price40HCAF = dw_base.GetItemString(row, "price40HCAF").toDouble(); + double price40Hadd = dw_base.GetItemString(row, "price40Hadd").toDouble(); + double price40Hcomm = dw_base.GetItemString(row, "price40Hcomm").toDouble(); + double price40Hother = dw_base.GetItemString(row, "price40Hother").toDouble(); + double price40H=price40Hbase+price40HBAF+(price40HCAF/100)*price40Hbase+price40Hadd - (price40Hcomm/100)*price40Hbase+price40Hother; + dw_base.SetItemString(1,"price40h",price40H.toString()); + } + return 1; + } + int OnPriceBaseChanged(ref TNotifyEvent evt,int p) + { + trace("123"); + ref DWNMHDR hdr = evt.pnmh; + string name=hdr.colname; + string value = hdr.data; + SetTotalAmount(1,name); + string price20=dw_base.GetItemString(1,"price20"); + string price40=dw_base.GetItemString(1,"price40"); + string price40h=dw_base.GetItemString(1,"price40h"); + dw_list.SetItemString(dw_list.GetRow(),"price20",price20); + dw_list.SetItemString(dw_list.GetRow(),"price40",price40); + dw_list.SetItemString(dw_list.GetRow(),"price40h",price40h); + dw_list.Redraw(); + setMaint(); + return 1; + } + int OnListChanged(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = evt.pnmh; + int row = hdr.row; + string colname=hdr.colname; + string value = hdr.data; + if(colname=="port") + { + xml__ x = new xml__; + x.setNativePointer(xml__ ::CreateInstance()); + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("code", value); + if (getUrl("/sale/data/FCL/pref/shipthread",arg.GetString(),x) != 1) + { + trace(x.GetXml()); + } + msxml::IXMLDOMElement e = x.GetXmlDoc().documentElement; + dw_list.SetItemString(row,"shipthread", e.text); + dw_list.Redraw(); + } + + + return 1; + } + int OnChangePages(ref TNotifyEvent evt,int p) + { + ref PAGENMHDR h = evt.pnmh; + int c = h.cur; + int hCursor = xutil__::SetCursorWait(); + m_pageIndex = c; + OnRetrieve(); + xutil__::RestoreCursor(hCursor); + return 1; + } + int onSave() + { + xml__ x = new xml__; + x.setNativePointer(xml__::CreateInstance()); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + trace(x.GetXml()); + } + int OnDeleteRow() + { + int row = dw_list.GetRow(); + if(row<1 || row>dw_list.GetRowCount()) + { + return -1; + } + dw_list.DeleteRow(row); + + } + int OnAddrow() + { + int row=dw_list.InsertRow(0); + dw_list.SetItemString(row,"modifieddate",TApp::GetCurDate()); + SetPriceBaseEmpty(); + return 1; + } + int OnInsertRow() + { + int row=dw_list.GetRow(); + if(row<1) return 0; + int newrow=dw_list.InsertRow(row); + dw_list.SetItemString(newrow,"modifieddate",TApp::GetCurDate()); + SetPriceBaseEmpty(); + return 1; + } + int OnDeleteRow() + { + int row = dw_list.GetRow(); + if(row>0 && row<=dw_list.GetRowCount()) + { + dw_list.DeleteRow(row); + //OnSetCTGValue(row); + } + return 1; + } + int OnCmdDispatch(string comdid) + { + if(comdid.find("add",0)>=0) + OnAddrow(); + else if(comdid.find("insert",0)>=0) + OnInsertRow(); + else if(comdid.find("del",0)>=0) + OnDeleteRow(); + else if(comdid.find("save",0)>=0) + onSave(); + return 1; + } + int OnSetFocus(ref TNotifyEvent evt,int p){ + SetAgent(); + return 1; + } + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(evt.pStrID); + } + int OnItemError(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = evt.pnmh; + string value=hdr.data; + int e = hdr.idFrom; + if(e == -1000) + alert("【"+value+"】不是有效的数字!"); + if(e == -1001) + alert("【"+value+"】不是有效的数字!"); + if(e == -1002) + alert("【"+value+"】不是有效的日期!"); + return 1; + } + int OnAttachEvent() + { + AttachEvent("WM_XCOMMAND",OnXCommand); + AttachEvent("dw_list","DWV_ROWFOCUSCHANGED",OnRowClicked); + AttachEvent("WM_SETFOCUS",OnSetFocus); + AttachEvent("pages","PAGE_CLICK",OnChangePages); + AttachEvent("dw_base","DWV_ITEMCHANGED",OnPriceBaseChanged); + AttachEvent("dw_base","DWV_ITEMERROR",OnItemError); + AttachEvent("dw_list","DWV_ITEMCHANGED",OnListChanged); + + } + int OnInit() + { + dw_list = new xdwgrid__; + dw_list.setNativePointer(this.GetControl("dw_list")); + dw_list.openUrl("/sale/view/FCL/template/FCL/List"); + dw_base = new xdwtable__; + dw_base.setNativePointer(GetControl("dw_base")); + dw_base.openUrl("/sale/view/FCL/template/FCL/pricebase"); + dw_list.SetReadOnlyColumn("shipthread",true); + dw_list.SetReadOnlyColumn("price20",true); + dw_list.SetReadOnlyColumn("price40",true); + dw_list.SetReadOnlyColumn("price40h",true); + return 1; + } + + int onload() + { + m_PageSize=30; //每页显示数量 + m_PageIndex=1; //第几页 + m_QueryTxt=""; //查询条件 + OnInit(); + OnAttachEvent(); + OnRetrieve(); + SetAgent(); + return 1; + } + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/ForwarderList.cpp b/jrj/project/business/BasicCode/ForwarderList.cpp new file mode 100644 index 0000000..b38d13e --- /dev/null +++ b/jrj/project/business/BasicCode/ForwarderList.cpp @@ -0,0 +1,136 @@ +use "system.vl" +use "win.vl" +use "list.vl" +use "treeview.vm" +use "dev:vm[gridpages.vm]" + + +unit vbusiness.entity +[ + ForwarderList is extend list; + about ForwarderList + [ + field: + [ + + //xdwpages__ dw_pages; + string m_QueryTxt; + msxml::IXMLDOMDocument m_configDoc; + treeview__ tv_1; + string sType; + static int dw_hWnd; + int m_pageIndex; + int m_pageNumber; + ] + + method: + [ + + + + int SetEntityData(xaserverarg__ arg) + { + + + arg.AddArg("sType",sType); + xml__ x = new xml__; + x.setNativePointer(xml__ ::CreateInstance()); + getUrl("/sale/data/LogisticsCode/entity/list",arg.GetString(),x); + msxml::IXMLDOMElement e=x.GetXmlDoc().documentElement; + if(e) + { + if(list::dw_pages.__nativept && e.selectSingleNode("@TotalPage")) + { + string s=e.selectSingleNode("@TotalPage").text; //总数量 + list::dw_pages.SetMaxPage(s.toInt()); + } + } + this.dw_list.Retrieve(x); + this.dw_list.Redraw(); + this.dw_list.SetReadOnly(true); + return 1; + } + + + + + int OnRetrieve() + { + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("pageindex", m_pageIndex.toString()); //第几页 + arg.AddArg("pagenumber", m_pageNumber.toString()); //每页数量 + //trace(list::m_QueryTxt); + arg.AddArg("QueryTxt", list::m_QueryTxt); //每页数量 + return SetEntityData(arg); + } + int OnTreeSelChanged(ref TNotifyEvent evt,int p) + { + ref NMTREEVIEW nmtv = evt.pnmh; + int hItem = nmtv.itemNew.hItem; + list::m_QueryTxt = ""; + int wid = tv_1.GetId(); + int hitem=treeview__::GetSelectedItem(wid); + //c_type=dw_type.GetItemLabel(hitem); + //如果是跟节点 + int roothitem=treeview__::GetRootItem(wid); + msxml::IXMLDOMElement e = treeview__::GetItemData(wid,hitem); + string value = e.SelectSingleNode("@data").text; + sType= value+""; + OnRetrieve(); + return 1; + } + int OnChangePages(ref TNotifyEvent evt,int p) + { + ref PAGENMHDR h = evt.pnmh; + int c = h.cur; + int hCursor = xutil__::SetCursorWait(); + m_pageIndex = c; + OnRetrieve(); + xutil__::RestoreCursor(hCursor); + return 1; + } + + int ViewUpdate(param pr,string updateItem,xaserverarg__ arg) + { + if( updateItem=="del") + { + int DelRow = this.dw_list.GetRow(); + this.dw_list.DeleteRow(DelRow); + + } + + return 1; + } + + int OnAttachEvent() + { + //获得树的选择事件 + AttachEvent("tv_1", "TVN_SELCHANGED",OnTreeSelChanged); + return 0; + } + + int onload() + { + list::m_QueryTxt = ""; + m_pageIndex = 1; + m_pageNumber = 30; + sType="0"; + list::onload(); + + OnAttachEvent(); + + + + tv_1 = new treeview__; + tv_1.setNativePointer(this.GetControl("tv_1")); + int wid = tv_1.GetId(); + int root = treeview__::GetRootItem(wid); + treeview__::ExpandItem(wid,root); + this.dw_list.SetColumnStaus("ForwarderID",false); + return 1; + } + + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/ForwarderMaint.cpp b/jrj/project/business/BasicCode/ForwarderMaint.cpp new file mode 100644 index 0000000..d34b7ee --- /dev/null +++ b/jrj/project/business/BasicCode/ForwarderMaint.cpp @@ -0,0 +1,461 @@ +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; + + xdwtable__ dw_base; + string m_userid; + string m_username; + string ContactID; + 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; + } + + 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")); + + } + 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); + } + //trace(m_dels); + 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/PartyNo",arg.GetString(),x) != 1) + { + 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("请输入货代名称!"); + 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) + { + 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(); + } + dw_base.Redraw(); + //m_dels=""; + return 0; + } + int OnCmdDispatch(string 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); + 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; + string coldata = hdr.data; + trace(colname); + if(colname=="ForwarderNo") + { + 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; + } + + } + //只能选一个主联系人 + 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(); + } + + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/FreightExpenseType.cpp b/jrj/project/business/BasicCode/FreightExpenseType.cpp new file mode 100644 index 0000000..d5a5753 --- /dev/null +++ b/jrj/project/business/BasicCode/FreightExpenseType.cpp @@ -0,0 +1,161 @@ +use "xcontrol.vframe.vbusiness.vd" +use "xbase.vframe.vbusiness.vd" + +unit trade +[ + class FreightExpenseTypeWin : public xframe + { + xdwgrid dw_list; + xnode m_agentNode; //Agent Condition + int seqno; + + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNodeContent (anode,m_agentNode); + } + else + { + msxml::IXMLDOMElement xframeElement = GetElement(); + msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent) + { + string s = agent.xml; + m_agentNode = SetAgentNodeContent (anode,s); + } + } + return 1; + } + + int CalcSeqNo() + { + seqno = -1; + for(int i=1; i<dw_list.GetRowCount();i++) + { + string val = dw_list.GetItemString(i,"FieldName"); + if(val.find("OtherFee")==0) continue; + if(val.find("Other")==0) + { + string no = val.mid(5,99999); + if(no.toInt()>seqno) seqno = no.toInt(); + } + } + return seqno; + } + + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt,int param) + { + //重置工具条 + SetAgent(); + return 1; + } + + int OnSave() + { + dw_list.AcceptText(); + xml x= new xml; + x.setNativePointer(xml::CreateInstance()); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + + xaserverarg arg = new xaserverarg; + arg.setNativePointer(xaserverarg::CreateInstance()); + arg.AddArg("content",x.GetXml()); + + //trace(x.GetXml()); + + if(url::get("/sale/data/LogisticsCode/entity/freightexpensetype/update", arg.GetString(),x)!=1) + { + string error = x.GetXmlDoc().text; + alert("err:"+error); + return 1; + } + //alert(x.GetXml()); + string str = x.GetXmlDoc().documentElement.getAttribute("text"); + trace(x.GetXml()); + if(str == "true") + { + dw_list.ResetUpdateStatus(); + alert("保存成功!"); + }else + { + alert("保存失败!"); + } + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if(comdid=="xmAddRow") + { + dw_list.InsertRow(0); + if(seqno==-1) CalcSeqNo(); + seqno++; + dw_list.SetItemString(dw_list.GetRowCount(),"FieldName", "Other"+seqno.toString()); + return 1; + } + else if(comdid=="xmDeleteRow") + { + dw_list.DeleteRow(0); + return 1; + } + else if(comdid=="xmSave") + { + return OnSave(); + } + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + } + + int OnRetrieve() + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + if (getUrl("/sale/data/LogisticsCode/entity/freightexpensetype/list","",x)!=1) + { + trace(x.GetXmlDoc().text); + return -1; + }else + { + dw_list.Retrieve(x); + dw_list.Redraw(); + } + return 1; + } + + int onload() + { + dw_list = GetControl("dw_list"); + dw_list.openUrl("/sale/view/LogisticsCode/template/freightexpensetype/list"); + dw_list.SetColumnState("ID",false); + OnAttachEvent(); + seqno = -1; + + return 1; + } + + int onloaded() + { + SetAgent(); + OnRetrieve(); + return 1; + } + }; +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/PaymentTerm.list.cpp b/jrj/project/business/BasicCode/PaymentTerm.list.cpp new file mode 100644 index 0000000..c52fd7d --- /dev/null +++ b/jrj/project/business/BasicCode/PaymentTerm.list.cpp @@ -0,0 +1,126 @@ +use "list.vd" +use "xtreeview.vd" +use "xwin.vd" +class PaymentTermlist111 : public list +{ + //xdwgrid dw_list; + int OnDBClick(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); + int row = hdr.row; + //alert(row.toString()); + msxml::IXMLDOMElement e = dw_list.GetRowElement(row); + string id = e.selectSingleNode("TermID").text; + //alert( id); + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("EntityID", id); + //arg.AddArg("hwnd", this.GetHWND().toString()); + int p1 = arg.ptr_native_; + openUrl("/sale/view/Payment/worknode/Payment/maint",p1); + if (arg.GetArgString("ret") == "Ok") + { + alert("OK"); + list::onloaded(); + } + return 1; + } + int OnDelete() + { + int row = this.dw_list.GetRow(); + if (row < 1) return 1; + msxml::IXMLDOMElement ele = this.dw_list.GetRowElement(row); + string termid = ele.selectSingleNode("TermID").text; + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("termId",termid); + //alert(termid); + xml x1 = new xml; + x1.setNativePointer(x1.CreateInstance()); + if (url::post("/sale/data/PaymentTerm/entity/delete",arg.GetString(),x1) != 1) + { + string error = x1.GetXmlDoc().text; + trace(error); + } + else + { + //error = x1.GetXmlDoc().text; + //alert(error); + MessageBox(GetHWND(),"删除成功!","提示",0); + dw_list.DeleteRow(row); + } + } + + int OnNew() + { + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("EntityID", "new"); + int p1 = arg.ptr_native_; + //openUrl("/sale/view/Test/worknode/company/maint", arg); + openUrl("/sale/view/Payment/worknode/Payment/maint",p1); + return 0; + } + int OnOpen() + { + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + int row = dw_list.GetRow(); + if (row < 1) + { + xwin::MessageBox(GetHWND(),"请选中要修改的行!","提示",0); + return -1; + } + msxml::IXMLDOMElement e = dw_list.GetRowElement(row); + string guid = e.selectSingleNode("TermID").text; + arg.AddArg("EntityID",guid); + int pp = arg.ptr_native_; + openUrl("/sale/view/Test2/worknode/company2/maint", pp); + + } + int OnRefresh() + { + list::onloaded(); + return 0; + } + //按钮事件 + int OnCmdDispatch(string comdid) + { + //alert(comdid); + if (comdid == "action:bill.new") return OnNew(); + else if(comdid == "action:bill.open") return OnOpen(); + else if(comdid == "Refresh") return OnRefresh(); + else if(comdid == "action:bill.delete") return OnDelete(); + return 0; + } + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(evt.pStrID); + } + //命令发布函数 + int OnAttachEvent() + { + AttachEvent("WM_XCOMMAND",OnXCommand); + //AttachEvent("WM_SETFOCUS",OnSetFocus); + + //AttachEvent("dw_list","DWV_ROWFOCUSCHANGED",OnRowChanged); + AttachEvent("dw_list","DWV_DOUBLECLICKED",OnDBClick); + return 1; + } + int onload() + { + + list::onload(); + OnAttachEvent(); + } + + int onloaded() + { + //OnRetrieve(); + //alert("12"); + list::onloaded(); + + + return -1; + } +}; \ No newline at end of file diff --git a/jrj/project/business/BasicCode/PaymentTerm.maint.cpp b/jrj/project/business/BasicCode/PaymentTerm.maint.cpp new file mode 100644 index 0000000..678ac29 --- /dev/null +++ b/jrj/project/business/BasicCode/PaymentTerm.maint.cpp @@ -0,0 +1,415 @@ +use "maint.vd" +use "xaserver.vd" +use "xaserverarg.vd" +use "profit.vd" +use "xcell.vd" +use "vbind.vd" +use "publiccode.vd" +use "xpagecontrol.vd" +class PaymentTermEdit : public maint +{ + xdwtable dw_base; + xdwtable dw_p; + xcell dw_cell; + string sCryno; + int OnAddrow() + { + dw_p = dw_base.FindDwTable("line"); + int i; + double dDueAmount = 0; + double dPercnet = 100; + for (i = 1 ; i <= dw_p.GetRowCount();i++) + { + dDueAmount = dw_p.GetItemDouble(i,"DueAmount"); + if (dDueAmount > 0) + break; + dPercnet = dPercnet - dw_p.GetItemDouble(i,"DuePercent"); + } + int irow = dw_p.InsertRow(0); + dw_p.SetItemString(irow,"SeqNo",irow.toString()); + if (dDueAmount <= 0) + dw_p.SetItemDouble(irow,"DuePercent",dPercnet); + + return 1; + } + int OnDeleterow() + { + dw_p = dw_base.FindDwTable("line"); + int row2 = dw_p.GetRow(); + if (row2 < 1) return 0; + dw_p.DeleteRow(row2); + + return 1; + } + string OnCreateTxt() + { + //dw_1.AcceptText(); //不能加会报错 + int irow; + //int icnt = dw_1.GetRowCount(); + dw_p = dw_base.FindDwTable("line"); + int icnt = dw_p.GetRowCount(); + if (icnt < 1) return ""; + string sTxt; + //double dPercnet = 100; + for (irow = 1;irow <= icnt ;irow ++) + { + string sPaymentMethod = dw_p.GetItemString(irow,"PaymentMethod"); //支付方式 + //string sDueDays = dw_p.GetItemDisplayString(irow,"DueDays"); + string sDueDays = dw_p.GetItemString(irow,"DueDays"); //期限 + string sDuePercent = dw_p.GetItemString(irow,"DuePercent"); //比例 + string sDueAmount = dw_p.GetItemString(irow,"DueAmount"); //金额 + + if (!sPaymentMethod || sPaymentMethod == "") + sTxt = sTxt + ""; + if (!sDueDays || sDueDays == "") + sTxt = sTxt + ""; + else + { + if (sDueDays == "-1") sDueDays = " IN ADVANCE"; + else if (sDueDays == "0") sDueDays = " AT SIGHT"; + else + { + if (sPaymentMethod == "T/T") + sDueDays = " WITHIN "+sDueDays + " DAYS AFTER SHIPMENT"; + else + sDueDays = " AT "+sDueDays + " DAYS"; + } + + if (!sDuePercent || sDuePercent == "") + { + if (!sDueAmount || sDueAmount == "") + sTxt = sTxt + ""; + else + { + + sTxt = sTxt + sCryno + " " + sDueAmount + " " + sPaymentMethod + sDueDays + ";"; + } + } + else + { + if (sDuePercent.find(".",0) >= 0) + { + while (sDuePercent.right(1) == "0") + { + sDuePercent = sDuePercent.left(sDuePercent.length() - 1); + } + if (sDuePercent.right(1) == ".") + sDuePercent = sDuePercent.left(sDuePercent.length() - 1); + } + + sTxt = sTxt + sDuePercent + "% " + sPaymentMethod+ sDueDays + ";"; + } + } + } + + sTxt = sTxt.mid(0,sTxt.length() - 1); + if (sTxt != "") + sTxt = sTxt + "."; + + return sTxt; + } + int OnOk() + { + dw_base.AcceptText(); + //判断是否有必输值为空 + dw_p = dw_base.FindDwTable("line"); + double dPercnet = 0; + double dAmount = 0; + if (dw_p) + { + int i; + for (i=1;i <= dw_p.GetRowCount();i++) + { + string seqNo = dw_p.GetItemString(i,"SeqNo"); + string sPaymentMethod = dw_p.GetItemString(i,"PaymentMethod"); + string sDueDays = dw_p.GetItemString(i,"DueDays"); + string sDuePercent = dw_p.GetItemString(i,"DuePercent"); + dPercnet = dPercnet + sDuePercent.toDouble(); + string sDueAmount = dw_p.GetItemString(i,"DueAmount"); + dAmount = dAmount + sDueAmount.toDouble(); + if (!seqNo) seqNo = ""; + if (!sPaymentMethod) sPaymentMethod = ""; + if (!sDueDays) sDueDays = ""; + if (!sDuePercent) sDuePercent = ""; + if (!sDueAmount) sDueAmount = ""; + dw_p.SetItemString(i,"SeqNo",i.toString()); + string sChargeAll = sPaymentMethod + sDueDays + sDuePercent + sDueAmount; + if (sChargeAll != "") + { + if (sPaymentMethod == "") + { + alert("支付方式不能为空!"); + return 0; + } + if (sDueDays == "") + { + alert("期限不能为空!"); + return 0; + } + + } + } + } + + //百分比校验 + if (dw_p.GetRowCount() <= 1 && sChargeAll == "") + {} + else + { + if (dPercnet != 100) + { + if (dAmount <= 0) + { + alert("比率不等于100!"); + return 0; + } + } + } + + string sTxt = OnCreateTxt(); + dw_base.SetItemString(1,"PaymentTermEx",sTxt); + + //CloseWindow(); + return 1; + } + int OnItemChanged(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); + string colname=hdr.colname; + string value = hdr.data; + int row = hdr.row; + + if (colname == "DueDays") + { + xdwtable dw; + dw = dw_base.FindDwTable("line"); + + if (dw) + { + string sPaymentMethod = dw.GetItemString(row,"PaymentMethod"); + if (value == "0") + { + if (sPaymentMethod == "T/T") + { + //alert("此支付方式期限不能为 0 (AT SIGHT)"); + //return -1; + } + } + else if (value == "-1") + { + if (sPaymentMethod != "T/T") + { + alert("此支付方式期限不能为 -1(IN ADVANCE)"); + return -1; + } + } + } + + } + //生成支付条款文本 + if (colname == "PaymentMethod" || colname == "DueDays" || colname == "DuePercent" || colname == "DueAmount") + { + string sTxt = OnCreateTxt(); + + dw_base.SetItemString(1,"Description",sTxt); + } + + return 1; + } + int OnClick(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); + string value = hdr.data; + string colname = hdr.colname; + int row = hdr.row; + xaserverarg arg=new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + //alert(row.toString()); + xdwtable dw; + dw = dw_base.FindDwTable("line"); + //alert(colname); + if (dw) + { + if (colname == "DuePercent") + { + int i; + int icnt = dw.GetRowCount(); + if (icnt < 1) + return 0; + double dDueAmount = 0; + for (i = 1 ; i <= icnt ; i++) + { + dDueAmount = dw.GetItemDouble(i,"DueAmount"); + if (dDueAmount > 0) + break; + } + dw_cell.setNativePointer(dw_base.QueryItem("ixcell")); + if (dDueAmount > 0) + { + dw.SetColumnProp("DuePercent","cellprotect","保护");//保护中文规格 + } + else + { + dw.SetColumnProp("DuePercent","cellprotect","不保护");//保护中文规格 + } + + } + + if (colname == "DueAmount") + { + int j; + int jcnt = dw.GetRowCount(); + if (jcnt < 1) + return 0; + double dDuePercent = 0; + for (j = 1 ; j <= jcnt ; j++) + { + dDuePercent = dw.GetItemDouble(j,"DuePercent"); + if (dDuePercent > 0) + break; + } + if (dDuePercent > 0) + { + dw.SetColumnProp("DueAmount","cellprotect","保护");//保护中文规格 + } + else + { + dw.SetColumnProp("DueAmount","cellprotect","不保护");//保护中文规格 + } + } + + } + + return 1; + } + + //保存事件 + int OnSave() + { + if(OnOk()<1)return 0; + dw_base = GetControl("dw_base"); + dw_base.AcceptText(); + //dw_bank.AcceptText(); + xml x = new xml; + xaserverarg arg = new xaserverarg; + x.setNativePointer(xml::CreateInstance()); + dw_base.DwUpdateAllTo(x.GetXmlDoc()); + //dw_bank.DwUpdateAllTo(x.GetXmlDoc()); + //alert(x.GetXml()); + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("content",x.GetXml()); + arg.AddArg("dbmap","FND_PaymentTerm.dbmap"); + //return 0; + if (getUrl("/sale/data/PaymentTerm/entity/company/save",arg.GetString(),x) != 1) + { + alert("保存失败!"); + return 0; + } + else + { + //alert(x.GetXml()); + if(x.GetXmlDoc().selectSingleNode("error")) + { + alert("保存出错2!"); + return 0; + } + arg.AddArg("ret","Ok"); + xwin::MessageBox(GetHWND(),"保存成功!","提示",0); + //alert("保存成功"); + dw_base.ResetUpdateStatus(); + //dw_bank.ResetUpdateStatus(); + //xwin::SendMessage(parenthwnd, 0x401, "maintsave", 0);//通知list窗口更新数据 + } + //alert("保存成功"); + dw_base.Redraw(); + //dw_bank.Redraw(); + CloseWindow(); + return 0; + } + + int OnCmdDispatch(string comdid) + { + //alert(comdid); + if(comdid=="xmOk") OnSave(); + else if(comdid=="addrow") OnAddrow(); + else if(comdid=="deleterow") OnDeleterow(); + //else if(comdid=="AddRow") OnAddRow(); + //else if(comdid=="InsertRow") OnInsertRow(); + //else if(comdid=="DeleteRow")OnDeleteRow(); + return 1; + } + + //按钮事件 + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //按钮事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + //AttachEvent("WM_SETFOCUS",OnSetFocus); + AttachEvent("dw_base","DWV_ITEMCHANGED",OnItemChanged); + AttachEvent("dw_base","DWV_CLICKED",OnClick); + } + int OnRetrieve() + { + if(GetParam()) + { + int p = GetParam(); + xaserverarg args = new xaserverarg; + args.setNativePointer(p); + string id = args.GetArgString("EntityID"); + //alert(id); + if(id=="new") + { + + //OnAddNew(); + } + else + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + if(getUrl("/sale/data/PaymentTerm/entity/base12", args.GetString(), x) != 1) + { + alert("错误"); + return -1; + } + //alert(x.GetXml()); + dw_base.Retrieve(x); + //dw_bank.Retrieve(x); + dw_base.Redraw(); + //dw_bank.Redraw(); + } + } + return 1; + } + + int onload() + { + //maint::onload(); + //maint::onloaded(); + dw_base = GetControl("dw_base"); + dw_cell = new xcell; + dw_cell.setNativePointer(dw_base.QueryItem("ixcell")); + dw_base.openUrl("/sale/view/Payment/template/Payment/maint"); + //alert("1233"); + OnRetrieve(); + OnAttachEvent(); + //dw_base = GetControl("dw_base"); + + } + + int onloaded() + { + //maint::onloaded(); + //alert("response"); + //dw_base = GetControl("dw_base"); + //dw_cell = new xcell; + //dw_cell.setNativePointer(dw_base.QueryItem("ixcell")); + return -1; + } + +}; \ No newline at end of file diff --git a/jrj/project/business/BasicCode/ProfitParam.cpp b/jrj/project/business/BasicCode/ProfitParam.cpp new file mode 100644 index 0000000..a52bf6e --- /dev/null +++ b/jrj/project/business/BasicCode/ProfitParam.cpp @@ -0,0 +1,126 @@ +use "xcontrol.vframe.vbusiness.vd" +use "xbase.vframe.vbusiness.vd" +use "base.view.vd" + +unit trade +[ + class ProfitParamList : public frame + { + xdwgrid dw_list; + + xnode m_agentNode; //Agent Condition + + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNodeContent (anode,m_agentNode); + } + else + { + msxml::IXMLDOMElement xframeElement = GetElement(); + msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent) + { + string s = agent.xml; + m_agentNode = SetAgentNodeContent (anode,s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt,int param) + { + //重置工具条 + SetAgent(); + return 1; + } + int OnSave() + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + dw_list.AcceptText(); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + xaserverarg arg = new xaserverarg; + arg.setNativePointer(xaserverarg::CreateInstance()); + arg.AddArg("content",x.GetXml()); + if(url::get("/sale/data/Gdn/update/ProParamUpdate", arg.GetString(),x)!=1) + { + string error = x.GetXmlDoc().text; + alert("err:"+error); + return 1; + } + string str = x.GetXmlDoc().documentElement.getAttribute("text"); + if(str == "true") + { + dw_list.ResetUpdateStatus(); + dw_list.Redraw(); + alert("保存成功!"); + }else + { + alert("保存失败!"); + } + } + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if(comdid == "xmsave") + { + OnSave(); + } + else if(comdid == "xmrefresh") + { + OnRetrieve(); + } + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + } + + + int OnRetrieve() + { + xml x = new xml; + x = ViewObject::RetrieveData("/sale/data/Gdn/profit/profitParamList"); + if(x) + { + //alert(x.GetXml()); + dw_list.Retrieve(x); + dw_list.Redraw(); + } + return 1; + } + + int onload() + { + OnAttachEvent(); + dw_list = GetControl("dw_list"); + dw_list.openUrl("/sale/view/VATNotify/template/profitparam/list"); + + OnRetrieve(); + return 1; + } + + int onloaded() + { + SetAgent(); + + return 1; + } + }; +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/QuickCode.cpp b/jrj/project/business/BasicCode/QuickCode.cpp new file mode 100644 index 0000000..456f4fe --- /dev/null +++ b/jrj/project/business/BasicCode/QuickCode.cpp @@ -0,0 +1,676 @@ +use"lang.vl" +use "win.vl" +use "dev:vm[xml.vm]" +use "treeview.vm" +use "dev:vm[xaserverarg.vm]" +use "dev:vm[xaserver.vm]" +use "dev:vm[xdwgrid.vm]" +use "dev:vm[xutil.vm]" +use "file.vl" +use "list.vl" +unit vbusiness.vpage +[ + QuickCode is extend list; + about QuickCode + [ + field: + + method: + [ + xdwgrid__ dw_list; + + string m_config; + string m_agent; + string m_id; + string m_dbmap; + string m_name; + string strconfig; + msxml::IXMLDOMDocument m_configDoc; + int alert(string str) + { + //win__::MessageBox(this.GetHWND(),str,"提示:",0); + TApp::alert(this,str); + return 0; + } + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode__ anode = new xnode__; + anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); + string magent = m_agent; + if (magent == ""){ + xml__ x = new xml__; + x.setNativePointer(xml__::CreateInstance()); + TFile::get(m_config, x); + var agent = x.GetXmlDoc().selectSingleNode("config/agentarea/*[1]"); + if(agent){ + magent = agent.xml; + trace(magent); + m_agent = magent;//agent.xml; + SetAgentNodeContent (anode,magent); + } + } + else + SetAgentNodeContent (anode,m_agent); + return 1; + } + + int OnCmdDispatch(string comdid) + { + + int hCursor = xutil__::SetCursorWait(); + if(comdid == "save"){ + //type + xaserverarg__ args=new xaserverarg__; + args.setNativePointer(args.CreateInstance()); + args.AddArg("id",m_id); + args.AddArg("name", m_name); + xml__ y=new xml__; + y.setNativePointer(xml__::CreateInstance()); + //TDataSet::exec(m_config,"savetype",args,y); + //url::post("QuickCode/pref/quickcode_type.save",args.GetString(),y); + //save + + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + dw_list.AcceptText(); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + msxml::IXMLDOMElement e= x.GetXmlDoc().documentElement; + e.SetAttribute("id", m_id); + //arg.AddArg("id",m_id); + arg.AddArg("content",e.xml); + arg.AddArg("dbmap", m_dbmap); + //trace("-->",m_id); + //trace("-->",m_dbmap); + //trace(e.xml); + /*if(TDataSet::exec(m_config,"save",arg,x)!=1) + { + trace("error:"+x.GetXml()); + alert("保存出错!"); + return 0; + }*/ + //trace(m_dbmap); + trace(x.GetXml()); + if (url::get("QuickCode/pref/quickcode.save",arg.GetString(),x) != 1) + { + string error = x.GetXmlDoc().text; + trace(error); + } + trace(x.GetXml()); + if(x.GetXmlDoc().selectSingleNode("error")) + { + alert("保存出错2!"); + return 0; + } + dw_list.ResetUpdateStatus(); + alert("保存成功!"); + } + else if(comdid=="add"){ + dw_list.InsertRow(0); + int rows = dw_list.GetRowCount(); + dw_list.SetRow(rows); + dw_list.SetItemString(rows,"ToCurrencyCode","RMB"); + dw_list.SetItemDisplayString(rows,"ToCurrencyCode","人民币"); + } + else if(comdid=="insert"){ + int row = dw_list.GetRow(); + if(row<1 || row>dw_list.GetRowCount()) return 0; + dw_list.InsertRow(row); + dw_list.SetItemString(row,"ToCurrencyCode","RMB"); + dw_list.SetItemDisplayString(row,"ToCurrencyCode","人民币"); + } + else if(comdid == "delet"){ + /*int rows = dw_list.GetRowCount(); + int row2 = dw_list.GetPrevSelectRow(rows); + while(row2 > 0){ + dw_list.DeleteRow(row2); + row2 = dw_list.GetPrevSelectRow(row2 - 1); + } + dw_list.SelectRow(0, false);*/ + int row2 = dw_list.GetRow(); + if(row2<1 || row2>dw_list.GetRowCount()) return 0; + dw_list.DeleteRow(row2); + } + else if(comdid == "import"){ + if(m_id=="FND_ExchangeRate") + { + int ll_delq = win__::MessageBox(this.GetHWND(), "确定要从老系统导入汇率数据吗?","提示",1); + if (ll_delq != 1) + return 0; + xml__ xi=new xml__; + xi.setNativePointer(xml__::CreateInstance()); + xaserverarg__ argi=new xaserverarg__; + argi.setNativePointer(argi.CreateInstance()); + if (url::get("QuickCode/ExchangeRate/import",argi.GetString(),xi) != 1) + { + trace(xi.GetXmlDoc().text); + return -1; + } + alert("导入成功!"); + dw_list.Redraw(); + } + + } + xutil__::RestoreCursor(hCursor); + return 0; + } + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(""+evt.pStrID); + } + int OnSetFocus(ref TNotifyEvent evt,int p){ + SetAgent(); + return 1; + } + int OnClicked(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = evt.pnmh; + int row = hdr.row; + int col=hdr.col + 1; + string colname=dw_list.GetColumnName(col); + trace(colname); + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + string comdid; + if(colname=="CategoryID") + { + openUrl("产品资料.vface/xpage/product/category/dialog", arg); + comdid = arg.GetArgString("comdid"); + if(comdid=="ok") + { + string CategoryID = arg.GetArgString("CategoryID"); + string CName = arg.GetArgString("CName"); + dw_list.SetItemDisplayString(row,colname,CName); + dw_list.SetItemString(row,colname,CategoryID); + dw_list.Redraw(); + } + } + else if(colname=="MkOrgId") + { + openUrl("组织架构.vface/xpage/HrOrg/Chart", arg); + comdid = arg.GetArgString("comdid"); + if(comdid=="xmOk") + { + string OrgName = arg.GetArgString("OrgName"); + string OrgId = arg.GetArgString("OrgId"); + dw_list.SetItemDisplayString(row,colname,OrgName); + dw_list.SetItemString(row,colname,OrgId); + dw_list.Redraw(); + } + } + else if(colname=="Cid") + { + openUrl("组织架构.vface/xpage/hremployee/select", arg); + comdid = arg.GetArgString("comdid"); + if(comdid=="xmOk") + { + string sPersonID = arg.GetArgString("sPersonID"); + trace(sPersonID); + string sPersonName = arg.GetArgString("sPersonName"); + dw_list.SetItemDisplayString(row,colname,sPersonName); + dw_list.SetItemString(row,colname,sPersonID); + dw_list.Redraw(); + } + } + return 1; + } + int OnDoubleClicked(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = evt.pnmh; + int row = hdr.row; + if(row<1 || row > dw_list.GetRowCount() ) return 0; + + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + //string str = hdr.data; + string colname=hdr.colname; + string str = dw_list.GetItemString(row, colname); + arg.AddArg("value",str); + openUrl("/sale/view/view.dlg/xpage/memo/edit", arg); + string comdid = arg.GetArgString("comdid"); + if(comdid=="xmOK") + { + string value = arg.GetArgString("value"); + dw_list.SetItemString(row,colname,value); + dw_list.Redraw(); + } + + return 1; + } + int ItemOutput() + { + string d = xaserver__::GetCurrentDate(); + d = d.left(10) +""; + dw_list.SaveAs(d); + return 1; + } + int OnSelectAllRow() + { + int rows = this.dw_list.GetRowCount(); + if(rows < 1) return -1; + this.dw_list.SelectRow(1, rows, true); + this.dw_list.Redraw(); + return 1; + } + int OnRowCopy() + { + int rows = this.dw_list.GetRowCount(); + if(rows < 1) return -1; + int cols = this.dw_list.GetColumnCount(); + string str = ""; + int row = this.dw_list.GetNextSelectRow(1); + int i; + while(row > 0) + { + string tmp1 = ""; + for(i=1; i<cols; i++) + { + int w = this.dw_list.GetColumnWidth(i); + if(w < 5) continue; + string tmp; + if(this.dw_list.GetItemDisplayString(row, i + 1)) + tmp = this.dw_list.GetItemDisplayString(row, i + 1); + else + tmp = this.dw_list.GetItemString(row, i + 1); + tmp1 += tmp + "\t"; + } + str += tmp1 + "\r\n"; + row = this.dw_list.GetNextSelectRow(row + 1); + } + this.dw_list.SetDataToClip(str); + return 1; + } + int OnColCopy(string col) + { + int rows = this.dw_list.GetRowCount(); + if(rows < 1) return -1; + string str = ""; + int row = this.dw_list.GetNextSelectRow(1); + while(row > 0) + { + string tmp; + if(this.dw_list.GetItemDisplayString(row, col)) + tmp = this.dw_list.GetItemDisplayString(row,col); + else + tmp = this.dw_list.GetItemString(row, col); + str += tmp + "\r\n"; + row = this.dw_list.GetNextSelectRow(row + 1); + } + this.dw_list.SetDataToClip(str); + + return 1; + } + int OnRClick(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = evt.pnmh; + int row = hdr.row; + + int m = win__::CreatePopupMenu(); + int MF_STRING = 0x00000000; + int MF_DISABLED = 0x00000002; + int TPM_RIGHTBUTTON = 0x0002; + int TPM_RETURNCMD = 0x0100; + int MF_CHECKED = 0x8; + int MF_SEPARATOR = 0x0800; + win__::AppendMenu(m,MF_STRING, 1, "复制行"); + win__::AppendMenu(m,MF_STRING, 101, "复制列"); + win__::AppendMenu(m,MF_SEPARATOR, -1, ""); + win__::AppendMenu(m,MF_STRING, 2, "全选"); + win__::AppendMenu(m,MF_SEPARATOR, -1, ""); + win__::AppendMenu(m,MF_STRING, 4, "导出到Excel"); + win__::AppendMenu(m,MF_SEPARATOR, -1, ""); + win__::AppendMenu(m,MF_STRING, 6, "显示列设置"); + xrect xr; + xpoint pt; + win__::GetCursorPos(pt); + int ret=win__::TrackPopupMenu(m, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, this.GetHWND(), xr); + + //trace(ret); + int hCursor = xutil__::SetCursorWait(); + if(ret == 1) {OnRowCopy();} + else if(ret == 101) { + string colname=hdr.colname; + if(colname != "") + OnColCopy(colname); + } + else if(ret == 2) {OnSelectAllRow();} + else if(ret == 4) {ItemOutput();} + else if(ret == 6) {} + xutil__::RestoreCursor(hCursor); + + return 1; + } + int OnAttachEvent() + { + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + AttachEvent("dw_list","DWV_DOUBLECLICKED",OnDoubleClicked);//行双击 + AttachEvent("dw_list","DWV_ITEMBEINGEDIT",OnClicked); + AttachEvent("dw_list","DWV_RCLICKED",OnRClick);//鼠标右键 + } + int OnRetrieve() + { + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + trace("asdasd"); + + if(m_id.find("__",0) >0) + { + m_id = m_id.mid(0, m_id.find("__",0)); + arg.AddArg("id",m_id); + //trace(m_id); + /*if (TDataSet::exec(m_config, "query_remark", arg.GetString(),x) != 1) + { + trace(x.GetXmlDoc().text); + return -1; + }*/ + if (url::get("QuickCode/entity/list_remark",arg.GetString(),x) != 1) + { + trace(x.GetXmlDoc().text); + return -1; + } + } + else + { trace("asdasd"); + arg.AddArg("id",m_id); + arg.AddArg("querytxt",""); + /*if (TDataSet::exec(m_config, "query", arg.GetString(),x) != 1) + { + trace(x.GetXmlDoc().text); + return -1; + }*/ + if (url::get("QuickCode/entity/list",arg.GetString(),x) != 1) + { + trace(x.GetXmlDoc().text); + return -1; + } + } + + dw_list.Retrieve(x); + dw_list.Redraw(); + return 1; + } + string jxParam(string p, string n) + { + if(p != "") + { + p +="&"; + int i = 1; + while (p.find("=",0)>0) + { + string name = p.mid(0, p.find("=",0)); + string value = p.mid(p.find("=",0) + 1, p.find("&",0) - p.find("=",0) - 1); + if(name==n) return ""+value; + i += 1; + p = p.mid(p.find("&",0) + 1, p.length()); + } + } + return ""; + } + int getURLParam() + { + if(GetParam()) + { + xpage__ xp=new xpage__; + xp.setNativePointer(this.GetXPage()); + string aurl = xp.GetWkUrl(); + xaserverarg__ arg; + if(aurl && aurl.find("native=true",0)>0) + { + int p = this.GetParam(); + arg = new xaserverarg__; + arg.setNativePointer(p); + } + else + { + arg = GetParam(); + } + string config = arg.GetArgString("config"); + xml__ x = new xml__; + x.setNativePointer(xml__::CreateInstance()); + if(config == "") + { + string configXml = arg.GetArgString("configxml"); + x.LoadXml(configXml); + } + else + { + getUrl(config, "", x); + } + m_configDoc = x.GetXmlDoc(); + + } + + return 1; + } + int loaded() + { + getURLParam(); + msxml::IXMLDOMDocument ee=m_configDoc; + string id=m_id; + var n = ee.selectSingleNode("//list/dwview[@type='dwgrid'][@id='"+id+"']"); + string vface = m_configDoc.selectSingleNode("//vface[1]").text; + string dwname = "";//e.selectsingleNode("@name").text; + string tpl = "";//e.selectsingleNode("@url").text; + string dbmap = ""; + if(n) + { + msxml::IXMLDOMElement e = n; + //trace(e.xml); + if(e.selectSingleNode("@name")) dwname = e.selectSingleNode("@name").text; + if(e.selectSingleNode("@url")) tpl = e.selectSingleNode("@url").text; + if(e.selectSingleNode("@dbmap")) dbmap = e.selectSingleNode("@dbmap").text; + //trace(vface +"/"+ tpl); + //trace(selectmode); + } + else + { + var m = ee.selectSingleNode("//list"); + msxml::IXMLDOMElement e1 = m; + //trace(e.xml); + if(e1.selectSingleNode("@name")) dwname = e1.selectSingleNode("@name").text; + if(e1.selectSingleNode("@url")) tpl = e1.selectSingleNode("@url").text; + if(e1.selectSingleNode("@dbmap")) dbmap = e1.selectSingleNode("@dbmap").text; + + } + m_dbmap = dbmap; + dw_list = new xdwgrid__; + dw_list.setNativePointer(GetControl(dwname)); + dw_list.openUrl(vface +"/"+ tpl); + //dw_list.SetSelectionMode(4); + + } + int Onital() + { + //地区 + xml__ x1=new xml__; + x1.setNativePointer(xml__::CreateInstance()); + xaserverarg__ arg1=new xaserverarg__; + arg1.setNativePointer(arg1.CreateInstance()); + arg1.AddArg("id","地区"); + if (url::get("/sale/data/QuickCode/entity/list",arg1.GetString(),x1) != 1) + { + trace(x1.GetXmlDoc().text); + return -1; + } + + var list = x1.GetXmlDoc().selectNodes("root/item"); + int i; + int s = list.length; + if(s>0) + { + string str = "<cellprop celltype='' cellformatex='' cellformat='' cellprotectex='' cellprotect='保护' cellvisibleex='' cellvisible='' cellvalid='' cellinitial=''><edit edittype='ddlb' ddlbxml='<data>"; + for(i=0;i<s;i++) + { + msxml::IXMLDOMElement xitem = list.item(i); + string id=""; + if(xitem.selectSingleNode("Code")) + id = xitem.selectSingleNode("Code").text; + string name =""; + if(xitem.selectSingleNode("Meaning")) + name = xitem.selectSingleNode("Meaning").text; + string tmp = "<row><显示列>"+name+"</显示列><数据列>"+id+"</数据列></row>"; + str += tmp; + } + str += "</data>'/></cellprop>"; + + + dw_list.SetColumnProps("AreaCode",str); + } + //币别 + xml__ x2=new xml__; + x2.setNativePointer(xml__::CreateInstance()); + xaserverarg__ arg2=new xaserverarg__; + arg2.setNativePointer(arg2.CreateInstance()); + arg2.AddArg("id","FND_Currency"); + if (url::get("/sale/data/QuickCode/entity/list",arg2.GetString(),x2) != 1) + { + trace(x2.GetXmlDoc().text); + return -1; + } + + var list1 = x2.GetXmlDoc().selectNodes("root/item"); + int j; + int s1 = list1.length; + if(s1>0) + { + string str1 = "<cellprop celltype='' cellformatex='' cellformat='' cellprotectex='' cellprotect='保护' cellvisibleex='' cellvisible='' cellvalid='' cellinitial=''><edit edittype='ddlb' ddlbxml='<data>"; + for(j=0;j<s1;j++) + { + msxml::IXMLDOMElement xitem1 = list1.item(j); + string id1=""; + if(xitem1.selectSingleNode("Code")) + id1 = xitem1.selectSingleNode("Code").text; + string name1 =""; + if(xitem1.selectSingleNode("Name")) + name1 = xitem1.selectSingleNode("Name").text; + string tmp1 = "<row><显示列>"+name1+"</显示列><数据列>"+id1+"</数据列></row>"; + str1 += tmp1; + } + str1 += "</data>'/></cellprop>"; + + + dw_list.SetColumnProps("FromCurrencyCode",str1); + } + //国家 + xml__ x3=new xml__; + x3.setNativePointer(xml__::CreateInstance()); + xaserverarg__ arg3=new xaserverarg__; + arg3.setNativePointer(arg3.CreateInstance()); + arg3.AddArg("id","FND_Country"); + if (url::get("/sale/data/QuickCode/entity/list",arg3.GetString(),x3) != 1) + { + trace(x3.GetXmlDoc().text); + return -1; + } + + var list2 = x3.GetXmlDoc().selectNodes("root/item"); + int k; + int s2 = list2.length; + if(s2>0) + { + string str2 = "<cellprop celltype='' cellformatex='' cellformat='' cellprotectex='' cellprotect='保护' cellvisibleex='' cellvisible='' cellvalid='' cellinitial=''><edit edittype='ddlb' ddlbxml='<data>"; + for(k=0;k<s2;k++) + { + msxml::IXMLDOMElement xitem2 = list2.item(k); + string id2=""; + if(xitem2.selectSingleNode("Code")) + id2 = xitem2.selectSingleNode("Code").text; + string name2 =""; + if(xitem2.selectSingleNode("Name")) + name2 = xitem2.selectSingleNode("Name").text; + string tmp2 = "<row><显示列>"+name2+"</显示列><数据列>"+id2+"</数据列></row>"; + str2 += tmp2; + } + str2 += "</data>'/></cellprop>"; + + + dw_list.SetColumnProps("MkCountryId",str2); + } + dw_list.SetReadOnlyColumn("ToCurrencyCode"); + } + int onload() + { + m_config = "QuickCode.config"; + m_agent = ""; + + //dw_list = new xdwgrid__; + //dw_list.setNativePointer(GetControl("dw_list")); + //dw_list.SetSelectionMode(4); + //dw_list.AllowSort(false); + if(this.GetParam()) + { + xaserverarg__ arg = this.GetParam(); + string id = arg.GetArgString("id"); + if(id == "") return 0; + m_id = id; + loaded(); + + /*string tpl = arg.GetArgString("tpl"); + if(tpl == "" && (m_id.find("__",0) >0)) + tpl = "QuickCode.tpl/QuickCode_Remark"; + else if(tpl == "" ) + tpl = "QuickCode.tpl/QuickCode"; + dw_list.SetDataObject(GetServerUrl(),"dev:sheet["+tpl+"]"); + string dbmap = arg.GetArgString("dbmap"); + if(dbmap == "" && (m_id.find("__",0) >0) ) + dbmap = "QuickCode_Remark.dbmap"; + else if(dbmap == "") + dbmap ="QuickCode.dbmap"; + m_dbmap = dbmap; + string name = arg.GetArgString("name"); + if(name == "") + name = id; + m_name = name; + string title = arg.GetArgString("title"); + if(title != "") + win__::SetWindowText(this.GetHWND(),title);*/ + + + + + /* + param p = this.GetParam(); + string pa = ""+p; + //string pa = "id=HrOrgType&title=客户类型"; + string id = jxParam(pa,"id"); + if(id == "") return 0; + m_id = id; + string tpl = jxParam(pa,"tpl"); + if(tpl == "" && (m_id.find("__",0) >0)) + tpl = "QuickCode.tpl/QuickCode_Remark"; + else if(tpl == "" ) + tpl = "QuickCode.tpl/QuickCode"; + dw_list.SetDataObject(GetServerUrl(),"dev:sheet["+tpl+"]"); + string dbmap = jxParam(pa,"dbmap"); + if(dbmap == "" && (m_id.find("__",0) >0) ) + dbmap = "QuickCode_Remark.dbmap"; + else if(dbmap == "") + dbmap ="QuickCode.dbmap"; + m_dbmap = dbmap; + //trace(m_dbmap); + + string name = jxParam(pa,"name"); + if(name == "") + name = id; + m_name = name; + string title = jxParam(pa,"title"); + if(title != "") + win__::SetWindowText(this.GetHWND(),title);*/ + OnRetrieve(); + } + + OnAttachEvent(); + SetAgent(); + Onital(); + return 1; + } + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/QuickCode_Tree.cpp b/jrj/project/business/BasicCode/QuickCode_Tree.cpp new file mode 100644 index 0000000..cd40c87 --- /dev/null +++ b/jrj/project/business/BasicCode/QuickCode_Tree.cpp @@ -0,0 +1,690 @@ +use"lang.vl" +use "win.vl" +use "dev:vm[xml.vm]" +use "treeview.vm" +use "dev:vm[xaserverarg.vm]" +use "dev:vm[xaserver.vm]" +use "dev:vm[xdwgrid.vm]" +use "dev:vm[xdwtable.vm]" +use "dev:vm[xutil.vm]" +use "file.vl" +use "list.vl" +unit vbusiness.vpage +[ + QuickCode_Tree is extend list; + about QuickCode_Tree + [ + field: + + method: + [ + xdwgrid__ dw_list; + treeview__ tv_1; + string m_config; + string m_agent; + string m_id; + string m_dbmap; + string treexquery; + string c_type; + msxml::IXMLDOMDocument m_configDoc; + string kpstr; + string strtpl; + string m_QueryTxt; + int alert(string str) + { + TApp::alert(this,str); + //win__::MessageBox(this.GetHWND(),str,"提示:",0); + return 0; + } + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode__ anode = new xnode__; + anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); + var xframeElement = win__::GetElement(); + var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]"); + if(agent) + { + string s = agent.xml+""; + SetAgentNodeContent (anode,s); + } + return 1; + } + int OnRetrieve() + { + dw_list.AcceptText(); + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("id",m_id); + arg.AddArg("sType",c_type); + arg.AddArg("QueryTxt", m_QueryTxt ); + //trace(arg.GetString()); + /*if (TDataSet::exec(m_config, "query1", arg.GetString(),x) != 1) + { + trace(x.GetXmlDoc().text); + return -1; + }*/ + if (url::get("QuickCode/entity/listaddtree",arg.GetString(),x) != 1) + { + trace(x.GetXmlDoc().text); + return -1; + } + //trace(x.GetXml()); + if(x.GetXml()=="") + { + xml__ xx=new xml__; + xx.setNativePointer(xml__::CreateInstance()); + xx.LoadXml("<root/>"); + dw_list.Retrieve(xx); + dw_list.Redraw(); + } + else + { + dw_list.Retrieve(x); + dw_list.Redraw(); + } + + return 1; + } + int OnTreeSelChanged(ref TNotifyEvent evt,int p) + { + ref NMTREEVIEW nmtv = evt.pnmh; + int hItem = nmtv.itemNew.hItem; + + int wid = tv_1.GetId(); + int hitem=treeview__::GetSelectedItem(wid); + //c_type=dw_type.GetItemLabel(hitem); + //如果是跟节点 + int roothitem=treeview__::GetRootItem(wid); + if(hitem == roothitem){ + c_type=""; + } + else + { + c_type = treeview__::GetItemLabel(wid,hitem); + + } + OnRetrieve(); + return 1; + } + int adduomfolder() + { + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("note","新增"); + arg.AddArg("m_id",m_id); + //win__::OpenWindow("dev:xpage[AddUomGroup.vx]",arg); + openUrl("公共设置.vface/xpage/quickcode/AddGroup", arg); + string ok = arg.GetArgString("return"); + if(ok == "ok"){ + string GroupName = arg.GetArgString("GroupName"); + xml__ xx=new xml__; + xx.setNativePointer(xml__::CreateInstance()); + xaserverarg__ args = new xaserverarg__; + args.setNativePointer(args.CreateInstance()); + args.AddArg("GroupName",GroupName); + args.AddArg("OldGroupName",""); + args.AddArg("m_id",m_id); + /*if(TFile::exec(m_config,"updateuomtype",args,xx)!=1) + { + trace("error:"+xx.GetXml()); + alert("保存出错!"); + return 0; + }*/ + if (url::get("QuickCode/pref/quickcode_tree.updateGroup",args.GetString(),xx) != 1) + { + trace("error:"+xx.GetXml()); + alert("保存出错!"); + return 0; + } + else + { + string vv=xx.GetXmlDoc().documentElement.text; + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + x.LoadXml("<row GroupName='"+GroupName+"'/>"); + int root = treeview__::GetRootItem(tv_1.GetId()); + if(vv=="OK") + { + treeview__::InsertChildItem(tv_1.GetId(), root, GroupName,x.GetXmlDoc().documentElement, 15); + } + + } + } + return 1; + } + int modifyuomfolder() + { + int wid = tv_1.GetId(); + int h = treeview__::GetSelectedItem(wid); + if (h<1) + { + alert("请选择需要修改的组名"); + return 0; + } + int roothitem=treeview__::GetRootItem(wid); + if(h==roothitem) + { + alert("不能修改根节点名称!"); + } + else + { + msxml::IXMLDOMElement e = treeview__::GetItemData(wid,h); + trace(e.xml); + //string OldGroupName= e.SelectSingleNode("@GroupName").text; + string OldGroupName= treeview__::GetItemLabel(wid,h); + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("note","修改"); + arg.AddArg("m_id",m_id); + arg.AddArg("GroupName",OldGroupName); + win__::OpenWindow("dev:xpage[AddUomGroup.vx]",arg); + string ok = arg.GetArgString("return"); + if(ok == "ok"){ + string NewGroupName = arg.GetArgString("GroupName"); + xml__ xx=new xml__; + xx.setNativePointer(xml__::CreateInstance()); + xaserverarg__ args = new xaserverarg__; + args.setNativePointer(args.CreateInstance()); + args.AddArg("GroupName",NewGroupName); + args.AddArg("OldGroupName",OldGroupName); + args.AddArg("m_id",m_id); + /*if(TFile::exec(m_config,"updateuomtype",args,xx)!=1) + { + trace("error:"+xx.GetXml()); + alert("保存出错!"); + return 0; + }*/ + if (url::get("QuickCode/pref/quickcode_tree.updateGroup",args.GetString(),xx)!=1) + { + trace("error:"+xx.GetXml()); + alert("保存出错!"); + return 0; + } + else + { + trace(xx.GetXml()); + string vv=xx.GetXmlDoc().documentElement.text; + if(vv=="OK") + { + treeview__::SetItemLabel(tv_1.GetId(), h,NewGroupName); + } + + } + } + } + return 1; + } + int deluomfolder() + { + + int wid = tv_1.GetId(); + int hitem=treeview__::GetSelectedItem(wid); + if (hitem<1) + { + alert("请选择需要删除的组名"); + return 0; + } + else + { + + int s=dw_list.GetRowCount(); + if (s>0) + { + alert("该分组下面存在数据,不能删除!"); + return 0; + } + int roothitem=treeview__::GetRootItem(wid); + if(hitem==roothitem) + { + alert("不能删除根节点!"); + } + else + { + //缺少判断删除的条件 + string GroupName =treeview__::GetItemLabel(wid,hitem); + if(win__::MessageBox(GetHWND(),"确定删除组名:"+GroupName+" 吗?","提示",1)==1) + { + xml__ xx=new xml__; + xx.setNativePointer(xml__::CreateInstance()); + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("GroupName",GroupName); + arg.AddArg("m_id",m_id); + trace(GroupName); + trace(m_id); + /*if (xaserver__::ExecXAction(GetServerUrl(),"[delete.type.FND_UOM.xa]",arg.GetString()) == 1) + { + treeview__::DeleteItem(wid,hitem); + //OnTreeSelChanged(); + }*/ + if (url::get("QuickCode/pref/quickcode_tree.deleteGroup",arg.GetString(),xx)== 1) + { + treeview__::DeleteItem(wid,hitem); + } + else + alert("删除失败!"); + } + } + } + return 1; + } + xdwgrid__ getDW() + { + return dw_list; + } + int GridSearch() + { + xml__ x = new xml__; + x.setNativePointer(xml__ ::CreateInstance()); + xaserver__::LoadUrl("","dev:vface[公共设置.vface]","",x); + //trace(x.GetXml()); + //trace(strtpl); + string aa=strtpl; + var doc = x.GetXmlDoc(); + var n = doc.selectSingleNode("//resource[@url='"+aa+"']/@src"); + //trace(n.text); + + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("sheet",n.text); + arg.AddArg("search",list::m_QueryTxt); + openUrl("view.dlg.vface/xpage/grid/column/search", arg); + string ok = arg.GetArgString("return"); + if(ok == "ok"){ + string txt = arg.GetArgString("search"); + if(txt != ""){ + m_QueryTxt = txt; + //trace(txt); + OnRetrieve(); + } + } + return 0; + } + int OnCmdDispatch(string comdid) + { + int hCursor = xutil__::SetCursorWait(); + xdwgrid__ dw=getDW(); + if(comdid == "save"){ + dw_list.AcceptText(); + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + msxml::IXMLDOMElement e= x.GetXmlDoc().documentElement; + e.SetAttribute("id", m_id); + //arg.AddArg("id",m_id); + //trace(m_id); + //trace(m_dbmap); + if(m_id=="开票银行") + { + xml__ kp = new xml__; + kp.setNativePointer(xml__::CreateInstance()); + kp.LoadXml("<root></root>"); + msxml::IXMLDOMElement ele= kp.GetXmlDoc().documentElement; + var list = e.SelectNodes("item[@update.modify='1' or @update.delete='1' ]"); + int j; + int k = list.length; + for (j=0; j<k; j++) + { + msxml::IXMLDOMElement ele1 = list.item(j); + ele.appendChild(ele1); + } + kpstr=ele.xml; + trace(ele.xml); + } + if(m_id=="开票银行") + { + arg.AddArg("content",kpstr); + } + else + { + arg.AddArg("content",e.xml); + } + arg.AddArg("dbmap", m_dbmap); + /*if(TFile::exec(m_config,"save",arg,x)!=1) + { + trace("error:"+x.GetXml()); + alert("保存出错!"); + return 0; + }*/ + trace(m_dbmap+"\r\n"+e.xml); + if (url::get("QuickCode/pref/quickcode.save",arg.GetString(),x) != 1) + { + string error = x.GetXmlDoc().text; + trace(error); + } + //trace(arg.GetString()); + if(x.GetXmlDoc().selectSingleNode("error")) + { + alert("保存出错2!"); + return 0; + } + dw_list.ResetUpdateStatus(); + alert("保存成功!"); + } + else if(comdid=="add"){ + dw.InsertRow(0); + int rows = dw.GetRowCount(); + dw.SetItemString(rows,"GroupName",c_type); + dw.SetItemString(rows,"BankName",c_type); + } + else if(comdid=="insert"){ + int row = dw.GetRow(); + if(row<1 || row>dw.GetRowCount()) return 0; + dw.InsertRow(row); + + dw.SetItemString(row,"GroupName",c_type); + } + else if(comdid == "delet"){ + dw_list.AcceptText(); + int row2 = dw.GetRow(); + if(row2<1 || row2>dw.GetRowCount()) return 0; + dw.DeleteRow(row2); + } + else if (comdid=="adduomfolder") + adduomfolder(); + else if (comdid=="modifyuomfolder") + modifyuomfolder(); + else if (comdid=="deluomfolder") + deluomfolder(); + else if (comdid=="search") + GridSearch(); + xutil__::RestoreCursor(hCursor); + return 0; + } + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(""+evt.pStrID); + } + int OnSetFocus(ref TNotifyEvent evt,int p){ + SetAgent(); + tv_1 = new treeview__; + tv_1.setNativePointer(this.GetControl("tv_1")); + int wid = tv_1.GetId(); + int root = treeview__::GetRootItem(wid); + treeview__::ExpandItem(wid,root); + return 1; + } + int OnDoubleClicked(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = evt.pnmh; + int row = hdr.row; + if(row<1 || row > dw_list.GetRowCount() ) return 0; + + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + //string str = hdr.data; + string colname=hdr.colname; + string str = dw_list.GetItemString(row, colname); + arg.AddArg("value",str); + openUrl("/sale/view/view.dlg/xpage/memo/edit", arg); + string comdid = arg.GetArgString("comdid"); + if(comdid=="xmOK") + { + string value = arg.GetArgString("value"); + dw_list.SetItemString(row,colname,value); + dw_list.Redraw(); + } + + return 1; + } + int ItemOutput() + { + string d = xaserver__::GetCurrentDate(); + d = d.left(10) +""; + dw_list.SaveAs(d); + return 1; + } + int OnSelectAllRow() + { + int rows = this.dw_list.GetRowCount(); + if(rows < 1) return -1; + this.dw_list.SelectRow(1, rows, true); + this.dw_list.Redraw(); + return 1; + } + int OnRowCopy() + { + int rows = this.dw_list.GetRowCount(); + if(rows < 1) return -1; + int cols = this.dw_list.GetColumnCount(); + string str = ""; + int row = this.dw_list.GetNextSelectRow(1); + int i; + while(row > 0) + { + string tmp1 = ""; + for(i=1; i<cols; i++) + { + int w = this.dw_list.GetColumnWidth(i); + if(w < 5) continue; + string tmp; + if(this.dw_list.GetItemDisplayString(row, i + 1)) + tmp = this.dw_list.GetItemDisplayString(row, i + 1); + else + tmp = this.dw_list.GetItemString(row, i + 1); + tmp1 += tmp + "\t"; + } + str += tmp1 + "\r\n"; + row = this.dw_list.GetNextSelectRow(row + 1); + } + this.dw_list.SetDataToClip(str); + return 1; + } + int OnColCopy(string col) + { + int rows = this.dw_list.GetRowCount(); + if(rows < 1) return -1; + string str = ""; + int row = this.dw_list.GetNextSelectRow(1); + while(row > 0) + { + string tmp; + if(this.dw_list.GetItemDisplayString(row, col)) + tmp = this.dw_list.GetItemDisplayString(row,col); + else + tmp = this.dw_list.GetItemString(row, col); + str += tmp + "\r\n"; + row = this.dw_list.GetNextSelectRow(row + 1); + } + this.dw_list.SetDataToClip(str); + + return 1; + } + int OnRClick(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = evt.pnmh; + int row = hdr.row; + + int m = win__::CreatePopupMenu(); + int MF_STRING = 0x00000000; + int MF_DISABLED = 0x00000002; + int TPM_RIGHTBUTTON = 0x0002; + int TPM_RETURNCMD = 0x0100; + int MF_CHECKED = 0x8; + int MF_SEPARATOR = 0x0800; + win__::AppendMenu(m,MF_STRING, 1, "复制行"); + win__::AppendMenu(m,MF_STRING, 101, "复制列"); + win__::AppendMenu(m,MF_SEPARATOR, -1, ""); + win__::AppendMenu(m,MF_STRING, 2, "全选"); + win__::AppendMenu(m,MF_SEPARATOR, -1, ""); + win__::AppendMenu(m,MF_STRING, 4, "导出到Excel"); + win__::AppendMenu(m,MF_SEPARATOR, -1, ""); + win__::AppendMenu(m,MF_STRING, 6, "显示列设置"); + xrect xr; + xpoint pt; + win__::GetCursorPos(pt); + int ret=win__::TrackPopupMenu(m, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, this.GetHWND(), xr); + + //trace(ret); + int hCursor = xutil__::SetCursorWait(); + if(ret == 1) {OnRowCopy();} + else if(ret == 101) { + string colname=hdr.colname; + if(colname != "") + OnColCopy(colname); + } + else if(ret == 2) {OnSelectAllRow();} + else if(ret == 4) {ItemOutput();} + else if(ret == 6) {} + xutil__::RestoreCursor(hCursor); + + return 1; + } + int OnAttachEvent() + { + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获得树的选择事件 + AttachEvent("tv_1", "TVN_SELCHANGED",OnTreeSelChanged); + AttachEvent("dw_list","DWV_DOUBLECLICKED",OnDoubleClicked);//行双击 + AttachEvent("dw_list","DWV_RCLICKED",OnRClick);//鼠标右键 + } + + + string jxParam(string p, string n) + { + if(p != "") + { + p +="&"; + int i = 1; + while (p.find("=",0)>0) + { + string name = p.mid(0, p.find("=",0)); + string value = p.mid(p.find("=",0) + 1, p.find("&",0) - p.find("=",0) - 1); + if(name==n) return ""+value; + i += 1; + p = p.mid(p.find("&",0) + 1, p.length()); + } + } + return ""; + } + int getURLParam() + { + if(GetParam()) + { + xpage__ xp=new xpage__; + xp.setNativePointer(this.GetXPage()); + string aurl = xp.GetWkUrl(); + xaserverarg__ arg; + if(aurl && aurl.find("native=true",0)>0) + { + int p = this.GetParam(); + arg = new xaserverarg__; + arg.setNativePointer(p); + } + else + { + arg = GetParam(); + } + string config = arg.GetArgString("config"); + xml__ x = new xml__; + x.setNativePointer(xml__::CreateInstance()); + if(config == "") + { + string configXml = arg.GetArgString("configxml"); + x.LoadXml(configXml); + } + else + { + getUrl(config, "", x); + } + m_configDoc = x.GetXmlDoc(); + + } + + return 1; + } + int loaded() + { + getURLParam(); + msxml::IXMLDOMDocument ee=m_configDoc; + string id=m_id; + var n = ee.selectSingleNode("//list/dwview[@type='dwgrid'][@id='"+id+"']"); + if(n) + { + msxml::IXMLDOMElement e = n; + //trace(e.xml); + string vface = m_configDoc.selectSingleNode("//vface[1]").text; + string dwname = "";//e.selectsingleNode("@name").text; + string tpl = "";//e.selectsingleNode("@url").text; + string dbmap = ""; + string strtreexquery=""; + if(e.selectSingleNode("@name")) dwname = e.selectSingleNode("@name").text; + if(e.selectSingleNode("@url")) tpl = e.selectSingleNode("@url").text; + if(e.selectSingleNode("@dbmap")) dbmap = e.selectSingleNode("@dbmap").text; + if(e.selectSingleNode("@treexquery")) strtreexquery = e.selectSingleNode("@treexquery").text; + m_dbmap = dbmap; + treexquery = strtreexquery; + //trace(vface +"/"+ tpl); + //trace(selectmode); + dw_list = new xdwgrid__; + dw_list.setNativePointer(GetControl(dwname)); + dw_list.openUrl(vface +"/"+ tpl); + strtpl=tpl; + trace(tpl); + + } + } + int onload() + { + + + m_config = "QuickCode.config"; + m_agent = ""; + dw_list = new xdwtable__; + dw_list.setNativePointer(GetControl("dw_list")); + if(this.GetParam()) + { + xaserverarg__ arg = this.GetParam(); + //trace(arg.GetString()); + string id = arg.GetArgString("id"); + if(id == "") return 0; + m_id = id; + loaded(); + + /*string tpl = arg.GetArgString("tpl"); + if(tpl == "") + tpl = "QuickCode.tpl/QuickCode"; + dw_list.SetDataObject(GetServerUrl(),"dev:sheet["+tpl+"]"); + //dw_list.SetColHeaderHeight(0); + //dw_list.SetRowSelectorWidth(0); + string dbmap = arg.GetArgString("dbmap"); + if(dbmap == "") + dbmap = "QuickCode.dbmap"; + m_dbmap = dbmap; + string txquery=arg.GetArgString("treexquery"); + treexquery=txquery; + string title = arg.GetArgString("title"); + if(title != "") + win__::SetWindowText(this.GetHWND(),title);*/ + OnRetrieve(); + } + SetAgent(); + string aa=treexquery; + string xfNodeAgentArea2 = "treeagent"; + xnode__ tnode = new xnode__; + tnode.setNativePointer(GetAgentNode(xfNodeAgentArea2)); + string stree="<vbox><xtree name='tv_1' imagelist='0'>"; + stree +="<treeitem src='xquery:["+aa+"]' xcaption='@GroupName' xroot='/root' xpath='row' xchildpath='row' image='15' loop='yes' xdata='.'/>"; + stree +="</xtree></vbox>"; + SetAgentNodeContent (tnode,stree); + + tv_1 = new treeview__; + tv_1.setNativePointer(this.GetControl("tv_1")); + int wid = tv_1.GetId(); + int root = treeview__::GetRootItem(wid); + treeview__::ExpandItem(wid,root); + OnAttachEvent(); + + return 1; + } + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/SKUItem.categoryselect.cpp b/jrj/project/business/BasicCode/SKUItem.categoryselect.cpp new file mode 100644 index 0000000..aa3bcc1 --- /dev/null +++ b/jrj/project/business/BasicCode/SKUItem.categoryselect.cpp @@ -0,0 +1,216 @@ +use"lang.vl" +use "win.vl" +use "treeview.vm" +use "file.vl" +use "dev:vm[xdwtable.vm]" + +unit vbusiness.vpage +[ + SKUItemcategoryselect is extend TProduct; + about SKUItemcategoryselect + [ + field: + xdwtable__ dw_category; + method: + [ + treeview__ tv_gs; + //命令发布函数 + string GetPath(int tv, int h) + { + string str = treeview__::GetItemLabel(tv, h); + int k = treeview__::GetParentItem(tv, h); + int r = treeview__::GetRootItem(tv); + while(k > 0 && r != k) + { + string tmp = treeview__::GetItemLabel(tv, k); + str = tmp+"\\" + str; + k = treeview__::GetParentItem(tv, k); + } + return str; + } + int xunhuan(int pItem, int hItem) + { + xdwtable__ dw = new xdwtable__; + dw.setNativePointer(dw_category.FindDwTable("Item",0)); + if(treeview__::GetChecked(tv_gs.GetId(),hItem) > 0) + { + msxml::IXMLDOMElement e = treeview__::GetItemData(tv_gs.GetId(),hItem); + string id = e.selectSingleNode("CategoryID").text; + string Name =GetPath(tv_gs.GetId(), hItem); + trace(Name); + if(dw.GetItemString(1,"CategoryID")=="") + { + dw.ItemChangeTo(1,"CategoryID",id); + dw.ItemChangeTo(1,"Category",Name); + } + else + { + int n=dw.InsertRow(0); + dw.ItemChangeTo(n,"CategoryID",id); + dw.ItemChangeTo(n,"Category",Name); + } + + + } + + int cItem = treeview__::GetChildItem(tv_gs.GetId(), hItem); + if(cItem > 0) + { + xunhuan(pItem,cItem); + } + int nItem = treeview__::GetNextItem(tv_gs.GetId(), hItem); + if(nItem > 0) + { + xunhuan(pItem,nItem); + } + return 1; + } + int OnCmdDispatch(string comdid) + { + if(comdid=="ok") + { + int hitem = treeview__::GetSelectedItem(tv_gs.GetId()); + if (hitem >0) + { + msxml::IXMLDOMElement ele=treeview__::GetItemData(tv_gs.GetId(),hitem); + string guid = ele.selectSingleNode("CategoryID").text; + //string label = ele.selectSingleNode("CName").text; + string label = GetPath(tv_gs.GetId(), hitem); + trace(label); + xunhuan(hitem, treeview__::GetChildItem(tv_gs.GetId(), treeview__::GetRootItem(tv_gs.GetId()))); + win__::CloseWindow(); + } + return 1; + } + if(comdid=="close") + win__::CloseWindow(); + return 0; + } + + int OnCmdDispatch0(string comdid) + { + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg = win__::GetParam(); + arg.AddArg("comdid",comdid); + int xitem = treeview__::GetSelectedItem(tv_gs.GetId()); + if(comdid=="ok" && xitem != 0) + { + msxml::IXMLDOMElement e=treeview__::GetItemData(tv_gs.GetId(),xitem); + + string sHasChild=e.selectSingleNode("@HasChild").text; + + if(treeview__::GetChildItem(tv_gs.GetId(),xitem)>0 || sHasChild=="1") + { + alert("提示:请选择最后一级类别!"); + return 0; + } + + string ID = e.selectSingleNode("CategoryID").text; + string CName = e.selectSingleNode("CName").text; + trace(CName); + string ruler; + if(e.selectSingleNode("SpecRule")) + ruler = e.selectSingleNode("SpecRule").text; + else + ruler =""; + arg.AddArg("CategoryID",ID); + arg.AddArg("CName",CName); + arg.AddArg("SpecRule",ruler); + + } + win__::CloseWindow(); + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(evt.pStrID); + } + + int CreateSubTree(int pitem){ + msxml::IXMLDOMElement sitemdata=treeview__::GetItemData(tv_gs.GetId(), pitem); + string sHasChild=sitemdata.selectSingleNode("@HasChild").text;//sitemdata.getAttribute("HasChild"); + string pid=sitemdata.selectSingleNode("CategoryID").text; + //trace(sHasChild+"sdaga"+pid); + if(sHasChild=="1"){//数据有子节点 + int citem=treeview__::GetChildItem(tv_gs.GetId(), pitem); + + //alert(string(citem)); + if (citem==0){//树视图有子节点 + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("parentID",pid); + //if(xaserver__::ExecXQuery(GetServerUrl(),"[ItemCategoryEx.xq]",arg.GetString(),x)!=1) + if(url::get(GetEntityName(1)+"/entity/category",arg.GetString(),x)!=1) + { + trace(x.GetXml()); + return 0; + } + //trace(x.GetXml()); + var list=x.GetXmlDoc().selectNodes("root/Category"); + int i=0,s=list.length; + msxml::IXMLDOMElement xitem; + for (i=0;i<s;i++){ + xitem=list.item(s - i - 1); + string Name=xitem.selectSingleNode("CName").text; + string Has2D=xitem.selectSingleNode("@Has2D").text;//item.getAttribute("Has2D"); + if (Has2D=="1") + Name=Name+"*"; + int kitem=treeview__::InsertItem(tv_gs.GetId(), pitem,0,Name,xitem,15); + //int kitem=treeview__::InsertChildItem(tv_gs.GetId(), pitem,Name,xitem,15); + string HasChild=xitem.selectSingleNode("@HasChild").text;//item.getAttribute("HasChild"); + //trace(HasChild, kitem); + if (HasChild=="1") + treeview__::SetItemChild1(tv_gs.GetId(), kitem,1); + } + } + } + return 1; + } + + int CreateRootTree(){ + string rootid="00000000-0000-0000-0000-000000000000"; + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + x.LoadXml("<Category HasChild='1'><CategoryID>"+rootid+"</CategoryID></Category>"); + int hroot=treeview__::InsertItem(tv_gs.GetId(),"公司产品类别", x.GetXmlDoc().documentElement, 17); + CreateSubTree(hroot); + treeview__::ExpandItemEx(tv_gs.GetId(),hroot); + return 1; + } + + int OnTreeExpanding(ref TNotifyEvent evt,int p) { + ref NMTREEVIEW nmtv = evt.pnmh; + int sitem = nmtv.itemNew.hItem; + CreateSubTree(sitem); + return 1; + + } + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获得树的展开事件 + AttachEvent("tv_gs", "TVN_ITEMEXPANDING",OnTreeExpanding); + } + int onload() + { + if (GetParam()) + { + xaserverarg__ arg1=GetParam(); + dw_category = new xdwtable__; + dw_category.setNativePointer(arg1.GetArgString("dw_category").toInt()); + } + tv_gs = new treeview__; + tv_gs.setNativePointer(GetControl("tv_gs")); + CreateRootTree(); + OnAttachEvent(); + return 1; + } + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/SKUItem.cpp b/jrj/project/business/BasicCode/SKUItem.cpp new file mode 100644 index 0000000..01ce4d8 --- /dev/null +++ b/jrj/project/business/BasicCode/SKUItem.cpp @@ -0,0 +1,302 @@ +use "win.vl" +use "dev:vm[xdwgrid.vm]" +use "dev:vm[xdwtable.vm]" +use "pref.vl" +use "dev:vm[xml.vm]" +use "dev:vm[xaserverarg.vm]" +use "dev:vm[xaserver.vm]" +use "dev:vm[xutil.vm]" +use "frame.vl" +use "treeview.vm" +use "file.vl" +//unit vclient.vobject tpp +unit vbusiness.xpage +[ + SKUItem is extend frame; + about SKUItem + [ + field: + [ + treeview__ tv_1; + xdwgrid__ dw_list; + string m_type; + string CategoryID; + xnode__ m_agentNode; //Agent Condition + string m_agentCond; //Agent Node + string m_searchtxt; + ] + + method: + [ + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode__ anode = new xnode__; + anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); + var xframeElement = GetElement(); + var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent) + { + string s = agent.xml; + SetAgentNodeContent (anode,s); + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt,int param) + { + SetAgent(); + + //重置工具条 + return 1; + } + + int OnReTrieve() + { + string query="[SKUItem.tree.xq]"; + xml__ x = new xml__; + x.setNativePointer(x.CreateInstance()); + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("parentID",CategoryID); + arg.AddArg("query",""); + if (xaserver__::ExecXQuery(GetServerUrl(),query,arg.GetString(),x)!=1) + { + trace(x.GetXmlDoc().text); + return -1; + }else + { + dw_list.openUrl("其他设置.vface/template/other/SKUItem"); + dw_list.Retrieve(x); + dw_list.Redraw(); + } + return 1; + } + + int OnTreeSelChanged(ref TNotifyEvent evt,int p){ + ref NMTREEVIEW nmtv = evt.pnmh; + int sitem = nmtv.itemNew.hItem; + + int hCursor = xutil__::SetCursorWait(); + dw_list.AcceptText(); + xml__ z= new xml__; + z.setNativePointer(xml__::CreateInstance()); + z.LoadXml("<root/>"); + dw_list.Retrieve(z); + dw_list.Redraw(); + dw_list.ResetUpdateStatus(); + + msxml::IXMLDOMElement ele=treeview__::GetItemData(tv_1.GetId(), sitem); + if(!ele.selectSingleNode("ID")) return 0; + CategoryID = ele.selectSingleNode("ID").text; + //trace(CategoryID); + m_searchtxt = ""; + + OnReTrieve(); + xutil__::RestoreCursor(hCursor); + return 1; + } + + int CreateSubTree(int pitem){ + msxml::IXMLDOMElement sitemdata=treeview__::GetItemData(tv_1.GetId(), pitem); + string sHasChild=sitemdata.selectSingleNode("@HasChild").text;//sitemdata.getAttribute("HasChild"); + //trace(sHasChild); + string pid=sitemdata.selectSingleNode("ID").text; + //trace(sHasChild+"sdaga"+pid); + if(sHasChild=="1"){//数据有子节点 + int citem=treeview__::GetChildItem(tv_1.GetId(), pitem); + //alert(string(citem)); + if (citem==0){//树视图有子节点 + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("parentID",pid); + arg.AddArg("query",""); + if(xaserver__::ExecXQuery(GetServerUrl(),"[SKUItem.tree.xq]",arg.GetString(),x)!=1) + { + trace(x.GetXml()); + return 0; + } + //trace(x.GetXml()); + var list=x.GetXmlDoc().selectNodes("root/SKUItem"); + int i=0,s=list.length; + msxml::IXMLDOMElement xitem; + msxml::IXMLDOMNode d; + for (i=0;i<s;i++){ + xitem= list.item(s - i - 1); + //if(i==0)xitem.setAttribute("HasChild","1"); + string Name=xitem.selectSingleNode("ItemName").text; + int kitem=treeview__::InsertItem(tv_1.GetId(), pitem,0,Name,xitem,15); + //int kitem=treeview__::InsertChildItem(tv_1.GetId(), pitem,Name,xitem,15); + string HasChild=xitem.selectSingleNode("@HasChild").text;//item.getAttribute("HasChild"); + //trace(HasChild, kitem); + if (HasChild=="1") + treeview__::SetItemChild1(tv_1.GetId(), kitem,1); + } + } + } + return 1; + } + int CreateRootTree(){ + string id="00000000-0000-0000-0000-000000000000"; + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + x.LoadXml("<SKUItem HasChild='1' ><ID>"+id+"</ID></SKUItem>"); + int hroot=treeview__::InsertItem(tv_1.GetId(), "产品项目分类", x.GetXmlDoc().documentElement, 17); + //trace(hroot); + CreateSubTree(hroot); + treeview__::ExpandItemEx(tv_1.GetId(), hroot); + CategoryID = id; + OnReTrieve(); + return 1; + } + int OnTreeExpanding(ref TNotifyEvent evt,int p) { + ref NMTREEVIEW nmtv = evt.pnmh; + int sitem = nmtv.itemNew.hItem; + CreateSubTree(sitem); + return 1; + } + int afterSave(){ + int hitem = treeview__::GetSelectedItem(tv_1.GetId()); + if(hitem == 0) + hitem = treeview__::GetRootItem(tv_1.GetId()); + int rows = dw_list.GetRowCount(); + msxml::IXMLDOMElement ele = treeview__::GetItemData(tv_1.GetId() ,hitem); + + int firstChild = treeview__::GetChildItem(tv_1.GetId() ,hitem); + while (firstChild>0){ + treeview__::DeleteItem(tv_1.GetId() ,firstChild); + firstChild = treeview__::GetChildItem(tv_1.GetId() ,hitem); + } + if(rows>0) + { + treeview__::SetItemChild1(tv_1.GetId() ,hitem,1); + ele.setAttribute("HasChild","1"); + //trace(ele.xml); + treeview__::SetItemData(tv_1.GetId() ,hitem,ele); + } + else + { + treeview__::SetItemChild1(tv_1.GetId() ,hitem,0); + ele.setAttribute("HasChild","0"); + //trace(ele.xml); + treeview__::SetItemData(tv_1.GetId() ,hitem,ele); + } + CreateSubTree(hitem); + if(treeview__::GetRootItem(tv_1.GetId()) == hitem) + treeview__::ExpandItemEx(tv_1.GetId() ,hitem); + + dw_list.ResetUpdateStatus(); + return 0; + } + int OnSave() + { + xml__ x=new xml__; + x.setNativePointer(x.CreateInstance()); + dw_list.AcceptText(); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + trace(x.GetXml()); + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("content", x.GetXml()); + arg.AddArg("dbmap", "SKUItem.dbmap"); + if(xaserver__::ExecXAction(this.GetServerUrl(),"[onSave.xa]",arg.GetString(),x)!=1) + { + trace(x.GetXmlDoc().documentElement.text); + alert("保存失败"); + }else{ + alert("保存成功"); + } + dw_list.ResetUpdateStatus(); + dw_list.Redraw(); + afterSave(); + return 1; + } + int OnSetValue( int row){ + dw_list.SetItemString(row,"PID",CategoryID); + dw_list.SetItemString(row,"ID",TApp::GetGuid()); + return 1; + } + int OnAddRow() + { + int row = dw_list.InsertRow(0); + int rows = dw_list.GetRowCount(); + OnSetValue(rows); + dw_list.SetRow(dw_list.GetRowCount()); + //trace(row.toString()); + return 1; + } + + int OnInsertRow() + { + int row=dw_list.GetRow(); + if(row<0 || row>dw_list.GetRowCount()) return 0; + dw_list.InsertRow(row); + OnSetValue(row); + dw_list.SetRow(row); + return 1; + } + + int OnDeleteRow() + { + int row = dw_list.GetRow(); + if(row<0 || row>dw_list.GetRowCount()) return 0; + dw_list.DeleteRow(row); + return 1; + } + + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if (comdid =="Save") OnSave(); + else if (comdid =="AddRow") OnAddRow(); + else if (comdid =="InsertRow") OnInsertRow(); + else if (comdid =="DeleteRow") OnDeleteRow(); + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + //获得树的选择事件 + AttachEvent("tv_1", "TVN_SELCHANGED",OnTreeSelChanged); + AttachEvent("tv_1", "TVN_ITEMEXPANDING",OnTreeExpanding); + } + + int OnInitial() + { + SetAgent(); + OnAttachEvent(); + return 1; + } + + int onload() + { + m_type = "all"; + tv_1 = new treeview__; + tv_1.setNativePointer(this.GetControl("tv_1")); + dw_list = new xdwgrid__; + dw_list.setNativePointer(this.GetControl("dw_list")); + dw_list.openUrl("其他设置.vface/template/other/SKUItem"); + + OnInitial(); + CreateRootTree(); + + return 1; + } + ] + + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/SKUItem.select.cpp b/jrj/project/business/BasicCode/SKUItem.select.cpp new file mode 100644 index 0000000..273a52a --- /dev/null +++ b/jrj/project/business/BasicCode/SKUItem.select.cpp @@ -0,0 +1,126 @@ +use "dev:code[SKUItem.vx]" + +unit vbusiness.vpage +[ + SKUItemImport is extend SKUItem; + about SKUItemImport + [ + field: + xdwgrid__ dw_list; + treeview__ tv_1; + xdwtable__ dw_maint; + method: + [ + + string jxParam(string p, string n) + { + if(p != "") + { + + int i = 1; + while (p.find("=",0)>0) + { + string name = p.mid(0, p.find("=",0)); + string value = p.mid(p.find("=",0) + 1, p.find("=",0) - 1); + return ""+value; + i += 1; + } + } + return ""; + } + int OnSelectAll() + { + if(this.dw_list.GetRowCount() > 0 ) + this.dw_list.SelectRow(1,true); + + this.dw_list.SelectRow(0,true); + this.dw_list.Redraw(); + return 1; + } + + int OnSelectNo() + { + this.dw_list.SelectRow(0,false); + this.dw_list.Redraw(); + return 1; + } + + int OnOk() + { + + xdwtable__ dw = new xdwtable__; + dw.setNativePointer(dw_maint.FindDwTable("Item",0)); + + int row = SKUItem::dw_list.GetNextSelectRow(1); + if (row<1) + { + alert("请选择项目名称!"); + return 1; + } + + while (row>0) + { + + msxml::IXMLDOMElement e =SKUItem::dw_list.GetRowElement(row); + string ItemName = e.selectSingleNode("ItemName").text+""; + //trace(ItemName); + if(dw.GetItemString(1,"ItemName")=="") + { + dw.SetItemString(1,"SeqNo","1"); + dw.ItemChangeTo(1,"ItemName",ItemName); + } + else + { + int n=dw.InsertRow(0); + dw.SetItemString(n,"SeqNo",n.ToString()); + dw.ItemChangeTo(n,"ItemName",ItemName); + } + row = SKUItem::dw_list.GetNextSelectRow(row +1); + } + CloseWindow(); + return 1; + } + + int OnCancel() + { + CloseWindow(); + return 1; + } + int OnDoubleClicked(ref TNotifyEvent evt,int p) + { + OnOk(); + return 1; + } + + int OnCmdDispatch(string comdid) + { + if (comdid=="SelectAll") OnSelectAll(); + else if (comdid=="SelectNo") OnSelectNo(); + else if (comdid=="cb_import") OnOk(); + else if (comdid=="cb_close") OnCancel(); + //else if (comdid=="query") GridSearch(); + return 0; + } + + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(evt.pStrID); + } + + int onload() + { + if (GetParam()) + { + xaserverarg__ arg1=GetParam(); + dw_maint = new xdwtable__; + dw_maint.setNativePointer(arg1.GetArgString("dw_maint").toInt()); + } + SKUItem::onload(); + SKUItem::dw_list.SetSelectionMode(3); //3 + SKUItem::dw_list.SetReadOnly(true); + AttachEvent("WM_XCOMMAND",OnXCommand); + AttachEvent("dw_list","DWV_DOUBLECLICKED",OnDoubleClicked);//行双击 + } + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/SKUTemplate.cpp b/jrj/project/business/BasicCode/SKUTemplate.cpp new file mode 100644 index 0000000..235c0dc --- /dev/null +++ b/jrj/project/business/BasicCode/SKUTemplate.cpp @@ -0,0 +1,419 @@ +use "list.vl" +use "dev:vm[combobox.vm]" +use "treeview.vm" +use "dev:vm[gridpages.vm]" +use "dev:vm[xutil.vm]" +use "dev:vm[xpage.vm]" +use "dev:vm[xcell.vm]" +use "file.vl" +use "publiccode.vl" + +unit vbusiness.entity +[ + SKUTemplate is extend frame; + about SKUTemplate + [ + field: + [ + xdwgrid__ dw_list; + xdwtable__ dw_maint; + xdwtable__ dw_category; + int rowno; + ] + + method: + [ + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode__ anode = new xnode__; + anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); + var xframeElement = GetElement(); + var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent) + { + string s = agent.xml; + SetAgentNodeContent (anode,s); + } + return 1; + } + + int OnSetFocus(ref TEvent evt,int p) + { + SetAgent() ; + return 1; + } + + int OnReTrieve() + { + string query="[SKUTemplate.list.xq]"; + xml__ x = new xml__; + x.setNativePointer(x.CreateInstance()); + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + if (xaserver__::ExecXQuery(GetServerUrl(),query,arg.GetString(),x)!=1) + { + trace(x.GetXmlDoc().text); + return -1; + }else + { + dw_list.Retrieve(x); + dw_list.Redraw(); + } + return 1; + } + int OnRowChanged(ref TNotifyEvent evt,int p) + { + + ref DWNMHDR hdr = evt.pnmh; + int ll_row = hdr.row; + rowno=ll_row; + string TemplateContent = dw_list.GetItemString(ll_row,"TemplateContent"); + string Category = dw_list.GetItemString(ll_row,"Category"); + if(TemplateContent=="") + { + dw_maint.openUrl("其他设置.vface/template/other/TemplateContent"); + dw_maint.SetColHeaderHeight(0); + dw_maint.SetRowSelectorWidth(0); + } + if(Category=="") + { + dw_category.openUrl("其他设置.vface/template/other/TemplateCategory"); + dw_category.SetColHeaderHeight(0); + dw_category.SetRowSelectorWidth(0); + } + xml__ x = new xml__; + x.setNativePointer(x.CreateInstance()); + x.LoadXml(TemplateContent); + xml__ x1 = new xml__; + x1.setNativePointer(x.CreateInstance()); + x1.LoadXml(Category); + dw_maint.Retrieve(x); + dw_maint.Redraw(); + dw_category.Retrieve(x1); + dw_category.Redraw(); + return 1; + } + int OnSave() + { + dw_list.AcceptText(); + dw_maint.AcceptText(); + dw_category.AcceptText(); + + xml__ x=new xml__; + x.setNativePointer(x.CreateInstance()); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + trace(x.GetXml()); + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("content", x.GetXml()); + arg.AddArg("dbmap", "SKUTemplate.dbmap"); + if(xaserver__::ExecXAction(this.GetServerUrl(),"[onSave.xa]",arg.GetString(),x)!=1) + { + trace(x.GetXmlDoc().documentElement.text); + alert("保存失败"); + }else{ + alert("保存成功"); + } + dw_list.ResetUpdateStatus(); + dw_maint.ResetUpdateStatus(); + dw_category.ResetUpdateStatus(); + dw_list.Redraw(); + dw_maint.Redraw(); + dw_category.Redraw(); + return 1; + } + int OnSetValue( int row){ + dw_list.SetItemString(row,"TemplateID",TApp::GetGuid()); + return 1; + } + int RemoveAttribute(xml__ x,string nodename)//根据名称删除属性节点 + { + msxml::IXMLDOMElement e; + var list = x.GetXmlDoc().getElementsByTagName(""+nodename+""); + if(list) + { + + int nlen = list.length; + int i; + for(i=0; i<nlen; i++) + { + e = list.item(i); + //trace(e.xml); + e.removeAttribute("update.new"); + e.removeAttribute("update.modify"); + e.removeAttribute("update.delete"); + e.removeAttribute("guid"); + e.removeAttribute("update.origin"); + e.removeAttribute("isnull"); + //trace(e.xml); + } + } + } + int setMaint() + { + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + dw_maint.DwUpdateAllTo(x.GetXmlDoc()); + int row = dw_list.GetRow(); + trace(x.GetXml()); + RemoveAttribute(x,"TemplateContent"); + RemoveAttribute(x,"Item"); + RemoveAttribute(x,"ItemName"); + RemoveAttribute(x,"Remark"); + RemoveAttribute(x,"SeqNo"); + //trace(x.GetXml()); + dw_list.SetItemString(row, "TemplateContent", x.GetXml()); + dw_list.Redraw(); + return 1; + } + int setItemCategory() + { + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + dw_category.DwUpdateAllTo(x.GetXmlDoc()); + int row = dw_list.GetRow(); + trace(row); + dw_list.SetItemString(row, "Category", x.GetXml()); + return 1; + } + int OnAddRow() + { + int row = dw_list.InsertRow(0); + int rows = dw_list.GetRowCount(); + OnSetValue(rows); + dw_list.SetRow(dw_list.GetRowCount()); + trace(row.toString()); + dw_maint.openUrl("其他设置.vface/template/other/TemplateContent"); + dw_maint.SetColHeaderHeight(0); + dw_maint.SetRowSelectorWidth(0); + dw_category.openUrl("其他设置.vface/template/other/TemplateCategory"); + dw_category.SetColHeaderHeight(0); + dw_category.SetRowSelectorWidth(0); + return 1; + } + + int OnInsertRow() + { + int row=dw_list.GetRow(); + if(row<0 || row>dw_list.GetRowCount()) return 0; + dw_list.InsertRow(row); + OnSetValue(row); + dw_list.SetRow(row); + dw_maint.openUrl("其他设置.vface/template/other/TemplateContent"); + dw_maint.SetColHeaderHeight(0); + dw_maint.SetRowSelectorWidth(0); + dw_category.openUrl("其他设置.vface/template/other/TemplateCategory"); + dw_category.SetColHeaderHeight(0); + dw_category.SetRowSelectorWidth(0); + return 1; + } + int OnChangeRowNo(int row) + { + xdwtable__ dw = new xdwtable__; + dw.setNativePointer(dw_maint.FindDwTable("Item",0)); + int i; + for (i=row; i<=dw.GetRowCount(); i++) + dw.SetItemString(i, "SeqNo", i.toString()); + return 1; + } + int OnDeleteRow() + { + int row = dw_list.GetRow(); + if(row<0 || row>dw_list.GetRowCount()) return 0; + dw_list.DeleteRow(row); + dw_maint.openUrl("其他设置.vface/template/other/TemplateContent"); + dw_maint.SetColHeaderHeight(0); + dw_maint.SetRowSelectorWidth(0); + dw_category.openUrl("其他设置.vface/template/other/TemplateCategory"); + dw_category.SetColHeaderHeight(0); + dw_category.SetRowSelectorWidth(0); + return 1; + } + int RemoveChild(xml__ x,string nodename)//根据名称删除节点 + { + msxml::IXMLDOMElement e; + var list = x.GetXmlDoc().SelectNodes("//Item[@update.delete='1']"); + if(list) + { + int nlen = list.length; + int i; + for(i=0; i<nlen; i++) + { + e = list.item(i); + //trace(e.xml); + e.parentNode.removeChild(e); + //trace(e.xml); + } + } + } + int setMaint_removeChild() + { + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + dw_maint.DwUpdateAllTo(x.GetXmlDoc()); + int row = dw_list.GetRow(); + //trace(x.GetXml()); + RemoveChild(x,"Item"); + RemoveAttribute(x,"TemplateContent"); + RemoveAttribute(x,"Item"); + RemoveAttribute(x,"ItemName"); + RemoveAttribute(x,"Remark"); + RemoveAttribute(x,"SeqNo"); + //trace(x.GetXml()); + dw_list.SetItemString(row, "TemplateContent", x.GetXml()); + dw_list.Redraw(); + return 1; + } + int setItemCategory_removeChild() + { + xml__ x=new xml__; + x.setNativePointer(xml__::CreateInstance()); + dw_category.DwUpdateAllTo(x.GetXmlDoc()); + int row = dw_list.GetRow(); + RemoveChild(x,"Item"); + trace(row); + dw_list.SetItemString(row, "Category", x.GetXml()); + dw_list.Redraw(); + return 1; + } + int del(xdwtable__ dw_1) + { + xdwtable__ dw = new xdwtable__; + dw.setNativePointer(dw_1.GetCurTable()); + int row = dw.GetRow(); + if(row < 1 || row > dw.GetRowCount()) return -1; + dw.DeleteRow(row); + //trace(dw.GetDwName()); + if(dw_1.GetDwName()=="TemplateContent") + { + OnChangeRowNo(row); + if(dw.GetRowCount()==1 && dw.GetItemString(1,"ItemName")=="") + { + dw_list.SetItemString(rowno, "TemplateContent", ""); + dw_list.Redraw(); + } + else + { + setMaint_removeChild(); + } + + } + if(dw_1.GetDwName()=="Categorys") + { + trace(dw.GetRowCount()); + if(dw.GetRowCount()==1 && dw.GetItemString(1,"CategoryID")=="") + { + dw_list.SetItemString(rowno, "Category", ""); + dw_list.Redraw(); + } + else + { + setItemCategory_removeChild(); + } + + } + + return 1; + } + int SKUItem() + { + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("dw_maint",dw_maint.__nativept.toString()); + openUrl("其他设置.vface/xpage/SKUItem/select",arg); + return 1; + } + int SKUItemcategory() + { + xaserverarg__ arg=new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("dw_category",dw_category.__nativept.toString()); + openUrl("其他设置.vface/xpage/SKUItemcategory/select",arg); + return 1; + } + int SKUItemModify() + { + openUrl("其他设置.vface/xpage/SKUItem/list"); + return 1; + } + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if (comdid =="save") OnSave(); + else if (comdid =="AddRow") OnAddRow(); + else if (comdid =="InsertRow") OnInsertRow(); + else if (comdid =="DeleteRow") OnDeleteRow(); + else if (comdid =="SKUItem") SKUItem(); + else if (comdid =="SKUItemcategory") SKUItemcategory(); + else if(comdid == "del_1") del(dw_maint); + else if(comdid == "del_2") del(dw_category); + else if(comdid == "SKUItemModify") SKUItemModify(); + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnMaintChanged(ref TNotifyEvent evt,int p) + { + //trace("hello"); + setMaint(); + return 1; + } + + int OnCategoryChanged(ref TNotifyEvent evt,int p) + { + setItemCategory(); + return 1; + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + AttachEvent("dw_maint","DWV_ITEMCHANGED",OnMaintChanged); + AttachEvent("dw_category","DWV_ITEMCHANGED",OnCategoryChanged); + AttachEvent("dw_list","DWV_ROWFOCUSCHANGED",OnRowChanged); + + return 1; + } + int OnInitial() + { + SetAgent(); + OnAttachEvent(); + return 1; + } + int onload() + { + dw_list = new xdwgrid__; + dw_list.setNativePointer(this.GetControl("dw_list")); + dw_list.openUrl("其他设置.vface/template/other/SKUTemplate"); + + dw_maint = new xdwtable__; + dw_maint.setNativePointer(GetControl("dw_maint")); + dw_maint.openUrl("其他设置.vface/template/other/TemplateContent"); + dw_maint.SetColHeaderHeight(0); + dw_maint.SetRowSelectorWidth(0); + + dw_category = new xdwtable__; + dw_category.setNativePointer(GetControl("dw_category")); + dw_category.openUrl("其他设置.vface/template/other/TemplateCategory"); + dw_category.SetColHeaderHeight(0); + dw_category.SetRowSelectorWidth(0); + dw_category.SetReadOnly(true); + OnInitial(); + OnReTrieve(); + xdwtable__ dw = new xdwtable__; + dw.setNativePointer(dw_category.FindDwTable("Item",0)); + trace(dw.GetRowCount()); + return 1; + } + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/SKUTemplate.select.cpp b/jrj/project/business/BasicCode/SKUTemplate.select.cpp new file mode 100644 index 0000000..fd1794c --- /dev/null +++ b/jrj/project/business/BasicCode/SKUTemplate.select.cpp @@ -0,0 +1,120 @@ +use "dev:code[SKUTemplate.vx]" + +unit vbusiness.vpage +[ + SKUTemplateImport is extend SKUTemplate; + about SKUTemplateImport + [ + field: + xdwgrid__ dw_list; + xdwtable__ dw_other; + xdwtable__ dw_prop; + method: + [ + + string jxParam(string p, string n) + { + if(p != "") + { + + int i = 1; + while (p.find("=",0)>0) + { + string name = p.mid(0, p.find("=",0)); + string value = p.mid(p.find("=",0) + 1, p.find("=",0) - 1); + return ""+value; + i += 1; + } + } + return ""; + } + int OnSelectAll() + { + if(this.dw_list.GetRowCount() > 0 ) + this.dw_list.SelectRow(1,true); + + this.dw_list.SelectRow(0,true); + this.dw_list.Redraw(); + return 1; + } + + int OnSelectNo() + { + this.dw_list.SelectRow(0,false); + this.dw_list.Redraw(); + return 1; + } + + int OnOk() + { + dw_other.openUrl("/sale/view/CustomerGoods/template/CustomerGoods/itemother"); + dw_other.SetColHeaderHeight(0); + dw_other.SetRowSelectorWidth(0); + int row = SKUTemplate::dw_list.GetNextSelectRow(1); + if (row<1) + { + alert("请选择模板!"); + return 1; + } + + msxml::IXMLDOMElement e =SKUTemplate::dw_list.GetRowElement(row); + string TemplateContent = e.selectSingleNode("TemplateContent").text+""; + string TemplateID = e.selectSingleNode("TemplateID").text+""; + //trace(ItemName); + xml__ x = new xml__; + x.setNativePointer(x.CreateInstance()); + x.LoadXml(TemplateContent); + dw_other.Retrieve(x); + dw_prop.SetItemString(1,"TemplateID",TemplateID); + CloseWindow(); + return 1; + } + + int OnCancel() + { + CloseWindow(); + return 1; + } + int OnDoubleClicked(ref TNotifyEvent evt,int p) + { + OnOk(); + return 1; + } + + int OnCmdDispatch(string comdid) + { + if (comdid=="SelectAll") OnSelectAll(); + else if (comdid=="SelectNo") OnSelectNo(); + else if (comdid=="cb_import") OnOk(); + else if (comdid=="cb_close") OnCancel(); + //else if (comdid=="query") GridSearch(); + return 0; + } + + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(evt.pStrID); + } + + int onload() + { + if (GetParam()) + { + int iArgs = GetParam(); + xaserverarg__ arg1 = new xaserverarg__; + arg1.setNativePointer(iArgs); + dw_other = new xdwtable__; + dw_other.setNativePointer(arg1.GetArgString("dw_other").toInt()); + dw_prop = new xdwtable__; + dw_prop.setNativePointer(arg1.GetArgString("dw_prop").toInt()); + } + //trace(dw_other.__nativept); + SKUTemplate::onload(); + SKUTemplate::dw_list.SetSelectionMode(1); //3 + SKUTemplate::dw_list.SetReadOnly(true); + AttachEvent("WM_XCOMMAND",OnXCommand); + AttachEvent("dw_list","DWV_DOUBLECLICKED",OnDoubleClicked);//行双击 + } + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/SetUpRemarks.cpp b/jrj/project/business/BasicCode/SetUpRemarks.cpp new file mode 100644 index 0000000..b767709 --- /dev/null +++ b/jrj/project/business/BasicCode/SetUpRemarks.cpp @@ -0,0 +1,143 @@ +use "xcontrol.vframe.vbusiness.vd" +use "xbase.vframe.vbusiness.vd" + +unit trade +[ + class SetUpRemarks : public xwin + { + xdwgrid dw_list; + xnode m_agentNode; //Agent Condition + + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNodeContent (anode,m_agentNode); + } + else + { + msxml::IXMLDOMElement xframeElement = GetElement(); + msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent) + { + string s = agent.xml; + m_agentNode = SetAgentNodeContent (anode,s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt,int param) + { + //重置工具条 + SetAgent(); + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if(comdid=="xmAddRow") + { + int row =dw_list.GetRowCount(); + dw_list.InsertRow(0); + dw_list.SetItemString(row+1,"State","Y"); + return 1; + } + else if(comdid=="xmDeleteRow") + { + dw_list.DeleteRow(0); + return 1; + } + else if(comdid=="xmSave") + return OnSave(); + else if(comdid=="xmRefresh") + return OnRetrieve(); + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + } + + int OnSave() + { + xml x=new xml; + x.setNativePointer(xml::CreateInstance()); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + xaserverarg arg=new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("content",x.GetXml()); + if (url::get("/sale/data/TradeFinance3/SetUpRemarks/update",arg.GetString(),x) != 1) + { + trace("error:"+x.GetXml()); + alert("保存失败!"); + return 0; + } + else + { + trace(x.GetXml()); + if(x.GetXmlDoc().selectSingleNode("error")) + { + alert("保存出错2!"); + return 0; + } + win32::MessageBox(GetHWND(),"保存成功!","提示",0); + dw_list.ResetUpdateStatus(); + } + dw_list.Redraw(); + return 1; + } + + + int OnRetrieve() + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + if (url::get("/sale/data/TradeFinance3/SetUpRemarks/list",arg.GetString(),x)!=1) + { + trace(x.GetXmlDoc().text); + return -1; + }else + { + dw_list.Retrieve(x); + dw_list.Redraw(); + } + return 1; + } + + int onload() + { + dw_list = GetControl("dw_list"); + dw_list.openUrl("/sale/view/FinancialCode/template/SetUpRemarksList"); + dw_list.SetColumnState("ID",false); + + OnRetrieve(); + + OnAttachEvent(); + return 1; + } + + int onloaded() + { + SetAgent(); + + return 1; + } + }; +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/ShipcompanyList.cpp b/jrj/project/business/BasicCode/ShipcompanyList.cpp new file mode 100644 index 0000000..2a0a376 --- /dev/null +++ b/jrj/project/business/BasicCode/ShipcompanyList.cpp @@ -0,0 +1,33 @@ +use "system.vl" +use "win.vl" +use "list.vl" +unit vbusiness.entity +[ + ShipcompanyList is extend list; + about ShipcompanyList + [ + method: + [ + int onload() + { + list::onload(); + return -1; + } + + int ViewUpdate(param pr,string updateItem,xaserverarg__ arg) + { + if( updateItem=="del") + { + int DelRow = this.dw_list.GetRow(); + this.dw_list.DeleteRow(DelRow); + + } + + return 1; + } + + ] + + + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/ShipcompanyMaint.cpp b/jrj/project/business/BasicCode/ShipcompanyMaint.cpp new file mode 100644 index 0000000..390b1d9 --- /dev/null +++ b/jrj/project/business/BasicCode/ShipcompanyMaint.cpp @@ -0,0 +1,316 @@ +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) + { + //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()); + } + 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(); + + } + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/Simple.Menu.Config.cpp b/jrj/project/business/BasicCode/Simple.Menu.Config.cpp new file mode 100644 index 0000000..65f8683 --- /dev/null +++ b/jrj/project/business/BasicCode/Simple.Menu.Config.cpp @@ -0,0 +1,254 @@ +use "frame.vd" +use "publiccode.vd" +use "xcontrol.vd" +use "xtreeview.vd" + +class SimpleMenuConfig : public frame +{ + xdwgrid dw_list; + xtreeview tv_gs; + + int AddRow() + { + dw_list.InsertRow(0); + return 1; + } + + int InsertRow() + { + dw_list.AcceptText(); + int row = dw_list.GetRow(); + if(row < 1 || row >dw_list.GetRowCount()) + AddRow(); + else + dw_list.InsertRow(row); + return 1; + } + + int DeleteRow() + { + dw_list.AcceptText(); + int row = dw_list.GetRow(); + if(row < 1 || row >dw_list.GetRowCount()) + return 1; + dw_list.DeleteRow(row); + return 1; + } + + int Save() + { + dw_list.AcceptText(); + int i=0; + for(i=1; i<=dw_list.GetRowCount();i++) + { + string seq = dw_list.GetItemString(i, "SeqNo"); + if(seq != i.toString()) + dw_list.SetItemString(i, "SeqNo", i.toString()); + } + + xml x=new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg=new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + arg.AddArg("content", x.GetXml()); + if(getUrl("/workflow/action/ItemPictureMenu.dbmap/bill.update", arg.GetString(), x) != 1) + alert("保存失败!"); + else + { + string str = x.GetXml(); + //alert(str); + if(str.find("失败", 0) > 0) + alert("保存失败!"); + else + { + //alert("保存成功!"); + dw_list.ResetUpdateStatus(); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + int hItem = xtreeview::GetSelectedItem(tv_gs.GetId()); + if(hItem > 0) + { + msxml::IXMLDOMElement e = x.GetXmlDoc().documentElement; + int p = trust(e as int); + xtreeview::SetItemData(tv_gs.GetId(), hItem, p); + + while(xtreeview::GetChildItem(tv_gs.GetId(), hItem) > 0) + xtreeview::DeleteItem(tv_gs.GetId(), xtreeview::GetChildItem(tv_gs.GetId(), hItem)); + + msxml::IXMLDOMNodeList li = x.GetXmlDoc().selectNodes("item/item"); + int s = li.length; + for(i=0;i<s;i++) + { + msxml::IXMLDOMElement ele = li.item(i); + int pa = trust(ele as int); + string name = ele.selectSingleNode("Name").text; + int cItem = xtreeview::InsertChildItem(tv_gs.GetId(), hItem, name, pa, 15); + if(ele.selectSingleNode("item")) + xtreeview::SetItemChild1(tv_gs.GetId(), cItem, 1); + } + } + + } + } + return 1; + } + + int UpRow() + { + dw_list.AcceptText(); + int row = dw_list.GetRow(); + if(row < 2 || row > dw_list.GetRowCount()) + return 1; + dw_list.SetRowMove(row, -1); + dw_list.SetRow(row - 1); + dw_list.Redraw(); + return 1; + } + + int DownRow() + { + dw_list.AcceptText(); + int row = dw_list.GetRow(); + if(row < 1 || row > dw_list.GetRowCount() - 1) + return 1; + dw_list.SetRowMove(row, 1); + dw_list.SetRow(row + 1); + dw_list.Redraw(); + return 1; + } + + int OnCmdDispatch(string comdid) + { + int hCursor = xutil::SetCursorWait(); + if(comdid == "AddRow") AddRow(); + else if(comdid == "InsertRow") InsertRow(); + else if(comdid == "DeleteRow") DeleteRow(); + else if(comdid == "Save") Save(); + else if(comdid == "UpRow") UpRow(); + else if(comdid == "DownRow") DownRow(); + xutil::RestoreCursor(hCursor); + return 0; + } + + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + msxml::IXMLDOMElement xframeElement = GetElement(); + msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"/*"); + if(agent) + { + string s = agent.xml; + SetAgentNodeContent(anode,s); + } + return 1; + } + + int OnSetFocus(ref TEvent evt,int p) + { + SetAgent() ; + return 1; + } + + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnTreeSelChanged(ref TNotifyEvent evt,int p) + { + ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW); + int hItem = nmtv.itemNew.hItem; + msxml::IXMLDOMElement e = trust(xtreeview::GetItemData(tv_gs.GetId(), hItem) as msxml::IXMLDOMElement); + //trace("%s", e.xml); + //string id = e.selectSingleNode("MenuID").text; + dw_list.AcceptText(); + dw_list.Retrieve(e); + dw_list.Redraw(); + return 1; + } + + int OnTreeMoveNode(ref TNotifyEvent evt,int p) + { + ref TVNNMHDR nmtv = trust(evt.pnmh as ref TVNNMHDR); + int xfrom = nmtv.FromItem; + int xto = nmtv.ToItem; + + int ret = xwin::MessageBox(this.GetHWND(), "确定移动节点!","提示:",1); + //trace(ret); + if(ret == 2) + { + xtreeview::DeleteItem(tv_gs.GetId(), xto); + return -1; + } + + msxml::IXMLDOMElement fid = trust(xtreeview::GetItemData(tv_gs.GetId(), xfrom) as msxml::IXMLDOMElement); + int xpto = xtreeview::GetParentItem(tv_gs.GetId(), xto); + msxml::IXMLDOMElement tid = trust(xtreeview::GetItemData(tv_gs.GetId(), xpto) as msxml::IXMLDOMElement); + //trace("%s-------------------------%s",fid.xml,tid.xml); + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg=new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + + string id1 = fid.selectSingleNode("@guid").text; + string id2 = tid.selectSingleNode("@guid").text; + //trace("%s-------------------------%s",id1,id2); + string str = "update ItemPictureMenu set parentid='"+id2+"' where menuid='"+id1+"' "; + str += " select 1 for xml path('root')"; + + arg.AddArg("sql", str); + if(getSql(arg.GetString(),x)!=1) + { + trace("error:"+x.GetXml()); + alert("移动节点出错!"); + xtreeview::DeleteItem(tv_gs.GetId(), xto); + return 0; + } + //trace("================"); + // + int xpfrom = xtreeview::GetParentItem(tv_gs.GetId(), xfrom); + trace("%d", xpfrom); + msxml::IXMLDOMElement fe = trust(xtreeview::GetItemData(tv_gs.GetId(), xpfrom) as msxml::IXMLDOMElement); + //trace("%s-------------------------%s",fe.xml,tid.xml); + msxml::IXMLDOMElement fe1 = fe.selectSingleNode("item[@guid='"+id1+"']"); + fe.removeChild(fe1); + tid.appendChild(fid); + + xtreeview::DeleteItem(tv_gs.GetId(), xfrom); + return 1; + } + + int OnInitial() + { + int rItem = xtreeview::GetRootItem(tv_gs.GetId()); + xtreeview::ExpandItemEx(tv_gs.GetId(), rItem); + xtreeview::ItemFocus(tv_gs.GetId(), rItem); + return 1; + } + + int OnAttachEvent() + { + AttachEvent("WM_XCOMMAND",OnXCommand); + AttachEvent("WM_SETFOCUS",OnSetFocus); + AttachEvent("tv_gs","TVN_SELCHANGED",OnTreeSelChanged); + AttachEvent("tv_gs", "TVN_ENDDRAG",OnTreeMoveNode); + return 1; + } + + int onload() + { + dw_list = GetControl("dw_list"); + dw_list.openUrl("/sale/view/SimpleProduct/template/Simple/Menu"); + dw_list.SetColumnState("SeqNo", false); + + tv_gs = GetControl("tv_gs"); + + SetAgent(); + OnAttachEvent(); + + OnInitial(); + + return 1; + } +}; \ No newline at end of file diff --git a/jrj/project/business/BasicCode/SourceRemark.cpp b/jrj/project/business/BasicCode/SourceRemark.cpp new file mode 100644 index 0000000..3a53069 --- /dev/null +++ b/jrj/project/business/BasicCode/SourceRemark.cpp @@ -0,0 +1,143 @@ +use "xcontrol.vframe.vbusiness.vd" +use "xbase.vframe.vbusiness.vd" + +unit trade +[ + class SourceRemark : public xwin + { + xdwgrid dw_list; + xnode m_agentNode; //Agent Condition + + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNodeContent (anode,m_agentNode); + } + else + { + msxml::IXMLDOMElement xframeElement = GetElement(); + msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent) + { + string s = agent.xml; + m_agentNode = SetAgentNodeContent (anode,s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt,int param) + { + //重置工具条 + SetAgent(); + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if(comdid=="xmAddRow") + { + int row =dw_list.GetRowCount(); + dw_list.InsertRow(0); + //dw_list.SetItemString(row+1,"State","Y"); + return 1; + } + else if(comdid=="xmDeleteRow") + { + dw_list.DeleteRow(0); + return 1; + } + else if(comdid=="xmSave") + return OnSave(); + else if(comdid=="xmRefresh") + return OnRetrieve(); + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + } + + int OnSave() + { + xml x=new xml; + x.setNativePointer(xml::CreateInstance()); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + xaserverarg arg=new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("content",x.GetXml()); + if (url::get("/sale/data/TradeFinance3/SourceRemark/update",arg.GetString(),x) != 1) + { + trace("error:"+x.GetXml()); + alert("保存失败!"); + return 0; + } + else + { + trace(x.GetXml()); + if(x.GetXmlDoc().selectSingleNode("error")) + { + alert("保存出错2!"); + return 0; + } + win32::MessageBox(GetHWND(),"保存成功!","提示",0); + dw_list.ResetUpdateStatus(); + } + dw_list.Redraw(); + return 1; + } + + + int OnRetrieve() + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + if (url::get("/sale/data/TradeFinance3/SourceRemark/list",arg.GetString(),x)!=1) + { + trace(x.GetXmlDoc().text); + return -1; + }else + { + dw_list.Retrieve(x); + dw_list.Redraw(); + } + return 1; + } + + int onload() + { + dw_list = GetControl("dw_list"); + dw_list.openUrl("/sale/view/FinancialCode/template/SourceRemarkList"); + dw_list.SetColumnState("ID",false); + + OnRetrieve(); + + OnAttachEvent(); + return 1; + } + + int onloaded() + { + SetAgent(); + + return 1; + } + }; +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/SpecialDeductFeeList.cpp b/jrj/project/business/BasicCode/SpecialDeductFeeList.cpp new file mode 100644 index 0000000..022f3bc --- /dev/null +++ b/jrj/project/business/BasicCode/SpecialDeductFeeList.cpp @@ -0,0 +1,144 @@ +use "xcontrol.vframe.vbusiness.vd" +use "xbase.vframe.vbusiness.vd" + +unit trade +[ + class SpecialDeductFeeList : public xwin + { + xdwgrid dw_list; + xnode m_agentNode; //Agent Condition + + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNodeContent (anode,m_agentNode); + } + else + { + msxml::IXMLDOMElement xframeElement = GetElement(); + msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent) + { + string s = agent.xml; + m_agentNode = SetAgentNodeContent (anode,s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt,int param) + { + //重置工具条 + SetAgent(); + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if(comdid=="xmAddRow") + { + int row =dw_list.GetRowCount(); + dw_list.InsertRow(0); + //dw_list.SetItemString(row+1,"State","Y"); + return 1; + } + else if(comdid=="xmDeleteRow") + { + dw_list.DeleteRow(0); + return 1; + } + else if(comdid=="xmSave") + return OnSave(); + else if(comdid=="xmRefresh") + return OnRetrieve(); + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + } + + int OnSave() + { + xml x=new xml; + x.setNativePointer(xml::CreateInstance()); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + xaserverarg arg=new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("content",x.GetXml()); + trace(x.GetXml()); + if (url::get("/sale/data/expense3/update/SpecialDeductFee",arg.GetString(),x) != 1) + { + trace("error:"+x.GetXml()); + alert("保存失败!"); + return 0; + } + else + { + trace(x.GetXml()); + if(x.GetXmlDoc().selectSingleNode("error")) + { + alert("保存出错2!"); + return 0; + } + win32::MessageBox(GetHWND(),"保存成功!","提示",0); + dw_list.ResetUpdateStatus(); + } + dw_list.Redraw(); + return 1; + } + + + int OnRetrieve() + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + if (url::get("/sale/data/expense3/SpecialDeductFeeList",arg.GetString(),x)!=1) + { + trace(x.GetXmlDoc().text); + return -1; + }else + { + dw_list.Retrieve(x); + dw_list.Redraw(); + } + return 1; + } + + int onload() + { + dw_list = GetControl("dw_list"); + dw_list.openUrl("/sale/view/expense3/SpecialDeductFeeList"); + dw_list.SetColumnState("ID",false); + + OnRetrieve(); + + OnAttachEvent(); + return 1; + } + + int onloaded() + { + SetAgent(); + + return 1; + } + }; +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/TestingCompanyList.cpp b/jrj/project/business/BasicCode/TestingCompanyList.cpp new file mode 100644 index 0000000..3936b49 --- /dev/null +++ b/jrj/project/business/BasicCode/TestingCompanyList.cpp @@ -0,0 +1,33 @@ +use "system.vl" +use "win.vl" +use "list.vl" +unit vbusiness.entity +[ + TestingCompanyList is extend list; + about TestingCompanyList + [ + method: + [ + int onload() + { + list::onload(); + return -1; + } + + int ViewUpdate(param pr,string updateItem,xaserverarg__ arg) + { + if( updateItem=="del") + { + int DelRow = this.dw_list.GetRow(); + this.dw_list.DeleteRow(DelRow); + + } + + return 1; + } + + ] + + + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/TestingCompanyMaint.cpp b/jrj/project/business/BasicCode/TestingCompanyMaint.cpp new file mode 100644 index 0000000..12574f7 --- /dev/null +++ b/jrj/project/business/BasicCode/TestingCompanyMaint.cpp @@ -0,0 +1,316 @@ +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(); + + } + ] + ] +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/TypeList.maint.supplier.cpp b/jrj/project/business/BasicCode/TypeList.maint.supplier.cpp new file mode 100644 index 0000000..5125fa3 --- /dev/null +++ b/jrj/project/business/BasicCode/TypeList.maint.supplier.cpp @@ -0,0 +1,172 @@ +use "xcontrol.vframe.vbusiness.vd" +use "xbase.vframe.vbusiness.vd" +use "base.view.vd" + +unit trade +[ + class TypeListMaintWin : public xframe + { + xdwgrid dw_list; + xtreeview tv_folder; + + xnode m_agentNode; //Agent Condition + + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNodeContent (anode,m_agentNode); + } + else + { + msxml::IXMLDOMElement xframeElement = GetElement(); + msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent) + { + string s = agent.xml; + m_agentNode = SetAgentNodeContent (anode,s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt,int param) + { + //重置工具条 + SetAgent(); + return 1; + } + + int OnSave() + { + xml x = ViewObject::MakeXml(); + xaserverarg arg = ViewObject::MakeArg(); + + xml x1 = ViewObject::MakeXml(); + x1.LoadXml("<root/>"); + + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + msxml::IXMLDOMNodeList t = x.GetXmlDoc().selectNodes("root/Supplier[@update.modify]"); + msxml::IXMLDOMElement e1= x1.GetXmlDoc().documentElement; + int len = t.length; + for(int i=0;i<len;i++) + { + e1.appendChild(t.item(i)); + } + arg.AddArg("content",x1.GetXml()); + if(url::get("/sale/data/SupplierV3/entity/save/v3", arg.GetString(),x)!=1) + { + string error = x.GetXmlDoc().text; + alert(error); + return 1; + }else + { + + if( x.GetXmlDoc().selectSingleNode("ok")) + { + alert("保存成功"); + dw_list.ResetUpdateStatus(); + }else + { + alert("保存失败!"); + } + } + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if(comdid=="xmSave") + return OnSave(); + else if(comdid=="xmSearch") + return OnRetrieve(); + + return 0; + } + + int OnRetrieve() + { + int hItem =tv_folder.GetSelectedItem(); + string typ = tv_folder.GetItemData(hItem); + string searchStr = GetControl("SearchContent").GetText(); + + int hCursor = xutil::SetCursorWait(); + xml x = ViewObject::RetrieveData("/sale/data/SupplierV3/type/list", "sType",typ,"SearchText",searchStr); + if(x) + dw_list.Retrieve(x); + else + dw_list.Reset(); + dw_list.Redraw(); + xutil::RestoreCursor(hCursor); + + return 1; + } + + //树选择 + int OnTreeSelChanged(ref TNotifyEvent evt,int p) + { + ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW); + int hItem = nmtv.itemNew.hItem; + return OnRetrieve(); + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + AttachEvent("tv_folder", "TVN_SELCHANGED",OnTreeSelChanged); + } + + /* + int OnRetrieve() + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("xxx","xxx"); + if (getUrl("",arg.GetString(),x)!=1) + { + trace(x.GetXmlDoc().text); + return -1; + }else + { + //dw_list.Retrieve(x); + //dw_list.Redraw(); + } + return 1; + } + */ + + int onload() + { + dw_list = GetControl("dw_list"); + dw_list.openUrl("/sale/view/SupplierV3/template/supplier/mainttypelist"); + + tv_folder = GetControl("tv_folder"); + OnAttachEvent(); + xtreeview::ExpandItem(tv_folder.GetId(),xtreeview::GetRootItem(tv_folder.GetId())); + + return 1; + } + + int onloaded() + { + SetAgent(); + + return 1; + } + }; +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/basicfareTypeList.cpp b/jrj/project/business/BasicCode/basicfareTypeList.cpp new file mode 100644 index 0000000..e2c5515 --- /dev/null +++ b/jrj/project/business/BasicCode/basicfareTypeList.cpp @@ -0,0 +1,143 @@ +use "xcontrol.vframe.vbusiness.vd" +use "xbase.vframe.vbusiness.vd" + +unit trade +[ + class basicfareTypeList : public xwin + { + xdwgrid dw_list; + xnode m_agentNode; //Agent Condition + + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNodeContent (anode,m_agentNode); + } + else + { + msxml::IXMLDOMElement xframeElement = GetElement(); + msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent) + { + string s = agent.xml; + m_agentNode = SetAgentNodeContent (anode,s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(ref TEvent evt,int param) + { + //重置工具条 + SetAgent(); + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if(comdid=="xmAddRow") + { + int row =dw_list.GetRowCount(); + dw_list.InsertRow(0); + dw_list.SetItemString(row+1,"State","Y"); + return 1; + } + else if(comdid=="xmDeleteRow") + { + dw_list.DeleteRow(0); + return 1; + } + else if(comdid=="xmSave") + return OnSave(); + else if(comdid=="xmRefresh") + return OnRetrieve(); + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + } + + int OnSave() + { + xml x=new xml; + x.setNativePointer(xml::CreateInstance()); + dw_list.DwUpdateAllToEx(x.GetXmlDoc()); + xaserverarg arg=new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + arg.AddArg("content",x.GetXml()); + if (url::get("/sale/data/expense3/update/basicfareType",arg.GetString(),x) != 1) + { + trace("error:"+x.GetXml()); + alert("保存失败!"); + return 0; + } + else + { + trace(x.GetXml()); + if(x.GetXmlDoc().selectSingleNode("error")) + { + alert("保存出错2!"); + return 0; + } + win32::MessageBox(GetHWND(),"保存成功!","提示",0); + dw_list.ResetUpdateStatus(); + } + dw_list.Redraw(); + return 1; + } + + + int OnRetrieve() + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + if (url::get("/sale/data/expense3/basicfareTypeLsit",arg.GetString(),x)!=1) + { + trace(x.GetXmlDoc().text); + return -1; + }else + { + dw_list.Retrieve(x); + dw_list.Redraw(); + } + return 1; + } + + int onload() + { + dw_list = GetControl("dw_list"); + dw_list.openUrl("/sale/view/expense3/basicfareTypeList"); + dw_list.SetColumnState("ID",false); + + OnRetrieve(); + + OnAttachEvent(); + return 1; + } + + int onloaded() + { + SetAgent(); + + return 1; + } + }; +] \ No newline at end of file diff --git a/jrj/project/business/BasicCode/brand.regtype.cpp b/jrj/project/business/BasicCode/brand.regtype.cpp new file mode 100644 index 0000000..0fb0769 --- /dev/null +++ b/jrj/project/business/BasicCode/brand.regtype.cpp @@ -0,0 +1,147 @@ +use "frame.vl" +use "dev:vm[xdwtable.vm]" +use "file.vl" +use "dev:vm[xutil.vm]" + +unit vbusiness.entity +[ + brand_regtype is extend frame; + about brand_regtype + [ + method: + [ + xdwtable__ dw_list; + + int SetAgent() + { + string xfNodeAgentArea = "agentarea"; + xnode__ anode = new xnode__; + anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); + var xframeElement = GetElement(); + var agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); + if(agent){ + SetAgentNodeContent (anode,agent.xml); + } + return 1; + } + + xdwtable__ getDw() + { + xdwtable__ dw1 = new xdwtable__; + dw1.setNativePointer(dw_list.FindDwTable("item")); + return dw1; + } + + int addRow() + { + xdwtable__ dw = getDw(); + int row = dw.InsertRow(0); + string no = "2"; + if(row > 1) + no = dw.GetItemString(row - 1, "RegTypeID"); + int n = no.toInt(); + int h = n + 1; + dw.SetItemString(row, "RegTypeID", h.toString()); + return 1; + } + int deleteRow() + { + xdwtable__ dw = getDw(); + int row = dw.GetRow(); + if(row < 1 || row > dw.GetRowCount()) return -1; + if (win__::MessageBox(this.GetHWND(),"是否删除选择的记录行?","提示",4) == 7) + return 1; + dw.DeleteRow(row); + return 1; + } + int save() + { + xml__ x = new xml__; + x.setNativePointer(xml__ ::CreateInstance()); + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + dw_list.AcceptText(); + dw_list.DwUpdateAllTo(x.GetXmlDoc()); + msxml::IXMLDOMElement e = x.GetXmlDoc().documentElement; + //trace(e.xml); + arg.AddArg("content", e.xml); + if(getUrl("/workflow/action/BrandRegType.dbmap/bill.update", arg.GetString(), x) != 1) + { + alert("保存失败!"); + return -1; + } + //trace(x.GetXml()); + string str = x.GetXml(); + if(str.find("保存成功", 0) > 0) + { + alert("保存成功"); + dw_list.ResetUpdateStatus(); + dw_list.Redraw(); + } + else + alert("保存失败0!"); + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + int hCursor = xutil__::SetCursorWait(); + if(comdid == "xmNew") addRow(); + else if(comdid == "xmDelete") deleteRow(); + else if(comdid == "xmSave") save(); + xutil__::RestoreCursor(hCursor); + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int p) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnSetFocus(ref TEvent evt,int p) + { + SetAgent() ; + return 1; + } + int OnAttachEvent() + { + AttachEvent("WM_XCOMMAND",OnXCommand); + AttachEvent("WM_SETFOCUS",OnSetFocus); + + return 1; + } + int Initail() + { + xaserverarg__ arg = new xaserverarg__; + arg.setNativePointer(arg.CreateInstance()); + xml__ x = new xml__; + x.setNativePointer(xml__ ::CreateInstance()); + if(getUrl("/sale/data/brand/entity/regtype", arg.GetString(), x) != 1) + { + alert("初始化查询失败!"); + return -1; + } + //trace(x.GetXml()); + dw_list.Retrieve(x); + dw_list.Redraw(); + return 1; + } + + int onload() + { + dw_list = new xdwtable__; + dw_list.setNativePointer(GetControl("dw_list")); + dw_list.openUrl("/sale/view/brand/template/regtype"); + //dw_list.SetColHeaderHeight(0); + dw_list.SetRowSelectorWidth(0); + + OnAttachEvent(); + SetAgent(); + Initail(); + return -1; + } + ] + ] +] \ No newline at end of file -- Gitblit v1.9.3