use "xcontrol.vframe.vbusiness.vd"
|
use "xbase.vframe.vbusiness.vd"
|
use "base.view.vd"
|
|
unit trade
|
[
|
class ProductSchemaWin : public xframe
|
{
|
xdwtable dw_base;
|
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.InsertRow(0);
|
string sdate = publiccode::GetCurrentDate();
|
dw_list.SetItemString(row, "SKUID", dw_base.GetItemString(1, "SKUID"));
|
dw_list.SetItemDisplayString(row, "SKUID", dw_base.GetItemString(1, "SKUNo"));
|
dw_list.SetItemString(row, "GoodsNo", dw_base.GetItemString(1, "GoodsNo"));
|
dw_list.SetItemString(row, "CName", dw_base.GetItemString(1, "CName"));
|
dw_list.SetItemString(row, "ProductQty", "1");
|
dw_list.SetItemString(row, "PartQty", "1");
|
dw_list.SetItemString(row, "CreateDate", sdate);
|
return 1;
|
}
|
else if (comdid == "xmDeleteRow")
|
{
|
dw_list.DeleteRow(0);
|
return 1;
|
}
|
else if (comdid == "xmClose")
|
{
|
CloseWindow();
|
return 1;
|
}
|
else if (comdid == "xmSave")
|
{
|
return OnSave();
|
}
|
return 0;
|
}
|
|
int OnArgItemChanged(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_base";
|
if (value != "")
|
{
|
msxml::IXMLDOMNodeList nlist = GetElement().selectNodes("//*[@name='" + dwname + "']/trans[@for='" + colname + "']");
|
ViewObject::TransData(nlist, dw_base, hdr.row, colname, value);
|
}
|
OnRetrieve();
|
|
return 1;
|
}
|
|
int OnSave()
|
{
|
dw_list.AcceptText();
|
xml x = xml::Make();
|
xaserverarg arg = xaserverarg::Make();
|
dw_list.DwUpdateAllToEx(x.GetXmlDoc());
|
|
arg.AddArg("content", x.GetXml());
|
if (url::get("/sale/data/ProductLibrary3/update/product/schema", arg.GetString(), x) != 1)
|
{
|
string error = x.GetXmlDoc().text;
|
alert("err:" + error);
|
x.Free();
|
return -1;
|
}
|
string str = x.GetXmlDoc().documentElement.getAttribute("text");
|
//alert(str);
|
x.Free();
|
if (str == "false")
|
{
|
alert("±£´æÊ§°Ü!");
|
return -1;
|
}
|
|
dw_list.ResetUpdateStatus();
|
alert("±£´æ³É¹¦£¡");
|
|
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_base", "DWV_ITEMCHANGED", OnArgItemChanged);
|
}
|
|
int OnRetrieve()
|
{
|
dw_list.Reset();
|
dw_list.Redraw();
|
|
xml x = new xml;
|
x.setNativePointer(xml::CreateInstance());
|
xaserverarg arg = new xaserverarg;
|
arg.setNativePointer(arg.CreateInstance());
|
arg.AddArg("SKUID", dw_base.GetItemString(1, "SKUID"));
|
//alert(dw_base.GetItemString(1,"SKUID"));
|
if (getUrl("/sale/data/ProductLibrary3/ProductSchemaList", 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/ProductLibrary/template/ProductSchema");
|
dw_list.SetColumnState("CreateDate", false);
|
|
dw_base = GetControl("dw_base");
|
dw_base.openUrl("/sale/view/ProductLibrary/template/ProductArg");
|
dw_base.SetColHeaderHeight(0);
|
dw_base.SetRowSelectorWidth(0);
|
dw_base.SetHScrollState(false);
|
dw_base.SetVScrollState(false);
|
|
OnAttachEvent();
|
OnRetrieve();
|
|
return 1;
|
}
|
|
int onloaded()
|
{
|
SetAgent();
|
|
return 1;
|
}
|
};
|
]
|