xj qian
2024-06-28 24979676af0d645c28fc05157ed61fc3fafbee3b
jrj/project/business/HR/AdministrativeDepartmentFolder.cpp
@@ -1,42 +1,55 @@
use "xcontrol.vframe.vbusiness.vd"
use "xbase.vframe.vbusiness.vd"
#include <wobject/xstring.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xdwgrid.hpp>
#include <xcontrol/xcell.hpp>
unit trade
[
   class AdministrativeDepartmentFolderView : public xframe
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
using xml = KXMLDOMDocument;
   class  __declspec(dllexport) AdministrativeDepartmentFolderView : public xframe
   {
   public:
      //xdwgrid   dw_list;
      xdwtable dw_base;//新增弹窗时使用
      string adid;
      string name;
      string parentid;
      string getsingle_url;
      xstring adid;
      xstring name;
      xstring parentid;
      xstring getsingle_url;
      xnode   m_agentNode;   //Agent Condition
   public:
      AdministrativeDepartmentFolderView(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
   public:
      static AdministrativeDepartmentFolderView* CreateInstance(void* implPtr, void* hWnd)
      {
         AdministrativeDepartmentFolderView* pWin = new AdministrativeDepartmentFolderView(implPtr, (HWND)hWnd);
         return pWin;
      }
      /*int SetAgent()
      {
         string xfNodeAgentArea  = "agentarea";
         xstring xfNodeAgentArea  = L"agentarea";
         xnode anode = GetAgentNode(xfNodeAgentArea);
         if(m_agentNode)
         {
            SetAgentNodeContent (anode,m_agentNode);
            SetAgentNode (anode,m_agentNode);
         }
         else
         {
            msxml::IXMLDOMElement xframeElement =  GetElement();
            msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
            KXMLDOMElement xframeElement =  GetElement();
            KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
            if(agent)
            {
               string s = agent.xml;
               m_agentNode =  SetAgentNodeContent (anode,s);
               xstring s = agent.xml;
               m_agentNode =  SetAgentNode (anode,s);
            }
         }
         return 1;
      }*/
      //焦点激活处理函数
      int OnSetFocus(ref TEvent evt, int param)
      int OnSetFocus(TEvent* evt, LPARAM p)
      {
         //重置工具条
         //SetAgent();
@@ -46,89 +59,89 @@
      int OnSave()
      {
         xml x = new xml;
         x.setNativePointer(xml::CreateInstance());
         dw_base.AcceptText();
         dw_base.DwUpdateAllTo(x.GetXmlDoc());
         xaserverarg arg = new xaserverarg;
         dw_base.DwUpdateAllTo(x);
         xaserverarg arg;
         arg.setNativePointer(xaserverarg::CreateInstance());
         arg.AddArg("content", x.GetXml());
         //trace(x.GetXml());
         if (getUrl("/sale/data/AdministrativeDepartment/ad_update", arg.GetString(), x) != 1)
         arg.AddArg(L"content", x.xml());
         //trace(x.xml());
         if (getUrl(L"/sale/data/AdministrativeDepartment/ad_update", arg.GetString(), x) != 1)
         {
            string error = x.GetXmlDoc().text;
            alert("err:" + error);
            xstring error = x.text();
            alert(L"err:" + error);
            return 1;
         }
         //trace("返回信息"+x.GetXml());
         string str = x.GetXmlDoc().documentElement.getAttribute("text");
         if (str == "true")
         //trace(L"返回信息"+x.xml());
         xstring str = x.documentElement().getAttribute(L"text");
         if (str == L"true")
         {
            dw_base.ResetUpdateStatus();
            CloseWindow();
            alert("保存成功!");
            alert(L"保存成功!");
         }
         else
         {
            alert("保存失败!");
            alert(L"保存失败!");
         }
         return 1;
      }
      //命令发布函数
      int OnCmdDispatch(string comdid)
      int OnCmdDispatch(xstring comdid)
      {
         if (comdid == "xmSave")
         if (comdid == L"xmSave")
            return OnSave();
         else if (comdid == "xmClose")
         else if (comdid == L"xmClose")
            CloseWindow();
         return 0;
      }
      //命令处理事件
      int OnXCommand(ref TXCommandEvent evt, int param)
      int OnXCommand(TEvent* evt, LPARAM p)
      {
         return OnCmdDispatch(evt.pStrID);
         return OnCmdDispatch(evt->xcommand.pStrID);
      }
      int OnAttachEvent()
      {
         //绑定工具条点击事件
         AttachEvent("WM_XCOMMAND", OnXCommand);
         AttachEvent(L"WM_XCOMMAND", (FEvent)&AdministrativeDepartmentFolderView::OnXCommand);
         //获取焦点事件,用于重置工具条
         AttachEvent("WM_SETFOCUS", OnSetFocus);
         AttachEvent(L"WM_SETFOCUS", (FEvent)&AdministrativeDepartmentFolderView::OnSetFocus);
      }
      int  OnParentRetrieve()
      {
         xml x = new xml;
         x.setNativePointer(xml::CreateInstance());
         xaserverarg arg = new xaserverarg;
         arg.setNativePointer(arg.CreateInstance());
         arg.AddArg("adid", parentid);
         xaserverarg arg;
         arg.AddArg(L"adid", parentid);
         if (getUrl(getsingle_url, arg.GetString(), x) != 1)
         {
            trace(x.GetXmlDoc().text);
            trace(x.text());
            return -1;
         }
         else
         {
            string parent_name = "";
            string parent_adid = "";
            string parent_level = "";
            msxml::IXMLDOMNodeList nlist = x.GetXmlDoc().SelectNodes("data/Item");
            int len = nlist.length;
            xstring parent_name = L"";
            xstring parent_adid = L"";
            xstring parent_level = L"";
            KXMLDOMNodeList nlist = x.selectNodes(L"data/Item");
            int len = nlist.length();
            for (int i = 0; i < len; i++)
            {
               msxml::IXMLDOMElement e = nlist.item(i);
               parent_name = e.selectSingleNode("name").text;
               parent_adid = e.getAttribute("guid");
               parent_level = e.selectSingleNode("level").text;
               KXMLDOMElement e = nlist.item(i);
               parent_name = e.selectSingleNode(L"name").text();
               parent_adid = e.getAttribute(L"guid");
               parent_level = e.selectSingleNode(L"level").text();
            }
            xdwtable dw_obj = dw_base.FindDwTable("Item");
            dw_obj.SetItemString(1, "parent_name", parent_name);
            if (adid == "") {
               dw_obj.SetItemString(1, "parentid", parent_adid);
               dw_obj.SetItemString(1, "level", (parent_level.toInt() + 1).toString());
            xdwtable dw_obj = dw_base.FindDwTable(L"Item");
            dw_obj.SetItemString(1, L"parent_name", parent_name);
            if (adid == L"") {
               dw_obj.SetItemString(1, L"parentid", parent_adid);
               dw_obj.SetItemString(1, L"level", xstring((parent_level.toInt() + 1)));
            }
            //dw_base.Retrieve(x);
@@ -140,13 +153,13 @@
      int  OnRetrieve()
      {
         xml x = new xml;
         x.setNativePointer(xml::CreateInstance());
         xaserverarg arg = new xaserverarg;
         arg.setNativePointer(arg.CreateInstance());
         arg.AddArg("adid", adid);
         xaserverarg arg;
         arg.AddArg(L"adid", adid);
         if (getUrl(getsingle_url, arg.GetString(), x) != 1)
         {
            trace(x.GetXmlDoc().text);
            trace(x.text());
            return -1;
         }
         else
@@ -160,21 +173,21 @@
      int onload()
      {
         dw_base = GetControl("dw_base");
         dw_base.openUrl("/sale/view/AdministrativeDepartment/template/adwin");
         getsingle_url = "/sale/data/AdministrativeDepartment/ad_getsingle";
         xaserverarg arg = new xaserverarg;
         arg.setNativePointer(arg.CreateInstance());
         arg = GetParam();
         adid = "";
         parentid = "";
         if (GetParam()) {
            parentid = arg.GetArgString("parentid");
            adid = arg.GetArgString("adid");
         dw_base = GetControl(L"dw_base");
         dw_base.openUrl(L"/sale/view/AdministrativeDepartment/template/adwin");
         getsingle_url = L"/sale/data/AdministrativeDepartment/ad_getsingle";
         xaserverarg arg;
         adid = L"";
         parentid = L"";
         if (GetWinParam()) {
            parentid = arg.GetArgString(L"parentid");
            adid = arg.GetArgString(L"adid");
         }
         if (adid != "")
         if (adid != L"")
            OnRetrieve();
         if (parentid != "")
         if (parentid != L"")
            OnParentRetrieve();
         OnAttachEvent();
         dw_base.SetColHeaderHeight(0);
@@ -190,5 +203,4 @@
         return 1;
      }
   };
]
   };