From c0d7d316f6f352ae0efd95a46c83ff99eb9e7925 Mon Sep 17 00:00:00 2001
From: LiFan <2308045698@qq.com>
Date: 星期三, 17 七月 2024 17:45:54 +0800
Subject: [PATCH] update
---
/dev/null | 513 -----------------
jrj/project/business/SystemSettings/Organization.cpp | 187 ++++++
jrj/project/business/SystemSettings/Buglist.Developer.hxsoft.cpp | 332 +++++++++++
jrj/project/business/SystemSettings/ProcessManagement.cpp | 184 ++++++
jrj/project/business/SystemSettings/OrganizationBase.cpp | 189 ++++++
jrj/project/business/SystemSettings/BugMaint.Developer.hxsoft.cpp | 369 ++++++++++++
jrj/ext-jrj/ext-jrj.vcxproj | 11
7 files changed, 1,266 insertions(+), 519 deletions(-)
diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj
index 580b054..77dc281 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj
+++ b/jrj/ext-jrj/ext-jrj.vcxproj
@@ -826,9 +826,10 @@
<ClCompile Include="..\project\business\SystemSettings\BindComputer.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
- <ClCompile Include="..\project\business\SystemSettings\Buglist.Developer.hxsoft_A.cpp">
+ <ClCompile Include="..\project\business\SystemSettings\Buglist.Developer.hxsoft.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
+ <ClCompile Include="..\project\business\SystemSettings\BugMaint.Developer.hxsoft.cpp" />
<ClCompile Include="..\project\business\SystemSettings\Data.config.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
@@ -844,9 +845,6 @@
<ClCompile Include="..\project\business\SystemSettings\FlowTermSelect.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
</ClCompile>
- <ClCompile Include="..\project\business\SystemSettings\GroupManagerList_A.cpp">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- </ClCompile>
<ClCompile Include="..\project\business\SystemSettings\level.Customer.v3.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
@@ -856,10 +854,11 @@
<ClCompile Include="..\project\business\SystemSettings\maint.Level.Customer3.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
</ClCompile>
- <ClCompile Include="..\project\business\SystemSettings\Organization_A.cpp">
+ <ClCompile Include="..\project\business\SystemSettings\Organization.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
- <ClCompile Include="..\project\business\SystemSettings\ProcessManagement_A.cpp">
+ <ClCompile Include="..\project\business\SystemSettings\OrganizationBase.cpp" />
+ <ClCompile Include="..\project\business\SystemSettings\ProcessManagement.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\project\business\SystemSettings\Resource.select.data.config.cpp">
diff --git a/jrj/project/business/SystemSettings/BugMaint.Developer.hxsoft.cpp b/jrj/project/business/SystemSettings/BugMaint.Developer.hxsoft.cpp
new file mode 100644
index 0000000..ec10349
--- /dev/null
+++ b/jrj/project/business/SystemSettings/BugMaint.Developer.hxsoft.cpp
@@ -0,0 +1,369 @@
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+ class __declspec(dllexport) BugMaintWin : public xframe
+ {
+ public:
+ xdwtable dw_base;
+ xnode m_agentNode; //Agent Condition
+
+ xstring m_EntityID;
+ xstring m_EntityType;
+ xstring m_EntityConnect;
+ xstring m_ConnectID;
+
+ xcontrol m_Edit;
+ htmlctrl m_Html;
+ xcombobox m_cb;
+ public:
+ BugMaintWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+ public:
+ static BugMaintWin* CreateInstance(void* implPtr, void* hWnd)
+ {
+ BugMaintWin* pWin = new BugMaintWin(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 OnSave()
+ {
+ xaserverarg arg ;
+
+
+ xml xbase ;
+
+ dw_base.AcceptText();
+ dw_base.DwUpdateAllTo(xbase);
+
+ arg.AddArg(L"content",xbase.xml());
+
+ if(getUrl(L"/workflow/action/BugList/bill.update",arg.GetString(),xbase) == 1)
+ {
+ dw_base.ResetUpdateStatus();
+ alert(L"保存成功!");
+ m_EntityID = dw_base.GetGuid(1);
+
+ return 1;
+ }
+ else
+ {
+ alert(L"添加失败!");
+ return -1;
+ }
+ return 1;
+ }
+
+ int AppendItem(xml x,KXMLDOMElement r,xstring name, xstring value)
+ {
+ KXMLDOMElement e = x.createElement(name);
+ e.text() = value;
+ r.appendChild(e);
+ return 1;
+ }
+
+ int Init()
+ {
+ if(m_EntityID == L"") return -1;
+
+ xml x ;
+
+ xaserverarg arg ;
+
+ arg.AddArg(L"EntityID",m_EntityID);
+ arg.AddArg(L"EntityType",m_EntityType);
+ arg.AddArg(L"EntityConnect",m_EntityConnect);
+ if(xurl::get(L"/sale/data/Commentary/entity/notelist",arg.GetString(),x) == 1)
+ {
+ m_Html.SetContent(x.xml());
+ m_Html.Redraw();
+ }
+ return 1;
+ }
+
+ int showAtt()
+ {
+ xnode anode =GetAgentNode(L"att");
+ int s = m_cb.GetCount();
+ xml x ;
+
+ x.loadXML(L"<vbox/>");
+ KXMLDOMElement ele = x.documentElement();
+ int i=0;
+ for(i=0; i<s; i++)
+ {
+ xstring tmp = m_cb.GetLBText(i);
+ KXMLDOMElement e = x.createElement(L"hbox");
+ e.setAttribute(L"height", L"20");
+ KXMLDOMElement l = x.createElement(L"xlabel");
+ l.setAttribute(L"caption", L""+tmp);
+ KXMLDOMElement b = x.createElement(L"xtoolbutton");
+ b.setAttribute(L"width", L"18");
+ b.setAttribute(L"name", L"att_"+i.toString());
+ b.setAttribute(L"image", L"1,5");
+ e.appendChild(l);
+ e.appendChild(b);
+ ele.appendChild(e);
+ KXMLDOMElement g = x.createElement(L"xlabel");
+ g.setAttribute(L"height", L"2");
+ g.setAttribute(L"style", L"background-color:#000000");
+ ele.appendChild(g);
+ }
+ SetAgentNode (anode,ele.xml());
+ anode.SetWidthHeight(-1, i * 20 + 1);
+ return 1;
+ }
+
+ int addAtt()
+ {
+ xstring guid = publiccode::GetGuid();
+ xstring str = guid.left(2);
+ xstring ret = xaserver::UploadFile(L"attachment"+str, guid+L".jpg".GetHWND(),L"",false);
+ int nIndex = m_cb.AddItem(ret, guid+L".jpg");
+ showAtt();
+ return 1;
+ }
+
+ int delAtt(xstring no)
+ {
+ int nIndex = no.toInt();
+ m_cb.DeleteItem(nIndex);
+ showAtt();
+ return 1;
+ }
+
+ KXMLDOMElement getAtt()
+ {
+ int s = m_cb.GetCount();
+ xml x ;
+
+ x.loadXML(L"<Attachment/>");
+ KXMLDOMElement ele = x.documentElement();
+ int i=0;
+ for(i=0; i<s; i++)
+ {
+ xstring tmp = m_cb.GetLBText( i);
+ xstring tmp2 = m_cb.GetItemData(i);
+ KXMLDOMElement e = x.createElement(L"item");
+ e.setAttribute(L"name", L""+tmp);
+ e.setAttribute(L"file", L""+tmp2);
+ ele.appendChild(e);
+ }
+ return ele;
+ }
+
+ //命令处理事件
+ int OnXCommand(TEvent* evt, LPARAM param)
+ {
+ return OnCmdDispatch(evt->xcommand.pStrID);
+ }
+
+ //命令发布函数
+ int OnCmdDispatch(xstring comdid)
+ {
+ if(comdid==L"xmOK")
+ {
+
+ if(m_EntityID == L"") return 1;
+
+ //trace(L"id:"+m_EntityID);
+
+ xml x ;
+
+ xaserverarg arg ;
+
+ xstring value = m_Edit.GetText();
+ if(value == L"")
+ {
+ alert(L"请填写批注!");
+ return 1;
+ }
+
+ x.loadXML(L"<Commentary update.new='1' update.modify='1'/>");
+ KXMLDOMElement ele = x.documentElement();
+ AppendItem(x, ele, L"CommentaryID", publiccode::GetGuid());
+ AppendItem(x, ele, L"EntityID", m_EntityID);
+ AppendItem(x, ele, L"EntityType", m_EntityType);
+ AppendItem(x, ele, L"Remark", value);
+ AppendItem(x, ele, L"ParentConnect", m_EntityConnect);
+ AppendItem(x, ele, L"ParentCommentaryID", m_ConnectID);
+ AppendItem(x, ele, L"CreatorID", xaserver::GetUserId());
+ ele.appendChild(getAtt());
+
+ arg.AddArg(L"content", L"<root>"+(xstring)ele.xml()+L"</root>");
+
+ if(getUrl(L"/workflow/action/Commentary/bill.update",arg.GetString(),x) == 1)
+ {
+ m_Edit.SetText(L"");
+ m_cb.ResetContent();
+ Init();
+ showAtt();
+ return 1;
+ }
+ else
+ {
+ alert(L"添加失败!");
+ return -1;
+ }
+ }
+ else if(comdid==L"xmAtt")
+ {
+ addAtt();
+ }
+ else if(comdid.left(4)==L"att_")
+ {
+ delAtt(comdid.right(comdid.length() - 4));
+ }
+ else if(comdid==L"xmClose")
+ {
+ CloseWindow();
+ return 1;
+ }
+ else if(comdid==L"xmSave")
+ {
+ return OnSave();
+ }
+ return 0;
+ }
+
+ int OnHtmlClick(TEvent* evt, int p)
+ {
+ ref HTMLNMHDR p = evt.pnmh;
+ const xstring d = m_Html.GetData(p.object);
+ if(d == L"") return -1;
+ xstring file = d.mid(0, d.find(L"|##@@|",0));
+ xstring name = d.mid(d.find(L"|##@@|",0)+6, d.length());
+
+
+ xaserver::CreateDirectory(L"C:/Temp");
+ xstring str = file.left(2);
+ xstring ext = L"";
+ if(name.find(L".")>=0) ext = name.mid(name.find(L"."),name.length());
+ xstring sfile = file.left(file.length() - 4);
+ //trace(L"--"+ext +L" " + L"/business/attachment/"+str+L"/"+ file);
+ //int openRet = xaserver::DownLoadFile(GetServerUrl(),L"/business/attachment/"+str+L"/"+ file,name,L"C:/Temp/"+name);
+ int openRet = xaserver::DownLoadFile(GetServerUrl(),L"/business/attachment/"+str+L"/"+ file,L"",L"C:/Temp/"+sfile+ext);
+ if(openRet < 0)
+ {
+ alert(L"文件打开失败1!");
+ return -1;
+ }
+ //openRet = ShellExecute(0,L"open",L"C:/Temp/"+name,L"",L"",5);
+ openRet = ShellExecute(0,L"open",L"C:/Temp/"+sfile+ext,L"",L"",5);
+ if(openRet < 32)
+ {
+ alert(L"文件打开失败2!");
+ return -1;
+ }
+
+ return -1;
+ }
+
+ int OnAttachEvent()
+ {
+ //绑定工具条点击事件
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&BugMaintWin::OnXCommand);
+ AttachEvent(L"note",L"HTC_OBJECTCLICKED", (FEvent)&BugMaintWin::OnHtmlClick);
+ return 1;
+ }
+
+ /*
+ int OnRetrieve()
+ {
+ xml x ;
+
+ xaserverarg arg ;
+
+ 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()
+ {
+ SetArg();
+ dw_base = GetControl(L"dw_base");
+ dw_base.openUrl(L"/sale/view/Developer/bug/maint");
+ dw_base.SetColHeaderHeight(0);
+ dw_base.SetRowSelectorWidth(0);
+ dw_base.SetHScrollState(false);
+ dw_base.SetVScrollState(false);
+
+ OnAttachEvent();
+
+ m_Edit = GetControl(L"Txt");
+
+ m_Html = GetControl(L"note");
+
+ m_cb = GetControl(L"attlist");
+
+ m_EntityID = L"";
+
+ m_EntityType = L"BugList";
+ m_EntityConnect = L"";
+ m_ConnectID = L"";
+
+ xstring Reciever = publiccode::GetUser().name;
+ dw_base.SetItemString(1,L"Reciever",Reciever);
+
+ if(GetWinParam())
+ {
+ xaserverarg arg=GetArg() ;
+
+ m_EntityID = arg.GetArgString(L"EntityID");
+ m_EntityType = arg.GetArgString(L"m_EntityType");
+ m_EntityConnect = arg.GetArgString(L"m_EntityConnect");
+ }
+ Init();
+ return 1;
+ }
+
+ int onloaded()
+ {
+ //SetAgent();
+
+ return 1;
+ }
+ };
\ No newline at end of file
diff --git a/jrj/project/business/SystemSettings/Buglist.Developer.hxsoft.cpp b/jrj/project/business/SystemSettings/Buglist.Developer.hxsoft.cpp
new file mode 100644
index 0000000..5ce192c
--- /dev/null
+++ b/jrj/project/business/SystemSettings/Buglist.Developer.hxsoft.cpp
@@ -0,0 +1,332 @@
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+ class __declspec(dllexport) BugListWin : public xframe
+ {
+ public:
+ xdwgrid dw_list;
+ xnode m_agentNode; //Agent Condition
+
+ xstring m_EntityID;
+ xstring m_EntityType;
+
+ htmlctrl m_Html;
+ xcontrol m_Edit;
+ xcombobox m_cb;
+ public:
+ BugListWin(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+ public:
+ static BugListWin* CreateInstance(void* implPtr, void* hWnd)
+ {
+ BugListWin* pWin = new BugListWin(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 OnRowChanged(TEvent* evt, int p)
+ {
+ DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+ int row = hdr.row;
+
+ m_EntityID = dw_list.GetGuid(row);
+ RetrieveNote(row);
+
+ return 1;
+ }
+
+ static stdcall int GetModuleFileName(int hModule, xstring lpFileName, int nSize) native from "kernel32.dll" alias "GetModuleFileNameW";
+ static stdcall int PathRemoveFileSpec(xstring lpFileName) native from "shlwapi.dll" alias "PathRemoveFileSpecW";
+
+ xstring GetModulePath()
+ {
+ xstring str = L"";
+ str = str.space(255);
+ GetModuleFileName(0, str, 250);
+ PathRemoveFileSpec(str);
+ return str;
+ }
+
+ xstring GetModuleTmpPath()
+ {
+ xstring str = L"";
+ str = str.space(255);
+ GetModuleFileName(0, str, 250);
+ PathRemoveFileSpec(str);
+ xstring tmp = str + L"\\Temp";
+ xaserver::CreateDirectory(tmp);
+ return tmp;
+ }
+
+ int RetrieveNote(int row)
+ {
+ if (row == 0) row = dw_list.GetRow();
+ if (row < 1) return 1;
+
+ xstring EntityID = dw_list.GetGuid(row);
+ xml x ;
+
+ xaserverarg arg ;
+
+ arg.AddArg(L"EntityID", EntityID);
+ if (xurl::get(L"/sale/data/Commentary/entity/notelist", arg.GetString(), x) == 1)
+ {
+ m_Html.SetContent(x.xml());
+ m_Html.Redraw();
+ }
+ return 1;
+ }
+
+ //焦点激活处理函数
+ int OnSetFocus(TEvent* evt, LPARAM param)
+ {
+ //重置工具条
+ SetAgent();
+ return 1;
+ }
+
+ //命令发布函数
+ int OnCmdDispatch(xstring comdid)
+ {
+ if (comdid == L"xmAdd")
+ {
+ OpenWindow(L"dev:xpage[BugMaint.Developer.hxsoft.vx]", 0);
+ return 1;
+ }
+ else if (comdid == L"xmRetrieve")
+ {
+ OnRetrieve();
+ return 1;
+ }
+ else if (comdid == L"xmAtt")
+ {
+ addAtt();
+ }
+ else if (comdid == L"xmMsg")
+ {
+ OnAddItem();
+ return 1;
+ }
+ else if (comdid == L"xmDelete")
+ {
+ OnDelete();
+ return 1;
+ }
+ return 0;
+ }
+
+ int OnDelete()
+ {
+ int row = dw_list.GetRow();
+ if (row < 1)
+ return 1;
+ KXMLDOMElement ele = dw_list.GetRowElement(row);
+ xstring BugListID = ele.selectSingleNode(L"BugListID").text();
+ xml x ;
+
+ xaserverarg arg ;
+
+ arg.AddArg(L"BugListID", BugListID);
+ if (getUrl(L"/sale/data/BugList/delete/buglist", arg.GetString(), x) != 1)
+ {
+ xstring error = x.text();
+ alert(L"err:" + error);
+ return 1;
+ }
+ alert(x.text());
+ OnRetrieve();
+ return 1;
+ }
+
+ int addAtt()
+ {
+ xstring guid = publiccode::GetGuid();
+ xstring str = guid.left(2);
+ xstring ret = xaserver::UploadFile(L"attachment" + str, guid + L".jpg", GetHWND(), L"", false);
+ OnAddItem(ret, guid + L".jpg");
+ return 1;
+ }
+
+ //命令处理事件
+ int OnXCommand(TEvent* evt, LPARAM param)
+ {
+ return OnCmdDispatch(evt->xcommand.pStrID);
+ }
+
+ int OnAttachEvent()
+ {
+ //绑定工具条点击事件
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&BugListWin::OnXCommand);
+ //获取焦点事件,用于重置工具条/sale/data/buglist/list/buglist"
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&BugListWin::OnSetFocus);
+ AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&BugListWin::OnRowChanged);//绑定行更改触发事件OnRowChanged
+ AttachEvent(L"note", L"HTC_OBJECTCLICKED", (FEvent)&BugListWin::OnHtmlClick);
+ return 1;
+ }
+
+ int OnHtmlClick(TEvent* evt, int p)
+ {
+ ref HTMLNMHDR p = evt.pnmh;
+ const xstring d = m_Html.GetData(p.object);
+ if (d == L"") return -1;
+ xstring file = d.mid(0, d.find(L"|##@@|", 0));
+ xstring name = d.mid(d.find(L"|##@@|", 0) + 6, d.length());
+
+ xstring str = file.left(2);
+ xstring ext = L"";
+ if (name.find(L".") >= 0) ext = name.mid(name.find(L"."), name.length());
+ xstring sfile = file.left(file.length() - 4);
+ int openRet = xaserver::DownLoadFile(GetServerUrl(), L"/business/attachment/" + str + L"/" + file, L"", GetModuleTmpPath() + L"\\" + sfile + ext);
+ if (openRet < 0)
+ {
+ alert(L"文件打开失败1!");
+ return -1;
+ }
+ openRet = ShellExecute(0, L"open", GetModuleTmpPath() + L"\\" + sfile + ext, L"", L"", 5);
+ if (openRet < 32)
+ {
+ alert(L"文件打开失败2!");
+ return -1;
+ }
+
+ return -1;
+ }
+
+ int AppendItem(xml x, KXMLDOMElement r, xstring name, xstring value)
+ {
+ KXMLDOMElement e = x.createElement(name);
+ e.text() = value;
+ r.appendChild(e);
+ return 1;
+ }
+
+ KXMLDOMElement getAtt(xstring source = L"", xstring file = L"")
+ {
+ xml x ;
+
+ x.loadXML(L"<Attachment/>");
+ KXMLDOMElement ele = x.documentElement();
+ KXMLDOMElement e = x.createElement(L"item");
+ e.setAttribute(L"name", source);
+ e.setAttribute(L"file", file);
+ ele.appendChild(e);
+
+ return ele;
+ }
+
+ int OnAddItem(xstring source = L"", xstring file = L"")
+ {
+
+ xml x ;
+
+ xaserverarg arg ;
+
+ xstring value = m_Edit.GetText();
+ if (value == L"")
+ {
+ if (source == L"")
+ {
+ alert(L"请填写批注!");
+ return 1;
+ }
+ }
+
+ x.loadXML(L"<Commentary update.new='1' update.modify='1'/>");
+ KXMLDOMElement ele = x.documentElement();
+ AppendItem(x, ele, L"CommentaryID", publiccode::GetGuid());
+ AppendItem(x, ele, L"EntityID", m_EntityID);
+ AppendItem(x, ele, L"EntityType", m_EntityType);
+ AppendItem(x, ele, L"Remark", value);
+ //AppendItem(x, ele, L"ParentConnect", m_EntityConnect);
+ //AppendItem(x, ele, L"ParentCommentaryID", m_ConnectID);
+ AppendItem(x, ele, L"CreatorID", xaserver::GetUserId());
+ ele.appendChild(getAtt(source, file));
+
+ arg.AddArg(L"content", L"<root>" + (xstring)ele.xml() + L"</root>");
+
+ if (getUrl(L"/workflow/action/Commentary/bill.update", arg.GetString(), x) == 1)
+ {
+ m_Edit.SetText(L"");
+ RetrieveNote(0);
+ return 1;
+ }
+ else
+ {
+ alert(L"添加失败!");
+ return -1;
+ }
+ }
+
+ int OnRetrieve()
+ {
+ xml x ;
+
+ xaserverarg arg ;
+
+ if (getUrl(L"/sale/data/BugList/list/buglist", arg.GetString(), x) != 1)
+ {
+ trace(x.text());
+ return -1;
+ }
+ else
+ {
+ dw_list.Retrieve(x);
+ dw_list.SetReadOnly(true);
+ dw_list.Redraw();
+ RetrieveNote(0);
+ }
+
+ return 1;
+ }
+
+
+ int onload()
+ {
+ dw_list = GetControl(L"dw_list");
+ dw_list.openUrl(L"/sale/view/Developer/bug/list");
+
+ m_Html = GetControl(L"note");
+ m_Edit = GetControl(L"Txt");
+
+ m_EntityID = L"";
+ m_EntityType = L"BugList";
+
+ dw_list.SetColumnState(L"BugListID", false);
+ OnRetrieve();
+ OnAttachEvent();
+
+ return 1;
+ }
+
+ int onloaded()
+ {
+ SetAgent();
+
+ return 1;
+ }
+ };
\ No newline at end of file
diff --git a/jrj/project/business/SystemSettings/Buglist.Developer.hxsoft_A.cpp b/jrj/project/business/SystemSettings/Buglist.Developer.hxsoft_A.cpp
deleted file mode 100644
index ca9b3d6..0000000
--- a/jrj/project/business/SystemSettings/Buglist.Developer.hxsoft_A.cpp
+++ /dev/null
@@ -1,1576 +0,0 @@
-#include <wobject/xstring.hpp>
-#include <wobject/xdouble.hpp>
-#include <xcontrol/xtreeview.hpp>
-#include <xcontrol/xdwgrid.hpp>
-#include <xcontrol/ximageview.hpp>
-
-#include "vbusiness/vframe/maint.vframe.vbusiness.hpp"
-#include "viewobject/view.base.hpp"
-#include "viewobject/saleorder.view.hpp"
-#include "viewobject/quote.view.hpp"
-#include "viewobject/shoppingcart.view.hpp"
-#include "viewobject/productLibrary.view.hpp"
-#include "xcontrol/xcheckbox.hpp"
-#include "xcontrol/xshtml.hpp"
-
-class __declspec(dllexport) ProductLibrary4Win : public xframe
-{
-public:
- //产品库产品列表
- xdwgrid dw_list;
- //购物车产品列表
- xdwgrid dwc_list;
-
- //产品缓存对象
- //xdataset g_xdoc_product;
- //xdataset g_xdoc_shoppingcart;
-
- xcombobox cbx_goodscar;
- //是否多选
-
- xnode m_agentNode; //Agent Condition
- xtreeview tv_folder;
- xstring agentFor;
- KXMLDOMElement imageElement;
- xstring m_customer;
-
-public:
- ProductLibrary4Win(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
-public:
- static ProductLibrary4Win* CreateInstance(void* implPtr, void* hWnd)
- {
- ProductLibrary4Win* pWin = new ProductLibrary4Win(implPtr, (HWND)hWnd);
- return pWin;
- }
-public:
- int FillGoodsCarList()
- {
- xcombobox xc = GetControl(L"frame:cbx_goodscar");
- if (!xc) return 0;
- xml x = ShoppingCartView::GetRoleList();
- if (!x) return 0;
- xc.SetText(L"==选择购物车==L");
-
- KXMLDOMNodeList nlist = x.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");
- xc.AddItem( name);
- }
- return 1;
- }
-
- 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)
- {
- bstring s = agent.xml();
- m_agentNode = SetAgentNode(anode, s);
- //FillGoodsCarList();
- }
- }
- return 1;
- }
-
- //焦点激活处理函数
- int OnSetFocus(TEvent * evt, int param)
- {
- //重置工具条
- SetAgent();
- return 1;
- }
-
- KXMLDOMElement OnGetCarListRowElement(int row = 0)
- {
- if (row < 1) row = dwc_list.GetRow();
- if (row < 1 || row > dwc_list.GetRowCount()) return KXMLDOMElement();
- KXMLDOMElement e = dw_list.GetRowElement(row);
- return e;
- }
-
- int OnShowImage(xstring skuid)
- {
- ximageview im = GetControl(L"im1");
- //im.RemoveImage();
- im.Reset();
-
- xml xp ;
- xaserverarg arg_pic;
- arg_pic.AddArg(L"SKUID", skuid);
- if (xurl::get(L"/sale/data/ProductLibrary3/pref/picture/imagelistSKU", arg_pic.GetString(), xp) != 1)
- {
- trace(xstring(L"xxx")+xp.xml());
- }
- else
- {
- //trace(skuid+L" "+xp.GetXml());
- imageElement = xp.documentElement();
- KXMLDOMNodeList nlistp = xp.selectNodes(L"ImageList/image");
- int lenp = nlistp.length();
- for (int ip = 0; ip < lenp; ip++)
- {
- KXMLDOMElement xitem = nlistp.item(ip);
- xstring picname = xitem.selectSingleNode(L"PicPath").text();
- xstring goodno = xitem.selectSingleNode(L"GoodsNo").text();
- if (picname == L"/business/products/Thumbs//")
- picname = L"/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg";
- im.AddImages(picname, (LPTSTR)L"");
- }
- im.Redraw();
- //win32::SendMessage(im.GetId(),0x000f,0,1);
- //win32::InvalidateRect(im.GetId(),cast(0 as ref xrect),true);
- }
- return 1;
- }
-
- int OnShowImage(xstring skuid, xstring customerItemNo)
- {
- ximageview im = GetControl(L"im1");
- //im.RemoveImage();
- im.Reset();
-
- xml xp ;
- xaserverarg arg_pic ;
- arg_pic.AddArg(L"SKUID", skuid);
- arg_pic.AddArg(L"CustomerID", m_customer);
- arg_pic.AddArg(L"CustomerItemNo", customerItemNo);
-
- if (xurl::get(L"/sale/data/ProductLibrary3/pref/picture/customer/imagelistSKU", arg_pic.GetString(), xp) != 1)
- {
- trace(L"error:" + xstring(xp.xml(),true));
- }
- else
- {
- imageElement = xp.documentElement();
- KXMLDOMNodeList nlistp = xp.selectNodes(L"ImageList/image");
- int lenp = nlistp.length();
- for (int ip = 0; ip < lenp; ip++)
- {
- KXMLDOMElement xitem = nlistp.item(ip);
- bstring picname = xitem.selectSingleNode(L"PicPath").text();
- bstring goodno = xitem.selectSingleNode(L"GoodsNo").text();
- if (picname == L"/business/products/Thumbs//")
- picname = L"/business/products/Thumbs/00/00000000-0000-0000-0000-000000000000.jpg";
- im.AddImages(picname, L"");
- }
- im.Redraw();
- }
- return 1;
- }
-
- int OnRowChanged(TEvent * evt, int p)
- {
- DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
- int row = hdr.row;
-
- xshtml xs = GetControl(L"html_detail");
- xstring html = makeHtml(row);
- xs.SetContent(html);
- xs.Redraw();
-
- xstring id = dw_list.GetGuid(row);
- OnShowImage(id);
- trace(id);
- return 1;
- }
-
- int OnGoodsCarRowChanged(TEvent * evt, int p)
- {
- DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
- int row = hdr.row;
-
- xshtml xs = GetControl(L"html_detail");
- xstring html = makeGoodscarHtml(row);
- xs.SetContent(html);
- xs.Redraw();
- if (m_customer)
- {
- xstring id = dw_list.GetItemString(row, L"SKUID");
- xstring customerItemNo =dw_list.GetItemString( row, L"CustomerItemNo");
- OnShowImage(id, customerItemNo);
- }
-
- return 1;
- }
-
- int DeleteRow(int row)
- {
- int IDOK = 1;
- int MB_OKCANCEL = 1;
- int MB_ICONQUESTION = 32;
- if (MessageBoxW(GetHWND(), L"确认删除指定的项,删除后将不能恢复?", L"提示", MB_OKCANCEL | MB_ICONQUESTION) != IDOK) return 1;
- xstring id = dw_list.GetGuid(row);
-
- if (ProductLibraryView::DeleteItem(id) == 1) dw_list.DeleteRow(0);
- return 1;
- }
-
- int SetSelectState(xdwgrid dw_obj, int state)
- {
- if (state == 1)
- {
- dw_obj.SetSelectionMode(3);
- }
- else if (state == -1)
- {
- dw_obj.SelectRow(0, false);
- dw_obj.SetSelectionMode(0);
- }
- return 1;
- }
- int OnCkbCLick(TEvent * evt, int p)
- {
- xcheckbox cbx_1 = GetControl(L"frame:cbx1");
- int state = cbx_1.GetCheck();
- return SetSelectState(dw_list, state);
- }
-
- int OnCkbCLick2(TEvent * evt, int p)
- {
- xcheckbox cbx_2 = GetControl(L"frame:cbx2");
- int state = cbx_2.GetCheck();
- return SetSelectState(dwc_list, state);
- }
-
- xml GetGoodsPropList(xstring guid)
- {
- xml x;
- xaserverarg arg;
- arg.AddArg(L"guid", guid);
- if (xurl::get(L"/sale/data/SO/goods/goodsprop/list", arg.GetString(), x) != 1)
- {
- bstring error = x.text();
- alert(error);
- }
- return x;
- }
-
- xml GetGoodsPropListEx(xstring guid)
- {
- xml x;
- xstring fields = L"<data>";
- //fields +=L"<field name='HighestPrice' label='最高价'/>";
- //fields +=L"<field name='LowestPrice' label='最低价'/>";
-
- //fields +=L"<field name='BulkPrice' label='散货价'/>";
- //fields +=L"<field name='CardPrice' label='纸卡价'/>";
- //fields +=L"<field name='BuyPrice' label='采购价'/>";
- //fields +=L"<field name='SupplierID' label='货源'/>";
-
- fields += L"<field name='Packing' label='包装方式'/>";
- fields += L"<field name='PackingRate' label='每箱数量'/>";
- fields += L"<field name='VolumeDesc' label='包装尺码'/>";
- fields += L"<field name='GWPerPkg' label='毛重'/>";
- fields += L"<field name='NWPerPkg' label='净重'/>";
- //fields +=L"<field name='DeveloperID' label='开发人员'/>";
- fields += L"<field name='AttributeValue_1' label='产品属性'/>";
- //fields +=L"<field name='Remark' label='备注'/>";
-
- fields += L"</data>";
- x.loadXML(fields);
-
- return x;
- }
-
- xstring makeHtml(int row)
- {
- xstring id = dw_list.GetItemString(row, L"@guid");
- xml x = GetGoodsPropList(id);
- xml x1 = GetGoodsPropListEx(id);
-
- xstring html = L"<html><style> .text{ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'>";
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >编号:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"SKUNo") +
- L"</span> <span style='font-weight:700;width:50;font-size:10pt' >类项:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"RefNo") +
- L"</span></div>";
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >公司型号:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"GoodsNo") +
- L"</span></div>";
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >品名:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"CName") +
- L"</span></div>";
- if (dw_list.GetItemString(row, L"CSpec") != L"")
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >规格:</span><span style='width:90;font-size:10pt'>" + dw_list.GetItemString(row, L"CSpec") +
- L"</span></div>";
-
- KXMLDOMNodeList fieldsEx = x1.selectNodes(L"data/field");
- xstring ls_detail = L"";
- xstring ls_item = L"";
- xstring name;
- xstring label;
- int len = fieldsEx.length();
- int i = 0;
-
- for (i = 0; i < len; true)
- {
- int cnt = 0;
- ls_item = L"";
- while (cnt < 2)
- {
- name = fieldsEx.item(i).selectSingleNode(L"@name").text();
- label = fieldsEx.item(i).selectSingleNode(L"@label").text();
- ls_item += L"<td>" + label + L"</td>" + L"<td style='text-align:center'>" + dw_list.GetItemString( row, (LPCTSTR)name) + L"</td>";
- cnt++;
- i++;
- if (i == len)break;
- }
- ls_detail += L"<tr>" + ls_item + L"</tr>";
- }
- html += (xstring)L"<div style='margin-left:8px;margin-right:16px;'>" +
- + L"<table><colgroup span='1' width='70'/><colgroup span='1' width='120'/><colgroup span='1' width='70'/><colgroup span='1' width='120'/>"
- + ls_detail
- + L"</table>"
- + L"</div>";
-
- xstring ls_star = L"";
- KXMLDOMNodeList fields = x.selectNodes(L"data/field");
- len = fields.length();
-
- ls_detail = L"";
- if (len > 0)
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >技术要求:</span></div>";
- for (i = 0; i < len; true)
- {
- ls_item = L"";
-
- int count = 0;
- while (count < 2)
- {
- name = fields.item(i).selectSingleNode(L"@name").text();
- label = fields.item(i).selectSingleNode(L"@label").text();
- if (name == L"QualityTerm" || name == L"PackTerm" || label == L"质量" || label == L"包装质量" || label == L"技术要求")
- {
- i++;
- if (i >= len)count = 2;
- continue;
- }
- else if (dw_list.GetItemString( row, (LPCTSTR)name) == L"")
- {
- KXMLDOMNodeList options = fields.item(i).selectNodes(L"item");
- int tlen = options.length();
- xstring terms = L"";
- for (int k = 0; k < tlen; k++)
- {
- if (xstring(options.item(k).text()))
- {
- if (k > 0) terms += L", L";
- terms += (xstring)L"[" + options.item(k).text() + L"]";
- }
- }
- ls_star += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >" + label + L"*:</span><span style='width:90;font-size:10pt'>" + terms + L"</span></div>";
- }
- else
- {
- ls_item = L"<td>" + label + L"</td>" + L"<td>" + dw_list.GetItemString( row, (LPCTSTR)name) + L"</td>";
- count++;
- }
- i++;
- if (i >= len)count = 2;
- }
- ls_item = L"<tr>" + ls_item + L"</tr>";
- ls_detail += ls_item;
- }
-
- html += (xstring)L"<div style='margin-left:8px;margin-right:16px;'>" +
- +L"<table><colgroup span='1' width='70'/><colgroup span='1' width='120'/><colgroup span='1' width='70'/><colgroup span='1' width='120'/>"
- + ls_detail
- + L"</table>"
- + L"</div>";
- if (dw_list.GetItemString(row, L"QualityTerm") != L"")
- {
- html += L"<div style='height:12px'/>";
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >质量:</span></div>";
- html += L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row, L"QualityTerm") + L"</span></div>";
- }
-
- if (dw_list.GetItemString(row, L"PackTerm") != L"")
- {
- html += L"<div style='height:12px'/>";
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >包装质量:</span></div>";
- html += L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString(row, L"PackTerm") + L"</span></div>";
- }
-
- if (dw_list.GetItemString( row, L"Remark") != L"")
- {
- //html += L"<div style='height:12px'/>";
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >备注:</span></div>";
- html += L"<div ><span style='margin-left:8px;margin-right:16px;font-weight:400;font-size:10pt' >" + dw_list.GetItemString( row, L"Remark") + L"</span></div>";
- }
-
- html += L"<div style='height:24px'/>";
-
- //星标项
- html += ls_star;
-
- //显示图片
- /*
- if (id != L"")
- {
- xml xp=new xml;
- xp.setNativePointer(xml::CreateInstance());
- xaserverarg arg_pic=new xaserverarg;
- arg_pic.setNativePointer(arg_pic.CreateInstance());
- arg_pic.AddArg(L"SKUID",id);
- if(url::get(L"/sale/data/ProductLibrary3/pref/picture/imagelistSKU",arg_pic.GetString(),xp)!=1)
- {
- trace(L"xxx",xp.GetXml());
- }else {
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >图片:</span>" ;
- KXMLDOMElement ep= xp.selectSingleNode(L"ImageList");
- if (ep)
- {
- if (ep.SelectNodes(L"image")){
- KXMLDOMNodeList nlistp = ep.SelectNodes(L"image");
- int ip=0;
- int lenp = nlistp.length;
- for(ip=0;ip<lenp;ip++)
- {
- KXMLDOMElement xitemp = nlistp.item(ip);
- xstring filename = xitemp.selectSingleNode(L"PicPath").text;
- //trace(filename);
- html += L"<control visible='layer' controlclass='ximage' data='' src='http://192.168.7.241:7001" + filename +L"'/>";
- }
- }
- }
- html += L"</div>";
- }
- }else {
- xstring picname = L"1FA9E331-F95C-4E51-B80C-73FB9B911D8D.jpg";//dw_list.GetItemString(row,L"ImgName"); //ItemID+L".jpg";
- xstring str = picname.mid(0,2);
- str = str.upper();
- xstring serversrc =L"http://192.168.7.241:1001/business/products/chanpin/"+str+L"/"+picname;
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >图片:</span>";
- html += L"<control visible='layer' controlclass='ximage' data='' src='"+ serversrc +L"'/></div>";
- }
- */
- html += L"</body></html>";
- //trace(html);
- return html;
- }
-
- xstring makeGoodscarHtml(int row)
- {
- xstring No = dwc_list.GetItemString(row, L"RefNo");//获取属性值id
- xml x = GetGoodsPropList(No);
-
- xstring html = L"<html><style> .text{ font-weight:400} .label { font-weight:400;}</style><body style='margin:2;background-color1:#ccdccc none #f0f0f0 none'>";
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >编号:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, L"No") +
- L"</span></div>";
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >品名:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, L"CName") +
- L"</span></div>";
- html += L"<div ><span style='font-weight:700;width:50;font-size:10pt' >规格:</span><span style='width:90;font-size:10pt'>" + dwc_list.GetItemString(row, L"CSpec") +
- L"</span></div>";
-
- KXMLDOMNodeList fields = x.selectNodes(L"data/field");
- int len = fields.length();
- html += (xstring)L"<table>" +
- L"<colgroup span='1' width='80'/>" +
- L"<colgroup span='1' width='120'/>" +
- L"<colgroup span='1' width='420'/>";
- html += L"<tr>";
- html += L"<td style='text-align:center'>编号</td><td style='text-align:center'>项目</td><td style='text-align:center'>内容</td>";
- html += L"</tr>";
- for (int i = 0; i < len; i++)
- {
- xstring name = fields.item(i).selectSingleNode(L"@name").text();
- xstring label = fields.item(i).selectSingleNode(L"@label").text();
- html += L"<tr>";
- if (i == 0)
- html += L"<td rowspan='" + xstring(len) + L"'>" + No + L"</td><td >" + label + L"</td><td >" + L"</td>";
- else
- html += L"<td >" + label + L"</td><td >" +dw_list.GetItemString( row, (LPCTSTR)name) + L"</td>";
- html += L"</tr>";
- }
-
- html += L"<tr>";
- html += L"<td rowspan='3'>" +dw_list.GetItemString( row, L"PackCode") + L"</td><td >包装方式</td><td >" +
- dw_list.GetItemString(row, L"CPack") + L"</td>";
- html += L"</tr>";
- html += L"<tr height='48'>";
- html += L"<td >包装要求</td><td >" +dw_list.GetItemString( row, L"PackQualityTerm") + L"</td>";
- html += L"</tr>";
- html += L"<tr>";
- html += L"<td >侧唛</td><td ></td>";
- html += L"</tr>";
-
- html += L"<tr height='72'>";
- html += L"<td>" +dw_list.GetItemString( row, L"QualityCode") + L"</td><td >质量要求</td><td >" +
- dw_list.GetItemString(row, L"QualityTerm") + L"</td>";
- html += L"</tr>";
-
- html += L"</table>";
-
- html += L"</body></html>";
- return html;
-
- }
-
- int CarGoodsDelete()
- {
- return 1;
- }
-
- xstring Up(xstring name) {
- xstring str = name.mid(0, 2);
- str = str.toUpper();
- return xaserver::UploadFile(L"product" + str, name + L".jpg", GetHWND(), L"", false);
- }
-
- int OnAddImage() {
- if (m_customer != L"") return OnAddImageEx();
- int row = dw_list.GetNextSelectRow(1);
- if (row < 1) row = dw_list.GetRow();
- if (row < 1 || row > dw_list.GetRowCount()) return 0;
-
- KXMLDOMElement e = dw_list.GetRowElement(row);
- xstring skuid = dw_list.GetItemString( row, L"@guid");
- xstring SKUNo = dw_list.GetItemString( row, L"SKUNo");
- xstring id = ViewObject::GetGuid();
- xstring ret1 = Up(id);
- if (ret1 == L"-1") return -1;
- if (ret1 == L"0")
- {
- alert(L"上传图片失败");
- return -1;
- }
- xstring originfile = ret1;
- xstring ext = originfile.right(7);
- if (ext.find(L".") >= 0)
- ext = ext.mid(ext.find(L".") + 1, 9999);
- else
- ext = L"jpg";
-
- // 图片名加入数据库
- xml x ;
- x.loadXML(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" +
- L"<ProductPictureID>" + id + L"</ProductPictureID>" +
- L"<OriginFile>" + originfile + L"</OriginFile>" +
- L"<FileExt>" + ext + L"</FileExt>" +
- L"<SKUID>" + skuid + L"</SKUID>" +
- L"<Name>[" + SKUNo.trim() + L"]</Name>" +
- L"<FileName>" + id + L".jpg</FileName>" +
- L"</Item>"
- );
-
- xaserverarg arg;
- arg.AddArg(L"content", x.xml());
- if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
- {
- alert(x.text());
- return -1;
- }
- dw_list.SetItemString(row, L"pic", L"*");
- dw_list.Redraw();
- //刷新一下界面,显示图片
- OnShowImage(skuid);
- return 1;
- }
-
- int OnAddImageEx() {
- int row = dwc_list.GetNextSelectRow(1);
- if (row < 1) row = dwc_list.GetRow();
- if (row < 1 || row > dwc_list.GetRowCount()) return 0;
-
- KXMLDOMElement e = dw_list.GetRowElement( row);
- xstring skuid =dw_list.GetItemString( row, L"SKUID");
- xstring SKUNo =dw_list.GetItemString( row, L"SKUID/@__displaystring");
- xstring CustomerID = m_customer;
- xstring CustomerItemNo =dw_list.GetItemString( row, L"CustomerItemNo");
- xstring id = ViewObject::GetGuid();
- xstring ret1 = Up(id);
- if (ret1 == L"-1") return -1;
- if (ret1 == L"0")
- {
- alert(L"上传图片失败");
- return -1;
- }
- xstring originfile = ret1;
- xstring ext = originfile.right(7);
- if (ext.find(L".") >= 0)
- ext = ext.mid(ext.find(L".") + 1, 9999);
- else
- ext = L"jpg";
-
- // 图片名加入数据库
- xml x;
- x.loadXML(L"<Item update.new='1' update.modify='1' guid='" + id + L"'>" +
- L"<ProductPictureID>" + id + L"</ProductPictureID>" +
- L"<OriginFile>" + originfile + L"</OriginFile>" +
- L"<FileExt>" + ext + L"</FileExt>" +
- L"<SKUID>" + skuid + L"</SKUID>" +
- L"<CustomerItemNo>" + CustomerItemNo + L"</CustomerItemNo>" +
- L"<CustomerID>" + CustomerID + L"</CustomerID>" +
- L"<Name>[" + SKUNo.trim() + L"]</Name>" +
- L"<FileName>" + id + L".jpg</FileName>" +
- L"</Item>"
- );
-
- xaserverarg arg;
- arg.AddArg(L"content", x.xml());
- if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
- {
- alert(x.text());
- return -1;
- }
- dwc_list.SetItemString(row, L"pic", L"*");
- dwc_list.Redraw();
- //刷新一下界面,显示图片
- OnShowImage(skuid, CustomerItemNo);
- return 1;
- }
-
- int OnDeleteImageEx()
- {
- int row = dwc_list.GetNextSelectRow(1);
- if (row < 1) row = dwc_list.GetRow();
- if (row < 1 || row > dwc_list.GetRowCount()) return 0;
-
- ximageview im = GetControl(L"im1");
- int index = im.GetSelectIndex();
- int count = im.GetImageCount();
-
- if (count < 1) return 1;
-
- KXMLDOMNodeList images = imageElement.selectNodes(L"image");
- int length = images.length();
- if (length < index) return 1;
-
- int MB_OKCANCEL = 0x00000001;
- int IDOK = 1;
- if (MessageBox(GetHWND(), L"确认删除当前图片?", L"提示", MB_OKCANCEL) != IDOK) return 1;
-
- xstring id = images.item(index).selectSingleNode(L"@guid").text();
-
- xml x ;
- xaserverarg arg;
- arg.setNativePointer(arg.CreateInstance());
- xstring str = L"<Item update.modify='1' update.delete='1' guid='" + id + L"'/>";
- arg.AddArg(L"content", str);
- if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
- {
- alert(x.text());
- return -1;
- }
- if (count == 1)
- {
- dwc_list.SetItemString(row, L"pic", L"");
- dwc_list.Redraw();
- }
-
- xstring skuid =dw_list.GetItemString( row, L"SKUID");
- xstring SKUNo =dw_list.GetItemString( row, L"SKUID/@__displaystring");
- xstring CustomerID = m_customer;
- xstring CustomerItemNo =dw_list.GetItemString( row, L"CustomerItemNo");
- OnShowImage(skuid, CustomerItemNo);
-
- return 1;
- }
-
- int OnDeleteImage() {
- if (m_customer != L"") return OnDeleteImageEx();
-
- int row = dw_list.GetNextSelectRow(1);
- if (row < 1) row = dw_list.GetRow();
- if (row < 1 || row > dw_list.GetRowCount()) return 0;
-
- ximageview im = GetControl(L"im1");
- int index = im.GetSelectIndex();
- int count = im.GetImageCount();
-
- if (count < 1) return 1;
-
- KXMLDOMNodeList images = imageElement.selectNodes(L"image");
- int length = images.length();
- if (length < index) return 1;
-
- int MB_OKCANCEL = 0x00000001;
- int IDOK = 1;
- if (MessageBox(GetHWND(), L"确认删除当前图片?", L"提示", MB_OKCANCEL) != IDOK) return 1;
-
- xstring id = images.item(index).selectSingleNode(L"@guid").text();
-
- xml x;
- xaserverarg arg;
- xstring str = L"<Item update.modify='1' update.delete='1' guid='" + id + L"'/>";
- arg.AddArg(L"content", str);
- if (xurl::get(L"/sale/data/ProductLibrary/image/update", arg.GetString(), x) != 1)
- {
- alert(x.text());
- return -1;
- }
- if (count == 1)
- {
- dw_list.SetItemString(row, L"pic", L"");
- dw_list.Redraw();
- }
-
- KXMLDOMElement e1 = dw_list.GetRowElement(row);
- xstring skuid = e1.getAttribute(L"guid");
- OnShowImage(skuid);
-
- return 1;
- }
- int OnPreviewImage()
- {
- int row = dw_list.GetNextSelectRow(1);
- if (row < 1) row = dw_list.GetRow();
- if (row < 1 || row > dw_list.GetRowCount()) return 0;
- KXMLDOMElement e = dw_list.GetRowElement(row);
- //KXMLDOMElement e = dw_list.GetRowElement(row);
- //alert(e.xml);
- xstring id = dw_list.GetItemString( row, L"@guid");
- //alert(id);
-
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
- xstring categoryid = e1.selectSingleNode(L"@guid").text();
- //alert(categoryid);
- xaserverarg* arg = new xaserverarg;
- arg->AddArg(L"SKUID", id);
- arg->AddArg(L"CategoryID", categoryid);
-
- OpenWindow(L"dev:xpage[PictureView.Product3.vx]", (LPARAM)arg);
-
- return 1;
- }
-
- int ItemMaint()
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- //xstring no = e.getAttribute(L"no");
- //if(no==L"") return 1;
- xstring guid = e.getAttribute(L"guid");
- if (guid == L"") return 1;
-
- /*
- if(no==L"NP0000FS" || no==L"UP0000FS")
- {
- OpenWindow(L"dev:xpage[PackSchemaMaint.goodslib.vx]");
- }else
- {
- int pr = g_xdoc_product;
- OpenWindow(L"dev:xpage[ProductLibraryItemMaint.vx]",pr);
- }
- */
- //KXMLDOMElement ele = g_xdoc_product.getRowElement(L"data/Item", 1);
- //alert(ele.xml);
-#ifdef shouldfinished
- int pr = g_xdoc_product;
- OpenWindow(L"dev:xpage[ProductLibraryItemMaint3.vx]", pr);
-#endif
- return 1;
- }
-
- int ItemAdd()
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- HTREEITEM hTopItem = LookupTopFolder(hItem);
- xstring name = tv_folder.GetItemLabel(hTopItem);
-
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- //alert(e.xml);
- /*xstring no = e.getAttribute(L"no");
- if(no==L"") return 1;
- if(no==L"NP0000FS" || no==L"UP0000FS")
- {
- OpenWindow(L"dev:xpage[PackSchemaMaint.goodslib.vx]");
- }else
- {
- int p = no;
- OpenWindow(L"dev:xpage[SO.autolist.goodslib.add.vx]",p);
- }*/
- xstring guid = e.getAttribute(L"guid");
- if (guid == L"") return 1;
- xaserverarg arg;
- arg.setNativePointer(arg.CreateInstance());
- arg.AddArg(L"guid", e.getAttribute(L"guid"));
- if (name == L"个人产品")
- arg.AddArg(L"FolderID", e.getAttribute(L"guid"));
- else
- arg.AddArg(L"CategoryID", e.getAttribute(L"guid"));
- xstring No = e.getAttribute(L"CategoryNo");
- if (No == L"") No = e.getAttribute(L"no");
- xstring Name = e.getAttribute(L"CName");
- if (Name == L"") Name = e.getAttribute(L"cname");
- arg.AddArg(L"No", No);
- arg.AddArg(L"CName", Name);
- OpenWindow(L"dev:xpage[Quick.Input.NewProduct.vx]", (LPARAM)&arg);
-
- if (arg.GetArgString(L"data.modify") == L"1")RetrieveData();
-
- return 1;
- }
-
- int OnAddFolder()
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- HTREEITEM hTopItem = LookupTopFolder(hItem);
- xstring name = tv_folder.GetItemLabel(hTopItem);
- xstring selectname = tv_folder.GetItemLabel(hItem);
-
- xaserverarg arg;
- if (hItem != hTopItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring folder = e.getAttribute(L"guid");
- if (folder != L"")
- {
- arg.AddArg(L"parentCategoryID", folder);
- OpenWindow(L"dev:xpage[UserFolderMaint.vx]",(LPARAM)&arg);
- /*if(arg.GetArgString(L"FolderID")!=L"")
- {
- int child = tv_folder.GetChildItem(hItem);
- if(!child)
- {
- ExpandItem(hItem);
- }
- else
- {
- KXMLDOMElement e1 = cast(tv_folder.GetItemData(hItem) as KXMLDOMElement);
- KXMLDOMElement e2 = e1.cloneNode(0);
- e2.
- }
- }*/
- }
- }
-
- return 1;
- }
-
- int OnMaintFolder()
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- HTREEITEM hTopItem = LookupTopFolder(hItem);
- xstring name = tv_folder.GetItemLabel(hTopItem);
- xstring selectname = tv_folder.GetItemLabel(hItem);
-
- xaserverarg arg;
- if (name == L"个人库" && selectname == L"新产品" && tv_folder.GetParentItem(hItem) == hTopItem) return 1;
- if (hItem != hTopItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring folder = e.getAttribute(L"guid");
- if (folder != L"")
- {
- arg.AddArg(L"CategoryID", folder);
- OpenWindow(L"dev:xpage[UserFolderMaint.vx]", (LPARAM)&arg);
- if (arg.GetArgString(L"label") != L"")
- {
- tv_folder.SetItemLabel(hItem, arg.GetArgString(L"label"));
- }
- }
- }
- return 1;
- }
-
- //命令发布函数
- int OnCmdDispatch(xstring comdid)
- {
- int hCursor;
- xstring name = L"";
- if (comdid == L"xmRefresh")
- {
- return RetrieveData();
- }
- else if (comdid == L"xmCarGoodsDelete")
- {
- CarGoodsDelete();
- return 1;
- }
- else if (comdid == L"xmAddFolder")
- {
- return OnAddFolder();
- }
- else if (comdid == L"xmMaintFolder")
- {
- return OnMaintFolder();
- }
- else if (comdid == L"xmClose")
- {
- CloseWindow();
- return 1;
- }
- else if (comdid == L"xmCarGoodsMaint")
- {
-#ifdef shouldfinish
- OpenWindow(L"dev:xpage[ShoppingCartProductMaint.vx]", trust(g_xdoc_shoppingcart as int));
-#endif
- return 1;
- }
- else if (comdid == L"xmCarMaint")
- {
- OpenWindow(L"dev:xpage[SO.autolist.Shopcar.vx]");
- return 1;
- }
- else if (comdid == L"xmSaleOrder")
- {
- int rw = dwc_list.GetNextSelectRow(1);
- xstring content = L"<data>";
- while (rw > 0)
- {
- KXMLDOMElement xe = OnGetCarListRowElement(rw);
- content += xe.xml();
- rw = dwc_list.GetNextSelectRow(rw + 1);
-
- }
- content += L"</data>";
- xaserverarg carg;
- carg.setNativePointer(carg.CreateInstance());
- carg.AddArg(L"content", content);
- OpenWindow(L"dev:xpage[SO.Simulation.Import.vx]", (LPARAM) & carg);
- return 1;
- }
- else if (comdid == L"xmEnquiry")
- {
- int rw = dwc_list.GetNextSelectRow(1);
- xstring content = L"<data>";
- while (rw > 0)
- {
- KXMLDOMElement xe = OnGetCarListRowElement(rw);
- content += xe.xml();
- rw = dwc_list.GetNextSelectRow(rw + 1);
- }
- content += L"</data>";
- xaserverarg carg;
- carg.setNativePointer(carg.CreateInstance());
- carg.AddArg(L"content", content);
- OpenWindow(L"dev:xpage[Enquiry.Import.vx]", (LPARAM)&carg);
- return 1;
- }
- else if (comdid == L"xmPurchar")
- {
- int rw = dwc_list.GetNextSelectRow(1);
- xstring content = L"<data>";
- while (rw > 0)
- {
- KXMLDOMElement xe = OnGetCarListRowElement(rw);
- content += xe.xml();
- rw = dwc_list.GetNextSelectRow(rw + 1);
- }
- content += L"</data>";
- xaserverarg carg ;
- carg.AddArg(L"content", content);
- OpenWindow(L"dev:xpage[PO.Import.vx]", (LPARAM)&carg);
- return 1;
- }
- else if (comdid == L"xmSearch")
- {
- RetrieveData();
- return 1;
- }
- else if (comdid == L"xmQuote")
- {
- int rw = dwc_list.GetNextSelectRow(1);
- xstring content = L"<data>";
- while (rw > 0)
- {
- KXMLDOMElement xe = OnGetCarListRowElement(rw);
- content += xe.xml();
- rw = dwc_list.GetNextSelectRow(rw + 1);
- }
- content += L"</data>";
- xaserverarg carg;
- carg.AddArg(L"content", content);
- OpenWindow(L"dev:xpage[Quote.Import.vx]", (LPARAM) & carg);
- return 1;
- }
- else if (comdid == L"xmAdd")
- {
- return ItemAdd();
- }
- else if (comdid == L"xmDelete")
- {
- int row = dw_list.GetRow();
- if (row < 1) return 1;
- xstring skuid = dw_list.GetItemString( row, L"@guid");
- xml skuid_x = ViewObject::RetrieveData(L"/sale/data/ProductLibrary3/ProductNumberone", L"SKUID", skuid);
- xstring skuidEx = skuid_x.text();
- int skuid1 = skuidEx.toInt();
- if (skuid1)
- {
- if (skuid1 > 0)
- {
- alert(L"订单已有产品,不允许删除!");
- return 1;
- }
- }
-
- DeleteRow(row);
-
- return 1;
- }
- else if (comdid == L"xmCarAdd")
- {
- HCURSOR hCursor = xutil::SetCursorWait();
- name = xcontrol(GetControl(L"frame:ed_goodscar")).GetText();
- if (name != L"")
- {
- if (ShoppingCartView::AddCar(name) == 1)
- {
- tv_folder.InsertChildItem(LookupTopFolder(tv_folder.GetSelectedItem()),
- name, 0, 35);
- }
- }
- xutil::RestoreCursor(hCursor);
- return 1;
- }
- else if (comdid == L"xmMaint")
- {
- return ItemMaint();
- }
- else if (comdid == L"xmAddImage")
- {
- return OnAddImage();
- }
- else if (comdid == L"xmDeleteImage")
- {
- return OnDeleteImage();
- }
- else if (comdid == L"xmPreviewImage")
- {
- return OnPreviewImage();
- }
- else if (comdid == L"xmPropConfigure")
- {
-#ifdef shouldfinish
- int r = cast(g_xdoc_product.getData(L"data/Item", L"@guid") as int);
- OpenWindow(L"dev:xpage[Product.ItemProp.Maint.vx]", r);
-#endif
- return 1;
- }
- else if (comdid == L"xmRertieve")
- {
- /*
- int hItem1 = tv_folder.GetSelectedItem();
- KXMLDOMElement e2= tv_folder.GetItemData(hItem1);
- xstring no1 = e2.getAttribute(L"no");
- xml x2 = vcontrol::RetrieveData(L"/sale/data/SO/goods/usergoods/listex1",L"parent",no1);
- g_xdoc_product.Retrieve(x2);
- */
- return 1;
- }
- else if (comdid == L"xmToCar")
- {
- name = xcontrol(GetControl(L"frame:cbx_goodscar")).GetText();
- if (name == L"==选择购物车==L")
- {
- alert(L"请选择购物车");
- return 1;
- }
- int xrow = dw_list.GetNextSelectRow(1);
- xstring goodsid = L"";
- xstring html = L"<data>";
- while (xrow > 0)
- {
- KXMLDOMElement e =dw_list.GetRowElement(xrow);
- goodsid = ProductLibraryView::GetElementString(e, L"@guid");
- html += L"<item goodid='" + goodsid + L"' id ='" + ProductLibraryView::GetGuid() + L"'/>";
- xrow = dw_list.GetNextSelectRow(xrow + 1);
- }
- html += L"</data>";
- trace(html);
- if (ShoppingCartView::GoodsImport(name, html) == 1)
- alert(L"添加错误!");
- else
- alert(L"添加成功");
- return 1;
- }
- return 0;
- }
-
- //命令处理事件
- int OnXCommand(TEvent* evt, int 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 MakeGoodsFolderItem(HTREEITEM hItem, xstring sno)
- {
- xml x = ProductLibraryView::GetTreeChildItems3(sno);
- if (!x) return 0;
-
- KXMLDOMNodeList nlist = x.selectNodes(L"//Item");
- int len = nlist.length();
- for (int i = 0; i < len; i++)
- {
- KXMLDOMElement e = nlist.item(i);
- xstring name = e.getAttribute(L"CName");
- xstring no = e.getAttribute(L"CategoryNo");
- xstring label = no.trim() + L" " + name;
-
- HTREEITEM h = tv_folder.InsertChildItem(hItem, label, e, 15);
- xstring child = e.getAttribute(L"Childs");
- if (child == L"")
- tv_folder.SetItemChild(h, 1);
- else if (child != L"0")
- tv_folder.SetItemChild(h, 1);
- }
- return 1;
- }
-
- //插入新产品目录子项
- int MakeUserGoodsFolderItem(HTREEITEM hItem, xstring sno)
- {
- xml x = ProductLibraryView::GetTreeUserChildItems3(sno);
- if (!x) return 0;
-
- KXMLDOMNodeList nlist = x.selectNodes(L"//Item");
- int len = nlist.length();
- for (int i = 0; i < len; i++)
- {
- KXMLDOMElement e = nlist.item(i);
- xstring name = e.getAttribute(L"CName");
- xstring no = e.getAttribute(L"CategoryNo");
- xstring label = no.trim() + L" " + name;
-
- HTREEITEM h = tv_folder.InsertChildItem(hItem, label, e, 15);
- xstring child = e.getAttribute(L"Childs");
- if (child == L"")
- tv_folder.SetItemChild(h, 1);
- else if (child != L"0")
- tv_folder.SetItemChild(h, 1);
- }
- return 1;
- }
-
- //插入购物车项
- int ExpandCatChildFolder(HTREEITEM hItem, KXMLDOMElement ele, int image)
- {
- KXMLDOMNodeList nlist = ele.selectNodes(L"item");
- int len = nlist.length();
- if (len > 0) tv_folder.SetItemChild(hItem, 1);
- for (int i = 0; i < len; i++)
- {
- KXMLDOMElement e = nlist.item(i);
- xstring name = e.getAttribute(L"name");
- HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
- ExpandCatChildFolder(h, e, 35);
- }
- return 1;
- }
- int MakeGoodCarFolderItem(HTREEITEM hItem)
- {
- xml x = ShoppingCartView::GetRoleList();
- if (!x) return 0;
- KXMLDOMNodeList nlist = x.selectNodes(L"/data/item");
- int len = nlist.length();
- for (int i = 0; i < len; i++)
- {
- KXMLDOMElement e = nlist.item(i);
- xstring name = e.getAttribute(L"name");
- HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, 35);
- ExpandCatChildFolder(h, e, 35);
- }
- return 1;
- }
-
- int ExpandItem(HTREEITEM hItem)
- {
- HTREEITEM hTopItem = LookupTopFolder(hItem);
- xstring name = tv_folder.GetItemLabel(hTopItem);
- HTREEITEM child = tv_folder.GetChildItem(hItem);
- xstring no = L"";
- KXMLDOMElement e;
- if (name == L"公司库" && !child)
- {
- no = L"";
- if (hTopItem != hItem)
- {
- e = tv_folder.GetItemData(hItem);
- no = e.getAttribute(L"categoryid");
- }
- else
- {
- e = tv_folder.GetItemData(hItem);
- no = e.getAttribute(L"categoryid");
- }
- MakeGoodsFolderItem(hItem, no);
- }
- else if (name == L"个人库" && !child)
- {
- no = L"";
- if (hTopItem != hItem)
- {
- e = tv_folder.GetItemData(hItem);
- no = e.getAttribute(L"categoryid");
- MakeUserGoodsFolderItem(hItem, no);
- }
- }
- else if (name == L"购物车" && !child)
- {
- if (hItem == hTopItem)MakeGoodCarFolderItem(hItem);
- }
- return 1;
- }
-
- //树展开
- int OnTreeExpanding(TEvent * evt, int p)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
- return ExpandItem(hItem);
- }
-
- int ResetAgent(xstring agentAsk)
- {
- if (agentFor != agentAsk)
- {
- agentFor = agentAsk;
- m_agentNode = 0;
- SetAgent();
- }
- return 1;
- }
-
- HTREEITEM LookupCustomerFolder(HTREEITEM hItem)
- {
- while (true)
- {
- KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
- xstring str = e1.getAttribute(L"no");
- if (str.find(L"Customer:") >= 0) return hItem;
- hItem = tv_folder.GetParentItem(hItem);
- if (hItem == 0) break;
- }
- return 0;
- }
-
- xstring LookupCustomer(HTREEITEM hItem)
- {
- hItem = LookupCustomerFolder(hItem);
- if (hItem == 0) return L"";
- KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
- xstring str = e1.getAttribute(L"no");
- return str.mid(xstring(L"Customer:").length(), 9999);
- }
-
- int RetrieveData()
- {
- ximageview im = GetControl(L"im1");
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- HTREEITEM hTopItem = LookupTopFolder(hItem);
- xstring name = tv_folder.GetItemLabel(hTopItem);
- xstring selectname = tv_folder.GetItemLabel(hItem);
-
- xcontrol query = GetControl(L"sl_search");
- xstring queryString = query.GetText();
-
- if (hItem == hTopItem)
- {
- dw_list.Reset();
- dw_list.SetReadOnly(true);
- dw_list.Redraw();
- dwc_list.Reset();
- dwc_list.SetReadOnly(true);
- dwc_list.Redraw();
-
- im.Reset();
- im.Redraw();
-
-
- xshtml xs1 = GetControl(L"html_detail");
- xs1.SetContent(L"<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>");
-
- if (name != L"公司库") return 1;
- }
- //return 1;
-
- HCURSOR hCursor = xutil::SetCursorWait();
-
- if (name == L"购物车")
- {
- if (selectname != name)
- {
- KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
- xstring str = e1.getAttribute(L"no");
- alert(str);
- if (str.find(L"Customer:") == 0 || str.find(L"SO:") == 0)
- {
- m_customer = LookupCustomer(hItem);
- if (str.find(L"Customer:") == 0)
- dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodscustomerlist");
- else
- dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodssolist");
- dwc_list.Reset();
- dwc_list.SetReadOnly(true);
- dw_list.Retrieve(ShoppingCartView::GetGoodsList(str, queryString));
- }
- else if (e1.getAttribute(L"categoryid") != L"")
- {
- xstring categoryid = e1.getAttribute(L"categoryid");
- dwc_list.SetDataObject(ProductLibraryView::GetMaintListForm3(categoryid));
- dwc_list.SetReadOnly(true);
- dwc_list.Reset();
- dw_list.Retrieve(ProductLibraryView::GetMaintList3(categoryid, queryString, L""));
- dwc_list.Redraw();
- }
- else
- {
- dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodslist");
- dwc_list.SetReadOnly(true);
- dwc_list.Reset();
- dw_list.Retrieve(ShoppingCartView::GetGoodsList(selectname, queryString));
- }
- //dwc_list.PostRetrieve();
- dwc_list.Redraw();
-
- xshtml xs = GetControl(L"html_detail");
- if (dwc_list.GetRowCount() >= 1)
- {
- xs.SetContent(makeGoodscarHtml(1));
-
- if (m_customer != L"")
- {
- xstring skuid =dw_list.GetItemString( 1, L"SKUID");
- xstring customerItemNo =dw_list.GetItemString( 1, L"CustomerItemNo");
- OnShowImage(skuid, customerItemNo);
- }
- }
- else
- {
- im.Reset();
- im.Redraw();
-
- xs = GetControl(L"html_detail");
- xs.SetContent(L"<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>");
- }
- xs.Redraw();
- }
- }
- else
- {
-
- if (name == L"个人库" || name == L"公司库")
- {
- xstring no = L"N000005";
- if (name == L"个人库") no = L"U000005";
-
- if (hItem != hTopItem)
- {
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- no = e.getAttribute(L"guid");
- }
- else
- return 1;
-
- /* dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(no).GetXmlDoc());
- dw_list = GetControl(L"dw_list");
- dw_list.Reset();
- dw_list.SetReadOnly(true);
- */
-
- if (name == L"个人库")
- dw_list.Retrieve(ProductLibraryView::GetMaintRoleList3(no));
- else
- {
- if (queryString != L"")
- {
-
- if (no == L"N000005")
- dw_list.Retrieve(ProductLibraryView::GetMaintList3(L"", queryString, L""));
- else
- dw_list.Retrieve(ProductLibraryView::GetMaintList3(no, queryString, L""));
- }
- else
- {
- if (no == L"N000005") return 1;
- dw_list.Retrieve(ProductLibraryView::GetMaintList3(no));
- }
- }
- //dw_list.PostRetrieve();
- dw_list.Redraw();
-
- xshtml xs = GetControl(L"html_detail");
- if (dw_list.GetRowCount() > 0)
- {
- xs.SetContent(makeHtml(1));
- xstring id = dw_list.GetItemString( 1, L"@guid");
- OnShowImage(id);
- }
- else
- {
- im.Reset();
- im.Redraw();
-
- xs.SetContent(L"<html><body style='margin:2;background-color:#ccdccc none #f0f0f0 none'/></html>");
- }
- xs.Redraw();
- }
- }
- xutil::RestoreCursor(hCursor);
-
- return 1;
- }
-
- int OnTreeSelChanged(TEvent * evt, int p)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
- HTREEITEM hTopItem = LookupTopFolder(hItem);
- xstring name = tv_folder.GetItemLabel(hTopItem);
- xstring selectname = tv_folder.GetItemLabel(hItem);
- ximageview im = GetControl(L"im1");
- m_customer = L"";
- //alert(name);
- if (name == L"购物车")
- {
- if (agentFor != L"goodscar")SwitchLayer(L"goodscarsheet", L"sheetframe");
- ResetAgent(L"goodscar");
- }
- else
- {
- if (agentFor != L"goodslib")SwitchLayer(L"goodslibsheet", L"sheetframe");
- if (name == L"个人库")
- ResetAgent(L"userlib");
- else
- ResetAgent(L"goodslib");
- }
- //RetrieveData();
- PostMessage(GetHWND(), 0x401, (WPARAM)L"xmRefresh", 0);
-
- return 1;
- }
-
- int ExpandChildFolder(HTREEITEM hItem, KXMLDOMElement pElement)
- {
- KXMLDOMNodeList nlist = pElement.selectNodes(L"Item");
- int len = nlist.length();
- for (int i = 0; i < len; i++)
- {
- KXMLDOMElement& e = * new KXMLDOMElement(nlist.item(i));
- xstring name = e.getAttribute(L"cname");
- xstring sImage = e.getAttribute(L"image");
- int image = 15;
- //if(sImage) image = sImage.toInt();
- HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
- tv_folder.SetItemChild(h, 1);
- ExpandChildFolder(h, e);
- }
- return 1;
- }
-
- int InitialFolder()
- {
- KXMLDOMElement xframeElement = GetElement();
- KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial");
- ExpandChildFolder(0, e);
- return 1;
- }
-
- int OnViewZoomChange(TEvent* evt, int lParam)
- {
- ximageview im = GetControl(L"im1");
- xcombobox xc = GetControl(L"precent");
- xstring text = xc.GetLBText();
- int p = text.toInt();
- if (p == 0) p = 100;
- im.Preview(p);
- return 1;
- }
-
- int OnAttachEvent()
- {
- //绑定工具条点击事件
- AttachEvent(L"WM_XCOMMAND", (FEvent)&ProductLibrary4Win::OnXCommand);
- //获取焦点事件,用于重置工具条
- AttachEvent(L"WM_SETFOCUS", (FEvent)&ProductLibrary4Win::OnSetFocus);
- AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&ProductLibrary4Win::OnRowChanged);
- AttachEvent(L"dwc_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&ProductLibrary4Win::OnGoodsCarRowChanged);
- AttachEvent(L"tv_folder", L"TVN_ITEMEXPANDING", (FEvent)&ProductLibrary4Win::OnTreeExpanding);
- AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&ProductLibrary4Win::OnTreeSelChanged);
- AttachEvent(L"WM_COMMAND", (FEvent)&ProductLibrary4Win::OnCkbCLick); //checkbox打钩事件
- AttachEvent(L"WM_COMMAND", (FEvent)&ProductLibrary4Win::OnCkbCLick2); //checkbox打钩事件
-
- AttachEvent(L"im1", L"IMG_LDBCLICK", (FEvent)&ProductLibrary4Win::OnImgDBClicked);
- AttachEvent(L"precent", L"CBN_SELCHANGE", (FEvent)&ProductLibrary4Win::OnViewZoomChange);
-
- return 1;
- }
-
- int onload()
- {
- agentFor = L"goodslib";
- m_customer = 0;
-
- OnAttachEvent();
-
- tv_folder = GetControl(L"tv_folder");
- dw_list = GetControl(L"dw_list");
- dwc_list = GetControl(L"dwc_list");
-
- InitialFolder();
-
- dw_list.SetDataObject(ProductLibraryView::GetMaintListForm3(L""));
- dw_list = GetControl(L"dw_list");
- dw_list.SetReadOnly(true);
-
- dwc_list.openUrl(L"/sale/view/ProductLibrary/template/cart/goodslist");
- dwc_list.SetReadOnly(true);
-
- tv_folder.ExpandItem(tv_folder.GetRootItem());
- tv_folder.ItemFocus(tv_folder.GetRootItem());
-
- if (dw_list.GetRowCount())
- {
- xshtml xs = GetControl(L"html_detail");
- xs.SetContent(makeHtml(1));
- }
-
- return 1;
- }
-
- int onloaded()
- {
- SetAgent();
-
- return 1;
- }
-
- int OnImgDBClicked(TEvent * evt, int pr)
- {
- IMGNNMHDR& nmtv = *(IMGNNMHDR*)evt->notify.pnmh;
- xstring src = nmtv.path;
- /*if(src.length() > 60)
- src = src.right(44);
- else
- src=src.mid(src.find(L"Thumbs", 0)+6, 50);
- */
- xaserverarg& arg = *new xaserverarg;
- //arg.AddArg(L"src",L"/business/products/chanpin"+src);
- arg.AddArg(L"src", src);
-
- //win::OpenWindow(L"dev:xpage[BigPicture.vx]",arg);
-
- int h = openUrl(L"/sale/view/ProductLibrary/xpage/bigpictureview", &arg);
- return 1;
- /*
- xwin x = new xwin;
- x.setNativePointer(h);
- m_winHwnd = x.GetHWND();
-
- xstring sh = doc.GetXml();
- int p = cast(sh as int);
- win32::SendMessage(m_winHwnd, 0x401, p, 0);
- */
- return 1;
- }
-};
\ No newline at end of file
diff --git a/jrj/project/business/SystemSettings/Organization.cpp b/jrj/project/business/SystemSettings/Organization.cpp
new file mode 100644
index 0000000..e3bb401
--- /dev/null
+++ b/jrj/project/business/SystemSettings/Organization.cpp
@@ -0,0 +1,187 @@
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+ class __declspec(dllexport) Organization : public xframe
+ {
+ public:
+ xdwgrid dw_list;
+ xnode m_agentNode; //Agent Condition
+
+ public:
+ Organization(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+ public:
+ static Organization* CreateInstance(void* implPtr, void* hWnd)
+ {
+ Organization* pWin = new Organization(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)
+ {
+ xstring s = publiccode::GetUser().deptname;
+ int hCursor = 0;
+ xstring userno = publiccode::GetUser().no;
+
+
+ if (comdid == L"xmAdd")
+ {
+ xaserverarg arg ;
+
+ arg.AddArg(L"HWND", xstring((__int64)GetHWND()));
+
+ OpenWindow(L"dev:xpage[OrganizationBase.vx]", arg);
+ }
+ else if (comdid == L"xmDelete")
+ {
+ xstring CIDs = dw_list.GetGuid(dw_list.GetRow());
+ int MB_OKCANCEL = 1;
+ int IDOK = 1;
+ int ret = MessageBox(GetHWND(), L"确认删除?", L"提示", MB_OKCANCEL);
+ if (ret == IDOK)
+ {
+ ViewObject::RetrieveData(L"/sale/data/business/delete/Organization", L"EntityID", CIDs);
+ OnRetrieve();
+ }
+ }
+ if (comdid == L"xmEdit")
+ {
+ xaserverarg arg ;
+
+ xstring ID = dw_list.GetGuid(dw_list.GetRow());
+ arg.AddArg(L"ID", ID);
+ arg.AddArg(L"HWND", xstring((__int64)GetHWND()));
+
+ OpenWindow(L"dev:xpage[OrganizationBase.vx]", arg);
+ }
+ else if (comdid == L"xmRefresh")
+ {
+ OnRetrieve();
+ }
+ return 0;
+ }
+
+ //触发鼠标离开后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 OnDoubleClicked(TEvent* evt, int p)
+ {
+ HCURSOR hCursor = xutil::SetCursorWait();
+ OnCmdDispatch(L"xmEdit");
+ xutil::RestoreCursor(hCursor);
+ return 1;
+ }
+
+ int OnAttachEvent()
+ {
+ //绑定工具条点击事件
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&Organization::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&Organization::OnSetFocus);
+ AttachEvent(L"dw_list", L"DWV_ITEMCHANGED", (FEvent)&Organization::OnBaseItemChanged);
+ AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&Organization::OnDoubleClicked);//行双击
+ return 1;
+ }
+
+
+ int OnRetrieve()
+ {
+ xml x ;
+
+ xaserverarg arg ;
+
+ arg.AddArg(L"QueryTxt",xcontrol(GetControl(L"search")).GetText());
+
+ if (getUrl(L"/sale/data/business/OrganizationList", 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/OrganizationList");
+
+
+ OnRetrieve();
+
+ OnAttachEvent();
+
+ return 1;
+ }
+
+ int onloaded()
+ {
+ SetAgent();
+
+
+
+ return 1;
+ }
+ };
\ No newline at end of file
diff --git a/jrj/project/business/SystemSettings/OrganizationBase.cpp b/jrj/project/business/SystemSettings/OrganizationBase.cpp
new file mode 100644
index 0000000..a03cf17
--- /dev/null
+++ b/jrj/project/business/SystemSettings/OrganizationBase.cpp
@@ -0,0 +1,189 @@
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.hpp>
+
+#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
+#include "viewobject/view.base.hpp"
+
+using xml = KXMLDOMDocument;
+ class __declspec(dllexport) OrganizationBase : public xframe
+ {
+ public:
+ HWND hObject = 0;
+ xdwtable dw_base;
+ xnode m_agentNode; //Agent Condition
+ bool updated;
+ public:
+ OrganizationBase(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
+ public:
+ static OrganizationBase* CreateInstance(void* implPtr, void* hWnd)
+ {
+ OrganizationBase* pWin = new OrganizationBase(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 OnSave()
+ {
+ xml x ;
+
+ xaserverarg arg ;
+
+ dw_base.AcceptText();
+ dw_base.DwUpdateAllTo(x);
+ xstring error = L"";
+ arg.AddArg(L"content", x.xml() );
+ if(xurl::get(L"/sale/data/business/Update/Organization", arg.GetString(),x)!=1)
+ {
+ error = x.text();
+ //alert(error);
+ }else
+ {
+ xstring str = x.documentElement().getAttribute(L"text");
+ if(str == L"true")
+ {
+ dw_base.ResetUpdateStatus();
+ alert(L"保存成功!");
+ SendMessage(hObject,0x401,(LPARAM)L"xmRefresh",0);
+ CloseWindow();
+ }else
+ {
+ alert(L"保存失败!");
+ }
+ //alert(str);
+ }
+ return 1;
+ }
+
+ //命令发布函数
+ int OnCmdDispatch(xstring comdid)
+ {
+ if(comdid==L"xmSave")
+ {
+ OnSave();
+ return 1;
+ }
+ else if(comdid==L"xmClose")
+ {
+ if(updated)
+ SendMessage(hObject,0x401,(LPARAM)L"xmRefresh",0);
+ CloseWindow();
+ return 1;
+ }
+ return 0;
+ }
+
+ //命令处理事件
+ int OnXCommand(TEvent* evt, LPARAM param)
+ {
+ return OnCmdDispatch(evt->xcommand.pStrID);
+ }
+
+ int OnItemChanged(TEvent* evt, int p)
+ {
+ DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
+ xstring colname=hdr.colname;
+ xstring value = hdr.data;
+
+ xstring dwname = L"dw_base";
+ return 1;
+ }
+
+
+ int OnAttachEvent()
+ {
+ //绑定工具条点击事件
+ AttachEvent(L"WM_XCOMMAND", (FEvent)&OrganizationBase::OnXCommand);
+ //获取焦点事件,用于重置工具条
+ AttachEvent(L"WM_SETFOCUS", (FEvent)&OrganizationBase::OnSetFocus);
+ AttachEvent(L"dw_base",L"DWV_ITEMCHANGED", (FEvent)&OrganizationBase::OnItemChanged);
+ return 1;
+
+ }
+
+ int OnRetrieve(xstring ID)
+ {
+ xml x ;
+
+ xaserverarg arg ;
+
+ arg.AddArg(L"ID",ID);
+ if (getUrl(L"/sale/data/business/GetOrganizationByID",arg.GetString(),x)!=1)
+ {
+ trace(x.text());
+ return -1;
+ }else
+ {
+ dw_base.Retrieve(x);
+ dw_base.Redraw();
+ }
+ return 1;
+ }
+
+ int onload()
+ {
+ SetArg();
+ dw_base = GetControl(L"dw_base");
+ dw_base.openUrl(L"/sale/view/Business3/template/OrganizationMaint");
+ dw_base.SetColHeaderHeight(0);
+ dw_base.SetRowSelectorWidth(0);
+ dw_base.SetHScrollState(false);
+ dw_base.SetVScrollState(false);
+
+ xstring ID = L"";
+ hObject = 0;
+ if(GetWinParam())
+ {
+ xaserverarg arg =GetArg() ;
+
+ ID = arg.GetArgString(L"ID");
+ hObject = (HWND)arg.GetArgString(L"HWND").toInt();
+ }
+ if(ID != L"")
+ {
+ OnRetrieve(ID);
+ }
+
+ OnAttachEvent();
+ updated = false;
+ return 1;
+ }
+
+ int onloaded()
+ {
+ //SetAgent();
+
+ return 1;
+ }
+ };
\ No newline at end of file
diff --git a/jrj/project/business/SystemSettings/Organization_A.cpp b/jrj/project/business/SystemSettings/Organization_A.cpp
deleted file mode 100644
index 8f92f1c..0000000
--- a/jrj/project/business/SystemSettings/Organization_A.cpp
+++ /dev/null
@@ -1,513 +0,0 @@
-#include <wobject/xstring.hpp>
-#include <xcontrol/xtreeview.hpp>
-#include <xcontrol/xdwgrid.hpp>
-
-#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
-#include "viewobject/view.base.hpp"
-
-class __declspec(dllexport) SO3list : public listwin
-{
-public:
- string m_sType; //树选中的类型
- string m_sTypeTxt; //树选中的数据
- string urlTree;
- string myDataUrl;
- string rows;
- xcombobox ddlb_1;
- xcombobox cbx_datashow;
-
- int changeddlb;
-
- xtreeview tv_folder;
- xdwgrid dw_goods;
- xdwgrid dw_source;
-public:
- SO3list(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {}
-public:
- static SO3list* CreateInstance(void* implPtr, void* hWnd)
- {
- SO3list* pWin = new SO3list(implPtr, (HWND)hWnd);
- return pWin;
- }
-
- //process tree
- //查找当前树项的顶级目录
- HTREEITEM LookupTopFolder(HTREEITEM hItem)
- {
- HTREEITEM hRoot = tv_folder.GetRootItem();
- while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
- return hItem;
- }
-
- int ExpandCatChildFolder(HTREEITEM hItem, KXMLDOMElement ele, int image)
- {
- KXMLDOMNodeList nlist = ele.selectNodes(L"item");
- int len = nlist.length();
- if (len > 0) tv_folder.SetItemChild(hItem, 1);
- for (int i = 0; i < len; i++)
- {
- KXMLDOMElement e = nlist.item(i);
- string name = e.getAttribute(L"name");
- HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
- ExpandCatChildFolder(h, e, 35);
- }
- return 1;
- }
-
- int ExpandFolderItem(HTREEITEM hItem, string no)
- {
- KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),urlTree, L"no", no, L"rows", rows);
- if (!x) return 0;
- KXMLDOMNodeList nlist = x.selectNodes(L"/data/item");
- int len = nlist.length();
- for (int i = 0; i < len; i++)
- {
- KXMLDOMElement e = nlist.item(i);
- string name = e.getAttribute(L"name");
- HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, 35);
- ExpandCatChildFolder(h, e, 35);
- }
- return 1;
- }
-
- //树展开
- int OnTreeExpanding(TEvent* evt, int p)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
- HTREEITEM hTopItem = LookupTopFolder(hItem);
- string name = tv_folder.GetItemLabel(hTopItem);
- HTREEITEM child = tv_folder.GetChildItem(hItem);
-
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- if (!child)ExpandFolderItem(hItem, e.getAttribute(L"no"));
-
- return 1;
- }
-
- //展开子文件
- int ExpandChildFolder(HTREEITEM 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);
- string 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();
- HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
- if (child != L"no") tv_folder.SetItemChild(h, 1);
- //ExpandChildFolder(h, e);
- }
- return 1;
- }
-
- //初始化文件夹
- int InitialFolder()
- {
- KXMLDOMElement xframeElement = GetElement();
- KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial");
- if (e)
- ExpandChildFolder(0, e);
- return 1;
- }
-
- int OnTreeSelChanged(TEvent* evt, LPARAM p)
- {
- if (changeddlb) return 1;
- return OnPreRetrieve();
- }
-
- int ViewUpdate(LPARAM pr, xstring updateItem, xaserverarg arg)
- {
- if (updateItem == L"del")
- {
- int DelRow = dw_list.GetRow();
- dw_list.DeleteRow(DelRow);
- return 1;
- }
- else if (updateItem == L"setstate")
- {
- int row = dw_list.GetRow();
- if (row < 1) return 1;
- KXMLDOMElement ele = dw_list.GetRowElement(row);
- string id = GetEntityIDName(1);
- string entity = ele.selectSingleNode(id).text();
- //trace(entity);
- SetAgent(L"list", entity);
- if (arg.GetArgString(L"state") != L"")
- //this.dw_list.SetItemString(row, "ApprovalStatus", arg.GetArgString(L"state"));
- dw_list.SetItemString(row, L"ApplyStatus", arg.GetArgString(L"state"));
- if (arg.GetArgString(L"billstatus") != L"")
- {
- xstring billstatus = arg.GetArgString(L"billstatus");
- xstring statusName = GetBillStatusName(billstatus);
- dw_list.SetItemString(row, L"ApprovalStatus", billstatus);
- dw_list.SetItemDisplayString(row, L"ApprovalStatus", statusName);
- }
-
- dw_list.Redraw();
- }
- return 1;
- }
-
- bool IsEmptyQueryStr(string queryStr)
- {
- if (queryStr == L"") return true;
- if (queryStr == L"<items join='and'/>") return true;
- if (queryStr == L"<items join=\"and\"/>") return true;
- //trace(queryStr);
- return false;
- }
-
- //检索
- int OnPreRetrieve()
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- HCURSOR hCursor = xutil::SetCursorWait();
- KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
- string no = e1.getAttribute(L"no");
- KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),myDataUrl, L"no", no, L"QueryTxt", m_QueryTxt, L"rows", rows);
- if (x)
- {
- dw_list.Retrieve(x);
- dw_list.Redraw();
- }
- else
- {
- dw_list.Reset();
- dw_list.Redraw();
- dw_goods.Reset();
- dw_goods.Redraw();
- }
- dw_list.SetReadOnly(true);
- xutil::RestoreCursor(hCursor);
- return 1;
- /*
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(arg.CreateInstance());
- arg.AddArg(L"pageindex", m_pageIndex.toString(),""); //第几页
- arg.AddArg(L"pagenumber", m_pageNumber.toString(),""); //每页数量
- arg.AddArg(L"QueryTxt", m_QueryTxt,""); //查询条件
- arg.AddArg(L"sType",m_sType,"");
- arg.AddArg(L"sTypeTxt",m_sTypeTxt,"");
- xml x = ViewObject::MakeXml();
-
- KXMLDOMElement n = m_configDoc.selectSingleNode(L"//list/dwview[@type='dwgrid'][1]");
- if(n)
- {
- KXMLDOMElement e = n;
- if(e.selectSingleNode(L"@dataUrl"))
- {
- string dataUrl = e.selectSingleNode(L"@dataUrl").text;
- if(dataUrl.left(1)!="/") dataUrl = GetEntityName(1)+"/"+dataUrl;
- getUrl(dataUrl, arg.GetString(), x);
- KXMLDOMElement ele=x.GetXmlDoc().documentElement;
- if(dw_pages.ptr_native_)
- {
- if(ele.selectSingleNode(L"@TotalPage"))
- {
- string s=ele.selectSingleNode(L"@TotalPage").text; //总数量
- dw_pages.SetMaxPage(s.toInt());
- }
- }
- dw_list.Retrieve(x);
- dw_list.Redraw();
- dw_list.SetReadOnly(true);
- }
- else
- {
- SetEntityData(arg);
- }
- }
- else
- {
- SetEntityData(arg);
- }
- */
- }
-
- //历史数据
- int Onhistroydata()
- {
- int row = dw_list.GetNextSelectRow(1);
- if (row > 0)
- {
- KXMLDOMElement e = dw_list.GetRowElement(row);
- xaserverarg& arg = * new xaserverarg;
- string sCustomerID = e.selectSingleNode(L"CustomerID").text();
- arg.AddArg(L"CustomerID", sCustomerID, L"");
- string sCustomerName = e.selectSingleNode(L"CustomerName").text();
- arg.AddArg(L"CustomerName", sCustomerName, L"");
- arg.AddArg(L"EntityName", GetEntityName(1), L"");
- arg.AddArg(L"EntityID", GetEntityID(1), L"");
- openUrl(L"/sale/view/SO/xpage/histroydata", &arg);
- }
- return 1;
- }
-
- //xcombobox下拉
- int OnSelectDdlb(TEvent* evt, LPARAM p)
- {
- changeddlb = 1;
- HWND wid = ddlb_1.GetHWND();
- int CB_GETCURSEL = 0x0147;
- int nIndex =SendMessage(wid, CB_GETCURSEL, 0, 0);
- KXMLDOMElement e = ddlb_1.GetElement();
- KXMLDOMElement e2 = e.selectSingleNode(L"item[" + xstring(nIndex + 1) + L"]");
- string no = e2.selectSingleNode(L"@element").text();
-
- HTREEITEM hItem = tv_folder.GetRootItem();
- while (tv_folder.GetChildItem(hItem))
- tv_folder.DeleteItem(tv_folder.GetChildItem(hItem));
- ExpandFolderItem(hItem, no);
-
- changeddlb = 0;
- return 1;
- }
-
-
- int OnSelectDataShowDdlb(TEvent* evt, LPARAM p)
- {
- HWND wid = cbx_datashow.GetHWND();
- int CB_GETCURSEL = 0x0147;
- int nIndex = SendMessage(wid, CB_GETCURSEL, 0, 0);
- KXMLDOMElement e = cbx_datashow.GetElement();
- KXMLDOMElement e2 = e.selectSingleNode(L"item[" + xstring(nIndex + 1) + L"]");
- rows = e2.selectSingleNode(L"@rows").text();
- OnPreRetrieve();
-
- return 1;
- }
-
- int PreOnCmdDispatch(xstring comdid)
- {
- if (comdid == L"action:bill.new")
- {
- xstring s = publiccode::GetUser().id;
- xstring no = publiccode::GetUser().no;
- if (no != L"00303" && no != L"admin")
- {
- KXMLDOMDocument supplier_x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/SupplierV3/entity/FindBySaleType", L"id", s);
- if (supplier_x)
- {
- if ((xstring)supplier_x.text() != L"业务员")
- {
- alert(L"当前角色不是业务员不能新增单子,请重新选择角色");
- return 0;
- }
- }
- }
- }
- if (comdid == L"action:bill.annex")
- {
- xstring deptname = publiccode::GetUser().deptname;
- if (deptname == L"采购部")
- {
- return 1;
- }
-
- int row = dw_list.GetRow();
- if (row < 1) return 1;
- xstring guid = dw_list.GetItemString(row, L"SOID");
- xaserverarg& arg = * new xaserverarg();
-
- if (guid.length() <= 0)return 1;
-
- arg.AddArg(L"entityid", guid);
- arg.AddArg(L"Type", L"Y");
- OpenWindow(L"dev:xpage[maint.Document.SO3.v3.vx]", arg);
-
- return 0;
- }
- if (comdid == L"action:bill.histroydata") return Onhistroydata();
- else if (comdid == L"action:bill.refresh")
- {
- changeddlb = 1;
- HTREEITEM RItem = tv_folder.GetRootItem();
- while (tv_folder.GetChildItem(RItem))
- tv_folder.DeleteItem(tv_folder.GetChildItem(RItem));
- ExpandFolderItem(RItem, L"Category:Customer");
- tv_folder.ExpandItem(RItem);
- tv_folder.ItemFocus(RItem);
- changeddlb = 0;
- return OnPreRetrieve();
- }
- if (comdid == L"action:bill.saveas")
- {
- dw_list.SaveAs(L"");
- return 1;
- }
- if (comdid == L"action:bill.SourceRemark") return OnSourceRemark();
-
- return 1;
- }
-
- int OnSourceRemark()
- {
- xstring name = L"外销合同";
- KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/TradeFinance3/GetSetUpRemarks", L"Type", name);
- KXMLDOMNodeList items = x.selectNodes(L"data/Item");
- KXMLDOMNode t = items.item(0);
- xstring Content = L"";
- if (t.selectSingleNode(L"Content"))
- {
- Content = t.selectSingleNode(L"Content").text();
- }
- xaserverarg& arg = *new xaserverarg;
- arg.AddArg(L"value", Content);
- OpenWindow(L"dev:xpage[memo.edit.new.vx]", arg);
-
- return 1;
- }
-
- int OnRowChanged(TEvent* evt, LPARAM p)
- {
- DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
- int row = hdr.row;
-
-
- if (row < 1) return 1;
-
- //fixed one event only one process
- listwin::OnRowChanged(evt, p);
-
- HCURSOR hCursor = xutil::SetCursorWait();
-
- xstring SONo = dw_list.GetItemString(row, L"SONo");
- KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/SaleOrder/maint/item", L"id", SONo);
- if (x)
- dw_goods.Retrieve(x);
- else
- dw_goods.Reset();
- dw_goods.Redraw();
- dw_goods.SetReadOnly(true);
-
- x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/SaleOrder/maint/itemwithsource", L"id", SONo);
- if (x)
- dw_source.Retrieve(x);
- else
- dw_source.Reset();
- dw_source.Redraw();
- dw_source.SetReadOnly(true);
-
- xutil::RestoreCursor(hCursor);
-
- return 1;
- }
-
-
- int AttachListon()
- {
- AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&SO3list::OnTreeSelChanged); //树选择
- AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&SO3list::OnRowChanged);//绑定行更改触发事件OnRowChanged
- //AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&listwin::OnDoubleClicked);
- AttachEvent(L"cbx_1", L"CBN_SELCHANGE", (FEvent)&SO3list::OnSelectDdlb);//绑定下拉框更改触发事件OnSelectDdlb
- AttachEvent(L"cbx_datashow", L"CBN_SELCHANGE", (FEvent)&SO3list::OnSelectDataShowDdlb);//绑定选择数据显示下拉列表事件OnSelectDataShowDdlb
- return 1;
- }
-
- int onload()
- {
- changeddlb = 0;
- listwin::onload();
- ddlb_1 = GetControl(L"cbx_1");
- cbx_datashow = GetControl(L"cbx_datashow");
- dw_goods = GetControl(L"dw_goods");
- dw_goods.openUrl(GetServerUrl(),L"/sale/view/SaleOrder/template/item");
- dw_source = GetControl(L"dw_source");
- dw_source.openUrl(GetServerUrl(), L"/sale/view/SaleOrder/template/sourceitem");
-
- dw_goods.SetColumnState(L"ItemID", false);
- dw_goods.SetColumnState(L"LineType", false);
- dw_goods.SetColumnState(L"Brand", false);
- dw_goods.SetColumnState(L"Assortment", false);
- dw_goods.SetColumnState(L"ClassifyID", false);
- dw_goods.SetColumnState(L"UnitFreight", false);
- //dw_goods.SetColumnState(L"CName",false);//隐藏列
-
- dw_goods.SetColumnState(L"Brand", false);
- dw_goods.SetColumnState(L"SKUNo", false);
- dw_goods.SetColumnState(L"SOLineNo", false);
- dw_goods.SetColumnState(L"CustomerPONo", false);
- dw_goods.SetColumnState(L"ScheduleShipDate", false);
-
- dw_goods.SetColumnState(L"PackTechNote", false);
- dw_goods.SetColumnState(L"EnquiryPriceListID", false);
- dw_goods.SetColumnState(L"Submitter", false);
- dw_goods.SetColumnState(L"POSupplierID", false);
- dw_goods.SetColumnState(L"QuoteLineID", false);
-
- dw_list.SetColumnState(L"CreatorID", false);
- dw_list.SetColumnState(L"SOID", false);
-
-
- string groupname = publiccode::GetUser().groupname;
- if (groupname == L"采购小组")
- {
- dw_list.SetColumnState(L"USDAmount", false);
- dw_list.SetColumnState(L"RMBAmount", false);
-
- dw_goods.SetColumnState(L"UnitPrice", false);
- dw_goods.SetColumnState(L"Amount", false);
- dw_goods.SetColumnState(L"UnitCommPrice", false);
- dw_goods.SetColumnState(L"CommissionRate", false);
-
- dw_source.SetColumnState(L"UnitPrice", false);
- dw_source.SetColumnState(L"Amount", false);
- dw_source.SetColumnState(L"FOBAmount", false);
- dw_source.SetColumnState(L"BuyUnitPrice", false);
- dw_source.SetColumnState(L"BuyAmount", false);
- dw_source.SetColumnState(L"CostRate", false);
- }
-
- rows = L"500";
- myDataUrl = L"/sale/data/SaleOrder/folder/list";
- urlTree = L"/sale/data/SaleOrder/folder";
- tv_folder = GetControl(L"tv_folder");
- tv_folder.SetLineAtRoot(true);
- InitialFolder();
-
- return 1;
- }
-
- int onloaded()
- {
- listwin::onloaded();
-
- //attach my control event
- AttachListon();
-
- dw_list.SetColumnState(L"SOID", false);
-
- HTREEITEM hItem = tv_folder.GetRootItem();
- ExpandFolderItem(hItem, L"Category:Customer");
- tv_folder.ExpandItem(hItem);
- //tv_folder.ItemFocus(tv_folder.GetChildItem(hItem));
- tv_folder.ItemFocus(hItem);
-
-
- return -1;
- }
-
- int ProcessUsedArg(xaserverarg arg)
- {
- HTREEITEM hItem = tv_folder.GetCaretItem();
- if (hItem ) return 1;
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring no = e.getAttribute(L"no");
- if (no.find(L"Customer:") >= 0)
- {
- arg.AddArg(L"CustomerID", e.getAttribute(L"id"));
- xstring name = e.getAttribute(L"name");
- if (name.find(L"(L") >= 0) name = name.left(name.find(L"(L"));
- arg.AddArg(L"CustomerName", name);
- }
- return 1;
- }
-};
\ No newline at end of file
diff --git a/jrj/project/business/SystemSettings/ProcessManagement.cpp b/jrj/project/business/SystemSettings/ProcessManagement.cpp
new file mode 100644
index 0000000..5239d23
--- /dev/null
+++ b/jrj/project/business/SystemSettings/ProcessManagement.cpp
@@ -0,0 +1,184 @@
+#include <wobject/xstring.hpp>
+#include <xcontrol/xtreeview.hpp>
+#include <xcontrol/xdwgrid.hpp>
+#include <wobject/xdouble.hpp>
+#include <xcontrol/xlayersheet.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/SystemSettings/ProcessManagement_A.cpp b/jrj/project/business/SystemSettings/ProcessManagement_A.cpp
deleted file mode 100644
index 8f92f1c..0000000
--- a/jrj/project/business/SystemSettings/ProcessManagement_A.cpp
+++ /dev/null
@@ -1,513 +0,0 @@
-#include <wobject/xstring.hpp>
-#include <xcontrol/xtreeview.hpp>
-#include <xcontrol/xdwgrid.hpp>
-
-#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
-#include "viewobject/view.base.hpp"
-
-class __declspec(dllexport) SO3list : public listwin
-{
-public:
- string m_sType; //树选中的类型
- string m_sTypeTxt; //树选中的数据
- string urlTree;
- string myDataUrl;
- string rows;
- xcombobox ddlb_1;
- xcombobox cbx_datashow;
-
- int changeddlb;
-
- xtreeview tv_folder;
- xdwgrid dw_goods;
- xdwgrid dw_source;
-public:
- SO3list(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {}
-public:
- static SO3list* CreateInstance(void* implPtr, void* hWnd)
- {
- SO3list* pWin = new SO3list(implPtr, (HWND)hWnd);
- return pWin;
- }
-
- //process tree
- //查找当前树项的顶级目录
- HTREEITEM LookupTopFolder(HTREEITEM hItem)
- {
- HTREEITEM hRoot = tv_folder.GetRootItem();
- while (tv_folder.GetParentItem(hItem)) hItem = tv_folder.GetParentItem(hItem);
- return hItem;
- }
-
- int ExpandCatChildFolder(HTREEITEM hItem, KXMLDOMElement ele, int image)
- {
- KXMLDOMNodeList nlist = ele.selectNodes(L"item");
- int len = nlist.length();
- if (len > 0) tv_folder.SetItemChild(hItem, 1);
- for (int i = 0; i < len; i++)
- {
- KXMLDOMElement e = nlist.item(i);
- string name = e.getAttribute(L"name");
- HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
- ExpandCatChildFolder(h, e, 35);
- }
- return 1;
- }
-
- int ExpandFolderItem(HTREEITEM hItem, string no)
- {
- KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),urlTree, L"no", no, L"rows", rows);
- if (!x) return 0;
- KXMLDOMNodeList nlist = x.selectNodes(L"/data/item");
- int len = nlist.length();
- for (int i = 0; i < len; i++)
- {
- KXMLDOMElement e = nlist.item(i);
- string name = e.getAttribute(L"name");
- HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, 35);
- ExpandCatChildFolder(h, e, 35);
- }
- return 1;
- }
-
- //树展开
- int OnTreeExpanding(TEvent* evt, int p)
- {
- NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh;
- HTREEITEM hItem = nmtv.itemNew.hItem;
- HTREEITEM hTopItem = LookupTopFolder(hItem);
- string name = tv_folder.GetItemLabel(hTopItem);
- HTREEITEM child = tv_folder.GetChildItem(hItem);
-
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- if (!child)ExpandFolderItem(hItem, e.getAttribute(L"no"));
-
- return 1;
- }
-
- //展开子文件
- int ExpandChildFolder(HTREEITEM 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);
- string 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();
- HTREEITEM h = tv_folder.InsertChildItem(hItem, name, e, image);
- if (child != L"no") tv_folder.SetItemChild(h, 1);
- //ExpandChildFolder(h, e);
- }
- return 1;
- }
-
- //初始化文件夹
- int InitialFolder()
- {
- KXMLDOMElement xframeElement = GetElement();
- KXMLDOMElement e = xframeElement.selectSingleNode(L"//xtree[@name='tv_folder']/initial");
- if (e)
- ExpandChildFolder(0, e);
- return 1;
- }
-
- int OnTreeSelChanged(TEvent* evt, LPARAM p)
- {
- if (changeddlb) return 1;
- return OnPreRetrieve();
- }
-
- int ViewUpdate(LPARAM pr, xstring updateItem, xaserverarg arg)
- {
- if (updateItem == L"del")
- {
- int DelRow = dw_list.GetRow();
- dw_list.DeleteRow(DelRow);
- return 1;
- }
- else if (updateItem == L"setstate")
- {
- int row = dw_list.GetRow();
- if (row < 1) return 1;
- KXMLDOMElement ele = dw_list.GetRowElement(row);
- string id = GetEntityIDName(1);
- string entity = ele.selectSingleNode(id).text();
- //trace(entity);
- SetAgent(L"list", entity);
- if (arg.GetArgString(L"state") != L"")
- //this.dw_list.SetItemString(row, "ApprovalStatus", arg.GetArgString(L"state"));
- dw_list.SetItemString(row, L"ApplyStatus", arg.GetArgString(L"state"));
- if (arg.GetArgString(L"billstatus") != L"")
- {
- xstring billstatus = arg.GetArgString(L"billstatus");
- xstring statusName = GetBillStatusName(billstatus);
- dw_list.SetItemString(row, L"ApprovalStatus", billstatus);
- dw_list.SetItemDisplayString(row, L"ApprovalStatus", statusName);
- }
-
- dw_list.Redraw();
- }
- return 1;
- }
-
- bool IsEmptyQueryStr(string queryStr)
- {
- if (queryStr == L"") return true;
- if (queryStr == L"<items join='and'/>") return true;
- if (queryStr == L"<items join=\"and\"/>") return true;
- //trace(queryStr);
- return false;
- }
-
- //检索
- int OnPreRetrieve()
- {
- HTREEITEM hItem = tv_folder.GetSelectedItem();
- if (!hItem) return 1;
-
- HCURSOR hCursor = xutil::SetCursorWait();
- KXMLDOMElement e1 = tv_folder.GetItemData(hItem);
- string no = e1.getAttribute(L"no");
- KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),myDataUrl, L"no", no, L"QueryTxt", m_QueryTxt, L"rows", rows);
- if (x)
- {
- dw_list.Retrieve(x);
- dw_list.Redraw();
- }
- else
- {
- dw_list.Reset();
- dw_list.Redraw();
- dw_goods.Reset();
- dw_goods.Redraw();
- }
- dw_list.SetReadOnly(true);
- xutil::RestoreCursor(hCursor);
- return 1;
- /*
- xaserverarg arg = new xaserverarg;
- arg.setNativePointer(arg.CreateInstance());
- arg.AddArg(L"pageindex", m_pageIndex.toString(),""); //第几页
- arg.AddArg(L"pagenumber", m_pageNumber.toString(),""); //每页数量
- arg.AddArg(L"QueryTxt", m_QueryTxt,""); //查询条件
- arg.AddArg(L"sType",m_sType,"");
- arg.AddArg(L"sTypeTxt",m_sTypeTxt,"");
- xml x = ViewObject::MakeXml();
-
- KXMLDOMElement n = m_configDoc.selectSingleNode(L"//list/dwview[@type='dwgrid'][1]");
- if(n)
- {
- KXMLDOMElement e = n;
- if(e.selectSingleNode(L"@dataUrl"))
- {
- string dataUrl = e.selectSingleNode(L"@dataUrl").text;
- if(dataUrl.left(1)!="/") dataUrl = GetEntityName(1)+"/"+dataUrl;
- getUrl(dataUrl, arg.GetString(), x);
- KXMLDOMElement ele=x.GetXmlDoc().documentElement;
- if(dw_pages.ptr_native_)
- {
- if(ele.selectSingleNode(L"@TotalPage"))
- {
- string s=ele.selectSingleNode(L"@TotalPage").text; //总数量
- dw_pages.SetMaxPage(s.toInt());
- }
- }
- dw_list.Retrieve(x);
- dw_list.Redraw();
- dw_list.SetReadOnly(true);
- }
- else
- {
- SetEntityData(arg);
- }
- }
- else
- {
- SetEntityData(arg);
- }
- */
- }
-
- //历史数据
- int Onhistroydata()
- {
- int row = dw_list.GetNextSelectRow(1);
- if (row > 0)
- {
- KXMLDOMElement e = dw_list.GetRowElement(row);
- xaserverarg& arg = * new xaserverarg;
- string sCustomerID = e.selectSingleNode(L"CustomerID").text();
- arg.AddArg(L"CustomerID", sCustomerID, L"");
- string sCustomerName = e.selectSingleNode(L"CustomerName").text();
- arg.AddArg(L"CustomerName", sCustomerName, L"");
- arg.AddArg(L"EntityName", GetEntityName(1), L"");
- arg.AddArg(L"EntityID", GetEntityID(1), L"");
- openUrl(L"/sale/view/SO/xpage/histroydata", &arg);
- }
- return 1;
- }
-
- //xcombobox下拉
- int OnSelectDdlb(TEvent* evt, LPARAM p)
- {
- changeddlb = 1;
- HWND wid = ddlb_1.GetHWND();
- int CB_GETCURSEL = 0x0147;
- int nIndex =SendMessage(wid, CB_GETCURSEL, 0, 0);
- KXMLDOMElement e = ddlb_1.GetElement();
- KXMLDOMElement e2 = e.selectSingleNode(L"item[" + xstring(nIndex + 1) + L"]");
- string no = e2.selectSingleNode(L"@element").text();
-
- HTREEITEM hItem = tv_folder.GetRootItem();
- while (tv_folder.GetChildItem(hItem))
- tv_folder.DeleteItem(tv_folder.GetChildItem(hItem));
- ExpandFolderItem(hItem, no);
-
- changeddlb = 0;
- return 1;
- }
-
-
- int OnSelectDataShowDdlb(TEvent* evt, LPARAM p)
- {
- HWND wid = cbx_datashow.GetHWND();
- int CB_GETCURSEL = 0x0147;
- int nIndex = SendMessage(wid, CB_GETCURSEL, 0, 0);
- KXMLDOMElement e = cbx_datashow.GetElement();
- KXMLDOMElement e2 = e.selectSingleNode(L"item[" + xstring(nIndex + 1) + L"]");
- rows = e2.selectSingleNode(L"@rows").text();
- OnPreRetrieve();
-
- return 1;
- }
-
- int PreOnCmdDispatch(xstring comdid)
- {
- if (comdid == L"action:bill.new")
- {
- xstring s = publiccode::GetUser().id;
- xstring no = publiccode::GetUser().no;
- if (no != L"00303" && no != L"admin")
- {
- KXMLDOMDocument supplier_x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/SupplierV3/entity/FindBySaleType", L"id", s);
- if (supplier_x)
- {
- if ((xstring)supplier_x.text() != L"业务员")
- {
- alert(L"当前角色不是业务员不能新增单子,请重新选择角色");
- return 0;
- }
- }
- }
- }
- if (comdid == L"action:bill.annex")
- {
- xstring deptname = publiccode::GetUser().deptname;
- if (deptname == L"采购部")
- {
- return 1;
- }
-
- int row = dw_list.GetRow();
- if (row < 1) return 1;
- xstring guid = dw_list.GetItemString(row, L"SOID");
- xaserverarg& arg = * new xaserverarg();
-
- if (guid.length() <= 0)return 1;
-
- arg.AddArg(L"entityid", guid);
- arg.AddArg(L"Type", L"Y");
- OpenWindow(L"dev:xpage[maint.Document.SO3.v3.vx]", arg);
-
- return 0;
- }
- if (comdid == L"action:bill.histroydata") return Onhistroydata();
- else if (comdid == L"action:bill.refresh")
- {
- changeddlb = 1;
- HTREEITEM RItem = tv_folder.GetRootItem();
- while (tv_folder.GetChildItem(RItem))
- tv_folder.DeleteItem(tv_folder.GetChildItem(RItem));
- ExpandFolderItem(RItem, L"Category:Customer");
- tv_folder.ExpandItem(RItem);
- tv_folder.ItemFocus(RItem);
- changeddlb = 0;
- return OnPreRetrieve();
- }
- if (comdid == L"action:bill.saveas")
- {
- dw_list.SaveAs(L"");
- return 1;
- }
- if (comdid == L"action:bill.SourceRemark") return OnSourceRemark();
-
- return 1;
- }
-
- int OnSourceRemark()
- {
- xstring name = L"外销合同";
- KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/TradeFinance3/GetSetUpRemarks", L"Type", name);
- KXMLDOMNodeList items = x.selectNodes(L"data/Item");
- KXMLDOMNode t = items.item(0);
- xstring Content = L"";
- if (t.selectSingleNode(L"Content"))
- {
- Content = t.selectSingleNode(L"Content").text();
- }
- xaserverarg& arg = *new xaserverarg;
- arg.AddArg(L"value", Content);
- OpenWindow(L"dev:xpage[memo.edit.new.vx]", arg);
-
- return 1;
- }
-
- int OnRowChanged(TEvent* evt, LPARAM p)
- {
- DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
- int row = hdr.row;
-
-
- if (row < 1) return 1;
-
- //fixed one event only one process
- listwin::OnRowChanged(evt, p);
-
- HCURSOR hCursor = xutil::SetCursorWait();
-
- xstring SONo = dw_list.GetItemString(row, L"SONo");
- KXMLDOMDocument x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/SaleOrder/maint/item", L"id", SONo);
- if (x)
- dw_goods.Retrieve(x);
- else
- dw_goods.Reset();
- dw_goods.Redraw();
- dw_goods.SetReadOnly(true);
-
- x = ViewObject::RetrieveData(GetServerUrl(),L"/sale/data/SaleOrder/maint/itemwithsource", L"id", SONo);
- if (x)
- dw_source.Retrieve(x);
- else
- dw_source.Reset();
- dw_source.Redraw();
- dw_source.SetReadOnly(true);
-
- xutil::RestoreCursor(hCursor);
-
- return 1;
- }
-
-
- int AttachListon()
- {
- AttachEvent(L"tv_folder", L"TVN_SELCHANGED", (FEvent)&SO3list::OnTreeSelChanged); //树选择
- AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&SO3list::OnRowChanged);//绑定行更改触发事件OnRowChanged
- //AttachEvent(L"dw_list", L"DWV_DOUBLECLICKED", (FEvent)&listwin::OnDoubleClicked);
- AttachEvent(L"cbx_1", L"CBN_SELCHANGE", (FEvent)&SO3list::OnSelectDdlb);//绑定下拉框更改触发事件OnSelectDdlb
- AttachEvent(L"cbx_datashow", L"CBN_SELCHANGE", (FEvent)&SO3list::OnSelectDataShowDdlb);//绑定选择数据显示下拉列表事件OnSelectDataShowDdlb
- return 1;
- }
-
- int onload()
- {
- changeddlb = 0;
- listwin::onload();
- ddlb_1 = GetControl(L"cbx_1");
- cbx_datashow = GetControl(L"cbx_datashow");
- dw_goods = GetControl(L"dw_goods");
- dw_goods.openUrl(GetServerUrl(),L"/sale/view/SaleOrder/template/item");
- dw_source = GetControl(L"dw_source");
- dw_source.openUrl(GetServerUrl(), L"/sale/view/SaleOrder/template/sourceitem");
-
- dw_goods.SetColumnState(L"ItemID", false);
- dw_goods.SetColumnState(L"LineType", false);
- dw_goods.SetColumnState(L"Brand", false);
- dw_goods.SetColumnState(L"Assortment", false);
- dw_goods.SetColumnState(L"ClassifyID", false);
- dw_goods.SetColumnState(L"UnitFreight", false);
- //dw_goods.SetColumnState(L"CName",false);//隐藏列
-
- dw_goods.SetColumnState(L"Brand", false);
- dw_goods.SetColumnState(L"SKUNo", false);
- dw_goods.SetColumnState(L"SOLineNo", false);
- dw_goods.SetColumnState(L"CustomerPONo", false);
- dw_goods.SetColumnState(L"ScheduleShipDate", false);
-
- dw_goods.SetColumnState(L"PackTechNote", false);
- dw_goods.SetColumnState(L"EnquiryPriceListID", false);
- dw_goods.SetColumnState(L"Submitter", false);
- dw_goods.SetColumnState(L"POSupplierID", false);
- dw_goods.SetColumnState(L"QuoteLineID", false);
-
- dw_list.SetColumnState(L"CreatorID", false);
- dw_list.SetColumnState(L"SOID", false);
-
-
- string groupname = publiccode::GetUser().groupname;
- if (groupname == L"采购小组")
- {
- dw_list.SetColumnState(L"USDAmount", false);
- dw_list.SetColumnState(L"RMBAmount", false);
-
- dw_goods.SetColumnState(L"UnitPrice", false);
- dw_goods.SetColumnState(L"Amount", false);
- dw_goods.SetColumnState(L"UnitCommPrice", false);
- dw_goods.SetColumnState(L"CommissionRate", false);
-
- dw_source.SetColumnState(L"UnitPrice", false);
- dw_source.SetColumnState(L"Amount", false);
- dw_source.SetColumnState(L"FOBAmount", false);
- dw_source.SetColumnState(L"BuyUnitPrice", false);
- dw_source.SetColumnState(L"BuyAmount", false);
- dw_source.SetColumnState(L"CostRate", false);
- }
-
- rows = L"500";
- myDataUrl = L"/sale/data/SaleOrder/folder/list";
- urlTree = L"/sale/data/SaleOrder/folder";
- tv_folder = GetControl(L"tv_folder");
- tv_folder.SetLineAtRoot(true);
- InitialFolder();
-
- return 1;
- }
-
- int onloaded()
- {
- listwin::onloaded();
-
- //attach my control event
- AttachListon();
-
- dw_list.SetColumnState(L"SOID", false);
-
- HTREEITEM hItem = tv_folder.GetRootItem();
- ExpandFolderItem(hItem, L"Category:Customer");
- tv_folder.ExpandItem(hItem);
- //tv_folder.ItemFocus(tv_folder.GetChildItem(hItem));
- tv_folder.ItemFocus(hItem);
-
-
- return -1;
- }
-
- int ProcessUsedArg(xaserverarg arg)
- {
- HTREEITEM hItem = tv_folder.GetCaretItem();
- if (hItem ) return 1;
- KXMLDOMElement e = tv_folder.GetItemData(hItem);
- xstring no = e.getAttribute(L"no");
- if (no.find(L"Customer:") >= 0)
- {
- arg.AddArg(L"CustomerID", e.getAttribute(L"id"));
- xstring name = e.getAttribute(L"name");
- if (name.find(L"(L") >= 0) name = name.left(name.find(L"(L"));
- arg.AddArg(L"CustomerName", name);
- }
- return 1;
- }
-};
\ No newline at end of file
--
Gitblit v1.9.3