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