LiFan
2024-07-17 f7c01240b27f0ad97feb9115b238d7a44b4b56b2
jrj/project/business/SystemSettings/AddUser.cpp
@@ -3,123 +3,123 @@
use "dev:vm[xdwgrid.vm]"
use "dev:vm[xdwtable.vm]"
use "pref.vl"
use "dev:vm[xml.vm]"
use "dev:vm[xaserverarg.vm]"
use "dev:vm[xaserver.vm]"
use "dev:vm[xutil.vm]"
use "dev:code[pa.tpp]"
use "dev:vm[control.vm]"
#include "dev:xpage[SysUser.vx]"
#include <wobject/xstring.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xdwgrid.hpp>
#include <wobject/xdouble.hpp>
#include <xcontrol/xlayersheet.hpp>
unit vbusiness.xpage tpp
[
   class pa
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
//use "dev:xpage[SysUser.vx]"
using xml = KXMLDOMDocument;
class __declspec(dllexport) AddUser : public xwin
   {
      string note;
public:
   xstring note;
      int hitem;
      int row;
      int wid;
      treeview__ tv;
      xdwgrid__ dw;
      win__ pwin;
   }
]
unit vbusiness.xpage
[
   AddUser is extend win__;
   about AddUser
   [
      control:
      method:
      [
   xtreeview tv;
   xdwgrid dw;
   xwin pwin;
         pa p;
public:
   AddUser(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
public:
   static AddUser* CreateInstance(void* implPtr, void* hWnd)
   {
      AddUser* pWin = new AddUser(implPtr, (HWND)hWnd);
      return pWin;
   }
         
         int SetAgent()
         {
            return 1;
         }
         //焦点激活处理函数
         int OnSetFocus(ref TEvent evt,int param)
   int OnSetFocus(TEvent* evt, LPARAM param)
         {
            int SetAgent();
            //重置工具条
            return 1;
         }
         int AppendItem(xml__ x,msxml::IXMLDOMElement r,string item){
            var e = x.GetXmlDoc().createElement(item);
   int AppendItem(xml x, KXMLDOMElement r, xstring item) {
      var e = x.createElement(item);
            //xcontrol xc = GetControl(item);
            control__ xc = new control__;
            xc.setNativePointer(this.GetControl(item));
            e.text = xc.GetText();
      control xc = new control;
      xc.setNativePointer(GetControl(item));
      e.text() = xc.GetText();
            r.appendChild(e);      
            return 1;
         }
         
         int OnSave()
         {
            control__ xc = new control__;
            /*xc=GetControl("EmployeeNo");
            if (xc.GetText()=="")
      control xc = new control;
      /*xc=GetControl(L"EmployeeNo");
      if (xc.GetText()==L"")
            {
               alert("用户代码不能为空!");
         alert(L"用户代码不能为空!");
               return 0;
            }*/
            xc=GetControl("UserName");
            if (xc.GetText()=="")
      xc = GetControl(L"UserName");
      if (xc.GetText() == L"")
            {
               alert("用户名称不能为空!");
         alert(L"用户名称不能为空!");
               return 0;
            }      
            xml__ x = new xml__;
            x.setNativePointer(x.CreateInstance());
            xaserverarg__ arg = new xaserverarg__;
            arg.setNativePointer(arg.CreateInstance());
            x.LoadXml("<SysUser/>");
            var r = x.GetXmlDoc().documentElement;
            string guid;
            string guid1;
            if (p.note=="修改")
      xml x;
      xaserverarg arg;
      x.loadXML(L"<SysUser/>");
      var r = x.documentElement();
      xstring guid;
      xstring guid1;
      if (p.note == L"修改")
            {
               msxml::IXMLDOMElement ele=xdwgrid__::GetRowElement(p.row);
               guid = ele.selectSingleNode("UserID").text;
               //guid=ele.getAttribute("guid");
               //if (ele.selectSingleNode("empid"))
               //   r.appendChild(ele.selectSingleNode("empid"));
         KXMLDOMElement ele = xdwgrid::GetRowElement(p.row);
         guid = ele.selectSingleNode(L"UserID").text();
         //guid=ele.getAttribute(L"guid");
         //if (ele.selectSingleNode(L"empid"))
         //   r.appendChild(ele.selectSingleNode(L"empid"));
            }
            else
               guid=win__::GetGuid();
         guid = GetGuid();
               //guid1=win32::GetGuid();
            r.setAttribute("guid",guid);
            //r.setAttribute("guid1",guid1);
            //AppendItem(x,r,"EmployeeNo");
            AppendItem(x,r,"UserName");
            AppendItem(x,r,"PassWord");
            AppendItem(x,r,"Status");
            //trace(x.GetXml());
      r.setAttribute(L"guid", guid);
      //r.setAttribute(L"guid1",guid1);
      //AppendItem(x,r,L"EmployeeNo");
      AppendItem(x, r, L"UserName");
      AppendItem(x, r, L"PassWord");
      AppendItem(x, r, L"Status");
      //trace(x.xml());
            //return 1;
            arg.AddArg("content",x.GetXml());
            int ls_item = treeview__::GetSelectedItem(p.wid);
            msxml::IXMLDOMElement e=treeview__::GetItemData(p.wid,ls_item);
            string gpguid=e.selectSingleNode("@guid").text;
            arg.AddArg("gpguid",gpguid);
            if (xaserver__::ExecXAction(GetServerUrl(),"[update.User.xa]",arg.GetString())==1)
      arg.AddArg(L"content", x.xml());
      int ls_item = treeview::GetSelectedItem(p.wid);
      KXMLDOMElement e = treeview::GetItemData(p.wid, ls_item);
      xstring gpguid = e.selectSingleNode(L"@guid").text();
      arg.AddArg(L"gpguid", gpguid);
      if (xaserver::ExecXAction(GetServerUrl(), L"[update.User.xa]", arg.GetString()) == 1)
            {
               alert("ok");
               if (p.note=="修改")
         alert(L"ok");
         if (p.note == L"修改")
               {
                  xdwgrid__ dw = new xdwgrid__;
            xdwgrid dw = new xdwgrid;
                  //dw.setNativePointer(p.dw_user);
                  int row = dw.GetNextSelectRow(0);
                  //dw.SetItemString(row,"UserName","");
                  msxml::IXMLDOMElement e;
                  e = x.GetXmlDoc().documentElement;
                  string ls_pass = e.selectSingleNode("PassWord").text;
                  string ls_status = e.selectSingleNode("Status").text;
                  dw.SetItemString(row,"PassWord",ls_pass);
                  dw.SetItemString(row,"Status",ls_status);
            //dw.SetItemString(row,L"UserName",L"");
            KXMLDOMElement e;
            e = x.documentElement();
            xstring ls_pass = e.selectSingleNode(L"PassWord").text();
            xstring ls_status = e.selectSingleNode(L"Status").text();
            dw.SetItemString(row, L"PassWord", ls_pass);
            dw.SetItemString(row, L"Status", ls_status);
                  dw.Redraw();
               }
               else
@@ -130,54 +130,55 @@
            }
            else
            {
               alert("保存出错!");
         alert(L"保存出错!");
               return 0;
            }
            return 1;      
         }
         
         int ClearItem(string item)
   int ClearItem(xstring item)
         {
            control__ xc = new control__;
      control xc = new control;
            xc.setNativePointer(GetControl(item));
            xc.SetText("");
      xc.SetText(L"");
            return 1;
         }
         //命令发布函数
         int OnCmdDispatch(string comdid)
   int OnCmdDispatch(xstring comdid)
         {
            if (comdid=="cb_cancel")
      if (comdid == L"cb_cancel")
               CloseWindow();
            else if(comdid=="cb_ok")
      else if (comdid == L"cb_ok")
            {
               int r=OnSave();
               if (r==1)
                  CloseWindow();
            }
            else if(comdid=="cb_save")
      else if (comdid == L"cb_save")
            {
               OnSave();
               p.note="新增";
               win__::SetWindowText(GetHWND(),p.note+"用户");
               ClearItem("userno");
               ClearItem("username");
               ClearItem("pwd");
         p.note = L"新增";
         SetWindowText(GetHWND(), p.note + L"用户");
         ClearItem(L"userno");
         ClearItem(L"username");
         ClearItem(L"pwd");
            }
            return 0;
         }
         
         //命令处理事件
         int OnXCommand(ref TXCommandEvent evt,int param)
   int OnXCommand(TEvent* evt, LPARAM param)
         {
            return OnCmdDispatch(evt.pStrID);
      return OnCmdDispatch(evt->xcommand.pStrID);
         }
         
         int OnAttachEvent()
         {
            //绑定工具条点击事件
            AttachEvent("WM_XCOMMAND",OnXCommand);
      AttachEvent(L"WM_XCOMMAND", (FEvent)&AddUser::OnXCommand);
            //获取焦点事件,用于重置工具条
            AttachEvent("WM_SETFOCUS",OnSetFocus);
      AttachEvent(L"WM_SETFOCUS", (FEvent)&AddUser::OnSetFocus);
      return 1;
         }
         
         int OnInitial()
@@ -189,41 +190,39 @@
            return 1;
         }
         
         int SetItem(string value,string item){
            control__ xc = new control__;
   int SetItem(xstring value, xstring item) {
      control xc = new control;
            xc.setNativePointer(GetControl(item));
            xc.SetText(value);   
            return 1;
         }   
         int onload()
         {
      SetArg();
            OnInitial();
            p = new pa;
            
            if(this.GetParam())
      if (GetWinParam())
            {
               p=GetParam();
               win__::SetWindowText(GetHWND(),p.note+"用户");
               if (p.note=="修改")
         p = GetArg();
         SetWindowText(GetHWND(), p.note + L"用户");
         if (p.note == L"修改")
               {
                  xdwgrid__ dw = new xdwgrid__;
            xdwgrid dw = new xdwgrid;
                  dw.setNativePointer(p.dw);
                  msxml::IXMLDOMElement ele=dw.GetRowElement(p.row);
                  //if(ele.selectSingleNode("EmployeeNo"))
                     //SetItem(ele.selectSingleNode("EmployeeNo").text,"EmployeeNo");
                  if(ele.selectSingleNode("UserName"))
                     SetItem(ele.selectSingleNode("UserName").text,"UserName");
                  if(ele.selectSingleNode("PassWord"))
                     SetItem(ele.selectSingleNode("PassWord").text,"PassWord");
                  if(ele.selectSingleNode("Status"))
                     SetItem(ele.selectSingleNode("Status").text,"Status");
               trace("Aa");
            KXMLDOMElement ele = dw.GetRowElement(p.row);
            //if(ele.selectSingleNode(L"EmployeeNo"))
               //SetItem(ele.selectSingleNode(L"EmployeeNo").text(),L"EmployeeNo");
            if (ele.selectSingleNode(L"UserName"))
               SetItem(ele.selectSingleNode(L"UserName").text(), L"UserName");
            if (ele.selectSingleNode(L"PassWord"))
               SetItem(ele.selectSingleNode(L"PassWord").text(), L"PassWord");
            if (ele.selectSingleNode(L"Status"))
               SetItem(ele.selectSingleNode(L"Status").text(), L"Status");
            trace(L"Aa");
               return 1;
               }
            }      
            return 1;
         }
      ]
   ]
]
};