use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "saleorder.view.vd" use "publiccode.vutil.vbusiness.vd" unit trade [ class Business5Win : public xframe { xdwgrid dw_list; xdwgrid dw_processed; xdwgrid dw_message; xdwgrid dw_outbox; xdwgrid dw_Recovery; xnode m_agentNode; //Agent Condition xtreeview tv_folder; int hMessage; int hTask; string agentFor; string selectname; xwin sheet; 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+"[@for='"+agentFor+"']/*"); if(agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent (anode,s); //FillGoodsCarList(); } } return 1; } //½¹µã¼¤»î´¦Àíº¯Êý int OnSetFocus(ref TEvent evt,int param) { //ÖØÖù¤¾ßÌõ SetAgent(); return 1; } int RetrieveData() { if(selectname == "ÒÑ´¦ÀíÈÎÎñ") { xml x = ViewObject::RetrieveData("/sale/data/business/list/processedtask"); dw_processed.Retrieve(x); dw_processed.Redraw(); dw_processed.SetReadOnly(true); }else if(selectname == "ÊÕ¼þÏä") { string UserNO= publiccode::GetUser().no; x = ViewObject::RetrieveData("/sale/data/business/list/inbox"); dw_message.Retrieve(x); dw_message.Redraw(); dw_message.SetReadOnly(true); } else if(selectname == "·¢¼þÏä") { x = ViewObject::RetrieveData("/sale/data/business/list/outbox"); dw_outbox.Retrieve(x); dw_outbox.Redraw(); dw_outbox.SetReadOnly(true); } else if(selectname == "»ØÊÕÏä") { x = ViewObject::RetrieveData("/sale/data/business/list/Recovery"); dw_Recovery.Retrieve(x); dw_Recovery.Redraw(); dw_Recovery.SetReadOnly(true); } AdjustTip(); return 1; } int OnDelete() { int MB_OKCANCEL = 1; int IDOK = 1; int ret = win32::MessageBox(GetHWND(),"È·ÈÏɾ³ýÏûÏ¢?","Ìáʾ",MB_OKCANCEL); if(ret == IDOK) { msxml::IXMLDOMElement ele = dw_message.GetRowElement(dw_message.GetRow()); string TaskID = ele.getAttribute("guid"); xml x = ViewObject::RetrieveData("/sale/data/business/message/delete","TaskID",TaskID); string status = x.GetXml(); if(status.find("ok") == 1) { alert("ɾ³ý³É¹¦"); RetrieveData(); }else { alert("ɾ³ýʧ°Ü"); } } return 1; } int OnUpdateRecovery() { int MB_OKCANCEL = 1; int IDOK = 1; int ret = win32::MessageBox(GetHWND(),"È·Èϻָ´ÏûÏ¢?","Ìáʾ",MB_OKCANCEL); if(ret == IDOK) { msxml::IXMLDOMElement ele = dw_Recovery.GetRowElement(dw_Recovery.GetRow()); string TaskID = ele.getAttribute("guid"); xml x = ViewObject::RetrieveData("/sale/data/business/Recovery/UpdateRecovery","TaskID",TaskID); string status = x.GetXml(); if(status.find("ok") == 1) { alert("»Ö¸´³É¹¦"); RetrieveData(); }else { alert("»Ö¸´Ê§°Ü"); } } return 1; } int OnDeleteRecovery() { int MB_OKCANCEL = 1; int IDOK = 1; int ret = win32::MessageBox(GetHWND(),"È·Èϳ¹µ×ɾ³ýÏûÏ¢?","Ìáʾ",MB_OKCANCEL); if(ret == IDOK) { msxml::IXMLDOMElement ele = dw_Recovery.GetRowElement(dw_Recovery.GetRow()); string TaskID = ele.getAttribute("guid"); xml x = ViewObject::RetrieveData("/sale/data/business/Recovery/DeleteRecovery","TaskID",TaskID); string status = x.GetXml(); if(status.find("ok") == 1) { alert("ɾ³ý³É¹¦"); RetrieveData(); }else { alert("ɾ³ýʧ°Ü"); } } return 1; } int OnAdd() { OpenWindow("dev:xpage[message.business.vx]"); if(selectname == "·¢¼þÏä" || selectname == "²Ý¸åÏä") RetrieveData(); return 1; } //ÃüÁî·¢²¼º¯Êý int OnCmdDispatch(string comdid) { int ret = 0; if(comdid.find("action:",0)>=0) { ret = win32::SendMessage(sheet.GetHWND(),0x401,comdid,0); } if(comdid=="xmRefreshTask") { trace("\r\n----refresh task--------"); win32::SendMessage(sheet.GetHWND(),0x401,comdid,0); return 1; } if(comdid=="xmRefresh") { trace("\r\n----refresh--------"); ret = win32::SendMessage(sheet.GetHWND(),0x401,comdid,0); } if(comdid == "xmRertieve") { RetrieveData(); ret = 1; } if(comdid=="xmAdd") { OnAdd(); ret = 1; } if(comdid == "xmDelete") { OnDelete(); ret = 1; } if(comdid == "UpdateRecovery") { OnUpdateRecovery(); ret = 1; } if(comdid == "DeleteRecovery") { OnDeleteRecovery(); ret = 1; } if(comdid == "xmImage") { int row = dw_message.GetRow(); string PriceID = dw_message.GetItemString(row,"EntityID"); xml x = ViewObject::RetrieveData("/sale/data/Enquiry/PriceList/GetSkunoByPriceID","PriceID",PriceID); msxml::IXMLDOMNodeList items = x.GetXmlDoc().selectNodes("data/Item"); msxml::IXMLDOMNode t = items.item(0); string skunos = t.selectSingleNode("skuno").text; xaserverarg arg_pic=new xaserverarg; arg_pic.setNativePointer(arg_pic.CreateInstance()); arg_pic.AddArg("SKUNoList",skunos); arg_pic.AddArg("ParentWindow",GetHWND().toString()); arg_pic.AddArg("OpenFlag","1"); OpenWindow("dev:xpage[SKU.PictureView.Product3.vx]",cast(arg_pic as int)); return 1; } else if(comdid == "xmSearchOne") { OnSearchOne(); return 1; } else if(comdid == "xmSearchTwo") { OnSearchTwo(); return 1; } else if(comdid=="Lognew") { string EntityID = dw_processed.GetItemString(dw_processed.GetRow(),"EntityID"); //alert(EntityID); xaserverarg args=new xaserverarg; args.setNativePointer(args.CreateInstance()); args.AddArg("EntityID",EntityID); //OpenWindow("dev:xpage[workflow.actionlog.vx]",cast(args as int)); OpenWindow("dev:xpage[workflow.actionlog_vd.vx]",args.getNativePointer()); } return ret; } int OnSearchOne() { string searchStr=""; xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("text", searchStr); OpenWindow("dev:xpage[search.dialog.vx]", cast(arg as int)); string str = arg.GetArgString("text"); if(str != searchStr) { searchStr = str; dw_message.Filter("*",searchStr); return 1; } return 1; } int OnSearchTwo() { string searchStr=""; xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("text", searchStr); OpenWindow("dev:xpage[search.dialog.vx]", cast(arg as int)); string str = arg.GetArgString("text"); if(str != searchStr) { searchStr = str; dw_Recovery.Filter("*",searchStr); return 1; } return 1; } //ÃüÁî´¦Àíʼþ int OnXCommand(ref TXCommandEvent evt,int param) { return OnCmdDispatch(evt.pStrID); } //²éÕÒµ±Ç°Ê÷ÏîµÄ¶¥¼¶Ä¿Â¼ int LookupTopFolder(int hItem) { int hRoot = tv_folder.GetRootItem(); while(tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem); return hItem; } int ResetAgent(string agentAsk) { if(agentFor != agentAsk) { agentFor = agentAsk; m_agentNode = 0; SetAgent(); } return 1; } int OnTreeSelChanged(ref TNotifyEvent evt,int p) { ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW); int hItem = nmtv.itemNew.hItem; int hTopItem = LookupTopFolder(hItem); string data = tv_folder.GetItemData(hItem); trace("\r\n"+data); //msxml::IXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as msxml::IXMLDOMElement); //if(e)trace(e.xml); string name = tv_folder.GetItemLabel(hTopItem); selectname = tv_folder.GetItemLabel(hItem); if(selectname == "´ý´¦ÀíÈÎÎñ") { SwitchLayer("sheet2","frame"); sheet = GetChildWin("sheet2"); ResetAgent("business1"); }else if(selectname == "ÒÑ´¦ÀíÈÎÎñ") { SwitchLayer("sheet3","frame"); RetrieveData(); ResetAgent("business2"); }else if(selectname == "ÊÕ¼þÏä") { SwitchLayer("sheet4","frame"); RetrieveData(); ResetAgent("business3"); }else if(selectname == "·¢¼þÏä") { SwitchLayer("sheet5","frame"); RetrieveData(); ResetAgent("business2"); } else if(selectname == "ÊÂÎñ") { SwitchLayer("sheet1","frame"); }else if(selectname == "»ØÊÕÏä") { SwitchLayer("sheet6","frame"); RetrieveData(); ResetAgent("business5"); } return 1; } int OnRowChanged(ref TNotifyEvent evt,int p) { //fixed one event only one process ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); int row = hdr.row; if(selectname == "ÒÑ´¦ÀíÈÎÎñ") msxml::IXMLDOMElement ele = dw_processed.GetRowElement(row); else if(selectname == "ÊÕ¼þÏä") { ele = dw_message.GetRowElement(row); string Subject = dw_message.GetItemString(row,"Subject"); if(Subject.find("¼Û¸ñµ¥") == -1) { ResetAgent("business3"); }else{ ResetAgent("business4"); } } else if(selectname == "»ØÊÕÏä") { ele = dw_Recovery.GetRowElement(row); string SubjectOne = dw_Recovery.GetItemString(row,"Subject"); } else if(selectname == "·¢¼þÏä") ele = dw_outbox.GetRowElement(row); xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); trace(ele.xml); arg.AddArg("content",ele.xml); xml doc=new xml; doc.setNativePointer(xml::CreateInstance()); if(getUrl("/sale/data/vpage/vstart/task",arg.GetString(),doc)!=1) { trace("error->:"+doc.GetXml()); return 0; } if(doc.GetXml() == "") return -1; //trace(doc.GetXml()); htmlctrl ht = GetControl("taskinfo"); ht.SetContent(doc.GetXml()); ht.Redraw(); return 1; } int OnItemAskStyle(ref TNotifyEvent evt,int p) { int DMS_CSSSTYLE = 0x8; ref DWASKSTYLENMHDR hdr = trust(evt.pnmh as ref DWASKSTYLENMHDR); int row = hdr.row; int col = hdr.col; string colname = hdr.colname; int rows = dw_message.GetRowCount(); if(row < 1 || row > rows) { return 1; } if(colname=="flowName" || colname=="Process" || colname=="sender" || colname=="SendDate"||colname=="processer"||colname=="ProcessedDate"|| colname=="Subject"||colname=="Content") { string ReadedFlag = dw_message.GetItemString(row,"ReadedFlag"); if(ReadedFlag != "Y") { hdr.mask = DMS_CSSSTYLE; //hdr.cssstyle = "color:#cccccc"; hdr.cssstyle = "font-weight:700"; } } return 1; } int OnDWClick(ref TNotifyEvent evt,int p) { string UserNO=publiccode::GetUser().no; if(UserNO !="00701") { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string value = hdr.data; string colname = hdr.colname; int row = hdr.row; msxml::IXMLDOMElement ele = dw_message.GetRowElement(row); string TaskID = ele.getAttribute("guid"); string ReadedFlag = dw_message.GetItemString(row,"ReadedFlag"); string flowName = dw_message.GetItemString(row,"flowName"); if(ReadedFlag != "Y") { xml x = ViewObject::RetrieveData("/sale/data/business/message/read","TaskID",TaskID); dw_message.SetItemString(row,"ReadedFlag","Y"); if(ReadedFlag != "Y" && flowName == "¼Û¸ñµ¥¹²Ïí") { xml x1 = ViewObject::RetrieveData("/sale/data/business/Recovery/MessageStatus","TaskID",TaskID); } dw_message.Redraw(); //RetrieveData(); } AdjustTip(); } return 1; } int OpenShowroom1(ref TNotifyEvent evt,int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string value = hdr.data; string colname = hdr.colname; int row = hdr.row; msxml::IXMLDOMElement ele = dw_outbox.GetRowElement(row); string TaskID = ele.getAttribute("guid"); string Category = dw_outbox.GetItemString(row,"flowName"); if(Category=="ÆÕͨ"){ xaserverarg arg2 = new xaserverarg; arg2.setNativePointer(arg2.CreateInstance()); if(dw_outbox.GetRowCount() < 1) return 1; msxml::IXMLDOMElement ele1 = dw_outbox.GetRowElement(dw_outbox.GetRow()); arg2.AddArg("EntityID",dw_outbox.GetItemString(dw_outbox.GetRow(),"EntityID")); arg2.AddArg("id",ele1.getAttribute("guid")); OpenWindow("dev:xpage[message.business.vx]", cast(arg2 as int)); return 1; } return 1; } int OpenShowroom(ref TNotifyEvent evt,int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string value = hdr.data; string colname = hdr.colname; int row = hdr.row; msxml::IXMLDOMElement ele = dw_message.GetRowElement(row); string TaskID = ele.getAttribute("guid"); string Category = dw_message.GetItemString(row,"Category"); if(Category=="»õºÅÉêÇë"){ int p1="" ; OpenWindow("dev:xpage[UserProductApply.vx]", p1); } if(Category=="ÆÕͨ"){ xaserverarg arg2 = new xaserverarg; arg2.setNativePointer(arg2.CreateInstance()); if(dw_message.GetRowCount() < 1) return 1; msxml::IXMLDOMElement ele1 = dw_message.GetRowElement(dw_message.GetRow()); arg2.AddArg("EntityID",dw_message.GetItemString(dw_message.GetRow(),"EntityID")); arg2.AddArg("id",ele1.getAttribute("guid")); OpenWindow("dev:xpage[message.business.vx]", cast(arg2 as int)); return 1; } else if(Category=="±¨¼Ûµ¥¹²Ïí") { if(dw_message.GetRowCount() < 1) return 1; string No = dw_message.GetItemString(dw_message.GetRow(),"No"); OpenWindow("dev:xpage[EnquiryEx.quote.vx]",cast(No as int)); } if(Category=="SupplierV3") { xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); if(dw_message.GetRowCount() < 1) return 1; arg.AddArg("EntityID",dw_message.GetItemString(dw_message.GetRow(),"EntityID")); //OpenWindow("dev:xpage[maint.Owner.Supplier.v3.vx]",cast(arg as int)); arg.AddArg("config","/sale/view/SupplierV3/config/supplier/open"); OpenWindow("dev:xpage[maintex.Owner.Supplier.v3.vx]",arg.getNativePointer()); } if(Category=="¹©Ó¦ÉÌ»ØÍË") { xaserverarg arg1 = new xaserverarg; arg1.setNativePointer(arg1.CreateInstance()); if(dw_message.GetRowCount() < 1) return 1; arg1.AddArg("EntityID",dw_message.GetItemString(dw_message.GetRow(),"EntityID")); OpenWindow("dev:xpage[maint.Owner.Supplier.v3.vx]",cast(arg1 as int)); } return 1; } int OnAttachEvent() { //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent("WM_XCOMMAND",OnXCommand); //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent("WM_SETFOCUS",OnSetFocus); //Ê÷Ñ¡Ôñ AttachEvent("tv_folder", "TVN_SELCHANGED",OnTreeSelChanged); AttachEvent("dw_processed","DWV_ROWFOCUSCHANGED",OnRowChanged); AttachEvent("dw_message","DWV_ROWFOCUSCHANGED",OnRowChanged); AttachEvent("dw_outbox","DWV_ROWFOCUSCHANGED",OnRowChanged); AttachEvent("dw_Recovery","DWV_ROWFOCUSCHANGED",OnRowChanged); AttachEvent("dw_message","DWV_ASKSTYLE",OnItemAskStyle); AttachEvent("dw_message","DWV_CLICKED",OnDWClick); AttachEvent("dw_message","DWV_DOUBLECLICKED",OpenShowroom); AttachEvent("dw_outbox","DWV_DOUBLECLICKED",OpenShowroom1); return 1; } int OnRetrieve() { return 1; } int InitialFolder() { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement e = xframeElement.selectSingleNode("//xtree[@name='tv_folder']/initial"); //msxml::IXMLDOMElement e = xframeElement.selectSingleNode("//xtree[@name='tv_folder']/data/item[@name='"+"']"); //trace(e.xml); if(e) ExpandChildFolder(0,e); return 1; } int ExpandChildFolder(int hItem, msxml::IXMLDOMElement pElement) { msxml::IXMLDOMNodeList nlist = pElement.SelectNodes("Item"); int len = nlist.length; for (int i = 0; i < len; i++) { msxml::IXMLDOMElement e = nlist.item(i); string name = e.getAttribute("name"); string sImage = e.getAttribute("image"); string child = e.getAttribute("child"); int image = 15; if(sImage) image = sImage.toInt(); int h= tv_folder.InsertChildItem(tv_folder.GetId(),hItem,name, trust(e as int),image); if(child !="no" ) tv_folder.SetItemChild(h,1); ExpandChildFolder(h,e); } return 1; } int AdjustTip() { xml x = ViewObject::RetrieveData("/sale/data/business/list/AdjustTipNotify"); msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("/data/Item"); msxml::IXMLDOMNode t = nlist.item(0); string informationQuantity =t.selectSingleNode("informationQuantity").text; tv_folder.SetItemLabel(hMessage, "ÏûÏ¢"+"("+informationQuantity+")"); xml x1 = ViewObject::RetrieveData("/sale/data/business/list/AdjustTipTask"); //alert(x1.GetXml()); msxml::IXMLDOMNodeList nlist1 = x1.GetXmlDoc().SelectNodes("/data/Item"); msxml::IXMLDOMNode t1= nlist1.item(0); string informationQuantityTask =t1.selectSingleNode("informationQuantityTask").text; tv_folder.SetItemLabel(hTask, "ÈÎÎñ"+"("+informationQuantityTask+")"); /*select count(*) from bpm_task where typ='notify' and process='N' and charindex('|'+'00303'+'|','|' + rtrim(receiver) +'|')>=1*/ return 1; } int onload() { agentFor = "business"; OnAttachEvent(); dw_list = GetControl("dw_list"); dw_processed = GetControl("dw_processed"); dw_processed.openUrl("/sale/view/Business3/template/processedtask"); dw_processed.SetColumnState("EntityID",false); dw_processed.SetColumnState("Category",false); dw_message = GetControl("dw_message"); dw_message.openUrl("/sale/view/Business3/template/message"); dw_message.SetAskStyle(true); dw_message.SetColumnState("EntityID",false); dw_message.SetColumnState("Category",false); dw_message.SetColumnState("ReadedFlag",false); dw_outbox = GetControl("dw_outbox"); dw_outbox.openUrl("/sale/view/Business3/template/outbox"); dw_outbox.SetColumnState("EntityID",false); dw_Recovery = GetControl("dw_Recovery"); dw_Recovery.openUrl("/sale/view/Business3/template/message"); dw_Recovery.SetColumnState("EntityID",false); dw_Recovery.SetColumnState("Category",false); dw_Recovery.SetColumnState("ReadedFlag",false); dw_Recovery.SetColumnState("No",false); tv_folder = GetControl("tv_folder"); tv_folder.SetLineAtRoot(true); sheet = GetChildWin("sheet1"); int hItem = tv_folder.GetRootItem(); tv_folder.ExpandItem(hItem); int hcItem =tv_folder.GetChildItem(hItem); hTask = hcItem; tv_folder.ExpandItemAll(hcItem); tv_folder.ItemFocus(tv_folder.GetChildItem(hcItem)); hcItem = tv_folder.GetNextItem(hcItem); hMessage = hcItem; tv_folder.ExpandItemAll(hcItem); AdjustTip(); return 1; } int onloaded() { SetAgent(); return 1; } }; ]