use "xcontrol.vframe.vbusiness.vd"
|
use "xbase.vframe.vbusiness.vd"
|
|
unit trade
|
[
|
class levelCustomerv3 : public listwin
|
{
|
xdwgrid dw_goods;
|
xtreeview tv_1;
|
xcombobox ddlb_1;
|
int changeddlb;
|
|
string m_sType; //type
|
string m_sTypeTxt; //Ñ¡ÖÐÊ÷µÄdata
|
// string m_searchtxt;
|
int PIndex;
|
xnode m_agentNode; //Agent Condition
|
string m_agentCond; //Agent Node
|
|
|
int OnPreRetrieve()
|
{
|
xml x = new xml;
|
x.setNativePointer(xml ::CreateInstance());
|
xaserverarg arg = new xaserverarg;
|
arg.setNativePointer(arg.CreateInstance());
|
arg.AddArg("pageindex", PIndex.toString()); //µÚ¼¸Ò³
|
arg.AddArg("pagenumber", m_pageNumber.toString()); //ÿҳÊýÁ¿
|
arg.AddArg("QueryTxt",m_QueryTxt );
|
arg.AddArg("sType", m_sType);//ûÓвÎÊý
|
arg.AddArg("sTypeTxt", m_sTypeTxt);//ûÓвÎÊý
|
|
if(getUrl("/sale/data/"+GetEntityName(1)+"/entity/list",arg.GetString(),x)!=1)
|
{
|
alert("³öÏÖ´íÎóÇëÁªÏµ¹ÜÀíÔ±£¡");
|
return 0;
|
}else
|
{
|
msxml::IXMLDOMElement e=x.GetXmlDoc().documentElement;
|
if(listwin::dw_pages.ptr_native_ && e.selectSingleNode("@TotalPage"))
|
{
|
string s=e.selectSingleNode("@TotalPage").text; //×ÜÊýÁ¿
|
listwin::dw_pages.SetMaxPage(s.toInt());
|
}
|
listwin::dw_list.Retrieve(x);
|
listwin::dw_list.Redraw();
|
listwin::dw_list.SetReadOnly(true);
|
}
|
return 1;
|
}
|
|
int OnChangePages(ref TNotifyEvent evt,int p)
|
{
|
ref PAGENMHDR h = evt.pnmh;
|
int c = h.cur;
|
int hCursor = xutil::SetCursorWait();
|
OnRetrieve();
|
PIndex=c;
|
xutil::RestoreCursor(hCursor);
|
return 1;
|
}
|
|
int ViewUpdate(int pr,string updateItem,xaserverarg arg)
|
{
|
if(updateItem == "refresh")
|
{
|
xdwpages zz = this.GetControl("pages");
|
int h = zz.SetCurPage(1);
|
OnRetrieve();
|
}
|
return 1;
|
}
|
|
//Ê÷Ñ¡Ôñ
|
int OnTreeSelChanged(ref TNotifyEvent evt,int p)
|
{
|
if (changeddlb != 1)
|
{
|
int wid = tv_1.GetId();
|
int h=xtreeview::GetSelectedItem(wid);
|
msxml::IXMLDOMElement e = xtreeview::GetItemData(wid,h);
|
|
string t = e.SelectSingleNode("@type").text;
|
m_sType=t+"";
|
string txt = e.SelectSingleNode("@code").text;
|
if (txt == "")
|
txt = e.SelectSingleNode("@name").text;
|
m_sTypeTxt= txt+"";
|
|
PIndex= 1;
|
OnRetrieve();
|
}
|
return 1;
|
}
|
|
int createSubTree(int wid,int h, msxml::IXMLDOMElement ele)
|
{
|
msxml::IXMLDOMNodeList nlist=ele.SelectNodes("item");
|
int i;
|
int s=nlist.length;
|
if (s>0)
|
for (i=0; i<s; i++)
|
{
|
msxml::IXMLDOMElement e=nlist.item(i);
|
string name=e.SelectSingleNode("@name").text;
|
int hw=xtreeview::InsertChildItem(wid,h,name,trust(e as int),15);
|
createSubTree(wid,hw, e);
|
}
|
return 1;
|
}
|
|
int OnCreateTree(string sType)
|
{
|
int wid = tv_1.GetId();
|
while (xtreeview::GetRootItem(wid)>0)
|
xtreeview::DeleteItem(wid,xtreeview::GetRootItem(wid));
|
|
xml x = new xml;
|
x.setNativePointer(x.CreateInstance());
|
xaserverarg arg = new xaserverarg;
|
arg.setNativePointer(arg.CreateInstance());
|
arg.AddArg("sType",sType);
|
if(getUrl("/sale/data/"+GetEntityName(1)+"/pref/list/tree",arg.GetString(),x)!=1)
|
{
|
trace(x.GetXmlDoc().text);
|
return -1;
|
}else
|
{
|
msxml::IXMLDOMNodeList nlist=x.GetXmlDoc().SelectNodes("root/item");
|
int len = nlist.length;
|
if (len >0)
|
{
|
int i;
|
for (i=0;i <len; i++)
|
{
|
msxml::IXMLDOMElement e = nlist.item(i);
|
string name = e.SelectSingleNode("@name").text;
|
int h = xtreeview::InsertChildItem(wid,0,name,trust(e as int),15);
|
createSubTree(wid,h,e);
|
xtreeview::ExpandItem(wid,h);
|
}
|
xtreeview::ExpandItem(wid,0);
|
}
|
}
|
|
return 1;
|
}
|
|
//xcomboboxÏÂÀ
|
int OnSelectDdlb(ref TNotifyEvent evt,int p)
|
{
|
changeddlb=1;
|
int wid = ddlb_1.GetId();
|
int CB_GETCURSEL = 0x0147;
|
int nIndex = win32::SendMessage(wid,CB_GETCURSEL,0,0);
|
msxml::IXMLDOMElement e = ddlb_1.GetElement();
|
msxml::IXMLDOMElement e2 = e.selectSingleNode("item["+(nIndex+1).toString()+"]");
|
string text=e2.selectSingleNode("@element").text;
|
OnCreateTree(text);
|
changeddlb=0;
|
return 1;
|
}
|
|
int OnDeleteRow()
|
{
|
int row = listwin::dw_list.GetNextSelectRow(1);
|
if (row < 1){
|
row = listwin::dw_list.GetRow();
|
if (row < 1) {
|
return -1;
|
}
|
}
|
|
msxml::IXMLDOMElement e = listwin::dw_list.GetRowElement(row);
|
string sguid = e.SelectSingleNode("@guid").text;
|
string sName = e.selectSingleNode("Name").text+"";
|
int MB_YESNO = 0x00000004;
|
int IDYES = 6;
|
if(win32::MessageBox(GetHWND(),"È·ÈÏҪɾ³ý¿Í»§ "+sName+" µÄÐÅÏ¢Âð£¿","Ìáʾ",MB_YESNO)!=IDYES) return 1;
|
xml x = new xml;
|
x.setNativePointer(x.CreateInstance());
|
xaserverarg arg = new xaserverarg;
|
arg.setNativePointer(arg.CreateInstance());
|
arg.AddArg("guid",sguid);
|
if (url::post("/sale/data/"+GetEntityName(1)+"/entity/delete",arg.GetString(),x) != 1)
|
{
|
string error = x.GetXmlDoc().text;
|
trace(error);
|
}
|
else
|
{
|
listwin::dw_list.DeleteRow(row);
|
}
|
return 1;
|
}
|
|
int OnSelectAllRow()
|
{
|
int rows = listwin::dw_list.GetRowCount();
|
if(rows < 1) return -1;
|
listwin::dw_list.SelectRow(1, rows, true);
|
listwin::dw_list.Redraw();
|
return 1;
|
}
|
|
int OnRClick(ref TNotifyEvent evt,int p)
|
{
|
return 1;
|
}
|
int OnLogOff()
|
{
|
return 1;
|
}
|
//ÉèÖò㼶µ¯³ö´°Óë±£´æ
|
int OnLevelCustomer()
|
{
|
xaserverarg arg = new xaserverarg;
|
arg.setNativePointer(arg.CreateInstance());
|
OpenWindow("dev:xpage[maint.Level.Customer3.vx]", cast(arg as int));
|
|
xml ux = new xml;
|
ux.setNativePointer(ux.CreateInstance());
|
ux.LoadXml("<Partys/>");
|
msxml::IXMLDOMElement ele = ux.GetXmlDoc().documentElement;
|
|
if(arg.GetArgString("ok")=="true")
|
{
|
xml x = new xml;
|
x.setNativePointer(x.CreateInstance());
|
x.LoadXml(arg.GetArgString("arg"));
|
msxml::IXMLDOMElement uele = x.GetXmlDoc().documentElement;
|
string ParentPartyID = uele.selectSingleNode("//ParentPartyID").text;
|
string ParentPartyName = "";
|
string GroupPartyID = uele.selectSingleNode("//GroupPartyID").text;
|
string GroupPartyName = "";
|
|
if( uele.selectSingleNode("//ParentPartyID/@_displaystring"))
|
ParentPartyName = uele.selectSingleNode("//ParentPartyID/@_displaystring").text;
|
if(uele.selectSingleNode("//GroupPartyID/@_displaystring"))
|
GroupPartyName = uele.selectSingleNode("//GroupPartyID/@_displaystring").text;
|
|
int row = dw_list.GetNextSelectRow(1);
|
while(row > 0)
|
{
|
dw_list.SetItemString(row,"ParentPartyID",ParentPartyID);
|
dw_list.SetItemDisplayString(row,"ParentPartyID",ParentPartyName);
|
dw_list.SetItemString(row,"GroupPartyID",GroupPartyID);
|
dw_list.SetItemDisplayString(row,"GroupPartyID",GroupPartyName);
|
ele.appendChild(dw_list.GetRowElement(row).cloneNode(-1));
|
row = dw_list.GetNextSelectRow(row + 1);
|
}
|
dw_list.RedrawEx();
|
arg.AddArg("content",ele.xml);
|
if (getUrl("/sale/data/CustomerV3/level/update",arg.GetString(),x)!=1)
|
{
|
trace(x.GetXmlDoc().text);
|
alert("ÉèÖôíÎó!");
|
return -1;
|
}else
|
{
|
alert("ÉèÖóɹ¦!");
|
}
|
}
|
return 1;
|
}
|
|
int PreOnCmdDispatch(string comdid)
|
{
|
if(comdid.find("action:LogOff",0)>=0) return OnLogOff();
|
if(comdid.find("action:bill.delete",0)>=0) return OnDeleteRow();
|
//if(comdid=="action:search1") return GridSearch();
|
if(comdid=="action:bill.refresh")
|
{
|
return OnRetrieve();
|
}
|
if(comdid=="action:level.customer")
|
{
|
return OnLevelCustomer();
|
}
|
|
return 1;
|
}
|
|
int OnRowChangedEx(ref TNotifyEvent evt,int p)
|
{
|
alert("999");
|
ref DWNMHDR hdr =cast(evt.pnmh as ref DWNMHDR);
|
int row = hdr.row;
|
msxml::IXMLDOMElement ele = listwin::dw_list.GetRowElement(row);
|
string entity = ele.selectSingleNode("CustomerID").text;
|
xml x = new xml;
|
x.setNativePointer(xml::CreateInstance());
|
xaserverarg arg = new xaserverarg;
|
arg.setNativePointer(arg.CreateInstance());
|
arg.AddArg("EntityID",entity);
|
if (getUrl("/sale/data/CustomerV3/entity/customeritem",arg.GetString(),x)!=1)
|
{
|
trace(x.GetXmlDoc().text);
|
return -1;
|
}else
|
{
|
dw_goods.Retrieve(x);
|
dw_goods.Redraw();
|
dw_goods.SetReadOnly(true);
|
}
|
return 1;
|
}
|
|
|
int PostOnAttachEvent()
|
{
|
//»ñµÃÊ÷µÄÑ¡Ôñʼþ
|
AttachEvent("tv_1", "TVN_SELCHANGED",OnTreeSelChanged);
|
AttachEvent("cbx_1","CBN_SELCHANGE",OnSelectDdlb);
|
AttachEvent("pages","PAGE_CLICK",OnChangePages);
|
AttachEvent("dw_list","DWV_RCLICKED",OnRClick);//Êó±êÓÒ¼ü
|
//AttachEvent("dw_list","DWV_CLICKED",OnClick);//Êó±êÓÒ¼ü
|
AttachEvent("dw_list","DWV_ROWFOCUSCHANGED",OnRowChangedEx);
|
|
return 1;
|
}
|
|
int onload()
|
{
|
PIndex=1;
|
listwin::m_QueryTxt =""; //²éѯÌõ¼þ
|
m_sType=""; //type
|
m_sTypeTxt=""; //Ñ¡ÖÐÊ÷µÄdata
|
|
listwin::onload();
|
|
tv_1 = this.GetControl("tv_1");
|
ddlb_1 = this.GetControl("cbx_1");
|
|
changeddlb = 0;
|
OnCreateTree("Source");
|
dw_goods = GetControl("dw_goods");
|
dw_goods.openUrl("/sale/view/CustomerV3/template/customer/customeritem");
|
|
return 1;
|
}
|
|
int onloaded()
|
{
|
listwin::onloaded();
|
|
string EntityID;
|
int row = dw_list.GetRow();
|
if(row<0 || row>dw_list.GetRowCount()) return "";
|
msxml::IXMLDOMElement ele = dw_list.GetRowElement(row);
|
string id = listwin::m_configDoc.selectSingleNode("//entity/EntityID[1]").text;
|
if(ele.selectSingleNode(id))
|
EntityID = ele.selectSingleNode(id).text;
|
|
return 1;
|
}
|
|
};
|
]
|