use "xcontrol.vframe.vbusiness.vd"
|
use "xbase.vframe.vbusiness.vd"
|
use "base.view.vd"
|
unit trade
|
[
|
class DocSelectDlg: public xframe
|
{
|
//xdwgrid dw_list;
|
xlistview lv_view;
|
xnode m_agentNode; //Agent Condition
|
int columnCount ;
|
|
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 OnListViewDoubleClicked(ref TEvent evt,int param)
|
{
|
//ÖØÖù¤¾ßÌõ
|
//SetAgent();
|
OnDocumentOpen();
|
CloseWindow();
|
return 1;
|
}
|
|
int OnDocumentOpen()
|
{
|
//return 1;
|
|
int LVNI_ALL = 0x0000;
|
int LVNI_FOCUSED = 0x0001;
|
int LVNI_SELECTED = 0x0002;
|
int LVNI_CUT = 0x0004;
|
int LVNI_DROPHILITED = 0x0008;
|
|
int nItem =xlistview::GetNextItem(lv_view.GetId(), -1, LVNI_FOCUSED);
|
if(nItem < 0) return 1;
|
|
int LVIF_PARAM = 0x0004;
|
|
lvitem lvItem;
|
lvItem.iItem = nItem;
|
lvItem.iSubItem = 0;
|
lvItem.mask = LVIF_PARAM ;
|
|
xlistview::GetItem(lv_view.GetId(), lvItem);
|
msxml::IXMLDOMElement ele = trust(lvItem.lParam as msxml::IXMLDOMElement);
|
|
string src = ele.getAttribute("url");
|
string name=ele.getAttribute("caption");
|
string file ="";
|
if(src.find("/file/")>0) file = src.mid(src.find("/file/") + 6,9999);
|
if(file =="") return 1;
|
string str = file.left(2);
|
string ext = "";
|
if(name.find(".")>=0) ext = name.mid(name.find("."),name.length());
|
string sfile = file;
|
|
xaserverarg arg = GetParam();
|
if(arg)
|
{
|
arg.AddArg("result","ok");
|
if((arg.GetArgString("process")=="path" ||arg.GetArgString("process")=="data"))
|
{
|
string id = ele.getAttribute("ID");
|
arg.AddArg("ID", id);
|
arg.AddArg("path", src);
|
arg.AddArg("filename", name);
|
arg.AddArg("src","/business/attachment/"+str+"/"+ file+".jpg");
|
if(arg.GetArgString("process")=="path" ) return 1;
|
}
|
}
|
|
|
/*
|
const string d = m_Html.GetData(p.object);
|
if(d == "") return -1;
|
string file = d.mid(0, d.find("|##@@|",0));
|
string name = d.mid(d.find("|##@@|",0)+6, d.length());
|
*/
|
|
xaserver::CreateDirectory("C:/Temp");
|
if(arg)
|
{
|
if(arg.GetArgString("process")=="data")
|
{
|
xml x = new xml;
|
x.setNativePointer(xml ::CreateInstance());
|
xaserver::LoadUrl(GetServerUrl(),"/business/attachment/"+str+"/"+ file+".jpg","",x);
|
arg.AddArg("data",x.GetXml());
|
return 1;
|
}
|
}
|
|
int openRet = xaserver::DownLoadFile(GetServerUrl(),"/business/attachment/"+str+"/"+ file+".jpg","","C:/Temp/"+sfile+ext);
|
|
|
|
//alert("/business/attachment/"+str+"/"+ file+".jpg");
|
if(openRet < 0)
|
{
|
alert("Îļþ´ò¿ªÊ§°Ü1£¡");
|
return -1;
|
}
|
//openRet = win32::ShellExecute(0,"open","C:/Temp/"+name,"","",5);
|
openRet = win32::ShellExecute(0,"open","C:/Temp/"+sfile+ext,"","",5);
|
if(openRet < 32)
|
{
|
alert("Îļþ´ò¿ªÊ§°Ü2£¡");
|
return -1;
|
}
|
|
return 1;
|
}
|
|
//ÃüÁî·¢²¼º¯Êý
|
int OnCmdDispatch(string comdid)
|
{
|
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());
|
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 SetListViewHeaderColumn(string Url)
|
{
|
const int LVCFMT_LEFT = 0;
|
for(int i=0;i<3;i++) lv_view.DeleteColumn(lv_view.GetId(),1);
|
//if(Url=="")
|
//{
|
lv_view.InsertColumn(lv_view.GetId(),0,"´´½¨ÈËÔ±",LVCFMT_LEFT,80,0);
|
lv_view.InsertColumn(lv_view.GetId(),0,"´´½¨ÈÕÆÚ",LVCFMT_LEFT,80,0);
|
lv_view.InsertColumn(lv_view.GetId(),0,"Ãû³Æ",0,120,0);
|
columnCount = 3;
|
//}
|
return 1;
|
}
|
|
int Retrieve(string src)
|
{
|
xml x = ViewObject::RetrieveData("/sale/data/TDocument3/folder/list", "src",src);
|
if(x)
|
{
|
msxml::IXMLDOMElement ele = x.GetXmlDoc().documentElement;
|
msxml::IXMLDOMNodeList nlist=ele.SelectNodes("*");
|
int s=nlist.length;
|
if (s>0)
|
{
|
for (int i=0; i<s; i++)
|
{
|
msxml::IXMLDOMElement e=nlist.item(i);
|
string name=e.getAttribute("caption");
|
int nItem = xlistview::InsertItemEx(lv_view.GetId(),0,name,23,cast(e as int));
|
|
xlistview::SetItemText(lv_view.GetId(),nItem,1,e.getAttribute("Creator"));
|
xlistview::SetItemText(lv_view.GetId(),nItem,2,e.getAttribute("CreateDate"));
|
}
|
}
|
}
|
return 1;
|
}
|
|
int onload()
|
{
|
lv_view = GetControl("lv_view");
|
//xlistview::SetdwStyle(lv_view.GetId(),0);
|
|
columnCount = 0;
|
SetListViewHeaderColumn("");
|
AttachEvent("lv_view", "NM_DBLCLK",OnListViewDoubleClicked);
|
|
if(GetParam())
|
{
|
xaserverarg arg = GetParam();
|
string src = arg.GetArgString("src");
|
Retrieve(src);
|
}
|
|
return 1;
|
}
|
|
int onloaded()
|
{
|
//SetAgent();
|
|
return 1;
|
}
|
};
|
]
|