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; idw_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 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; } ] ] ]