From ff3a1ed12e84447954c8ac76ba8712f209504f04 Mon Sep 17 00:00:00 2001 From: LiFan <2308045698@qq.com> Date: 星期一, 15 七月 2024 17:54:46 +0800 Subject: [PATCH] update --- jrj/project/business/Company/HrEmployee.cpp | 391 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 199 insertions(+), 192 deletions(-) diff --git a/jrj/project/business/Company/HrEmployee.cpp b/jrj/project/business/Company/HrEmployee.cpp index bc48927..196ff85 100644 --- a/jrj/project/business/Company/HrEmployee.cpp +++ b/jrj/project/business/Company/HrEmployee.cpp @@ -1,65 +1,74 @@ -use "win.vl" -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 "list.vl" -use "treeview.vm" -//unit vclient.vobject tpp -unit vbusiness.xpage -[ - HrEmployee is extend list; - about HrEmployee - [ - field: - [ - treeview__ tv_org; - xdwgrid__ dw_emp; +#include <wobject/xstring.hpp> +#include <xcontrol/xtreeview.hpp> +#include <xcontrol/xdwgrid.hpp> +#include <wobject/xdouble.hpp> +#include <xcontrol/xlayersheet.hpp> - string is_orgid - string is_orgname; - string is_inflag; - xdwtable__ dw_empmaint; - xnode__ m_agentNode; //Agent Condition - string m_agentCond; //Agent Node - ] +#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" +#include "viewobject/view.base.hpp" - method: - [ - int SetAgent() - { - string xfNodeAgentArea = "agentarea"; - xnode__ anode = new xnode__; - anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); - var xframeElement = GetElement(); - var agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "/*[1]"); - if (agent) - { - string s = agent.xml; - SetAgentNodeContent(anode, s); - } - } +using xml = KXMLDOMDocument; +class __declspec(dllexport) HrEmployee : public xwin +{ +public: + + xtreeview tv_org; + xdwgrid dw_emp; + + xstring is_orgid; + xstring is_orgname; + xstring is_inflag; + xdwtable dw_empmaint; + xnode m_agentNode; //Agent Condition + xstring m_agentCond; //Agent Node + + +public: + HrEmployee(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {} +public: + static HrEmployee* CreateInstance(void* implPtr, void* hWnd) + { + HrEmployee* pWin = new HrEmployee(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(ref TEvent evt, int p) + int OnSetFocus(TEvent* evt, LPARAM param) { SetAgent(); //重置工具条 return 1; } - int OnRetrieve(string ls_orgid) + int OnRetrieve(xstring ls_orgid) { - xml__ x = new xml__; - x.setNativePointer(x.CreateInstance()); - xaserverarg__ arg = new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("OrgID", ls_orgid); + xml x; + + xaserverarg arg; + + arg.AddArg(L"OrgID", ls_orgid); //trace(ls_orgid); - //if (xaserver__::ExecXQuery(GetServerUrl(),"[MSSqlHrEmployee.xq]",arg.GetString(),x) == 1) - if (url::get("OrganizationStruct/list.Employee", arg.GetString(), x) == 1) + //if (xaserver::ExecXQuery(GetServerUrl(),L"[MSSqlHrEmployee.xq]",arg.GetString(),x) == 1) + if (xurl::get(L"OrganizationStruct/list.Employee", arg.GetString(), x) == 1) { dw_emp.Retrieve(x); dw_emp.Redraw(); @@ -70,71 +79,71 @@ int OnSave() { - int hIcon = xutil__::SetCursorWait(); - xml__ x = new xml__; - x.setNativePointer(x.CreateInstance()); - dw_emp.AcceptText(); - dw_emp.DwUpdateAllToEx(x.GetXmlDoc()); + HCURSOR hIcon = xutil::SetCursorWait(); + xml x; - string val = x.GetXml(); - xaserverarg__ arg = new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("content", val); + dw_emp.AcceptText(); + dw_emp.DwUpdateAllToEx(x); + + xstring val = x.xml(); + xaserverarg arg; + + arg.AddArg(L"content", val); //trace(x.GetXml()); //return 1; - if (url::post("OrganizationStruct/update.Employee", arg.GetString(), x) != 1) + if (xurl::post(L"OrganizationStruct/update.Employee", arg.GetString(), x) != 1) { - trace(x.GetXmlDoc().documentElement.text); - alert("保存失败"); + trace(x.documentElement().text()); + alert(L"保存失败"); } else { dw_emp.ResetUpdateStatus(); - alert("保存成功"); + alert(L"保存成功"); } trace(x.GetXml()); - xutil__::RestoreCursor(hIcon); + xutil::RestoreCursor(hIcon); return 1; } - int OnSubTree(string id, int parentitem) + int OnSubTree(xstring id, HTREEITEM parentitem) { - int wid = tv_org.GetId(); - if (treeview__::GetChildItem(wid, parentitem) > 0) return 1; - xml__ x = new xml__; - x.setNativePointer(xml__::CreateInstance()); - xaserverarg__ arg = new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("sguid", id); - if (url::post("/sale/data/OrganizationStruct/tree.child.OrgChart", arg.GetString(), x) != 1) + //int wid = tv_org.GetId(); + if (tv_org.GetChildItem(parentitem) > 0) return 1; + xml x; + + xaserverarg arg; + + arg.AddArg(L"sguid", id); + if (xurl::post(L"/sale/data/OrganizationStruct/tree.child.OrgChart", arg.GetString(), x) != 1) { - trace(x.GetXml()); + trace(x.xml()); return -1; } //trace(x.GetXml()); - var list = x.GetXmlDoc().selectNodes("//item"); + var list = x.selectNodes(L"//item"); int i = 0, s = list.length; - msxml::IXMLDOMElement xitem; - string sName; - string sguid; - string stype; + KXMLDOMElement xitem; + xstring sName; + xstring sguid; + xstring stype; if (s > 0) { for (i = 0; i < s; i++) { xitem = list.item(i); - sName = xitem.SelectSingleNode("name").text; - sguid = xitem.SelectSingleNode("id").text; - stype = xitem.SelectSingleNode("typ").text; + sName = xitem.selectSingleNode(L"name").text(); + sguid = xitem.selectSingleNode(L"id").text(); + stype = xitem.selectSingleNode(L"typ").text(); //int curItem = tv_org.InsertChildItemEx(wid,parentitem,sName,xitem,15,4); - int curItem = 0; - if (stype == "Org") + HTREEITEM curItem = 0; + if (stype == L"Org") { - curItem = tv_org.InsertChildItemEx(wid, parentitem, sName, xitem, 15, 4); - tv_org.SetItemChild1(wid, curItem, 1); + curItem = tv_org.InsertChildItemEx(parentitem, sName, xitem, 15, 4); + tv_org.SetItemChild1(curItem, 1); } else { - curItem = tv_org.InsertChildItemEx(wid, parentitem, sName, xitem, 21, 21); + curItem = tv_org.InsertChildItemEx(parentitem, sName, xitem, 21, 21); } //OnSubTree(sguid,curItem); } @@ -142,43 +151,43 @@ return 1; } - int OnCreateTree(string id, int parentitem) + int OnCreateTree(xstring id, HTREEITEM parentitem) { //while (tv_1.GetRootItem()>0) // tv_1.DeleteItem(tv_1.GetRootItem()); - int wid = tv_org.GetId(); - xml__ x = new xml__; - x.setNativePointer(xml__::CreateInstance()); - x.LoadXml("<item><id>" + id + "</id><no/><name>宁波家尔佳</name><typ>Org</typ></item>"); - //msxml::IXMLDOMDocument root = x.GetXmlDoc(); - //msxml::IXMLDOMElement RDoc = x.GetXmlDoc().documentElement; - //msxml::IXMLDOMElement ele = RDoc.SelectSingleNode("//Org"); - msxml::IXMLDOMElement ele = x.GetXmlDoc().SelectSingleNode("//item"); - int hItem = treeview__::InsertChildItemEx(wid, 0, "宁波家尔佳", ele, 15, 4); - treeview__::SetItemChild1(wid, hItem, 1); + //int wid = tv_org.GetId(); + xml x; + + x.loadXML(L"<item><id>" + id + L"</id><no/><name>宁波家尔佳</name><typ>Org</typ></item>"); + //KXMLDOMDocument root = x; + //KXMLDOMElement RDoc = x.documentElement; + //KXMLDOMElement ele = RDoc.selectSingleNode(L"//Org"); + KXMLDOMElement ele = x.selectSingleNode(L"//item"); + HTREEITEM hItem = tv_org.InsertChildItemEx(0, L"宁波家尔佳", ele, 15, 4); + tv_org.SetItemChild1(hItem, 1); return 1; - /*xaserverarg__ arg=new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("sguid",id); - if(url::post("/sale/data/OrganizationStruct/tree.child.OrgChart",arg.GetString(),x)!=1) + /*xaserverarg arg=new xaserverarg; + + arg.AddArg(L"sguid",id); + if(xurl::post(L"/sale/data/OrganizationStruct/tree.child.OrgChart",arg.GetString(),x)!=1) { trace(x.GetXml()); return -1; } //trace(x.GetXml()); - var list=x.GetXmlDoc().selectNodes("//item"); + var list=x.selectNodes(L"//item"); int i=0,s=list.length; - msxml::IXMLDOMElement xitem; - string sName; - string sguid; + KXMLDOMElement xitem; + xstring sName; + xstring sguid; if (s >0) { for (i=0;i<s;i++) { xitem= list.item(i); - sName = xitem.SelectSingleNode("@name").text; - sguid = xitem.SelectSingleNode("@id").text; + sName = xitem.selectSingleNode(L"@name").text(); + sguid = xitem.selectSingleNode(L"@id").text(); int curItem = tv_org.InsertChildItemEx(wid,hItem,sName,xitem,15,4); tv_org.SetItemChild1(wid,curItem,1); //OnSubTree(sguid,curItem); @@ -187,28 +196,28 @@ return 1;*/ } - int OnTreeExpanding(ref TNotifyEvent evt, int p) + int OnTreeExpanding(TEvent* evt, int p) { - ref NMTREEVIEW nmtv = evt.pnmh; - int sitem = nmtv.itemNew.hItem; + NMTREEVIEW& nmtv = *(NMTREEVIEW*)evt->notify.pnmh; + HTREEITEM sitem = nmtv.itemNew.hItem; - int hCursor = xutil__::SetCursorWait(); - //string id = treeview__::GetItemData(tv_org.GetId(), sitem); - msxml::IXMLDOMElement ele = treeview__::GetItemData(tv_org.GetId(), sitem); - string id = ele.SelectSingleNode("id").text; + HCURSOR hCursor = xutil::SetCursorWait(); + //xstring id = tv_org.GetItemData(tv_org.GetId(), sitem); + KXMLDOMElement ele = tv_org.GetItemData(sitem); + xstring id = ele.selectSingleNode(L"id").text(); OnSubTree(id, sitem); - xutil__::RestoreCursor(hCursor); + xutil::RestoreCursor(hCursor); return 1; } - int OnTreeSelChanged(ref TXCommandEvent evt, int p) + int OnTreeSelChanged(TEvent* evt, int p) { - int wid = tv_org.GetId(); - int hitem = treeview__::GetSelectedItem(wid); - msxml::IXMLDOMElement ele = treeview__::GetItemData(wid, hitem); + //int wid = tv_org.GetId(); + HTREEITEM hitem = tv_org.GetSelectedItem(); + KXMLDOMElement ele = tv_org.GetItemData(hitem); if (ele) { - string ls_orgid = ele.SelectSingleNode("id").text; + xstring ls_orgid = ele.selectSingleNode(L"id").text(); is_orgid = ls_orgid; OnRetrieve(ls_orgid); } @@ -217,26 +226,26 @@ int OnAddRow() { - int wid = tv_org.GetId(); - int hitem = treeview__::GetSelectedItem(wid); + //int wid = tv_org.GetId(); + HTREEITEM hitem = tv_org.GetSelectedItem(); if (!hitem) { - alert("请选择岗位!"); + alert(L"请选择岗位!"); return 0; } else { - msxml::IXMLDOMElement ele = treeview__::GetItemData(wid, hitem); - string stype = ele.SelectSingleNode("typ").text; - if (stype != "Pos") + KXMLDOMElement ele = tv_org.GetItemData(hitem); + xstring stype = ele.selectSingleNode(L"typ").text(); + if (stype != L"Pos") { - alert("请选择岗位!"); + alert(L"请选择岗位!"); return 0; } } - OpenWindow("dev:xpage[HrEmployeeAdd.vx]", this); - //openUrl("组织架构.vface/xpage/Hr/HrEmployeeAdd", this); + OpenWindow(L"dev:xpage[HrEmployeeAdd.vx]", this); + //openUrl(L"组织架构.vface/xpage/Hr/HrEmployeeAdd", this); return 1; } @@ -248,20 +257,20 @@ row = dw_emp.GetRow(); if (row < 1) { - win__::MessageBox(GetHWND(), "请选中要修改的任职信息行!", "提示", 0); + MessageBox(GetHWND(), L"请选中要修改的任职信息行!", L"提示", 0); return -1; } } - int wid = dw_emp.GetId(); - msxml::IXMLDOMElement e = dw_emp.GetRowElement(row); - string sPersonID = e.selectSingleNode("PersonID").text; + //int wid = dw_emp.GetId(); + KXMLDOMElement e = dw_emp.GetRowElement(row); + xstring sPersonID = e.selectSingleNode(L"PersonID").text(); //trace(e.xml); - xaserverarg__ arg = new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("operate", "modify"); - arg.AddArg("guid", sPersonID); - //xwin::OpenWindow("dev:xpage[HrPersonMaint.xpage]",arg); - openUrl("组织架构.vface/xpage/Hr/HrPersonMaint", arg); + xaserverarg& arg = *new xaserverarg; + + arg.AddArg(L"operate", L"modify"); + arg.AddArg(L"guid", sPersonID); + //xwin::OpenWindow(L"dev:xpage[HrPersonMaint.xpage]",arg); + openUrl(L"组织架构.vface/xpage/Hr/HrPersonMaint", &arg); return 1; } @@ -273,26 +282,26 @@ ll_row = dw_emp.GetRow(); if (ll_row < 1) { - win__::MessageBox(GetHWND(), "请选中要删除的任职信息行!", "提示", 0); + MessageBox(GetHWND(), L"请选中要删除的任职信息行!", L"提示", 0); return -1; } } - string sName = dw_emp.GetItemDisplayString(ll_row, "PersonID", 0); - if (win__::MessageBox(GetHWND(), "确定删除" + sName + "任职信息吗?", "提示", 1) != 1) + xstring sName = dw_emp.GetItemDisplayString(ll_row, L"PersonID"); + if (MessageBox(GetHWND(), L"确定删除" + sName + L"任职信息吗?", L"提示", 1) != 1) return 0; - msxml::IXMLDOMElement ele = dw_emp.GetRowElement(ll_row); - string empid = ele.selectSingleNode("@guid").text; + KXMLDOMElement ele = dw_emp.GetRowElement(ll_row); + xstring empid = ele.selectSingleNode(L"@guid").text(); - xml__ x = new xml__; - x.setNativePointer(x.CreateInstance()); - xaserverarg__ args = new xaserverarg__; + xml x; + + xaserverarg args; args.setNativePointer(args.CreateInstance()); - args.AddArg("guid", empid); - //if(xaserver__::ExecXAction(GetServerUrl(),"[MSSqlHrEmployeeDel.xq]",args.GetString(),x) !=1) - if (url::post("OrganizationStruct/delete.Employee", args.GetString(), x) != 1) + args.AddArg(L"guid", empid); + //if(xaserver::ExecXAction(GetServerUrl(),L"[MSSqlHrEmployeeDel.xq]",args.GetString(),x) !=1) + if (xurl::post(L"OrganizationStruct/delete.Employee", args.GetString(), x) != 1) { - string error = x.GetXmlDoc().text; + xstring error = x.text(); trace(error); } else @@ -305,62 +314,63 @@ int SetText() { - win__::SetWindowText(GetHWND(), "所属组织:" + is_orgname + " 操作状态:" + is_inflag); + SetWindowText(GetHWND(), L"所属组织:" + is_orgname + L" 操作状态:" + is_inflag); return 1; } //xgridex双击 - int OnDoubleClicked(ref TNotifyEvent evt, int p) + int OnDoubleClicked(TEvent* evt, LPARAM p) { - ref DWNMHDR hdr = evt.pnmh; + DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; int row = hdr.row; if (row < 1 || row > dw_emp.GetRowCount()) return 1; - msxml::IXMLDOMElement e = dw_emp.GetRowElement(row); - string sPersonID = e.selectSingleNode("PersonID").text; - xaserverarg__ arg = new xaserverarg__; - arg.setNativePointer(arg.CreateInstance()); - arg.AddArg("operate", "modify"); - arg.AddArg("guid", sPersonID); - //xwin::OpenWindow("dev:xpage[HrPersonMaint.xpage]",arg); - openUrl("组织架构.vface/xpage/Hr/HrPersonMaint", arg); + KXMLDOMElement e = dw_emp.GetRowElement(row); + xstring sPersonID = e.selectSingleNode(L"PersonID").text(); + xaserverarg& arg = *new xaserverarg; + + arg.AddArg(L"operate", L"modify"); + arg.AddArg(L"guid", sPersonID); + //xwin::OpenWindow(L"dev:xpage[HrPersonMaint.xpage]",arg); + openUrl(L"组织架构.vface/xpage/Hr/HrPersonMaint", &arg); return 1; } //命令发布函数 - int OnCmdDispatch(string comdid) + int OnCmdDispatch(xstring comdid) { - if (comdid == "Save") return OnSave(); - else if (comdid == "AddRow") return OnAddRow(); - else if (comdid == "ModifyRow") return OnModifyRow(); - else if (comdid == "DeleteRow") return OnDeleteRow(); - else if (comdid == "Refresh") return OnRetrieve(is_orgid); - /*else if(comdid =="adjustorg") return OnAdjustOrg();*/ + if (comdid == L"Save") return OnSave(); + else if (comdid == L"AddRow") return OnAddRow(); + else if (comdid == L"ModifyRow") return OnModifyRow(); + else if (comdid == L"DeleteRow") return OnDeleteRow(); + else if (comdid == L"Refresh") return OnRetrieve(is_orgid); + /*else if(comdid ==L"adjustorg") return OnAdjustOrg();*/ return 0; } //命令处理事件 - int OnXCommand(ref TXCommandEvent evt, int p) + 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)&HrEmployee::OnXCommand); //获取焦点事件,用于重置工具条 - AttachEvent("WM_SETFOCUS", OnSetFocus); + AttachEvent(L"WM_SETFOCUS", (FEvent)&HrEmployee::OnSetFocus); //获得树的选择事件 - AttachEvent("tv_org", "TVN_SELCHANGED", OnTreeSelChanged); - AttachEvent("tv_org", "TVN_ITEMEXPANDING", OnTreeExpanding); - AttachEvent("dw_emp", "DWV_DOUBLECLICKED", OnDoubleClicked); + AttachEvent(L"tv_org", L"TVN_SELCHANGED", (FEvent)&HrEmployee::OnTreeSelChanged); + AttachEvent(L"tv_org", L"TVN_ITEMEXPANDING", (FEvent)&HrEmployee::OnTreeExpanding); + AttachEvent(L"dw_emp", L"DWV_DOUBLECLICKED", (FEvent)&HrEmployee::OnDoubleClicked); + return 1; } int OnInitial() { - m_agentNode = new xnode__; + m_agentNode = new xnode; SetAgent(); OnAttachEvent(); @@ -369,22 +379,19 @@ int onload() { - tv_org = new treeview__; - tv_org.setNativePointer(this.GetControl("tv_org")); - dw_emp = new xdwgrid__; - dw_emp.setNativePointer(this.GetControl("dw_emp")); - dw_emp.openUrl("组织架构.vface/template/HrEmployee/list"); + tv_org = new treeview; + tv_org.setNativePointer(GetControl(L"tv_org")); + dw_emp = new xdwgrid; + dw_emp.setNativePointer(GetControl(L"dw_emp")); + dw_emp.openUrl(L"组织架构.vface/template/HrEmployee/list"); //dw_emp.SetReadOnly(true); //dw_emp.SetSelectionMode(1); OnInitial(); - OnCreateTree("00000000-0000-0000-0000-000000000000", 0); - int wid = tv_org.GetId(); - int root = treeview__::GetRootItem(wid); - treeview__::ExpandItem(wid, root); + OnCreateTree(L"00000000-0000-0000-0000-000000000000", 0); + //int wid = tv_org.GetId(); + HTREEITEM root = tv_org.GetRootItem(); + tv_org.ExpandItem( root); return 1; } - ] - - ] -] \ No newline at end of file +}; \ No newline at end of file -- Gitblit v1.9.3