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ʼþ£¬Í¨¹ý²éÕÒij¸ö²ÎÊýµÃµ½¶ÔÓ¦µÄÁÐ
|
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;
|
}
|
};
|
]
|