From bb4dc0fab56e542e784311f95ae6d7e7dd785a8f Mon Sep 17 00:00:00 2001 From: xj qian <qianxj15@sina.com> Date: 星期二, 29 十月 2024 17:10:33 +0800 Subject: [PATCH] update --- jrj/project/business/Affair/Business5.cpp | 688 +++++++++++++++++++++++++ jrj/project/business/Affair/message.business.cpp | 427 +++++++++++++++ jrj/project/business/Affair/ProcessManagement.cpp | 180 ++++++ jrj/project/business/Affair/message.supplier.cpp | 230 ++++++++ jrj/ext-jrj/ext-jrj.vcxproj | 12 jrj/ext-jrj/ext-jrj.vcxproj.filters | 33 - 6 files changed, 1,537 insertions(+), 33 deletions(-) diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj index 15dd1c5..09e92ed 100644 --- a/jrj/ext-jrj/ext-jrj.vcxproj +++ b/jrj/ext-jrj/ext-jrj.vcxproj @@ -292,6 +292,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 e08ed52..947c30e 100644 --- a/jrj/ext-jrj/ext-jrj.vcxproj.filters +++ b/jrj/ext-jrj/ext-jrj.vcxproj.filters @@ -136,9 +136,6 @@ <Filter Include="jarch.impl"> <UniqueIdentifier>{4d691658-8fdc-4c09-8cfa-d8fa62419ef3}</UniqueIdentifier> </Filter> - <Filter Include="jarch\module"> - <UniqueIdentifier>{ee1bdbb1-df9a-4db8-8212-b40535f8b9e9}</UniqueIdentifier> - </Filter> </ItemGroup> <ItemGroup> <ClInclude Include="framework.h"> @@ -1471,36 +1468,6 @@ </ClCompile> <ClCompile Include="..\project\business\PO\paymentmethod.cpp"> <Filter>project\business\PO</Filter> - </ClCompile> - <ClCompile Include="JModule.cpp"> - <Filter>jarch\module</Filter> - </ClCompile> - <ClCompile Include="JType.cpp"> - <Filter>jarch\module</Filter> - </ClCompile> - <ClCompile Include="JArgument.cpp"> - <Filter>jarch\module</Filter> - </ClCompile> - <ClCompile Include="JField.cpp"> - <Filter>jarch\module</Filter> - </ClCompile> - <ClCompile Include="JMethod.cpp"> - <Filter>jarch\module</Filter> - </ClCompile> - <ClCompile Include="JParam.cpp"> - <Filter>jarch\module</Filter> - </ClCompile> - <ClCompile Include="JValue.cpp"> - <Filter>jarch\module</Filter> - </ClCompile> - <ClCompile Include="JLiteral.cpp"> - <Filter>jarch\module</Filter> - </ClCompile> - <ClCompile Include="JBinaryOp.cpp"> - <Filter>jarch\module</Filter> - </ClCompile> - <ClCompile Include="JVariant.cpp"> - <Filter>jarch\module</Filter> </ClCompile> </ItemGroup> <ItemGroup> diff --git a/jrj/project/business/Affair/Business5.cpp b/jrj/project/business/Affair/Business5.cpp new file mode 100644 index 0000000..0441872 --- /dev/null +++ b/jrj/project/business/Affair/Business5.cpp @@ -0,0 +1,688 @@ +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <xcontrol/xcell.hpp> + + +#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; + xdwgrid dw_outbox; + xdwgrid dw_Recovery; + xnode m_agentNode; //Agent Condition + xtreeview tv_folder; + + int hMessage; + int hTask; + + 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() + { + xstring xfNodeAgentArea = L"agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNode (anode,m_agentNode); + } + else + { + KXMLDOMElement xframeElement = GetElement(); + KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[@for='"+agentFor+L"']/*"); + if(agent) + { + xstring s = agent.xml(); + m_agentNode = SetAgentNode (anode,s); + //FillGoodsCarList(); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(TEvent* evt, LPARAM param) + { + //重置工具条 + SetAgent(); + return 1; + } + int RetrieveData() + { + xml x; + if(selectname == L"已处理任务") + { + x = ViewObject::RetrieveData(L"/sale/data/business/list/processedtask"); + dw_processed.Retrieve(x); + dw_processed.Redraw(); + dw_processed.SetReadOnly(true); + }else if(selectname == L"收件箱") + { + xstring UserNO= publiccode::GetUser().no; + + x = ViewObject::RetrieveData(L"/sale/data/business/list/inbox"); + + dw_message.Retrieve(x); + dw_message.Redraw(); + dw_message.SetReadOnly(true); + } + else if(selectname == L"发件箱") + { + x = ViewObject::RetrieveData(L"/sale/data/business/list/outbox"); + dw_outbox.Retrieve(x); + dw_outbox.Redraw(); + dw_outbox.SetReadOnly(true); + } + else if(selectname == L"回收箱") + { + x = ViewObject::RetrieveData(L"/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 =MessageBox(GetHWND(),L"确认删除消息?",L"提示",MB_OKCANCEL); + if(ret == IDOK) + { + 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(L"删除成功"); + RetrieveData(); + }else + { + alert(L"删除失败"); + } + + } + return 1; + } + + int OnUpdateRecovery() + { + int MB_OKCANCEL = 1; + int IDOK = 1; + int ret =MessageBox(GetHWND(),L"确认恢复消息?",L"提示",MB_OKCANCEL); + if(ret == IDOK) + { + 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(L"恢复成功"); + RetrieveData(); + }else + { + alert(L"恢复失败"); + } + + } + return 1; + } + + int OnDeleteRecovery() + { + int MB_OKCANCEL = 1; + int IDOK = 1; + int ret =MessageBox(GetHWND(),L"确认彻底删除消息?",L"提示",MB_OKCANCEL); + if(ret == IDOK) + { + 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(L"删除成功"); + RetrieveData(); + }else + { + alert(L"删除失败"); + } + + } + return 1; + } + + int OnAdd() + { + OpenWindow(L"dev:xpage[message.business.vx]"); + if(selectname == L"发件箱" || selectname == L"草稿箱") RetrieveData(); + return 1; + } + + + //命令发布函数 + int OnCmdDispatch(xstring comdid) + { + int ret = 0; + if(comdid.find(L"action:",0)>=0) + { + ret =SendMessage(GetHWND(),0x401,(LPARAM)comdid,0); + } + if(comdid==L"xmRefreshTask") + { + trace(L"\r\n----refresh task--------"); + SendMessage(GetHWND(),0x401,(LPARAM)comdid,0); + return 1; + } + if(comdid==L"xmRefresh") + { + trace(L"\r\n----refresh--------"); + ret =SendMessage(GetHWND(),0x401, (LPARAM)comdid,0); + } + if(comdid == L"xmRertieve") + { + RetrieveData(); + ret = 1; + } + if(comdid==L"xmAdd") + { + OnAdd(); + ret = 1; + } + if(comdid == L"xmDelete") + { + OnDelete(); + ret = 1; + } + if(comdid == L"UpdateRecovery") + { + OnUpdateRecovery(); + ret = 1; + } + if(comdid == L"DeleteRecovery") + { + OnDeleteRecovery(); + ret = 1; + } + if(comdid == L"xmImage") + { + int row = dw_message.GetRow(); + 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 == L"xmSearchOne") + { + OnSearchOne(); + return 1; + } + else if(comdid == L"xmSearchTwo") + { + OnSearchTwo(); + return 1; + } + else if(comdid==L"Lognew") + { + xstring EntityID = dw_processed.GetItemString(dw_processed.GetRow(),L"EntityID"); + //alert(EntityID); + + 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); + + + + } + return ret; + } + + + int OnSearchOne() + { + 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(L"*",searchStr); + return 1; + } + return 1; + } + + int OnSearchTwo() + { + 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(L"*",searchStr); + return 1; + } + return 1; + } + + //命令处理事件 + int OnXCommand(TEvent* evt, LPARAM param) + { + return OnCmdDispatch(evt->xcommand.pStrID); + } + + + //查找当前树项的顶级目录 + HTREEITEM LookupTopFolder(HTREEITEM hItem) + { + HTREEITEM hRoot = tv_folder.GetRootItem(); + while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem); + return hItem; + } + + int ResetAgent(xstring agentAsk) + { + if(agentFor != agentAsk) + { + agentFor = agentAsk; + m_agentNode = 0; + SetAgent(); + } + return 1; + } + + int OnTreeSelChanged(TEvent* evt, LPARAM p) + { + NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh; + HTREEITEM hItem = nmtv.itemNew.hItem; + HTREEITEM hTopItem = LookupTopFolder(hItem); + + 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()); + + xstring name = tv_folder.GetItemLabel(hTopItem); + selectname = tv_folder.GetItemLabel(hItem); + if(selectname == L"待处理任务") + { + SwitchLayer(L"sheet2",L"frame"); + sheet = GetChildWin(L"sheet2"); + ResetAgent(L"business1"); + }else if(selectname == L"已处理任务") + { + SwitchLayer(L"sheet3",L"frame"); + RetrieveData(); + ResetAgent(L"business2"); + }else if(selectname == L"收件箱") + { + SwitchLayer(L"sheet4",L"frame"); + RetrieveData(); + ResetAgent(L"business3"); + }else if(selectname == L"发件箱") + { + SwitchLayer(L"sheet5",L"frame"); + RetrieveData(); + ResetAgent(L"business2"); + } + else if(selectname == L"事务") + { + SwitchLayer(L"sheet1",L"frame"); + }else if(selectname == L"回收箱") + { + SwitchLayer(L"sheet6",L"frame"); + RetrieveData(); + ResetAgent(L"business5"); + } + return 1; + } + int OnRowChanged(TEvent* evt, int p) + { + //fixed one event only one process + DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; + int row = hdr.row; + KXMLDOMElement ele; + if(selectname == L"已处理任务") + ele = dw_processed.GetRowElement(row); + else if(selectname == L"收件箱") + { + ele = dw_message.GetRowElement(row); + xstring Subject = dw_message.GetItemString(row,L"Subject"); + if(Subject.find(L"价格单") == -1) + { + ResetAgent(L"business3"); + }else{ + ResetAgent(L"business4"); + } + } + else if(selectname == L"回收箱") + { + ele = dw_Recovery.GetRowElement(row); + xstring SubjectOne = dw_Recovery.GetItemString(row,L"Subject"); + } + else if(selectname == L"发件箱") + ele = dw_outbox.GetRowElement(row); + 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((xstring)L"error->:"+doc.xml()); + return 0; + } + if(doc.xml() == L"") + return -1; + //trace(doc.xml()); + htmlctrl ht = GetControl(L"taskinfo"); + ht.SetContent(doc.xml()); + ht.Redraw(); + return 1; + } + 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; + xstring colname = hdr.colname; + int rows = dw_message.GetRowCount(); + if(row < 1 || row > rows) + { + return 1; + } + 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") + { + xstring ReadedFlag = dw_message.GetItemString(row,L"ReadedFlag"); + if(ReadedFlag != L"Y") + { + hdr.mask = DMS_CSSSTYLE; + //hdr.cssstyle = L"color:#cccccc"; + hdr.cssstyle = L"font-weight:700"; + + } + } + + return 1; + } + + int OnDWClick(TEvent* evt, int p) + { + xstring UserNO=publiccode::GetUser().no; + if(UserNO !=L"00701") + { + DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; + xstring value = hdr.data; + xstring colname = hdr.colname; + int row = hdr.row; + 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(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(L"/sale/data/business/Recovery/MessageStatus",L"TaskID",TaskID); + } + dw_message.Redraw(); + //RetrieveData(); + } + AdjustTip(); + } + return 1; + } + + int OpenShowroom1(TEvent* evt, int p) + { + DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; + xstring value = hdr.data; + xstring colname = hdr.colname; + int row = hdr.row; + 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; + 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(TEvent* evt, int p) + { + DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; + xstring value = hdr.data; + xstring colname = hdr.colname; + int row = hdr.row; + 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==L"普通"){ + xaserverarg arg2; + + if(dw_message.GetRowCount() < 1) return 1; + 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==L"报价单共享") + { + if(dw_message.GetRowCount() < 1) return 1; + xstring No = dw_message.GetItemString(dw_message.GetRow(),L"No"); + OpenWindow(L"dev:xpage[EnquiryEx.quote.vx]",cast(No as int)); + } + if(Category==L"SupplierV3") + { + xaserverarg arg; + + if(dw_message.GetRowCount() < 1) return 1; + 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==L"供应商回退") + { + xaserverarg arg1; + + if(dw_message.GetRowCount() < 1) return 1; + 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(L"WM_XCOMMAND", (FEvent)&Business5Win::OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent(L"WM_SETFOCUS", (FEvent)&Business5Win::OnSetFocus); + //树选择 + 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; + } + + + int OnRetrieve() + { + + return 1; + } + + int InitialFolder() + { + KXMLDOMElement xframeElement = GetElement(); + KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial"); + + //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, KXMLDOMElement pElement) + { + KXMLDOMNodeList nlist = pElement.selectNodes(L"Item"); + int len = nlist.length(); + for (int i = 0; i < len; i++) + { + 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 !=L"no" ) tv_folder.SetItemChild(h,1); + ExpandChildFolder(h,e); + } + return 1; + } + + int AdjustTip() + { + 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(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*/ + return 1; + } + + int onload() + { + agentFor = L"business"; + OnAttachEvent(); + 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(L"dw_message"); + dw_message.openUrl(L"/sale/view/Business3/template/message"); + dw_message.SetAskStyle(true); + dw_message.SetColumnState(L"EntityID",false); + dw_message.SetColumnState(L"Category",false); + dw_message.SetColumnState(L"ReadedFlag",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(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(L"tv_folder"); + tv_folder.SetLineAtRoot(true); + sheet = GetChildWin(L"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..61d753a --- /dev/null +++ b/jrj/project/business/Affair/ProcessManagement.cpp @@ -0,0 +1,180 @@ +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <xcontrol/xcell.hpp> + + +#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() + { + xstring xfNodeAgentArea = L"agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNode (anode,m_agentNode); + } + else + { + KXMLDOMElement xframeElement = GetElement(); + KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); + if(agent) + { + xstring s = agent.xml(); + m_agentNode = SetAgentNode (anode,s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(TEvent* evt, LPARAM param) + { + //重置工具条 + SetAgent(); + return 1; + } + + //命令发布函数 + int OnCmdDispatch(xstring comdid) + { + + if(comdid == L"xmDelete") + { + int MB_OKCANCEL = 1; + int IDOK = 1; + int ret =MessageBox(GetHWND(),L"确认删除流程?",L"提示",MB_OKCANCEL); + if(ret == IDOK) + { + int row = dw_list.GetRow(); + xstring TaskID = dw_list.GetItemString(row,L"TaskID"); + + + xml x = ViewObject::RetrieveData(L"/sale/data/business/DelProcessManagement",L"TaskID",TaskID); + xstring status = x.xml(); + if(status.find(L"ok") == 1) + { + alert(L"删除成功"); + dw_list.DeleteRow(row); + }else + { + alert(L"删除失败"); + } + + } + return 1; + + } + else if (comdid == L"xmRefresh") + { + OnRetrieve(); + } + else if (comdid == L"AA") + { + AA(); + } + return 0; + } + int AA() + { + + //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(TEvent* evt, int p) + { + DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; + xstring colname=hdr.colname; + xstring value = hdr.data; + + xstring dwname = L"dw_list"; + if(value != L"") + { + KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='"+dwname+L"']/trans[@for='"+colname+L"']"); + ViewObject::TransData(nlist, dw_list, hdr.row, colname, value); + } + + return 1; + } + + + //命令处理事件 + int OnXCommand(TEvent* evt, LPARAM param) + { + return OnCmdDispatch(evt->xcommand.pStrID); + } + + + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent(L"WM_XCOMMAND", (FEvent)&ProcessManagement::OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent(L"WM_SETFOCUS", (FEvent)&ProcessManagement::OnSetFocus); + AttachEvent(L"dw_list",L"DWV_ITEMCHANGED", (FEvent)&ProcessManagement::OnBaseItemChanged); + return 1; + } + + + int OnRetrieve() + { + xml x; + xaserverarg arg; + if (getUrl(L"/sale/data/business/ProcessManagement",arg.GetString(),x)!=1) + { + trace(x.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(L"dw_list"); + dw_list.openUrl(L"/sale/view/Business3/template/ProcessManagement"); + dw_list.SetColumnState(L"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..1589db3 --- /dev/null +++ b/jrj/project/business/Affair/message.business.cpp @@ -0,0 +1,427 @@ +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <xcontrol/xcell.hpp> + + +#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; + 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; + + xstring xfNodeAgentArea = L"agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNode (anode,m_agentNode); + } + else + { + KXMLDOMElement xframeElement = GetElement(); + KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); + if(agent) + { + xstring s = agent.xml(); + m_agentNode = SetAgentNode (anode,s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(TEvent* evt, LPARAM param) + { + //重置工具条 + SetAgent(); + return 1; + } + + int OnItemChanged(TEvent* evt, int p) + { + DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; + xstring colname=hdr.colname; + xstring value = hdr.data; + int row = hdr.row; + + if(colname==L"Category") + { + if(value==L"供应商申请") + { + 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(L"/sale/data/business/message/maint",L"typ",value); + if(x) + { + xstring xpage_ = x.documentElement().getAttribute(L"xpage"); + xstring templaterpt = x.documentElement().getAttribute(L"template"); + if(xpage_ !=L"") + { + 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(L"sheet1",L"frame"); + } + } + + return 1; + } + + //命令发布函数 + int OnCmdDispatch(xstring comdid) + { + if(comdid==L"xmSend") + { + if(!readonly) OnSend(); + return 1; + } + else if(comdid==L"xmSave") + { + if(!readonly) OnSave(); + return 1; + } + else if(comdid==L"xmCancel") + { + CloseWindow(); + return 1; + } + if(sheet && comdid !=L"") + { + int ret =SendMessage(GetHWND(),0x401,(LPARAM)comdid,0); + if(ret) return ret; + } + + return 0; + } + + //命令处理事件 + int OnXCommand(TEvent* evt, LPARAM param) + { + return OnCmdDispatch(evt->xcommand.pStrID); + } + + + int OnDWClick(TEvent* evt, int p) + { + DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; + xstring value = hdr.data; + xstring colname = hdr.colname; + if (value == L"收件人:") + { + + xaserverarg arg2 ; + xaserverarg parg2 = GetArg(); + OpenWindow(L"dev:xpage[UserGroupPersonSelect.vx]",arg2); + + if(arg2.GetArgString(L"comdid")==L"xmOk") + { + xstring data = arg2.GetArgString(L"data"); + xml x2; + + x2.loadXML(data); + KXMLDOMNodeList nodes = x2.selectNodes(L"/root/item"); + trace(x2.xml()); + + int len = nodes.length(); + + xstring Names = L""; + for(int i=0;i<len; i++) + { + KXMLDOMElement t= nodes.item(i); + + if(t.getAttribute(L"Name")) + { + xstring Name = t.getAttribute(L"Name"); + if(Names==L"") + Names = Name; + else if(Names.find(Name) < 0) Names+=L";"+Name; + } + } + dw_base.SetItemString(1,L"Receiver",Names); + } + return 1; + } + + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent(L"WM_XCOMMAND", (FEvent)&MessageBusinessWin::OnXCommand); + //获取焦点事件,用于重置工具条 + AttachEvent(L"WM_SETFOCUS", (FEvent)&MessageBusinessWin::OnSetFocus); + + 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 ; + + 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((xstring)L"error1:\r\n"+x.text()); + return 1; + } + if(MessageID==L"") MessageID= dw_base.GetGuid(1); + alert(L"已保存到草稿箱"); + return 1; + + xaserverarg arg; + + if(sheet) + { + + 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((xstring)L"error2:\r\n"+x.text()); + return 1; + } + } + return 1; + } + + int OnSend() + { + 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(xurl::get(murl, arg1.GetString(),x)!=1) + { + alert((xstring)L"error1:\r\n"+x.text()); + return 1; + } + if(MessageID==L"") MessageID= dw_base.GetGuid(1); + alert(L"发送完成"); + CloseWindow(); + + return 1; + + xaserverarg arg; + + if(sheet) + { + + 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((xstring)L"error2:\r\n"+x.text()); + return 1; + } + } + return 1; + } + + 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; + + + if(MessageID==L"") + { + dw_base.SetGuid(1,ViewObject::GetGuid()); + arg.AddArg(L"MessageID", dw_base.GetGuid(1)); + arg.AddArg(L"EntityID", dw_base.GetGuid(1)); + } + else + { + arg.AddArg(L"MessageID", MessageID); + arg.AddArg(L"EntityID", MessageID); + } + + 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; + + xaserverarg arg; + + arg.AddArg(L"id",MessageID); + if (getUrl(L"/sale/data/business/list/fetch",arg.GetString(),x)!=1) + { + trace(x.text()); + return -1; + }else + { + dw_base.Retrieve(x); + dw_base.Redraw(); + if(readonly) dw_base.SetReadOnly(true); + + if(x.selectSingleNode(L"root/Content")) + { + xstring str = x.selectSingleNode(L"root/Content").text(); + str = str.replace(L"\n",L"\r\n"); + GetControl(L"content").SetText(str); + } + //alert(x.xml()); + if(x.selectSingleNode(L"root/Content2")) + { + + 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 + L"EntityID=L".length(),64); + if(tm.find(L" ")>0) tm = tm.left(tm.find(L" ")); + EntityID=tm; + } + pos = str2.find(L"Category=L"); + if(pos >= 0) + { + tm = str2.mid(pos+L"Category=L".length(),64); + if(tm.find(L" ")>0) tm = tm.left(tm.find(L" ")); + Category=tm; + } + trace(L"EntityID:"+EntityID); + trace(L"Category:"+Category); + if(EntityID != L"" && Category != L"") + { + xstring eleStr = L"<row EntityID='"+EntityID+L"'"; + eleStr += L" category='" + Category + L"'/>"; + bill = L"EntityID=L"+EntityID+L" Category=L" + Category; + ShowDetail(eleStr); + } + } + } + return 1; + } + + int ShowDetail(xstring eleStr) + { + xaserverarg arg; + + arg.AddArg(L"content",eleStr); + xml doc; + + if(getUrl(L"/sale/data/vpage/vstart/task",arg.GetString(),doc)!=1) + { + trace((xstring)L"error->:"+doc.xml()); + return 0; + } + if(doc.xml() == L"") + return -1; + + htmlctrl ht = GetControl(L"taskinfo"); + ht.SetContent(doc.xml()); + ht.Redraw(); + + return 1; + } + + int onload() + { + 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,L"Category",L"普通"); + + OnAttachEvent(); + + readonly = false; + MessageID = L""; + bill = L""; + + SetAgent(); + if(GetWinParam()) + { + xaserverarg arg = GetArg(); + MessageID = arg.GetArgString(L"id"); + if(arg.GetArgString(L"readonly")==L"1") readonly=true; + OnRetrieve(); + + if(arg.GetArgString(L"EntityID")!=L"") + { + 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); + } + } + + 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..f53db45 --- /dev/null +++ b/jrj/project/business/Affair/message.supplier.cpp @@ -0,0 +1,230 @@ +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <xcontrol/xcell.hpp> + + +#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; + + xstring xfNodeAgentArea = L"agentarea"; + xnode anode = GetAgentNode(xfNodeAgentArea); + if(m_agentNode) + { + SetAgentNode (anode,m_agentNode); + } + else + { + KXMLDOMElement xframeElement = GetElement(); + KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); + if(agent) + { + xstring s = agent.xml(); + m_agentNode = SetAgentNode (anode,s); + } + } + return 1; + } + + //焦点激活处理函数 + int OnSetFocus(TEvent* evt, LPARAM param) + { + //重置工具条 + SetAgent(); + return 1; + } + + int UpLoad(xstring name) + { + 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(TEvent* evt, int p) + { + DWNMHDR& hdr1 = *(DWNMHDR*)evt->notify.pnmh; + xstring colname1= hdr1.colname; + + DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; + xstring value = hdr.data; + xaserverarg arg; + + + if(value == L"上传附件") + { + xstring strguid = publiccode::GetGuid(); + //alert(strguid); + int ret1 = UpLoad(strguid); + if(ret1 == -1) + return -1; + + if(ret1 == 0) + { + alert(L"上传附件失败"); + return -1; + } + else + { + alert(L"上传附件成功"); + xstring strimage=dw_base.GetItemString(1,L"ImageList1"); + //alert(strimage); + if(strimage==L"") + strimage=L"<ImageList></ImageList>"; + xml y; + + y.loadXML(strimage); + + KXMLDOMElement ele= y.documentElement(); + + 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,L"ImageList1",ele.xml()); + dw_base.Redraw(); + } + } + + if(value == L"查看") + { + 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; + } + + int GetEntityData(xaserverarg arg) + { + xml x; + + dw_base.DwUpdateAllTo(x); + arg.AddArg(L"EntityData",x.xml()); + + return 1; + } + + xaserverarg GetArg(xstring comdid) + { + if(comdid.find(L":")>=0) + { + xaserverarg arg = comdid.mid(comdid.find(L":")+1,64).toInt(); + return arg; + } + return 0; + } + + int GetEntityInfo(xaserverarg arg) + { + arg.AddArg(L"EntityName",L"Supplier"); + arg.AddArg(L"EntityID",dw_base.GetGuid(1)); + return 1; + } + + //命令发布函数 + int OnCmdDispatch(xstring comdid) + { + 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(TEvent* evt, LPARAM param) + { + return OnCmdDispatch(evt->xcommand.pStrID); + } + + int OnAttachEvent() + { + //绑定工具条点击事件 + AttachEvent(L"WM_XCOMMAND", (FEvent)&SupplierMessageWin::OnXCommand); + //获取焦点事件,用于重置工具条 + 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(L"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.AddArg(L"xxx",L"xxx"); + if (getUrl(L"",arg.GetString(),x)!=1) + { + trace(x.text()); + return -1; + }else + { + //dw_list.Retrieve(x); + //dw_list.Redraw(); + } + return 1; + } + */ + + int onload() + { + 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); + //dw_base.SetVScrollState(false); + + OnAttachEvent(); + + return 1; + } + + int onloaded() + { + SetAgent(); + + return 1; + } + }; \ No newline at end of file -- Gitblit v1.9.3