|  |  | 
 |  |  | #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) Deduction : public xframe | 
 |  |  | class __declspec(dllexport) HrPersonMaint : public xframe | 
 |  |  | { | 
 |  |  | public: | 
 |  |  |    xdwtable   dw_1; | 
 |  |  |    xstring      m_operate; | 
 |  |  |    xstring      m_sguid; | 
 |  |  |  | 
 |  |  |    xnode   m_agentNode;   //Agent Condition | 
 |  |  |    xstring   m_agentCond;   //Agent Node | 
 |  |  | public: | 
 |  |  |    HrPersonMaint(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} | 
 |  |  | public: | 
 |  |  |    static HrPersonMaint* CreateInstance(void* implPtr, void* hWnd) | 
 |  |  |    { | 
 |  |  |    public: | 
 |  |  |       xdwgrid   dw_list; | 
 |  |  |       xstring EntityID; | 
 |  |  |       xstring InvoiceNo; | 
 |  |  |  | 
 |  |  |       xnode   m_agentNode;   //Agent Condition | 
 |  |  |  | 
 |  |  |    public: | 
 |  |  |       Deduction(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {} | 
 |  |  |    public: | 
 |  |  |       static Deduction* CreateInstance(void* implPtr, void* hWnd) | 
 |  |  |       HrPersonMaint* pWin = new HrPersonMaint(implPtr, (HWND)hWnd); | 
 |  |  |       return pWin; | 
 |  |  |    } | 
 |  |  |    int SetAgent() | 
 |  |  |    { | 
 |  |  |       xstring xfNodeAgentArea = L"agentarea"; | 
 |  |  |       xnode anode = GetAgentNode(xfNodeAgentArea); | 
 |  |  |       if (m_agentNode) | 
 |  |  |       { | 
 |  |  |          Deduction* pWin = new Deduction(implPtr, (HWND)hWnd); | 
 |  |  |          return pWin; | 
 |  |  |          SetAgentNode(anode, m_agentNode); | 
 |  |  |       } | 
 |  |  |       int SetAgent() | 
 |  |  |       else | 
 |  |  |       { | 
 |  |  |          xstring xfNodeAgentArea = L"agentarea"; | 
 |  |  |          xnode anode = GetAgentNode(xfNodeAgentArea); | 
 |  |  |          if (m_agentNode) | 
 |  |  |          KXMLDOMElement xframeElement = GetElement(); | 
 |  |  |          KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); | 
 |  |  |          if (agent) | 
 |  |  |          { | 
 |  |  |             SetAgentNode(anode, m_agentNode); | 
 |  |  |             xstring s = agent.xml(); | 
 |  |  |             m_agentNode = SetAgentNode(anode, s); | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    //焦点激活处理函数 | 
 |  |  |    int OnSetFocus(TEvent* evt, LPARAM param) | 
 |  |  |    { | 
 |  |  |       SetAgent(); | 
 |  |  |  | 
 |  |  |       //重置工具条 | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnSave() | 
 |  |  |    { | 
 |  |  |       HCURSOR hIcon = xutil::SetCursorWait(); | 
 |  |  |  | 
 |  |  |       xstring val; | 
 |  |  |       xml x; | 
 |  |  |  | 
 |  |  |       auto xdoc = x; | 
 |  |  |       dw_1.AcceptText(); | 
 |  |  |       dw_1.DwUpdateAllTo(xdoc); | 
 |  |  |       val = xdoc.xml(); | 
 |  |  |       //trace(val); | 
 |  |  |       xaserverarg args; | 
 |  |  | 		 | 
 |  |  |       args.AddArg(L"content", val); | 
 |  |  |       //trace(m_EntityValueEx); | 
 |  |  |       //trace(val); | 
 |  |  |       xml x1; | 
 |  |  |  | 
 |  |  |       if (xurl::post(L"OrganizationStruct/update.HrPerson", args.GetString(), x1) != 1) | 
 |  |  |       { | 
 |  |  |          xstring error = x1.text(); | 
 |  |  |          trace(error); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |       else | 
 |  |  |       { | 
 |  |  |          trace(x1.xml()); | 
 |  |  |          MessageBox(GetHWND(), L"保存成功!", L"提示", 0); | 
 |  |  |       } | 
 |  |  |       dw_1.ResetUpdateStatus(); | 
 |  |  |       xutil::RestoreCursor(hIcon); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnAddRow() | 
 |  |  |    { | 
 |  |  |       xdwtable dw = new xdwtable; | 
 |  |  |       dw.setNativePointer(dw_1.GetCurTable()); | 
 |  |  |       xstring dw_n = dw.GetDwName(); | 
 |  |  |       if (dw_n == L"HrEmployee") | 
 |  |  |          dw.InsertRow(0); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnInsertRow() | 
 |  |  |    { | 
 |  |  |       xdwtable dw = new xdwtable; | 
 |  |  |       dw.setNativePointer(dw_1.GetCurTable()); | 
 |  |  |       xstring dw_n = dw.GetDwName(); | 
 |  |  |       if (dw_n == L"HrEmployee") | 
 |  |  |       { | 
 |  |  |          int row = dw.GetRow(); | 
 |  |  |          dw.InsertRow(row); | 
 |  |  |       } | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnDeleteRow() | 
 |  |  |    { | 
 |  |  |       xdwtable dw = new xdwtable; | 
 |  |  |       dw.setNativePointer(dw_1.GetCurTable()); | 
 |  |  |       xstring dw_n = dw.GetDwName(); | 
 |  |  |       if (dw_n == L"HrEmployee") | 
 |  |  |       { | 
 |  |  |          int row = dw.GetRow(); | 
 |  |  |          dw.DeleteRow(row); | 
 |  |  |       } | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnUpdateAssignmentView() | 
 |  |  |    { | 
 |  |  |       xml x1; | 
 |  |  |  | 
 |  |  |       if (xurl::post(L"OrganizationStruct/update.Assignmentview", L"", x1) != 1) | 
 |  |  |       { | 
 |  |  |          xstring error = x1.text(); | 
 |  |  |          trace(error); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |       else | 
 |  |  |       { | 
 |  |  |          trace(x1.xml()); | 
 |  |  |          MessageBox(GetHWND(), L"更新成功!", L"提示", 0); | 
 |  |  |       } | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    //命令发布函数 | 
 |  |  |    int OnCmdDispatch(xstring comdid) | 
 |  |  |    { | 
 |  |  |       if (comdid == L"Save")  OnSave(); | 
 |  |  |       else if (comdid == L"AddRow") OnAddRow(); | 
 |  |  |       else if (comdid == L"InsertRow") OnInsertRow(); | 
 |  |  |       else if (comdid == L"DeleteRow") OnDeleteRow(); | 
 |  |  |       else if (comdid == L"Close") CloseWindow(); | 
 |  |  |       else if (comdid == L"UpdateAssignmentView") | 
 |  |  |          OnUpdateAssignmentView(); | 
 |  |  |       return 0; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnChildContent(TEvent* evt, int p) | 
 |  |  |    { | 
 |  |  |       DWNMHDR& dwhdr = *(DWNMHDR*)evt->notify.pnmh; | 
 |  |  |       xstring col = dwhdr.colname; | 
 |  |  |       if (col != L"") { | 
 |  |  |          xml x; | 
 |  |  |  | 
 |  |  |          xaserverarg arg; | 
 |  |  |  | 
 |  |  |          xstring query; | 
 |  |  |          query = L"[IResourceMSSql.xq]"; | 
 |  |  |          if (col == L"PositionID") { | 
 |  |  |             arg.AddArg(L"ResourceType", L"HrPosition"); | 
 |  |  |          } | 
 |  |  |          if (xaserver::ExecXQuery(GetServerUrl(), query, arg.GetString(), x) == 1) | 
 |  |  |             dwhdr.data = x.xml(); | 
 |  |  |          //trace(x.GetXml()); | 
 |  |  |       } | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnItemChanged(TEvent* evt, int p) | 
 |  |  |    { | 
 |  |  |       DWNMHDR& dwhdr = *(DWNMHDR*)evt->notify.pnmh; | 
 |  |  |       HCURSOR HCursor = xutil::SetCursorWait(); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |       int row = dwhdr.row; | 
 |  |  |       xstring col = dwhdr.colname; | 
 |  |  |       xstring data = dwhdr.data; | 
 |  |  |       trace(xstring(row)); | 
 |  |  |  | 
 |  |  |       if (col == L"Name") | 
 |  |  |       { | 
 |  |  |          xstring Name = dw_1.GetItemString(1, L"Name"); | 
 |  |  |  | 
 |  |  |          xml xs; | 
 |  |  |  | 
 |  |  |          xaserverarg args; | 
 |  |  | 			 | 
 |  |  |          args.AddArg(L"Name", Name); | 
 |  |  |          if (xurl::get(L"/sale/data/ManpowerFile/GetUserName", args.GetString(), xs) != 1) | 
 |  |  |          { | 
 |  |  |             trace(xs.text()); | 
 |  |  |             return -1; | 
 |  |  |          } | 
 |  |  |          else | 
 |  |  |          { | 
 |  |  |             KXMLDOMElement xframeElement = GetElement(); | 
 |  |  |             KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/" + xfNodeAgentArea + L"[1]/*"); | 
 |  |  |             if (agent) | 
 |  |  |             KXMLDOMNodeList items = xs.selectNodes(L"data/Item"); | 
 |  |  |             int len = items.length(); | 
 |  |  |             if (len != 0) | 
 |  |  |             { | 
 |  |  |                xstring s = agent.xml(); | 
 |  |  |                m_agentNode = SetAgentNode(anode, s); | 
 |  |  |                KXMLDOMNode t = items.item(0); | 
 |  |  |  | 
 |  |  |                xstring english_name = L""; | 
 |  |  |                xstring sex = L""; | 
 |  |  |                xstring sexex = L""; | 
 |  |  |                xstring birth_date = L""; | 
 |  |  |                xstring contact = L""; | 
 |  |  |                xstring induction_time = L""; | 
 |  |  |                xstring household_register = L""; | 
 |  |  |                xstring EmailAddress = L""; | 
 |  |  |                if (t.selectSingleNode(L"english_name"))  english_name = t.selectSingleNode(L"english_name").text(); | 
 |  |  |                if (t.selectSingleNode(L"sex"))  sex = t.selectSingleNode(L"sexex").text(); | 
 |  |  |                if (t.selectSingleNode(L"sexex"))  sexex = t.selectSingleNode(L"sexex").text(); | 
 |  |  |                if (t.selectSingleNode(L"birth_date"))  birth_date = t.selectSingleNode(L"birth_date").text(); | 
 |  |  |                if (t.selectSingleNode(L"contact"))  contact = t.selectSingleNode(L"contact").text(); | 
 |  |  |                if (t.selectSingleNode(L"induction_time"))  induction_time = t.selectSingleNode(L"induction_time").text(); | 
 |  |  |                if (t.selectSingleNode(L"household_register"))  household_register = t.selectSingleNode(L"household_register").text(); | 
 |  |  |                if (t.selectSingleNode(L"EmailAddress"))  EmailAddress = t.selectSingleNode(L"EmailAddress").text(); | 
 |  |  |  | 
 |  |  |                dw_1.SetItemString(1, L"NickName", english_name); | 
 |  |  |                dw_1.SetItemDisplayString(1, L"Gender", sexex); | 
 |  |  |                dw_1.SetItemString(1, L"Gender", sex); | 
 |  |  |                dw_1.SetItemString(1, L"Birthday", birth_date); | 
 |  |  |                dw_1.SetItemString(1, L"Mobile", contact); | 
 |  |  |                dw_1.SetItemString(1, L"HireDate", induction_time); | 
 |  |  |                dw_1.SetItemString(1, L"BirthPlace", household_register); | 
 |  |  |                dw_1.SetItemString(1, L"Email", EmailAddress); | 
 |  |  |             } | 
 |  |  |          } | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       int OnRowChanged(TEvent* evt, LPARAM p) | 
 |  |  |       { | 
 |  |  |          DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; | 
 |  |  |          int row = hdr.row; | 
 |  |  |          SetAgent(); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       //焦点激活处理函数 | 
 |  |  |       int OnSetFocus(TEvent* evt, LPARAM param) | 
 |  |  |       if (col == L"PositionID") | 
 |  |  |       { | 
 |  |  |          //重置工具条 | 
 |  |  |          SetAgent(); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |          xdwtable dw_HrEmployee = new xdwtable; | 
 |  |  |          dw_HrEmployee.setNativePointer(dw_1.FindDwTable(L"HrEmployee")); | 
 |  |  |          xstring sPositionID = dw_HrEmployee.GetItemString(row, L"PositionID"); | 
 |  |  |  | 
 |  |  |       //命令发布函数 | 
 |  |  |       int OnCmdDispatch(xstring comdid) | 
 |  |  |       { | 
 |  |  |          if (comdid == L"xmSave") | 
 |  |  |          { | 
 |  |  |             OnSave(); | 
 |  |  |          if (sPositionID == L"") | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |          if (comdid == L"xmSearch") | 
 |  |  |          { | 
 |  |  |             OnRetrieve(InvoiceNo, EntityID); | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |          if (comdid == L"xmClose") | 
 |  |  |          { | 
 |  |  |             CloseWindow(); | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |          return 0; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       //命令处理事件 | 
 |  |  |       int OnXCommand(TEvent* evt, LPARAM param) | 
 |  |  |       { | 
 |  |  |          return OnCmdDispatch(evt->xcommand.pStrID); | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       xstring GetGuid() | 
 |  |  |       { | 
 |  |  |          return publiccode::GetGuid(); | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       int OnSave() | 
 |  |  |       { | 
 |  |  |          xml x; | 
 |  |  | 			 | 
 |  |  |          dw_list.AcceptText(); | 
 |  |  |          dw_list.DwUpdateAllToEx(x); | 
 |  |  |          xaserverarg arg ; | 
 |  |  | 			 | 
 |  |  |          arg.AddArg(L"content", x.xml()); | 
 |  |  |          trace(x.xml()); | 
 |  |  |          if (xurl::get(L"/sale/data/AR/update/ARDeduction", arg.GetString(), x) != 1) | 
 |  |  |          { | 
 |  |  |             xstring error = x.text(); | 
 |  |  |             alert(L"err:" + error); | 
 |  |  |             return 1; | 
 |  |  |          } | 
 |  |  |          xstring str = x.documentElement().getAttribute(L"text"); | 
 |  |  |          if (str == L"true") | 
 |  |  |          { | 
 |  |  |             dw_list.ResetUpdateStatus(); | 
 |  |  |             alert(L"保存成功!"); | 
 |  |  |          } | 
 |  |  |          else | 
 |  |  |          { | 
 |  |  |             alert(L"保存失败!"); | 
 |  |  |          } | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       int OnItemChanged(TEvent* evt, LPARAM p) | 
 |  |  |       { | 
 |  |  |          DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; | 
 |  |  |          xstring colname = hdr.colname; | 
 |  |  |          xstring value = hdr.data; | 
 |  |  |          int row = hdr.row; | 
 |  |  |          xstring dwname = L"dw_list"; | 
 |  |  |          if (colname == L"DeductionAmount") | 
 |  |  |          { | 
 |  |  |             dw_list.SetItemString(row, L"SettlementAdjustID", EntityID); | 
 |  |  |             xstring id = publiccode::GetGuid(); | 
 |  |  |             KXMLDOMElement ele = dw_list.GetRowElement(row); | 
 |  |  |             ele.setAttribute(L"guid", id); | 
 |  |  |             //dw_list.SetGuid(row,id); | 
 |  |  |             //alert(ele.xml); | 
 |  |  |             //alert(dw_list.GetGuid(row)); | 
 |  |  |          } | 
 |  |  |          dw_list.Redraw(); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |          xaserverarg arg; | 
 |  |  |  | 
 |  |  |       int OnAttachEvent() | 
 |  |  |       { | 
 |  |  |          //绑定工具条点击事件 | 
 |  |  |          AttachEvent(L"WM_XCOMMAND", (FEvent)&Deduction::OnXCommand); | 
 |  |  |          //获取焦点事件,用于重置工具条 | 
 |  |  |          AttachEvent(L"WM_SETFOCUS", (FEvent)&Deduction::OnSetFocus); | 
 |  |  |          AttachEvent(L"dw_list", L"DWV_ROWFOCUSCHANGED", (FEvent)&Deduction::OnRowChanged); | 
 |  |  |          AttachEvent(L"dw_list", L"DWV_ITEMCHANGED", (FEvent)&Deduction::OnItemChanged); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |       int  OnRetrieve(xstring InvoiceNo, xstring EntityID) | 
 |  |  |       { | 
 |  |  |          xml x; | 
 |  |  | 			 | 
 |  |  |          xaserverarg arg ; | 
 |  |  | 		 | 
 |  |  |          arg.AddArg(L"InvoiceNo", InvoiceNo); | 
 |  |  |          arg.AddArg(L"InvoiceNoEx", xcontrol(GetControl(L"search")).GetText()); | 
 |  |  |          arg.AddArg(L"EntityID", EntityID); | 
 |  |  |  | 
 |  |  |          //trace(GetControl(L"search").GetText()); | 
 |  |  |          if (getUrl(L"/sale/data/AR/DeductionList", arg.GetString(), x) != 1) | 
 |  |  |          arg.AddArg(L"guid", sPositionID); | 
 |  |  |          arg.AddArg(L"type", L"GetOrgIDJobID"); | 
 |  |  |          //trace(arg.GetString()); | 
 |  |  |          if (xurl::get(L"OrganizationStruct/GetOrgIDJobID", arg.GetString(), x) != 1) | 
 |  |  |          { | 
 |  |  |             trace(x.text()); | 
 |  |  |             return -1; | 
 |  |  |          } | 
 |  |  |          else | 
 |  |  |          { | 
 |  |  |             dw_list.Retrieve(x); | 
 |  |  |             dw_list.Redraw(); | 
 |  |  |             KXMLDOMDocument xdoc = x; | 
 |  |  |             //IXMLDOMNodeList nlist = xdoc.getElementsByTagName(L"OrgID"); | 
 |  |  |             KXMLDOMElement e = xdoc.documentElement(); | 
 |  |  |             xstring sOrgID = e.selectSingleNode(L"@OrgID").text(); | 
 |  |  |             xstring sJobID = e.selectSingleNode(L"@JobID").text(); | 
 |  |  |             dw_HrEmployee.SetItemString(row, L"OrgID", sOrgID); | 
 |  |  |             dw_HrEmployee.SetItemString(row, L"JobID", sJobID); | 
 |  |  |             xstring sdate = publiccode::GetCurrentDate() + (xstring)L""; | 
 |  |  |             dw_HrEmployee.SetItemString(row, L"StartDate", sdate + L""); | 
 |  |  |             dw_HrEmployee.SetItemString(row, L"EndDate", L"2050-12-31"); | 
 |  |  |          } | 
 |  |  |          dw_list.SetSelectionMode(1); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       int onload() | 
 |  |  |       xutil::RestoreCursor(HCursor); | 
 |  |  |  | 
 |  |  |       return 0; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    //命令处理事件 | 
 |  |  |    int OnXCommand(TEvent* evt, LPARAM param) | 
 |  |  |    { | 
 |  |  |       return OnCmdDispatch(evt->xcommand.pStrID); | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnAttachEvent() | 
 |  |  |    { | 
 |  |  |       //绑定工具条点击事件 | 
 |  |  |       AttachEvent(L"WM_XCOMMAND", (FEvent)&HrPersonMaint::OnXCommand); | 
 |  |  |       //获取焦点事件,用于重置工具条 | 
 |  |  |       AttachEvent(L"WM_SETFOCUS", (FEvent)&HrPersonMaint::OnSetFocus); | 
 |  |  |       //下拉框  提供内容 | 
 |  |  |       AttachEvent(L"dw_detail", L"DWV_CHILDCONTENT", (FEvent)&HrPersonMaint::OnChildContent); | 
 |  |  |       //内容改变 | 
 |  |  |       AttachEvent(L"dw_detail", L"DWV_ITEMCHANGED", (FEvent)&HrPersonMaint::OnItemChanged); | 
 |  |  |       // | 
 |  |  |       //AttachEvent(L"dw_detail",L"DWV_ITEMFOCUSCHANGED",OnItemFocusChanged); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int  OnRetrieve() | 
 |  |  |    { | 
 |  |  |       xml x; | 
 |  |  |  | 
 |  |  |       xaserverarg arg; | 
 |  |  |  | 
 |  |  |       arg.AddArg(L"guid", m_sguid); | 
 |  |  |       if (xurl::get(L"OrganizationStruct/detail.HrPerson", arg.GetString(), x) != 1) | 
 |  |  |       { | 
 |  |  |          SetArg(); | 
 |  |  |          dw_list = GetControl(L"dw_list"); | 
 |  |  |          dw_list.openUrl(L"/sale/view/AR/template/Deduction"); | 
 |  |  |          trace(x.text()); | 
 |  |  |          return -1; | 
 |  |  |       } | 
 |  |  |       else | 
 |  |  |       { | 
 |  |  |          dw_1.Retrieve(x); | 
 |  |  |          dw_1.Redraw(); | 
 |  |  |          //trace(x.GetXml()); | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |          dw_list.SetColumnState(L"ID", false); | 
 |  |  |          dw_list.SetColumnState(L"GDNLineID", false); | 
 |  |  |          dw_list.SetColumnState(L"SettlementAdjustID", false); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int OnInitial() | 
 |  |  |    { | 
 |  |  |       SetAgent(); | 
 |  |  |  | 
 |  |  |          if (GetWinParam()) | 
 |  |  |       OnAttachEvent(); | 
 |  |  |  | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    int onload() | 
 |  |  |    { | 
 |  |  |       SetArg(); | 
 |  |  |       dw_1 = new xdwtable; | 
 |  |  |       dw_1.setNativePointer(GetControl(L"dw_detail")); | 
 |  |  |       dw_1.openUrl(L"组织架构.vface/template/HrPerson/maint"); | 
 |  |  |       OnInitial(); | 
 |  |  |  | 
 |  |  |       xaserverarg arg; | 
 |  |  |  | 
 |  |  |       arg = GetArg(); | 
 |  |  |       if (arg) | 
 |  |  |       { | 
 |  |  |          m_operate = arg.GetArgString(L"operate"); | 
 |  |  |          m_sguid = arg.GetArgString(L"guid"); | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       /*if ( m_sguid == L"" || m_sguid == nil) | 
 |  |  |       { | 
 |  |  |          xstring val; | 
 |  |  |          xml x ; | 
 |  |  |  | 
 |  |  |          var xdoc = x; | 
 |  |  |          dw_1.DwUpdateTo(xdoc); | 
 |  |  |          val = xdoc.xml ; | 
 |  |  |  | 
 |  |  |          xml xx ; | 
 |  |  | 			 | 
 |  |  |          xx.loadXML(val); | 
 |  |  |          KXMLDOMElement e; | 
 |  |  |          e = xx.selectSingleNode(L"HrPerson"); | 
 |  |  |          if (e) | 
 |  |  |          { | 
 |  |  |             xaserverarg arg = GetArg(); | 
 |  |  |             EntityID = arg.GetArgString(L"EntityID"); | 
 |  |  |             InvoiceNo = arg.GetArgString(L"InvoiceNo"); | 
 |  |  |             xstring sguid = e.getAttribute(L"guid"); | 
 |  |  |             m_sguid = sguid; | 
 |  |  |          } | 
 |  |  |          trace(InvoiceNo); | 
 |  |  |          OnRetrieve(InvoiceNo, EntityID); | 
 |  |  |          OnAttachEvent(); | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       int onloaded() | 
 |  |  |       { | 
 |  |  |          SetAgent(); | 
 |  |  |  | 
 |  |  |          return 1; | 
 |  |  |       } | 
 |  |  |    }; | 
 |  |  |          //trace(m_sguid); | 
 |  |  |       }*/ | 
 |  |  |       if (m_sguid != L"") | 
 |  |  |          OnRetrieve(); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  | }; |