From 8ff4f704c43f98078f7d7b151d41411c73f031bf Mon Sep 17 00:00:00 2001 From: LiFan <2308045698@qq.com> Date: 星期二, 29 十月 2024 09:50:33 +0800 Subject: [PATCH] update --- jrj/project/business/Affair/Business5.cpp | 669 ++++++++++++++++++++++++++ jrj/project/business/Affair/message.business.cpp | 416 ++++++++++++++++ jrj/project/business/Affair/ProcessManagement.cpp | 171 ++++++ jrj/project/business/Affair/message.supplier.cpp | 218 ++++++++ jrj/ext-jrj/ext-jrj.vcxproj | 12 jrj/ext-jrj/ext-jrj.vcxproj.filters | 12 6 files changed, 1,498 insertions(+), 0 deletions(-) diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj index 7d78754..ce6f236 100644 --- a/jrj/ext-jrj/ext-jrj.vcxproj +++ b/jrj/ext-jrj/ext-jrj.vcxproj @@ -282,6 +282,18 @@ <ItemGroup> <ClCompile Include="..\jarch.impl\JStringImpl.cpp" /> <ClCompile Include="..\project\analysis\DataVanalysisWin.cpp" /> + <ClCompile Include="..\project\business\Affair\Business5.cpp"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + </ClCompile> + <ClCompile Include="..\project\business\Affair\message.business.cpp"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + </ClCompile> + <ClCompile Include="..\project\business\Affair\message.supplier.cpp"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + </ClCompile> + <ClCompile Include="..\project\business\Affair\ProcessManagement.cpp"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild> + </ClCompile> <ClCompile Include="..\project\business\AP\APBank.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild> </ClCompile> diff --git a/jrj/ext-jrj/ext-jrj.vcxproj.filters b/jrj/ext-jrj/ext-jrj.vcxproj.filters index dd68d4f..70d5b1d 100644 --- a/jrj/ext-jrj/ext-jrj.vcxproj.filters +++ b/jrj/ext-jrj/ext-jrj.vcxproj.filters @@ -1442,6 +1442,18 @@ <ClCompile Include="..\project\business\PO\paymentmethod.cpp"> <Filter>project\business\PO</Filter> </ClCompile> + <ClCompile Include="..\project\business\Affair\Business5.cpp"> + <Filter>project\business\Affair</Filter> + </ClCompile> + <ClCompile Include="..\project\business\Affair\message.business.cpp"> + <Filter>project\business\Affair</Filter> + </ClCompile> + <ClCompile Include="..\project\business\Affair\message.supplier.cpp"> + <Filter>project\business\Affair</Filter> + </ClCompile> + <ClCompile Include="..\project\business\Affair\ProcessManagement.cpp"> + <Filter>project\business\Affair</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <None Include="ext-jrj.def"> diff --git a/jrj/project/business/Affair/Business5.cpp b/jrj/project/business/Affair/Business5.cpp new file mode 100644 index 0000000..524778f --- /dev/null +++ b/jrj/project/business/Affair/Business5.cpp @@ -0,0 +1,669 @@ +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; + } + }; +] \ No newline at end of file diff --git a/jrj/project/business/Affair/ProcessManagement.cpp b/jrj/project/business/Affair/ProcessManagement.cpp new file mode 100644 index 0000000..25d1132 --- /dev/null +++ b/jrj/project/business/Affair/ProcessManagement.cpp @@ -0,0 +1,171 @@ +use "xcontrol.vframe.vbusiness.vd" +use "xbase.vframe.vbusiness.vd" +use "base.view.vd" + +unit trade +[ + class ProcessManagement : public xframe + { + xdwgrid dw_list; + 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 OnCmdDispatch(string comdid) + { + + if(comdid == "xmDelete") + { + int MB_OKCANCEL = 1; + int IDOK = 1; + int ret = win32::MessageBox(GetHWND(),"确认删除流程?","提示",MB_OKCANCEL); + if(ret == IDOK) + { + int row = dw_list.GetRow(); + string TaskID = dw_list.GetItemString(row,"TaskID"); + + + xml x = ViewObject::RetrieveData("/sale/data/business/DelProcessManagement","TaskID",TaskID); + string status = x.GetXml(); + if(status.find("ok") == 1) + { + alert("删除成功"); + dw_list.DeleteRow(row); + }else + { + alert("删除失败"); + } + + } + return 1; + + } + else if (comdid == "xmRefresh") + { + OnRetrieve(); + } + else if (comdid == "AA") + { + AA(); + } + return 0; + } + 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); + trace(FobUnitPriceEx); + } + //触发鼠标离开后tran事件,通过查找某个参数得到对应的列 + 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()); + + if (getUrl("/sale/data/business/ProcessManagement",arg.GetString(),x)!=1) + { + trace(x.GetXmlDoc().text); + return -1; + }else + { + dw_list.Retrieve(x); + dw_list.Redraw(); + dw_list.SetReadOnly(true); + dw_list.SetSelectionMode(1); + } + return 1; + } + + int onload() + { + dw_list = GetControl("dw_list"); + dw_list.openUrl("/sale/view/Business3/template/ProcessManagement"); + dw_list.SetColumnState("TaskID",false); + + OnRetrieve(); + + OnAttachEvent(); + + return 1; + } + + int onloaded() + { + SetAgent(); + + + + return 1; + } + }; +] \ No newline at end of file diff --git a/jrj/project/business/Affair/message.business.cpp b/jrj/project/business/Affair/message.business.cpp new file mode 100644 index 0000000..9d85ecd --- /dev/null +++ b/jrj/project/business/Affair/message.business.cpp @@ -0,0 +1,416 @@ +use "xcontrol.vframe.vbusiness.vd" +use "xbase.vframe.vbusiness.vd" +use "base.view.vd" + +unit trade +[ + class MessageBusinessWin : public xframe + { + //xdwgrid dw_list; + xdwtable dw_base; + xnode m_agentNode; //Agent Condition + xwin sheet; + bool readonly; + string MessageID; + string bill; + + int SetAgent() + { + return 1; + + 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 OnItemChanged(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); + string colname=hdr.colname; + string value = hdr.data; + int row = hdr.row; + + if(colname=="Category") + { + if(value=="供应商申请") + { + dw_base.SetItemString(1,"Receiver","fdp-011"); + dw_base.SetItemString(1,"Subject","请添加"); + } + return 1; + + bool changed = false; + xml x = ViewObject::RetrieveData("/sale/data/business/message/maint","typ",value); + if(x) + { + string xpage_ = x.GetXmlDoc().documentElement.getAttribute("xpage"); + string templaterpt = x.GetXmlDoc().documentElement.getAttribute("template"); + if(xpage_ !="") + { + string s = "<hbox name='agent'>"; + s += "<xpage url='" + xpage_ + "' name='contentex'/>"; + s += "</hbox>"; + SetAgentNodeContent (GetAgentNode("agent"),s); + SwitchLayer("sheet2","frame"); + sheet = GetChildWin("contentex"); + changed = true; + } + } + if(!changed) + { + sheet = 0; + SwitchLayer("sheet1","frame"); + } + } + + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string comdid) + { + if(comdid=="xmSend") + { + if(!readonly) OnSend(); + return 1; + } + else if(comdid=="xmSave") + { + if(!readonly) OnSave(); + return 1; + } + else if(comdid=="xmCancel") + { + CloseWindow(); + return 1; + } + if(sheet && comdid !="") + { + int ret = win32::SendMessage(sheet.GetHWND(),0x401,comdid,0); + if(ret) return ret; + } + + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + + int OnDWClick(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); + string value = hdr.data; + string colname = hdr.colname; + if (value == "收件人:") + { + + xaserverarg arg2 = new xaserverarg; + arg2.setNativePointer(arg2.CreateInstance()); + xaserverarg parg2 = GetParam(); + OpenWindow("dev:xpage[UserGroupPersonSelect.vx]",cast(arg2 as int)); + + if(arg2.GetArgString("comdid")=="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()); + + int len = nodes.length; + + string Names = ""; + for(int i=0;i<len; i++) + { + msxml::IXMLDOMElement t= nodes.item(i); + + if(t.getAttribute("Name")) + { + string Name = t.getAttribute("Name"); + if(Names=="") + Names = Name; + else if(Names.find(Name) < 0) Names+=";"+Name; + } + } + dw_base.SetItemString(1,"Receiver",Names); + } + return 1; + } + + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + + AttachEvent("dw_base","DWV_ITEMCHANGED",OnItemChanged); + AttachEvent("dw_base","DWV_CLICKED",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) + { + alert("error1:\r\n"+x.GetXmlDoc().text); + return 1; + } + if(MessageID=="") MessageID= dw_base.GetGuid(1); + alert("已保存到草稿箱"); + return 1; + + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + 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) + { + alert("error2:\r\n"+x.GetXmlDoc().text); + return 1; + } + } + return 1; + } + + 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"; + + trace(arg1.GetString()); + + if(url::get(murl, arg1.GetString(),x)!=1) + { + alert("error1:\r\n"+x.GetXmlDoc().text); + return 1; + } + if(MessageID=="") MessageID= dw_base.GetGuid(1); + alert("发送完成"); + CloseWindow(); + + return 1; + + xaserverarg arg = new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + 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) + { + alert("error2:\r\n"+x.GetXmlDoc().text); + return 1; + } + } + return 1; + } + + xaserverarg MakeArg(string 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()); + + if(MessageID=="") + { + dw_base.SetGuid(1,ViewObject::GetGuid()); + arg.AddArg("MessageID", dw_base.GetGuid(1)); + arg.AddArg("EntityID", dw_base.GetGuid(1)); + } + else + { + arg.AddArg("MessageID", MessageID); + arg.AddArg("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); + 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) + { + trace(x.GetXmlDoc().text); + return -1; + }else + { + dw_base.Retrieve(x); + dw_base.Redraw(); + if(readonly) dw_base.SetReadOnly(true); + + if(x.GetXmlDoc().selectSingleNode("root/Content")) + { + string str = x.GetXmlDoc().selectSingleNode("root/Content").text; + str = str.replace("\n","\r\n"); + GetControl("content").SetText(str); + } + //alert(x.GetXml()); + if(x.GetXmlDoc().selectSingleNode("root/Content2")) + { + + string str2 = x.GetXmlDoc().selectSingleNode("root/Content2").text; + string tm=""; + string EntityID=""; + string Category=""; + int pos = str2.find("EntityID="); + if(pos >= 0) + { + tm = str2.mid(pos+"EntityID=".length(),64); + if(tm.find(" ")>0) tm = tm.left(tm.find(" ")); + EntityID=tm; + } + pos = str2.find("Category="); + if(pos >= 0) + { + tm = str2.mid(pos+"Category=".length(),64); + if(tm.find(" ")>0) tm = tm.left(tm.find(" ")); + Category=tm; + } + trace("EntityID:"+EntityID); + trace("Category:"+Category); + if(EntityID != "" && Category != "") + { + string eleStr = "<row EntityID='"+EntityID+"'"; + eleStr += " category='" + Category + "'/>"; + bill = "EntityID="+EntityID+" Category=" + Category; + ShowDetail(eleStr); + } + } + } + return 1; + } + + int ShowDetail(string 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) + { + trace("error->:"+doc.GetXml()); + return 0; + } + if(doc.GetXml() == "") + return -1; + + htmlctrl ht = GetControl("taskinfo"); + ht.SetContent(doc.GetXml()); + ht.Redraw(); + + return 1; + } + + int onload() + { + dw_base = GetControl("dw_base"); + dw_base.openUrl("/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","普通"); + + OnAttachEvent(); + + readonly = false; + MessageID = ""; + bill = ""; + + SetAgent(); + if(GetParam()) + { + xaserverarg arg = GetParam(); + MessageID = arg.GetArgString("id"); + if(arg.GetArgString("readonly")=="1") readonly=true; + OnRetrieve(); + + if(arg.GetArgString("EntityID")!="") + { + string str = "<row EntityID='"+arg.GetArgString("EntityID")+"'"; + str += " category='" + arg.GetArgString("EntityName")+"'/>"; + bill = "EntityID="+arg.GetArgString("EntityID")+" Category=" + arg.GetArgString("EntityName"); + ShowDetail(str); + } + } + + return 1; + } + + int onloaded() + { + + return 1; + } + }; +] \ No newline at end of file diff --git a/jrj/project/business/Affair/message.supplier.cpp b/jrj/project/business/Affair/message.supplier.cpp new file mode 100644 index 0000000..e4a74ab --- /dev/null +++ b/jrj/project/business/Affair/message.supplier.cpp @@ -0,0 +1,218 @@ +use "xcontrol.vframe.vbusiness.vd" +use "xbase.vframe.vbusiness.vd" + +unit trade +[ + class SupplierMessageWin : public xframe + { + xdwtable dw_base; + //xdwgrid dw_list; + xnode m_agentNode; //Agent Condition + + int SetAgent() + { + return 1; + + 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 UpLoad(string name) + { + string str = name.mid(0,2); + str = str.upper(); + int ret1 = xaserver::Upload("supplier"+str, name+".jpg", this.GetHWND(),"",false); + return ret1; + } + + int OnItemClick(ref TNotifyEvent evt,int p) + { + ref DWNMHDR hdr1 = trust(evt.pnmh as ref DWNMHDR); + string colname1= hdr1.colname; + + ref DWNMHDR hdr = evt.pnmh; + string value = hdr.data; + xaserverarg arg=new xaserverarg; + arg.setNativePointer(arg.CreateInstance()); + + if(value == "上传附件") + { + string strguid = publiccode::GetGuid(); + //alert(strguid); + int ret1 = UpLoad(strguid); + if(ret1 == -1) + return -1; + + if(ret1 == 0) + { + alert("上传附件失败"); + return -1; + } + else + { + alert("上传附件成功"); + string strimage=dw_base.GetItemString(1,"ImageList1"); + //alert(strimage); + if(strimage=="") + strimage="<ImageList></ImageList>"; + xml y=new xml; + y.setNativePointer(xml::CreateInstance()); + y.LoadXml(strimage); + + msxml::IXMLDOMElement ele= y.GetXmlDoc().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"); + ele.appendChild(e); + dw_base.SetItemString(1,"ImageList1",ele.xml); + dw_base.Redraw(); + } + } + + if(value == "查看") + { + 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")); + } + + return 1; + } + + int GetEntityData(xaserverarg arg) + { + xml x = new xml; + x.setNativePointer(xml::CreateInstance()); + dw_base.DwUpdateAllTo(x.GetXmlDoc()); + arg.AddArg("EntityData",x.GetXml()); + + return 1; + } + + xaserverarg GetArg(string comdid) + { + if(comdid.find(":")>=0) + { + xaserverarg arg = comdid.mid(comdid.find(":")+1,64).toInt(); + return arg; + } + return 0; + } + + int GetEntityInfo(xaserverarg arg) + { + arg.AddArg("EntityName","Supplier"); + arg.AddArg("EntityID",dw_base.GetGuid(1)); + return 1; + } + + //命令发布函数 + int OnCmdDispatch(string 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(); + return 0; + } + + //命令处理事件 + int OnXCommand(ref TXCommandEvent evt,int param) + { + return OnCmdDispatch(evt.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent("WM_XCOMMAND",OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent("WM_SETFOCUS",OnSetFocus); + AttachEvent("dw_base","DWV_CLICKED",OnItemClick); + } + + int OnAddRow() + { + xdwtable dw_obj = dw_base.FindDwTable("item"); + dw_obj.InsertRow(0); + return 1; + } + + int OnDeleteRow() + { + xdwtable dw_obj = dw_base.GetCurTable(); + dw_obj.DeleteRow(0); + return 1; + } + + /* + 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 onload() + { + dw_base = GetControl("dw_base"); + dw_base.openUrl("/sale/view/SupplierV3/template/supplier/simplebase"); + dw_base.SetColHeaderHeight(0); + dw_base.SetRowSelectorWidth(0); + //dw_base.SetHScrollState(false); + //dw_base.SetVScrollState(false); + + OnAttachEvent(); + + return 1; + } + + int onloaded() + { + SetAgent(); + + return 1; + } + }; +] \ No newline at end of file -- Gitblit v1.9.3