þÿuse "xcontrol.vframe.vbusiness.vd" use "xbase.vframe.vbusiness.vd" use "base.view.vd" unit trade [ class ExportCredit : public frame { xdwgrid dw_list; xnode m_agentNode; //Agent Condition xdwgrid dw_item; int SetAgent() { string xfNodeAgentArea = "agentarea"; xnode anode = GetAgentNode(xfNodeAgentArea); if (m_agentNode) { SetAgentNodeContent(anode, m_agentNode); } else { msxml::IXMLDOMElement xframeElement = GetElement(); msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/" + xfNodeAgentArea + "[1]/*"); if (agent) { string s = agent.xml; m_agentNode = SetAgentNodeContent(anode, s); } } return 1; } int OnRowChanged(ref TNotifyEvent evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); int row = hdr.row; SetAgent(); OnRetrieveEx(row); return 1; } //q&p¹oÀm;YtQýep int OnSetFocus(ref TEvent evt, int param) { //‘Ín]åQwga SetAgent(); //trace(GetEntityID(1)); return 1; } int OnSave() { xml x1 = new xml; x1.setNativePointer(xml::CreateInstance()); dw_item.AcceptText(); dw_item.DwUpdateAllToEx(x1.GetXmlDoc()); xaserverarg arg1 = new xaserverarg; arg1.setNativePointer(xaserverarg::CreateInstance()); arg1.AddArg("content", x1.GetXml()); trace(x1.GetXml()); if (url::get("/sale/data/Gdn/update/ExportCreditItem", arg1.GetString(), x1) != 1) { string error = x1.GetXmlDoc().text; alert("err:" + error); return 1; } string str = x1.GetXmlDoc().documentElement.getAttribute("text"); if (str == "true") { dw_item.ResetUpdateStatus(); alert("OÝ[XbRŸ!"); OnRetrieve(); } else { alert("OÝ[XY1%!"); } return 1; } int OnModifyRow(int row) { xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("ExportCreditID", dw_list.GetItemString(row, "ExportCreditID")); OpenWindow("dev:xpage[ExportCreditMaint.vx]", cast(arg as int)); return 1; } int XmDelete() { string ExportCreditID = dw_list.GetItemString(dw_list.GetRow(), "ExportCreditID"); int MB_OKCANCEL = 1; int IDOK = 1; int ret = win32::MessageBox(GetHWND(), "xn‹¤R –d?", "cÐy:", MB_OKCANCEL); if (ret == IDOK) { xml x = ViewObject::RetrieveData("/sale/data/Expense3/DeleteExportCredit", "ExportCreditID", ExportCreditID); string status = x.GetXml(); if (status.find("ok") == 1) { alert("R –dbRŸ"); OnRetrieve(); } else { alert("R –dY1%"); } } return 1; } //T}NäSÑ^Qýep int OnCmdDispatch(string comdid) { string NO = publiccode::GetUser().no; string Jobname = publiccode::GetUser().jobname; if (NO == "admin") Jobname = ""; if (Jobname == "NR¡TX") { if (comdid == "OnOpen") { OnModifyRow(dw_list.GetRow()); return 1; } if (comdid == "xmSearch") { OnRetrieve(); return 1; } return 1; } if (comdid == "OnOpen") { OnModifyRow(dw_list.GetRow()); return 1; } if (comdid == "xmSearch") { OnRetrieve(); return 1; } if (comdid == "OnNew") { OpenWindow("dev:xpage[ExportCreditMaint.vx]", 0); return 1; } if (comdid == "OnDelete") { XmDelete(); return 1; } if (comdid == "XmSave") { OnSave(); return 1; } return 0; } int OnDoubleClicked(ref TNotifyEvent evt, int p) { return OnCmdDispatch("OnOpen"); } //T}NäYtN‹Nö int OnXCommand(ref TXCommandEvent evt, int param) { return OnCmdDispatch(evt.pStrID); } int OnItemChanged(ref TNotifyEvent evt, int p) { ref DWNMHDR hdr = trust(evt.pnmh as ref DWNMHDR); string colname = hdr.colname; string value = hdr.data; int row = hdr.row; string dwname = "dw_item"; if (colname == "Type") { if (value == "N") { dw_item.SetItemString(row, "CreatorID", ""); dw_item.SetItemDisplayString(row, "CreatorID", ""); dw_item.SetItemString(row, "CreateDate", ""); dw_item.SetItemString(row, "Note", ""); } else { string Createdate = publiccode::GetCurrentDate(); string userid = publiccode::GetUser().id; string username = publiccode::GetUser().name; dw_item.SetItemString(row, "CreatorID", userid); dw_item.SetItemDisplayString(row, "CreatorID", username); dw_item.SetItemString(row, "CreateDate", Createdate); dw_item.SetGuid(row, publiccode::GetGuid()); } } return 1; } int OnAttachEvent() { //~Ñ[š]åQwgap¹QûN‹Nö AttachEvent("WM_XCOMMAND", OnXCommand); //ƒ·SÖq&p¹N‹Nöÿ u(NŽ‘Ín]åQwga AttachEvent("WM_SETFOCUS", OnSetFocus); AttachEvent("dw_list", "DWV_DOUBLECLICKED", OnDoubleClicked);//ˆLSÌQû AttachEvent("dw_list", "DWV_ROWFOCUSCHANGED", OnRowChanged); AttachEvent("dw_item", "DWV_ITEMCHANGED", OnItemChanged); } int OnRetrieve() { xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("sType", GetControl("search").GetText()); if (getUrl("/sale/data/Expense3/ExportCreditList", arg.GetString(), x) != 1) { trace(x.GetXmlDoc().text); return -1; } else { dw_list.Retrieve(x); dw_list.Redraw(); } dw_list.SetSelectionMode(1); dw_list.SetReadOnly(true); return 1; } int OnRetrieveEx(int row) { string ExportCreditID = dw_list.GetItemString(row, "ExportCreditID"); xml x = new xml; x.setNativePointer(xml::CreateInstance()); xaserverarg arg = new xaserverarg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg("ExportCreditID", ExportCreditID); if (getUrl("/sale/data/Expense3/GetExportCreditItemEx", arg.GetString(), x) != 1) { trace(x.GetXmlDoc().text); return -1; } else { dw_item.Retrieve(x); dw_item.Redraw(); } dw_item.SetSelectionMode(1); dw_item.SetReadOnly(true); return 1; } int onload() { dw_list = GetControl("dw_list"); dw_list.openUrl("/sale/view/expense3/ExportCreditList"); dw_list.SetColumnState("ExportCreditID", false); dw_item = GetControl("dw_item"); dw_item.openUrl("/sale/view/expense3/ExportCreditItem"); dw_item.SetColumnState("ExportCreditItemID", false); dw_item.SetColumnState("ExportCreditID", false); OnAttachEvent(); OnRetrieve(); OnRetrieveEx(1); return 1; } int onloaded() { SetAgent(); return 1; } }; ]