jrj/project/business/Affair/Business5.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/business/Affair/ProcessManagement.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/business/Affair/message.business.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
jrj/project/business/Affair/message.supplier.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
jrj/project/business/Affair/Business5.cpp
@@ -1,12 +1,17 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "saleorder.view.vd" use "publiccode.vutil.vbusiness.vd" #include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <xcontrol/xcell.hpp> unit trade [ class Business5Win : public xframe #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) Business5Win : public xframe { public: xdwgrid dw_list; xdwgrid dw_processed; xdwgrid dw_message; @@ -18,26 +23,35 @@ int hMessage; int hTask; string agentFor; string selectname; xstring agentFor; xstring selectname; xwin sheet; public: Business5Win(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static Business5Win* CreateInstance(void* implPtr, void* hWnd) { Business5Win* pWin = new Business5Win(implPtr, (HWND)hWnd); return pWin; } int SetAgent() { string xfNodeAgentArea = "agentarea"; xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if(m_agentNode) { SetAgentNodeContent (anode,m_agentNode); SetAgentNode (anode,m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[@for='"+agentFor+"']/*"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[@for='"+agentFor+L"']/*"); if(agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent (anode,s); xstring s = agent.xml(); m_agentNode = SetAgentNode (anode,s); //FillGoodsCarList(); } } @@ -45,7 +59,7 @@ } //焦点激活处理函数 int OnSetFocus(ref TEvent evt,int param) int OnSetFocus(TEvent* evt, LPARAM param) { //重置工具条 SetAgent(); @@ -53,32 +67,33 @@ } int RetrieveData() { if(selectname == "已处理任务") xml x; if(selectname == L"已处理任务") { xml x = ViewObject::RetrieveData("/sale/data/business/list/processedtask"); x = ViewObject::RetrieveData(L"/sale/data/business/list/processedtask"); dw_processed.Retrieve(x); dw_processed.Redraw(); dw_processed.SetReadOnly(true); }else if(selectname == "收件箱") }else if(selectname == L"收件箱") { string UserNO= publiccode::GetUser().no; xstring UserNO= publiccode::GetUser().no; x = ViewObject::RetrieveData("/sale/data/business/list/inbox"); x = ViewObject::RetrieveData(L"/sale/data/business/list/inbox"); dw_message.Retrieve(x); dw_message.Redraw(); dw_message.SetReadOnly(true); } else if(selectname == "发件箱") else if(selectname == L"发件箱") { x = ViewObject::RetrieveData("/sale/data/business/list/outbox"); x = ViewObject::RetrieveData(L"/sale/data/business/list/outbox"); dw_outbox.Retrieve(x); dw_outbox.Redraw(); dw_outbox.SetReadOnly(true); } else if(selectname == "回收箱") else if(selectname == L"回收箱") { x = ViewObject::RetrieveData("/sale/data/business/list/Recovery"); x = ViewObject::RetrieveData(L"/sale/data/business/list/Recovery"); dw_Recovery.Retrieve(x); dw_Recovery.Redraw(); dw_Recovery.SetReadOnly(true); @@ -90,20 +105,20 @@ { int MB_OKCANCEL = 1; int IDOK = 1; int ret = win32::MessageBox(GetHWND(),"确认删除消息?","提示",MB_OKCANCEL); int ret =MessageBox(GetHWND(),L"确认删除消息?",L"提示",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) KXMLDOMElement ele = dw_message.GetRowElement(dw_message.GetRow()); xstring TaskID = ele.getAttribute(L"guid"); xml x = ViewObject::RetrieveData(L"/sale/data/business/message/delete",L"TaskID",TaskID); xstring status = x.xml(); if(status.find(L"ok") == 1) { alert("删除成功"); alert(L"删除成功"); RetrieveData(); }else { alert("删除失败"); alert(L"删除失败"); } } @@ -114,20 +129,20 @@ { int MB_OKCANCEL = 1; int IDOK = 1; int ret = win32::MessageBox(GetHWND(),"确认恢复消息?","提示",MB_OKCANCEL); int ret =MessageBox(GetHWND(),L"确认恢复消息?",L"提示",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) KXMLDOMElement ele = dw_Recovery.GetRowElement(dw_Recovery.GetRow()); xstring TaskID = ele.getAttribute(L"guid"); xml x = ViewObject::RetrieveData(L"/sale/data/business/Recovery/UpdateRecovery",L"TaskID",TaskID); xstring status = x.xml(); if(status.find(L"ok") == 1) { alert("恢复成功"); alert(L"恢复成功"); RetrieveData(); }else { alert("恢复失败"); alert(L"恢复失败"); } } @@ -138,20 +153,20 @@ { int MB_OKCANCEL = 1; int IDOK = 1; int ret = win32::MessageBox(GetHWND(),"确认彻底删除消息?","提示",MB_OKCANCEL); int ret =MessageBox(GetHWND(),L"确认彻底删除消息?",L"提示",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) KXMLDOMElement ele = dw_Recovery.GetRowElement(dw_Recovery.GetRow()); xstring TaskID = ele.getAttribute(L"guid"); xml x = ViewObject::RetrieveData(L"/sale/data/business/Recovery/DeleteRecovery",L"TaskID",TaskID); xstring status = x.xml(); if(status.find(L"ok") == 1) { alert("删除成功"); alert(L"删除成功"); RetrieveData(); }else { alert("删除失败"); alert(L"删除失败"); } } @@ -160,92 +175,97 @@ int OnAdd() { OpenWindow("dev:xpage[message.business.vx]"); if(selectname == "发件箱" || selectname == "草稿箱") RetrieveData(); OpenWindow(L"dev:xpage[message.business.vx]"); if(selectname == L"发件箱" || selectname == L"草稿箱") RetrieveData(); return 1; } //命令发布函数 int OnCmdDispatch(string comdid) int OnCmdDispatch(xstring comdid) { int ret = 0; if(comdid.find("action:",0)>=0) if(comdid.find(L"action:",0)>=0) { ret = win32::SendMessage(sheet.GetHWND(),0x401,comdid,0); ret =SendMessage(GetHWND(),0x401,(LPARAM)comdid,0); } if(comdid=="xmRefreshTask") if(comdid==L"xmRefreshTask") { trace("\r\n----refresh task--------"); win32::SendMessage(sheet.GetHWND(),0x401,comdid,0); trace(L"\r\n----refresh task--------"); SendMessage(GetHWND(),0x401,(LPARAM)comdid,0); return 1; } if(comdid=="xmRefresh") if(comdid==L"xmRefresh") { trace("\r\n----refresh--------"); ret = win32::SendMessage(sheet.GetHWND(),0x401,comdid,0); trace(L"\r\n----refresh--------"); ret =SendMessage(GetHWND(),0x401, (LPARAM)comdid,0); } if(comdid == "xmRertieve") if(comdid == L"xmRertieve") { RetrieveData(); ret = 1; } if(comdid=="xmAdd") if(comdid==L"xmAdd") { OnAdd(); ret = 1; } if(comdid == "xmDelete") if(comdid == L"xmDelete") { OnDelete(); ret = 1; } if(comdid == "UpdateRecovery") if(comdid == L"UpdateRecovery") { OnUpdateRecovery(); ret = 1; } if(comdid == "DeleteRecovery") if(comdid == L"DeleteRecovery") { OnDeleteRecovery(); ret = 1; } if(comdid == "xmImage") if(comdid == L"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)); xstring PriceID = dw_message.GetItemString(row,L"EntityID"); xml x = ViewObject::RetrieveData(L"/sale/data/Enquiry/PriceList/GetSkunoByPriceID",L"PriceID",PriceID); KXMLDOMNodeList items = x.selectNodes(L"data/Item"); KXMLDOMNode t = items.item(0); xstring skunos = t.selectSingleNode(L"skuno").text(); xaserverarg arg_pic; arg_pic.AddArg(L"SKUNoList",skunos); #if 0 arg_pic.AddArg(L"ParentWindow", GetHWND()); #endif // 0 arg_pic.AddArg(L"OpenFlag",L"1"); OpenWindow(L"dev:xpage[SKU.PictureView.Product3.vx]",arg_pic ); return 1; } else if(comdid == "xmSearchOne") else if(comdid == L"xmSearchOne") { OnSearchOne(); return 1; } else if(comdid == "xmSearchTwo") else if(comdid == L"xmSearchTwo") { OnSearchTwo(); return 1; } else if(comdid=="Lognew") else if(comdid==L"Lognew") { string EntityID = dw_processed.GetItemString(dw_processed.GetRow(),"EntityID"); xstring EntityID = dw_processed.GetItemString(dw_processed.GetRow(),L"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()); xaserverarg args; args.AddArg(L"EntityID",EntityID); //OpenWindow(L"dev:xpage[workflow.actionlog.vx]",cast(args as int)); OpenWindow(L"dev:xpage[workflow.actionlog_vd.vx]",args); @@ -256,16 +276,16 @@ 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"); xstring searchStr=L""; xaserverarg arg; arg.AddArg(L"text", searchStr); OpenWindow(L"dev:xpage[search.dialog.vx]", arg); xstring str = arg.GetArgString(L"text"); if(str != searchStr) { searchStr = str; dw_message.Filter("*",searchStr); dw_message.Filter(L"*",searchStr); return 1; } return 1; @@ -273,37 +293,37 @@ 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"); xstring searchStr=L""; xaserverarg arg; arg.AddArg(L"text", searchStr); OpenWindow(L"dev:xpage[search.dialog.vx]", arg); xstring str = arg.GetArgString(L"text"); if(str != searchStr) { searchStr = str; dw_Recovery.Filter("*",searchStr); dw_Recovery.Filter(L"*",searchStr); return 1; } return 1; } //命令处理事件 int OnXCommand(ref TXCommandEvent evt,int param) int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } //查找当前树项的顶级目录 int LookupTopFolder(int hItem) HTREEITEM LookupTopFolder(HTREEITEM hItem) { int hRoot = tv_folder.GetRootItem(); while(tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem); HTREEITEM hRoot = tv_folder.GetRootItem(); while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem); return hItem; } int ResetAgent(string agentAsk) int ResetAgent(xstring agentAsk) { if(agentFor != agentAsk) { @@ -314,117 +334,117 @@ return 1; } int OnTreeSelChanged(ref TNotifyEvent evt,int p) int OnTreeSelChanged(TEvent* evt, LPARAM p) { ref NMTREEVIEW nmtv = cast(evt.pnmh as NMTREEVIEW); int hItem = nmtv.itemNew.hItem; int hTopItem = LookupTopFolder(hItem); NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh; HTREEITEM hItem = nmtv.itemNew.hItem; HTREEITEM 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); xstring data = tv_folder.GetItemData(hItem); trace(L"\r\n"+data); //KXMLDOMElement e = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement); //if(e)trace(e.xml()); string name = tv_folder.GetItemLabel(hTopItem); xstring name = tv_folder.GetItemLabel(hTopItem); selectname = tv_folder.GetItemLabel(hItem); if(selectname == "待处理任务") if(selectname == L"待处理任务") { SwitchLayer("sheet2","frame"); sheet = GetChildWin("sheet2"); ResetAgent("business1"); }else if(selectname == "已处理任务") SwitchLayer(L"sheet2",L"frame"); sheet = GetChildWin(L"sheet2"); ResetAgent(L"business1"); }else if(selectname == L"已处理任务") { SwitchLayer("sheet3","frame"); SwitchLayer(L"sheet3",L"frame"); RetrieveData(); ResetAgent("business2"); }else if(selectname == "收件箱") ResetAgent(L"business2"); }else if(selectname == L"收件箱") { SwitchLayer("sheet4","frame"); SwitchLayer(L"sheet4",L"frame"); RetrieveData(); ResetAgent("business3"); }else if(selectname == "发件箱") ResetAgent(L"business3"); }else if(selectname == L"发件箱") { SwitchLayer("sheet5","frame"); SwitchLayer(L"sheet5",L"frame"); RetrieveData(); ResetAgent("business2"); ResetAgent(L"business2"); } else if(selectname == "事务") else if(selectname == L"事务") { SwitchLayer("sheet1","frame"); }else if(selectname == "回收箱") SwitchLayer(L"sheet1",L"frame"); }else if(selectname == L"回收箱") { SwitchLayer("sheet6","frame"); SwitchLayer(L"sheet6",L"frame"); RetrieveData(); ResetAgent("business5"); ResetAgent(L"business5"); } return 1; } int OnRowChanged(ref TNotifyEvent evt,int p) int OnRowChanged(TEvent* evt, int p) { //fixed one event only one process ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; if(selectname == "已处理任务") msxml::IXMLDOMElement ele = dw_processed.GetRowElement(row); else if(selectname == "收件箱") KXMLDOMElement ele; if(selectname == L"已处理任务") ele = dw_processed.GetRowElement(row); else if(selectname == L"收件箱") { ele = dw_message.GetRowElement(row); string Subject = dw_message.GetItemString(row,"Subject"); if(Subject.find("价格单") == -1) xstring Subject = dw_message.GetItemString(row,L"Subject"); if(Subject.find(L"价格单") == -1) { ResetAgent("business3"); ResetAgent(L"business3"); }else{ ResetAgent("business4"); ResetAgent(L"business4"); } } else if(selectname == "回收箱") else if(selectname == L"回收箱") { ele = dw_Recovery.GetRowElement(row); string SubjectOne = dw_Recovery.GetItemString(row,"Subject"); xstring SubjectOne = dw_Recovery.GetItemString(row,L"Subject"); } else if(selectname == "发件箱") else if(selectname == L"发件箱") 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) xaserverarg arg; trace(ele.xml()); arg.AddArg(L"content",ele.xml()); xml doc=new xml; if(getUrl(L"/sale/data/vpage/vstart/task",arg.GetString(),doc)!=1) { trace("error->:"+doc.GetXml()); trace((xstring)L"error->:"+doc.xml()); return 0; } if(doc.GetXml() == "") if(doc.xml() == L"") return -1; //trace(doc.GetXml()); htmlctrl ht = GetControl("taskinfo"); ht.SetContent(doc.GetXml()); //trace(doc.xml()); htmlctrl ht = GetControl(L"taskinfo"); ht.SetContent(doc.xml()); ht.Redraw(); return 1; } int OnItemAskStyle(ref TNotifyEvent evt,int p) int OnItemAskStyle(TEvent* 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; xstring 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") if(colname==L"flowName" || colname==L"Process" || colname==L"sender" || colname==L"SendDate"||colname==L"processer"||colname==L"ProcessedDate"|| colname==L"Subject"||colname==L"Content") { string ReadedFlag = dw_message.GetItemString(row,"ReadedFlag"); if(ReadedFlag != "Y") xstring ReadedFlag = dw_message.GetItemString(row,L"ReadedFlag"); if(ReadedFlag != L"Y") { hdr.mask = DMS_CSSSTYLE; //hdr.cssstyle = "color:#cccccc"; hdr.cssstyle = "font-weight:700"; //hdr.cssstyle = L"color:#cccccc"; hdr.cssstyle = L"font-weight:700"; } } @@ -432,26 +452,26 @@ return 1; } int OnDWClick(ref TNotifyEvent evt,int p) int OnDWClick(TEvent* evt, int p) { string UserNO=publiccode::GetUser().no; if(UserNO !="00701") xstring UserNO=publiccode::GetUser().no; if(UserNO !=L"00701") { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string value = hdr.data; string colname = hdr.colname; DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring value = hdr.data; xstring 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") KXMLDOMElement ele = dw_message.GetRowElement(row); xstring TaskID = ele.getAttribute(L"guid"); xstring ReadedFlag = dw_message.GetItemString(row,L"ReadedFlag"); xstring flowName = dw_message.GetItemString(row,L"flowName"); if(ReadedFlag != L"Y") { xml x = ViewObject::RetrieveData("/sale/data/business/message/read","TaskID",TaskID); dw_message.SetItemString(row,"ReadedFlag","Y"); if(ReadedFlag != "Y" && flowName == "价格单共享") xml x = ViewObject::RetrieveData(L"/sale/data/business/message/read",L"TaskID",TaskID); dw_message.SetItemString(row,L"ReadedFlag",L"Y"); if(ReadedFlag != L"Y" && flowName == L"价格单共享") { xml x1 = ViewObject::RetrieveData("/sale/data/business/Recovery/MessageStatus","TaskID",TaskID); xml x1 = ViewObject::RetrieveData(L"/sale/data/business/Recovery/MessageStatus",L"TaskID",TaskID); } dw_message.Redraw(); //RetrieveData(); @@ -461,93 +481,93 @@ return 1; } int OpenShowroom1(ref TNotifyEvent evt,int p) int OpenShowroom1(TEvent* evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string value = hdr.data; string colname = hdr.colname; DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring value = hdr.data; xstring 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()); KXMLDOMElement ele = dw_outbox.GetRowElement(row); xstring TaskID = ele.getAttribute(L"guid"); xstring Category = dw_outbox.GetItemString(row,L"flowName"); if(Category==L"普通"){ xaserverarg arg2; 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)); KXMLDOMElement ele1 = dw_outbox.GetRowElement(dw_outbox.GetRow()); arg2.AddArg(L"EntityID",dw_outbox.GetItemString(dw_outbox.GetRow(),L"EntityID")); arg2.AddArg(L"id",ele1.getAttribute(L"guid")); OpenWindow(L"dev:xpage[message.business.vx]",arg2); 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 OpenShowroom(TEvent* evt, int p) { DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring value = hdr.data; xstring 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); KXMLDOMElement ele = dw_message.GetRowElement(row); xstring TaskID = ele.getAttribute(L"guid"); xstring Category = dw_message.GetItemString(row,L"Category"); if(Category==L"货号申请"){ int p1 ; OpenWindow(L"dev:xpage[UserProductApply.vx]", p1); } if(Category=="普通"){ xaserverarg arg2 = new xaserverarg; arg2.setNativePointer(arg2.CreateInstance()); if(Category==L"普通"){ xaserverarg arg2; 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)); KXMLDOMElement ele1 = dw_message.GetRowElement(dw_message.GetRow()); arg2.AddArg(L"EntityID",dw_message.GetItemString(dw_message.GetRow(),L"EntityID")); arg2.AddArg(L"id",ele1.getAttribute(L"guid")); OpenWindow(L"dev:xpage[message.business.vx]", arg2); return 1; } else if(Category=="报价单共享") else if(Category==L"报价单共享") { 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)); xstring No = dw_message.GetItemString(dw_message.GetRow(),L"No"); OpenWindow(L"dev:xpage[EnquiryEx.quote.vx]",cast(No as int)); } if(Category=="SupplierV3") if(Category==L"SupplierV3") { xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); xaserverarg arg; 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()); arg.AddArg(L"EntityID",dw_message.GetItemString(dw_message.GetRow(),L"EntityID")); //OpenWindow(L"dev:xpage[maint.Owner.Supplier.v3.vx]",cast(arg as int)); arg.AddArg(L"config",L"/sale/view/SupplierV3/config/supplier/open"); OpenWindow(L"dev:xpage[maintex.Owner.Supplier.v3.vx]",arg); } if(Category=="供应商回退") if(Category==L"供应商回退") { xaserverarg arg1 = new xaserverarg; arg1.setNativePointer(arg1.CreateInstance()); xaserverarg arg1; 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)); arg1.AddArg(L"EntityID",dw_message.GetItemString(dw_message.GetRow(),L"EntityID")); OpenWindow(L"dev:xpage[maint.Owner.Supplier.v3.vx]",arg1); } return 1; } int OnAttachEvent() { //绑定工具条点击事件 AttachEvent("WM_XCOMMAND",OnXCommand); AttachEvent(L"WM_XCOMMAND", (FEvent)&Business5Win::OnXCommand); //获取焦点事件,用于重置工具条 AttachEvent("WM_SETFOCUS",OnSetFocus); AttachEvent(L"WM_SETFOCUS", (FEvent)&Business5Win::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); AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&Business5Win::OnTreeSelChanged); AttachEvent(L"dw_processed",L"DWV_ROWFOCUSCHANGED", (FEvent)&Business5Win::OnRowChanged); AttachEvent(L"dw_message",L"DWV_ROWFOCUSCHANGED", (FEvent)&Business5Win::OnRowChanged); AttachEvent(L"dw_outbox",L"DWV_ROWFOCUSCHANGED", (FEvent)&Business5Win::OnRowChanged); AttachEvent(L"dw_Recovery",L"DWV_ROWFOCUSCHANGED", (FEvent)&Business5Win::OnRowChanged); AttachEvent(L"dw_message",L"DWV_ASKSTYLE", (FEvent)&Business5Win::OnItemAskStyle); AttachEvent(L"dw_message",L"DWV_CLICKED", (FEvent)&Business5Win::OnDWClick); AttachEvent(L"dw_message",L"DWV_DOUBLECLICKED", (FEvent)&Business5Win::OpenShowroom); AttachEvent(L"dw_outbox",L"DWV_DOUBLECLICKED", (FEvent)&Business5Win::OpenShowroom1); return 1; } @@ -561,30 +581,30 @@ int InitialFolder() { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement e = xframeElement.selectSingleNode("//xtree[@name='tv_folder']/initial"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial"); //msxml::IXMLDOMElement e = xframeElement.selectSingleNode("//xtree[@name='tv_folder']/data/item[@name='"+"']"); //trace(e.xml); //KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/data/item[@name='"+L"']"); //trace(e.xml()); if(e) ExpandChildFolder(0,e); return 1; } int ExpandChildFolder(int hItem, msxml::IXMLDOMElement pElement) int ExpandChildFolder(int hItem, KXMLDOMElement pElement) { msxml::IXMLDOMNodeList nlist = pElement.SelectNodes("Item"); int len = nlist.length; KXMLDOMNodeList nlist = pElement.selectNodes(L"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"); KXMLDOMElement e = nlist.item(i); xstring name = e.getAttribute(L"name"); xstring sImage = e.getAttribute(L"image"); xstring child = e.getAttribute(L"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); if(child !=L"no" ) tv_folder.SetItemChild(h,1); ExpandChildFolder(h,e); } return 1; @@ -592,18 +612,18 @@ 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 x = ViewObject::RetrieveData(L"/sale/data/business/list/AdjustTipNotify"); KXMLDOMNodeList nlist = x.selectNodes(L"/data/Item"); KXMLDOMNode t = nlist.item(0); xstring informationQuantity =t.selectSingleNode(L"informationQuantity").text(); tv_folder.SetItemLabel(hMessage, L"消息"+L"(L"+informationQuantity+L")L"); 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+")"); xml x1 = ViewObject::RetrieveData(L"/sale/data/business/list/AdjustTipTask"); //alert(x1.xml()); KXMLDOMNodeList nlist1 = x1.selectNodes(L"/data/Item"); KXMLDOMNode t1= nlist1.item(0); xstring informationQuantityTask =t1.selectSingleNode(L"informationQuantityTask").text(); tv_folder.SetItemLabel(hTask, L"任务"+L"(L"+informationQuantityTask+L")L"); /*select count(*) from bpm_task where typ='notify' and process='N' and charindex('|'+'00303'+'|','|' + rtrim(receiver) +'|')>=1*/ @@ -612,36 +632,36 @@ int onload() { agentFor = "business"; agentFor = L"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_list = GetControl(L"dw_list"); dw_processed = GetControl(L"dw_processed"); dw_processed.openUrl(L"/sale/view/Business3/template/processedtask"); dw_processed.SetColumnState(L"EntityID",false); dw_processed.SetColumnState(L"Category",false); dw_message = GetControl("dw_message"); dw_message.openUrl("/sale/view/Business3/template/message"); dw_message = GetControl(L"dw_message"); dw_message.openUrl(L"/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_message.SetColumnState(L"EntityID",false); dw_message.SetColumnState(L"Category",false); dw_message.SetColumnState(L"ReadedFlag",false); dw_outbox = GetControl("dw_outbox"); dw_outbox.openUrl("/sale/view/Business3/template/outbox"); dw_outbox.SetColumnState("EntityID",false); dw_outbox = GetControl(L"dw_outbox"); dw_outbox.openUrl(L"/sale/view/Business3/template/outbox"); dw_outbox.SetColumnState(L"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); dw_Recovery = GetControl(L"dw_Recovery"); dw_Recovery.openUrl(L"/sale/view/Business3/template/message"); dw_Recovery.SetColumnState(L"EntityID",false); dw_Recovery.SetColumnState(L"Category",false); dw_Recovery.SetColumnState(L"ReadedFlag",false); dw_Recovery.SetColumnState(L"No",false); tv_folder = GetControl("tv_folder"); tv_folder = GetControl(L"tv_folder"); tv_folder.SetLineAtRoot(true); sheet = GetChildWin("sheet1"); sheet = GetChildWin(L"sheet1"); int hItem = tv_folder.GetRootItem(); tv_folder.ExpandItem(hItem); @@ -665,5 +685,4 @@ return 1; } }; ] }; jrj/project/business/Affair/ProcessManagement.cpp
@@ -1,38 +1,50 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "base.view.vd" #include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <xcontrol/xcell.hpp> unit trade [ class ProcessManagement : public xframe #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) ProcessManagement : public xframe { public: xdwgrid dw_list; xnode m_agentNode; //Agent Condition public: ProcessManagement(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static ProcessManagement* CreateInstance(void* implPtr, void* hWnd) { ProcessManagement* pWin = new ProcessManagement(implPtr, (HWND)hWnd); return pWin; } int SetAgent() { string xfNodeAgentArea = "agentarea"; xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if(m_agentNode) { SetAgentNodeContent (anode,m_agentNode); SetAgentNode (anode,m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); if(agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent (anode,s); xstring s = agent.xml(); m_agentNode = SetAgentNode (anode,s); } } return 1; } //焦点激活处理函数 int OnSetFocus(ref TEvent evt,int param) int OnSetFocus(TEvent* evt, LPARAM param) { //重置工具条 SetAgent(); @@ -40,40 +52,40 @@ } //命令发布函数 int OnCmdDispatch(string comdid) int OnCmdDispatch(xstring comdid) { if(comdid == "xmDelete") if(comdid == L"xmDelete") { int MB_OKCANCEL = 1; int IDOK = 1; int ret = win32::MessageBox(GetHWND(),"确认删除流程?","提示",MB_OKCANCEL); int ret =MessageBox(GetHWND(),L"确认删除流程?",L"提示",MB_OKCANCEL); if(ret == IDOK) { int row = dw_list.GetRow(); string TaskID = dw_list.GetItemString(row,"TaskID"); xstring TaskID = dw_list.GetItemString(row,L"TaskID"); xml x = ViewObject::RetrieveData("/sale/data/business/DelProcessManagement","TaskID",TaskID); string status = x.GetXml(); if(status.find("ok") == 1) xml x = ViewObject::RetrieveData(L"/sale/data/business/DelProcessManagement",L"TaskID",TaskID); xstring status = x.xml(); if(status.find(L"ok") == 1) { alert("删除成功"); alert(L"删除成功"); dw_list.DeleteRow(row); }else { alert("删除失败"); alert(L"删除失败"); } } return 1; } else if (comdid == "xmRefresh") else if (comdid == L"xmRefresh") { OnRetrieve(); } else if (comdid == "AA") else if (comdid == L"AA") { AA(); } @@ -82,24 +94,24 @@ int AA() { //string FobUnitPriceEx=dw_cell.GetItemString(row,colFOBPrice); string FobUnitPriceEx="$123.0"; if(FobUnitPriceEx=="$") FobUnitPriceEx="123"; //alert(FobUnitPriceEx.find("$").toString()); if(FobUnitPriceEx.find("$") >=0) FobUnitPriceEx=FobUnitPriceEx.right(FobUnitPriceEx.length() - 1); //xstring FobUnitPriceEx=dw_cell.GetItemString(row,colFOBPrice); xstring FobUnitPriceEx=L"$123.0"; if(FobUnitPriceEx==L"$") FobUnitPriceEx=L"123"; //alert(FobUnitPriceEx.find(L"$").toString()); if(FobUnitPriceEx.find(L"$") >=0) FobUnitPriceEx=FobUnitPriceEx.right(FobUnitPriceEx.length() - 1); trace(FobUnitPriceEx); } //触发鼠标离开后tran事件,通过查找某个参数得到对应的列 int OnBaseItemChanged(ref TNotifyEvent evt,int p) int OnBaseItemChanged(TEvent* evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string colname=hdr.colname; string value = hdr.data; DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname=hdr.colname; xstring value = hdr.data; string dwname = "dw_list"; if(value != "") xstring dwname = L"dw_list"; if(value != L"") { msxml::IXMLDOMNodeList nlist = GetElement().selectNodes("//*[@name='"+dwname+"']/trans[@for='"+colname+"']"); KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='"+dwname+L"']/trans[@for='"+colname+L"']"); ViewObject::TransData(nlist, dw_list, hdr.row, colname, value); } @@ -108,9 +120,9 @@ //命令处理事件 int OnXCommand(ref TXCommandEvent evt,int param) int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } @@ -118,23 +130,21 @@ int OnAttachEvent() { //绑定工具条点击事件 AttachEvent("WM_XCOMMAND",OnXCommand); AttachEvent(L"WM_XCOMMAND", (FEvent)&ProcessManagement::OnXCommand); //获取焦点事件,用于重置工具条 AttachEvent("WM_SETFOCUS",OnSetFocus); AttachEvent("dw_list","DWV_ITEMCHANGED",OnBaseItemChanged); AttachEvent(L"WM_SETFOCUS", (FEvent)&ProcessManagement::OnSetFocus); AttachEvent(L"dw_list",L"DWV_ITEMCHANGED", (FEvent)&ProcessManagement::OnBaseItemChanged); return 1; } int OnRetrieve() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); if (getUrl("/sale/data/business/ProcessManagement",arg.GetString(),x)!=1) xml x; xaserverarg arg; if (getUrl(L"/sale/data/business/ProcessManagement",arg.GetString(),x)!=1) { trace(x.GetXmlDoc().text); trace(x.text()); return -1; }else { @@ -148,9 +158,9 @@ int onload() { dw_list = GetControl("dw_list"); dw_list.openUrl("/sale/view/Business3/template/ProcessManagement"); dw_list.SetColumnState("TaskID",false); dw_list = GetControl(L"dw_list"); dw_list.openUrl(L"/sale/view/Business3/template/ProcessManagement"); dw_list.SetColumnState(L"TaskID",false); OnRetrieve(); @@ -167,5 +177,4 @@ return 1; } }; ] }; jrj/project/business/Affair/message.business.cpp
@@ -1,87 +1,100 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "base.view.vd" #include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <xcontrol/xcell.hpp> unit trade [ class MessageBusinessWin : public xframe #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) MessageBusinessWin : public xframe { public: //xdwgrid dw_list; xdwtable dw_base; xnode m_agentNode; //Agent Condition xwin sheet; bool readonly; string MessageID; string bill; xstring MessageID; xstring bill; public: MessageBusinessWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static MessageBusinessWin* CreateInstance(void* implPtr, void* hWnd) { MessageBusinessWin* pWin = new MessageBusinessWin(implPtr, (HWND)hWnd); return pWin; } int SetAgent() { return 1; string xfNodeAgentArea = "agentarea"; xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if(m_agentNode) { SetAgentNodeContent (anode,m_agentNode); SetAgentNode (anode,m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); if(agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent (anode,s); xstring s = agent.xml(); m_agentNode = SetAgentNode (anode,s); } } return 1; } //焦点激活处理函数 int OnSetFocus(ref TEvent evt,int param) int OnSetFocus(TEvent* evt, LPARAM param) { //重置工具条 SetAgent(); return 1; } int OnItemChanged(ref TNotifyEvent evt,int p) int OnItemChanged(TEvent* evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string colname=hdr.colname; string value = hdr.data; DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring colname=hdr.colname; xstring value = hdr.data; int row = hdr.row; if(colname=="Category") if(colname==L"Category") { if(value=="供应商申请") if(value==L"供应商申请") { dw_base.SetItemString(1,"Receiver","fdp-011"); dw_base.SetItemString(1,"Subject","请添加"); dw_base.SetItemString(1,L"Receiver",L"fdp-011"); dw_base.SetItemString(1,L"Subject",L"请添加"); } return 1; bool changed = false; xml x = ViewObject::RetrieveData("/sale/data/business/message/maint","typ",value); xml x = ViewObject::RetrieveData(L"/sale/data/business/message/maint",L"typ",value); if(x) { string xpage_ = x.GetXmlDoc().documentElement.getAttribute("xpage"); string templaterpt = x.GetXmlDoc().documentElement.getAttribute("template"); if(xpage_ !="") xstring xpage_ = x.documentElement().getAttribute(L"xpage"); xstring templaterpt = x.documentElement().getAttribute(L"template"); if(xpage_ !=L"") { string s = "<hbox name='agent'>"; s += "<xpage url='" + xpage_ + "' name='contentex'/>"; s += "</hbox>"; SetAgentNodeContent (GetAgentNode("agent"),s); SwitchLayer("sheet2","frame"); sheet = GetChildWin("contentex"); xstring s = L"<hbox name='agent'>"; s += L"<xpage url='" + xpage_ + L"' name='contentex'/>"; s += L"</hbox>"; SetAgentNode (GetAgentNode(L"agent"),s); SwitchLayer(L"sheet2",L"frame"); sheet = GetChildWin(L"contentex"); changed = true; } } if(!changed) { sheet = 0; SwitchLayer("sheet1","frame"); SwitchLayer(L"sheet1",L"frame"); } } @@ -89,26 +102,26 @@ } //命令发布函数 int OnCmdDispatch(string comdid) int OnCmdDispatch(xstring comdid) { if(comdid=="xmSend") if(comdid==L"xmSend") { if(!readonly) OnSend(); return 1; } else if(comdid=="xmSave") else if(comdid==L"xmSave") { if(!readonly) OnSave(); return 1; } else if(comdid=="xmCancel") else if(comdid==L"xmCancel") { CloseWindow(); return 1; } if(sheet && comdid !="") if(sheet && comdid !=L"") { int ret = win32::SendMessage(sheet.GetHWND(),0x401,comdid,0); int ret =SendMessage(GetHWND(),0x401,(LPARAM)comdid,0); if(ret) return ret; } @@ -116,50 +129,49 @@ } //命令处理事件 int OnXCommand(ref TXCommandEvent evt,int param) int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } int OnDWClick(ref TNotifyEvent evt,int p) int OnDWClick(TEvent* evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string value = hdr.data; string colname = hdr.colname; if (value == "收件人:") DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring value = hdr.data; xstring colname = hdr.colname; if (value == L"收件人:") { xaserverarg arg2 = new xaserverarg; arg2.setNativePointer(arg2.CreateInstance()); xaserverarg parg2 = GetParam(); OpenWindow("dev:xpage[UserGroupPersonSelect.vx]",cast(arg2 as int)); xaserverarg arg2 ; xaserverarg parg2 = GetArg(); OpenWindow(L"dev:xpage[UserGroupPersonSelect.vx]",arg2); if(arg2.GetArgString("comdid")=="xmOk") if(arg2.GetArgString(L"comdid")==L"xmOk") { string data = arg2.GetArgString("data"); xml x2 = new xml; x2.setNativePointer(xml::CreateInstance()); x2.LoadXml(data); msxml::IXMLDOMNodeList nodes = x2.GetXmlDoc().selectNodes("/root/item"); trace(x2.GetXml()); xstring data = arg2.GetArgString(L"data"); xml x2; int len = nodes.length; x2.loadXML(data); KXMLDOMNodeList nodes = x2.selectNodes(L"/root/item"); trace(x2.xml()); int len = nodes.length(); string Names = ""; xstring Names = L""; for(int i=0;i<len; i++) { msxml::IXMLDOMElement t= nodes.item(i); KXMLDOMElement t= nodes.item(i); if(t.getAttribute("Name")) if(t.getAttribute(L"Name")) { string Name = t.getAttribute("Name"); if(Names=="") xstring Name = t.getAttribute(L"Name"); if(Names==L"") Names = Name; else if(Names.find(Name) < 0) Names+=";"+Name; else if(Names.find(Name) < 0) Names+=L";"+Name; } } dw_base.SetItemString(1,"Receiver",Names); dw_base.SetItemString(1,L"Receiver",Names); } return 1; } @@ -169,46 +181,46 @@ int OnAttachEvent() { //绑定工具条点击事件 AttachEvent("WM_XCOMMAND",OnXCommand); AttachEvent(L"WM_XCOMMAND", (FEvent)&MessageBusinessWin::OnXCommand); //获取焦点事件,用于重置工具条 AttachEvent("WM_SETFOCUS",OnSetFocus); AttachEvent(L"WM_SETFOCUS", (FEvent)&MessageBusinessWin::OnSetFocus); AttachEvent("dw_base","DWV_ITEMCHANGED",OnItemChanged); AttachEvent("dw_base","DWV_CLICKED",OnDWClick); AttachEvent(L"dw_base",L"DWV_ITEMCHANGED", (FEvent)&MessageBusinessWin::OnItemChanged); AttachEvent(L"dw_base",L"DWV_CLICKED", (FEvent)&MessageBusinessWin::OnDWClick); return 1; } int OnSave() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg1 = MakeArg("scriptbox"); string murl = "/sale/data/Business/message/update"; if(MessageID=="") murl = "/sale/data/Business/message/add2"; if(url::get(murl, arg1.GetString(),x)!=1) xml x ; xaserverarg arg1 = MakeArg(L"scriptbox"); xstring murl = L"/sale/data/Business/message/update"; if(MessageID==L"") murl = L"/sale/data/Business/message/add2"; if(xurl::get(murl, arg1.GetString(),x)!=1) { alert("error1:\r\n"+x.GetXmlDoc().text); alert((xstring)L"error1:\r\n"+x.text()); return 1; } if(MessageID=="") MessageID= dw_base.GetGuid(1); alert("已保存到草稿箱"); if(MessageID==L"") MessageID= dw_base.GetGuid(1); alert(L"已保存到草稿箱"); return 1; xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); xaserverarg arg; if(sheet) { int val = cast(arg as int); win32::SendMessage(sheet.GetHWND(),0x401,"GetEntityData:"+val.toString(),0); string data = arg.GetArgString("EntityData"); murl = "/sale/data/Business/message/attach/update"; arg1.AddArg("url","message/attach"); arg1.AddArg("content",data); arg1.AddArg("param",MessageID); if(url::get(murl, arg1.GetString(),x)!=1) SendMessage(sheet.GetHWND(),0x401,L"GetEntityData:"+arg,0); xstring data = arg.GetArgString(L"EntityData"); murl = L"/sale/data/Business/message/attach/update"; arg1.AddArg(L"url",L"message/attach"); arg1.AddArg(L"content",data); arg1.AddArg(L"param",MessageID); if(xurl::get(murl, arg1.GetString(),x)!=1) { alert("error2:\r\n"+x.GetXmlDoc().text); alert((xstring)L"error2:\r\n"+x.text()); return 1; } } @@ -217,88 +229,87 @@ int OnSend() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); //xaserverarg arg1 = MakeArg("outbox"); xaserverarg arg1 = MakeArg("inbox"); string murl = "/sale/data/Business/message/update"; if(MessageID=="") murl = "/sale/data/Business/message/add2"; xml x ; //xaserverarg arg1 = MakeArg(L"outbox"); xaserverarg arg1 = MakeArg(L"inbox"); xstring murl = L"/sale/data/Business/message/update"; if(MessageID==L"") murl = L"/sale/data/Business/message/add2"; trace(arg1.GetString()); if(url::get(murl, arg1.GetString(),x)!=1) if(xurl::get(murl, arg1.GetString(),x)!=1) { alert("error1:\r\n"+x.GetXmlDoc().text); alert((xstring)L"error1:\r\n"+x.text()); return 1; } if(MessageID=="") MessageID= dw_base.GetGuid(1); alert("发送完成"); if(MessageID==L"") MessageID= dw_base.GetGuid(1); alert(L"发送完成"); CloseWindow(); return 1; xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); xaserverarg arg; if(sheet) { int val = cast(arg as int); win32::SendMessage(sheet.GetHWND(),0x401,"GetEntityData:"+val.toString(),0); string data = arg.GetArgString("EntityData"); murl = "/sale/data/Business/message/attach/update"; arg1.AddArg("url","message/attach"); arg1.AddArg("content",data); arg1.AddArg("param",MessageID); if(url::get(murl, arg1.GetString(),x)!=1) SendMessage(sheet.GetHWND(),0x401,L"GetEntityData:"+arg,0); xstring data = arg.GetArgString(L"EntityData"); murl = L"/sale/data/Business/message/attach/update"; arg1.AddArg(L"url",L"message/attach"); arg1.AddArg(L"content",data); arg1.AddArg(L"param",MessageID); if(xurl::get(murl, arg1.GetString(),x)!=1) { alert("error2:\r\n"+x.GetXmlDoc().text); alert((xstring)L"error2:\r\n"+x.text()); return 1; } } return 1; } xaserverarg MakeArg(string folder) xaserverarg MakeArg(xstring folder) { //ThingImpl:AddMessage($MessageID,$Folder,$EntityNo, $EntityID, $Subject, $Category, $Reciever, $Content) //ThingImpl:UpdateMessage($MessageID,$Folder,$EntityNo, $EntityID, $Subject, $Category, $Reciever, $Content) xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); xaserverarg arg; if(MessageID=="") if(MessageID==L"") { dw_base.SetGuid(1,ViewObject::GetGuid()); arg.AddArg("MessageID", dw_base.GetGuid(1)); arg.AddArg("EntityID", dw_base.GetGuid(1)); arg.AddArg(L"MessageID", dw_base.GetGuid(1)); arg.AddArg(L"EntityID", dw_base.GetGuid(1)); } else { arg.AddArg("MessageID", MessageID); arg.AddArg("EntityID", MessageID); arg.AddArg(L"MessageID", MessageID); arg.AddArg(L"EntityID", MessageID); } arg.AddArg("Folder", folder); arg.AddArg("EntityNo", dw_base.GetItemString(1,"EntityNo")); arg.AddArg("Subject", dw_base.GetItemString(1,"Subject")); arg.AddArg("Category", dw_base.GetItemString(1,"Category")); arg.AddArg("Reciever", dw_base.GetItemString(1,"Receiver")); arg.AddArg("Note", dw_base.GetItemString(1,"Note")); //arg.AddArg("Content", dw_base.GetItemString(1,"Content")); arg.AddArg("Content",GetControl("content").GetText()); arg.AddArg("Content2",bill); arg.AddArg(L"Folder", folder); arg.AddArg(L"EntityNo", dw_base.GetItemString(1,L"EntityNo")); arg.AddArg(L"Subject", dw_base.GetItemString(1,L"Subject")); arg.AddArg(L"Category", dw_base.GetItemString(1,L"Category")); arg.AddArg(L"Reciever", dw_base.GetItemString(1,L"Receiver")); arg.AddArg(L"Note", dw_base.GetItemString(1,L"Note")); //arg.AddArg(L"Content", dw_base.GetItemString(1,L"Content")); arg.AddArg(L"Content",xcontrol(GetControl(L"sle_search")).GetText()); arg.AddArg(L"Content2",bill); return arg; } int OnRetrieve() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("id",MessageID); if (getUrl("/sale/data/business/list/fetch",arg.GetString(),x)!=1) xml x; xaserverarg arg; arg.AddArg(L"id",MessageID); if (getUrl(L"/sale/data/business/list/fetch",arg.GetString(),x)!=1) { trace(x.GetXmlDoc().text); trace(x.text()); return -1; }else { @@ -306,41 +317,41 @@ dw_base.Redraw(); if(readonly) dw_base.SetReadOnly(true); if(x.GetXmlDoc().selectSingleNode("root/Content")) if(x.selectSingleNode(L"root/Content")) { string str = x.GetXmlDoc().selectSingleNode("root/Content").text; str = str.replace("\n","\r\n"); GetControl("content").SetText(str); xstring str = x.selectSingleNode(L"root/Content").text(); str = str.replace(L"\n",L"\r\n"); GetControl(L"content").SetText(str); } //alert(x.GetXml()); if(x.GetXmlDoc().selectSingleNode("root/Content2")) //alert(x.xml()); if(x.selectSingleNode(L"root/Content2")) { string str2 = x.GetXmlDoc().selectSingleNode("root/Content2").text; string tm=""; string EntityID=""; string Category=""; int pos = str2.find("EntityID="); xstring str2 = x.selectSingleNode(L"root/Content2").text(); xstring tm=L""; xstring EntityID=L""; xstring Category=L""; int pos = str2.find(L"EntityID=L"); if(pos >= 0) { tm = str2.mid(pos+"EntityID=".length(),64); if(tm.find(" ")>0) tm = tm.left(tm.find(" ")); tm = str2.mid(pos + L"EntityID=L".length(),64); if(tm.find(L" ")>0) tm = tm.left(tm.find(L" ")); EntityID=tm; } pos = str2.find("Category="); pos = str2.find(L"Category=L"); if(pos >= 0) { tm = str2.mid(pos+"Category=".length(),64); if(tm.find(" ")>0) tm = tm.left(tm.find(" ")); tm = str2.mid(pos+L"Category=L".length(),64); if(tm.find(L" ")>0) tm = tm.left(tm.find(L" ")); Category=tm; } trace("EntityID:"+EntityID); trace("Category:"+Category); if(EntityID != "" && Category != "") trace(L"EntityID:"+EntityID); trace(L"Category:"+Category); if(EntityID != L"" && Category != L"") { string eleStr = "<row EntityID='"+EntityID+"'"; eleStr += " category='" + Category + "'/>"; bill = "EntityID="+EntityID+" Category=" + Category; xstring eleStr = L"<row EntityID='"+EntityID+L"'"; eleStr += L" category='" + Category + L"'/>"; bill = L"EntityID=L"+EntityID+L" Category=L" + Category; ShowDetail(eleStr); } } @@ -348,23 +359,23 @@ return 1; } int ShowDetail(string eleStr) int ShowDetail(xstring eleStr) { xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("content",eleStr); xml doc=new xml; doc.setNativePointer(xml::CreateInstance()); if(getUrl("/sale/data/vpage/vstart/task",arg.GetString(),doc)!=1) xaserverarg arg; arg.AddArg(L"content",eleStr); xml doc; if(getUrl(L"/sale/data/vpage/vstart/task",arg.GetString(),doc)!=1) { trace("error->:"+doc.GetXml()); trace((xstring)L"error->:"+doc.xml()); return 0; } if(doc.GetXml() == "") if(doc.xml() == L"") return -1; htmlctrl ht = GetControl("taskinfo"); ht.SetContent(doc.GetXml()); htmlctrl ht = GetControl(L"taskinfo"); ht.SetContent(doc.xml()); ht.Redraw(); return 1; @@ -372,34 +383,35 @@ int onload() { dw_base = GetControl("dw_base"); dw_base.openUrl("/sale/view/business3/template/message/maint"); SetArg(); dw_base = GetControl(L"dw_base"); dw_base.openUrl(L"/sale/view/business3/template/message/maint"); dw_base.SetColHeaderHeight(0); dw_base.SetRowSelectorWidth(0); dw_base.SetHScrollState(false); dw_base.SetVScrollState(false); dw_base.SetItemString(1,"Category","普通"); dw_base.SetItemString(1,L"Category",L"普通"); OnAttachEvent(); readonly = false; MessageID = ""; bill = ""; MessageID = L""; bill = L""; SetAgent(); if(GetParam()) if(GetWinParam()) { xaserverarg arg = GetParam(); MessageID = arg.GetArgString("id"); if(arg.GetArgString("readonly")=="1") readonly=true; xaserverarg arg = GetArg(); MessageID = arg.GetArgString(L"id"); if(arg.GetArgString(L"readonly")==L"1") readonly=true; OnRetrieve(); if(arg.GetArgString("EntityID")!="") if(arg.GetArgString(L"EntityID")!=L"") { string str = "<row EntityID='"+arg.GetArgString("EntityID")+"'"; str += " category='" + arg.GetArgString("EntityName")+"'/>"; bill = "EntityID="+arg.GetArgString("EntityID")+" Category=" + arg.GetArgString("EntityName"); xstring str = L"<row EntityID='"+arg.GetArgString(L"EntityID")+L"'"; str += L" category='" + arg.GetArgString(L"EntityName")+L"'/>"; bill = L"EntityID=L"+arg.GetArgString(L"EntityID")+L" Category=L" + arg.GetArgString(L"EntityName"); ShowDetail(str); } } @@ -412,5 +424,4 @@ return 1; } }; ] }; jrj/project/business/Affair/message.supplier.cpp
@@ -1,66 +1,79 @@ use "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" #include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <xcontrol/xcell.hpp> unit trade [ class SupplierMessageWin : public xframe #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) SupplierMessageWin : public xframe { public: xdwtable dw_base; //xdwgrid dw_list; xnode m_agentNode; //Agent Condition public: SupplierMessageWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} public: static SupplierMessageWin* CreateInstance(void* implPtr, void* hWnd) { SupplierMessageWin* pWin = new SupplierMessageWin(implPtr, (HWND)hWnd); return pWin; } int SetAgent() { return 1; string xfNodeAgentArea = "agentarea"; xstring xfNodeAgentArea = L"agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if(m_agentNode) { SetAgentNodeContent (anode,m_agentNode); SetAgentNode (anode,m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); KXMLDOMElement xframeElement = GetElement(); KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); if(agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent (anode,s); xstring s = agent.xml(); m_agentNode = SetAgentNode (anode,s); } } return 1; } //焦点激活处理函数 int OnSetFocus(ref TEvent evt,int param) int OnSetFocus(TEvent* evt, LPARAM param) { //重置工具条 SetAgent(); return 1; } int UpLoad(string name) int UpLoad(xstring name) { string str = name.mid(0,2); str = str.upper(); int ret1 = xaserver::Upload("supplier"+str, name+".jpg", this.GetHWND(),"",false); xstring str = name.mid(0,2); str = str.toUpper(); int ret1 = xaserver::Upload(L"supplier"+str, name+L".jpg", GetHWND(),L"",false); return ret1; } int OnItemClick(ref TNotifyEvent evt,int p) int OnItemClick(TEvent* evt, int p) { ref DWNMHDR hdr1 = trust(evt.pnmh as ref DWNMHDR); string colname1= hdr1.colname; DWNMHDR& hdr1 = *(DWNMHDR*)evt->notify.pnmh; xstring colname1= hdr1.colname; ref DWNMHDR hdr = evt.pnmh; string value = hdr.data; xaserverarg arg=new xaserverarg; arg.setNativePointer(arg.CreateInstance()); DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; xstring value = hdr.data; xaserverarg arg; if(value == "上传附件") if(value == L"上传附件") { string strguid = publiccode::GetGuid(); xstring strguid = publiccode::GetGuid(); //alert(strguid); int ret1 = UpLoad(strguid); if(ret1 == -1) @@ -68,40 +81,40 @@ if(ret1 == 0) { alert("上传附件失败"); alert(L"上传附件失败"); return -1; } else { alert("上传附件成功"); string strimage=dw_base.GetItemString(1,"ImageList1"); alert(L"上传附件成功"); xstring strimage=dw_base.GetItemString(1,L"ImageList1"); //alert(strimage); if(strimage=="") strimage="<ImageList></ImageList>"; xml y=new xml; y.setNativePointer(xml::CreateInstance()); y.LoadXml(strimage); if(strimage==L"") strimage=L"<ImageList></ImageList>"; xml y; y.loadXML(strimage); msxml::IXMLDOMElement ele= y.GetXmlDoc().documentElement; KXMLDOMElement ele= y.documentElement(); xml x=new xml; x.setNativePointer(xml::CreateInstance()); string xx = "<ImageList><image>"+strguid+".jpg</image></ImageList>"; x.LoadXml(xx); msxml::IXMLDOMElement e= x.GetXmlDoc().selectSingleNode("//image"); xml x; xstring xx = L"<ImageList><image>"+strguid+L".jpg</image></ImageList>"; x.loadXML(xx); KXMLDOMElement e= x.selectSingleNode(L"//image"); ele.appendChild(e); dw_base.SetItemString(1,"ImageList1",ele.xml); dw_base.SetItemString(1,L"ImageList1",ele.xml()); dw_base.Redraw(); } } if(value == "查看") if(value == L"查看") { arg.AddArg("src",dw_base.GetItemString(1,"ImageList1")); int pa = arg.getNativePointer(); openUrl("/sale/view/SupplierV3/xpage/supplierattachment/picture", pa); arg.setNativePointer(pa); dw_base.SetItemString(1,"ImageList1",arg.GetArgString("src")); arg.AddArg(L"src",dw_base.GetItemString(1,L"ImageList1")); openUrl(L"/sale/view/SupplierV3/xpage/supplierattachment/picture", arg); dw_base.SetItemString(1,L"ImageList1",arg.GetArgString(L"src")); } return 1; @@ -109,19 +122,19 @@ int GetEntityData(xaserverarg arg) { xml x = new xml; x.setNativePointer(xml::CreateInstance()); dw_base.DwUpdateAllTo(x.GetXmlDoc()); arg.AddArg("EntityData",x.GetXml()); xml x; dw_base.DwUpdateAllTo(x); arg.AddArg(L"EntityData",x.xml()); return 1; } xaserverarg GetArg(string comdid) xaserverarg GetArg(xstring comdid) { if(comdid.find(":")>=0) if(comdid.find(L":")>=0) { xaserverarg arg = comdid.mid(comdid.find(":")+1,64).toInt(); xaserverarg arg = comdid.mid(comdid.find(L":")+1,64).toInt(); return arg; } return 0; @@ -129,39 +142,39 @@ int GetEntityInfo(xaserverarg arg) { arg.AddArg("EntityName","Supplier"); arg.AddArg("EntityID",dw_base.GetGuid(1)); arg.AddArg(L"EntityName",L"Supplier"); arg.AddArg(L"EntityID",dw_base.GetGuid(1)); return 1; } //命令发布函数 int OnCmdDispatch(string comdid) int OnCmdDispatch(xstring comdid) { if(comdid.find("GetEntityInfo:")==0) return GetEntityInfo(GetArg(comdid)); else if(comdid.find("GetEntityData:")==0) return GetEntityData(GetArg(comdid)); else if(comdid=="xmAddRow") return OnAddRow(); else if(comdid=="xmDeleteRow") return OnDeleteRow(); if(comdid.find(L"GetEntityInfo:")==0) return GetEntityInfo(GetArg(comdid)); else if(comdid.find(L"GetEntityData:")==0) return GetEntityData(GetArg(comdid)); else if(comdid==L"xmAddRow") return OnAddRow(); else if(comdid==L"xmDeleteRow") return OnDeleteRow(); return 0; } //命令处理事件 int OnXCommand(ref TXCommandEvent evt,int param) int OnXCommand(TEvent* evt, LPARAM param) { return OnCmdDispatch(evt.pStrID); return OnCmdDispatch(evt->xcommand.pStrID); } int OnAttachEvent() { //绑定工具条点击事件 AttachEvent("WM_XCOMMAND",OnXCommand); AttachEvent(L"WM_XCOMMAND", (FEvent)&SupplierMessageWin::OnXCommand); //获取焦点事件,用于重置工具条 AttachEvent("WM_SETFOCUS",OnSetFocus); AttachEvent("dw_base","DWV_CLICKED",OnItemClick); AttachEvent(L"WM_SETFOCUS", (FEvent)&SupplierMessageWin::OnSetFocus); AttachEvent(L"dw_base",L"DWV_CLICKED", (FEvent)&SupplierMessageWin::OnItemClick); } int OnAddRow() { xdwtable dw_obj = dw_base.FindDwTable("item"); xdwtable dw_obj = dw_base.FindDwTable(L"item"); dw_obj.InsertRow(0); return 1; } @@ -179,11 +192,11 @@ 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) arg.AddArg(L"xxx",L"xxx"); if (getUrl(L"",arg.GetString(),x)!=1) { trace(x.GetXmlDoc().text); trace(x.text()); return -1; }else { @@ -196,8 +209,8 @@ int onload() { dw_base = GetControl("dw_base"); dw_base.openUrl("/sale/view/SupplierV3/template/supplier/simplebase"); dw_base = GetControl(L"dw_base"); dw_base.openUrl(L"/sale/view/SupplierV3/template/supplier/simplebase"); dw_base.SetColHeaderHeight(0); dw_base.SetRowSelectorWidth(0); //dw_base.SetHScrollState(false); @@ -214,5 +227,4 @@ return 1; } }; ] };