|  |  | 
 |  |  | /*use "list.vd" | 
 |  |  | use "xtreeview.vd" | 
 |  |  | use "publiccode.vd"*/ | 
 |  |  | use "xcontrol.vframe.vbusiness.vd" | 
 |  |  | use "xbase.vframe.vbusiness.vd" | 
 |  |  | unit trade  | 
 |  |  | [ | 
 |  |  | class ColorCardNew : public listwin | 
 |  |  | #include <wobject/xstring.hpp> | 
 |  |  | #include <xcontrol/xtreeview.hpp> | 
 |  |  | #include <xcontrol/xdwgrid.hpp> | 
 |  |  | #include <wobject/xdouble.hpp> | 
 |  |  | #include <xcontrol/xlayersheet.hpp> | 
 |  |  | #include <xcontrol/xdatetimepick.hpp> | 
 |  |  |  | 
 |  |  |  | 
 |  |  | #include "vbusiness/vframe/listwin.vframe.vbusiness.hpp" | 
 |  |  | #include "viewobject/view.base.hpp" | 
 |  |  |  | 
 |  |  | using xml = KXMLDOMDocument; | 
 |  |  | class __declspec(dllexport) ColorCardNew : public listwin | 
 |  |  | { | 
 |  |  | public: | 
 |  |  |    xdwgrid   dw_list; | 
 |  |  |    xdwgrid   dw_detail; | 
 |  |  |    bool    ismodify; | 
 |  |  |    xnode   m_agentNode; | 
 |  |  |    string   m_agentCond; | 
 |  |  |  | 
 |  |  |    xstring   m_agentCond; | 
 |  |  | public: | 
 |  |  |    ColorCardNew(void* implPtr, HWND hWnd) :listwin(implPtr, hWnd) {} | 
 |  |  | public: | 
 |  |  |    static ColorCardNew* CreateInstance(void* implPtr, void* hWnd) | 
 |  |  |    { | 
 |  |  |       ColorCardNew* pWin = new ColorCardNew(implPtr, (HWND)hWnd); | 
 |  |  |       return pWin; | 
 |  |  |    } | 
 |  |  |    int SetAgent() | 
 |  |  |    { | 
 |  |  |       string xfNodeAgentArea  = "agentarea"; | 
 |  |  |       xstring xfNodeAgentArea  = L"agentarea"; | 
 |  |  |       xnode anode = GetAgentNode(xfNodeAgentArea); | 
 |  |  |       msxml::IXMLDOMElement xframeElement =  GetElement(); | 
 |  |  |       msxml::IXMLDOMNode agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*"); | 
 |  |  |       KXMLDOMElement xframeElement =  GetElement(); | 
 |  |  |       KXMLDOMNode agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*"); | 
 |  |  |       if(agent) | 
 |  |  |          SetAgentNodeContent(anode, agent.xml); | 
 |  |  |          SetAgentNode(anode, agent.xml()); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    //焦点激活处理函数 | 
 |  |  |    int OnSetFocus(ref TEvent evt,int param) | 
 |  |  |    int OnSetFocus(TEvent* evt, LPARAM param) | 
 |  |  |    { | 
 |  |  |       SetAgent(); | 
 |  |  |  | 
 |  |  |       //重置工具条 | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |    int ProcessFlowAction(string guid,string comdid) | 
 |  |  |    int ProcessFlowAction(xstring guid,xstring comdid) | 
 |  |  |    { | 
 |  |  |       //int pr = pr1; | 
 |  |  |       //string action = comdid;//.mid(comdid.find("action:",0)+7,9999); | 
 |  |  |       /*if(action == "bill.delete" || action == "bill.deleteEx") | 
 |  |  |       //xstring action = comdid;//.mid(comdid.find(L"action:",0)+7,9999); | 
 |  |  |       /*if(action == L"bill.delete" || action == L"bill.deleteEx") | 
 |  |  |       { | 
 |  |  |          if (MessageBox(GetHWND(),"是否确定删除记录!","提示1",1) == 2)   | 
 |  |  |          if (MessageBox(GetHWND(),L"是否确定删除记录!",L"提示1",1) == 2)   | 
 |  |  |             return 1; | 
 |  |  |       }*/ | 
 |  |  |        | 
 |  |  |       xaserverarg arg0 = new xaserverarg ; | 
 |  |  |       arg0.setNativePointer(arg0.CreateInstance()); | 
 |  |  |       //arg0.AddArg("Action", action,"xs:string"); | 
 |  |  |       arg0.AddArg("EntityName", "ColorCard","xs:string"); | 
 |  |  |       arg0.AddArg("EntityIDName", "ColorCardID","xs:string"); | 
 |  |  |       arg0.AddArg("EntityID", guid,"xs:string"); | 
 |  |  |       arg0.AddArg("FunctionCode", comdid,"xs:string"); | 
 |  |  |       xml x = new xml; | 
 |  |  |       x.setNativePointer(xml::CreateInstance()); | 
 |  |  |       xaserverarg arg0 ; | 
 |  |  | 		 | 
 |  |  |       //arg0.AddArg(L"Action", action,L"xs:xstring"); | 
 |  |  |       arg0.AddArg(L"EntityName", L"ColorCard",L"xs:xstring"); | 
 |  |  |       arg0.AddArg(L"EntityIDName", L"ColorCardID",L"xs:xstring"); | 
 |  |  |       arg0.AddArg(L"EntityID", guid,L"xs:xstring"); | 
 |  |  |       arg0.AddArg(L"FunctionCode", comdid,L"xs:xstring"); | 
 |  |  |       xml x ; | 
 |  |  | 		 | 
 |  |  |  | 
 |  |  |       if(url::get("/sale/data/Role.config/sys/sql/action", arg0.GetString(), x) != 1) | 
 |  |  |       if(xurl::get(L"/sale/data/Role.config/sys/sql/action", arg0.GetString(), x) != 1) | 
 |  |  |       {    | 
 |  |  |          //ismodify=false; | 
 |  |  |          //dw_list.SetReadOnly(ismodify);          | 
 |  |  |          return -1; | 
 |  |  |       } | 
 |  |  |       string kk=x.GetXml(); | 
 |  |  |       if(kk.find("<root/>",0)>=0)  | 
 |  |  |       xstring kk=x.xml(); | 
 |  |  |       if(kk.find(L"<root/>",0)>=0)  | 
 |  |  |       { | 
 |  |  |          //ismodify=true; | 
 |  |  |          //dw_list.SetReadOnly(ismodify);    | 
 |  |  | 
 |  |  |       return -1; | 
 |  |  |    }    | 
 |  |  |        | 
 |  |  |    int ModifyProcessAction(string guid,string comdid) | 
 |  |  |    int ModifyProcessAction(xstring guid,xstring comdid) | 
 |  |  |    { | 
 |  |  |       if(ProcessFlowAction(guid,comdid)>0) | 
 |  |  |       { | 
 |  |  | 
 |  |  |          return -1; | 
 |  |  |       } | 
 |  |  |    } | 
 |  |  |    int DeleteProcessAction(string guid,string comdid) | 
 |  |  |    int DeleteProcessAction(xstring guid,xstring comdid) | 
 |  |  |    { | 
 |  |  |       if(ProcessFlowAction(guid,comdid)>0) | 
 |  |  |       {          | 
 |  |  | 
 |  |  |    } | 
 |  |  |     | 
 |  |  |    //根据ColorCardID加载Detail数据 | 
 |  |  |    int  OnRetrieveDetail(string ColorCardID) | 
 |  |  |    int  OnRetrieveDetail(xstring ColorCardID) | 
 |  |  |    { | 
 |  |  |       xml x=new xml; | 
 |  |  |       x.setNativePointer(xml::CreateInstance()); | 
 |  |  |       xaserverarg arg=new xaserverarg; | 
 |  |  |       arg.setNativePointer(arg.CreateInstance());	 | 
 |  |  |       xml x; | 
 |  |  | 		 | 
 |  |  |       xaserverarg arg; | 
 |  |  | 		 | 
 |  |  |  | 
 |  |  |       arg.AddArg("ColorCardID",ColorCardID); | 
 |  |  |       if (url::get("ColorCard/entity/list1",arg.GetString(),x) != 1) | 
 |  |  |       arg.AddArg(L"ColorCardID",ColorCardID); | 
 |  |  |       if (xurl::get(L"ColorCard/entity/list1",arg.GetString(),x) != 1) | 
 |  |  |       { | 
 |  |  |          trace(x.GetXmlDoc().text); | 
 |  |  |          trace(x.text()); | 
 |  |  |          return -1; | 
 |  |  |       } | 
 |  |  |       dw_detail.Retrieve(x); | 
 |  |  | 
 |  |  |    { | 
 |  |  |       if (dw_list) | 
 |  |  |       { | 
 |  |  |          string colorCardCName; | 
 |  |  |          string colorCardName; | 
 |  |  |          string orgID; | 
 |  |  |          xstring colorCardCName; | 
 |  |  |          xstring colorCardName; | 
 |  |  |          xstring orgID; | 
 |  |  |          int i; | 
 |  |  |          int row = dw_list.GetRowCount(); | 
 |  |  |          for (i=1; i<=row;i++) | 
 |  |  |          { | 
 |  |  |             colorCardCName=dw_list.GetItemString(i,"ColorCardCName",0)+""; | 
 |  |  |             colorCardName=dw_list.GetItemString(i,"ColorCardName",0)+""; | 
 |  |  |             orgID=dw_list.GetItemString(i,"OrgID",0)+""; | 
 |  |  |             if (colorCardCName=="" || !colorCardCName) | 
 |  |  |             colorCardCName=dw_list.GetItemString(i,L"ColorCardCName")+L""; | 
 |  |  |             colorCardName=dw_list.GetItemString(i,L"ColorCardName")+L""; | 
 |  |  |             orgID=dw_list.GetItemString(i,L"OrgID")+L""; | 
 |  |  |             if (colorCardCName==L"" || !colorCardCName) | 
 |  |  |             { | 
 |  |  |                alert("第"+i.toString()+"行色卡名称中文为空"); | 
 |  |  |                alert(L"第"+xstring(i)+L"行色卡名称中文为空"); | 
 |  |  |                return -1; | 
 |  |  |             } | 
 |  |  |             if (colorCardName=="" || !colorCardName) | 
 |  |  |             if (colorCardName==L"" || !colorCardName) | 
 |  |  |             { | 
 |  |  |                alert("第"+i.toString()+"行色卡名称为空"); | 
 |  |  |                alert(L"第"+ xstring(i) +L"行色卡名称为空"); | 
 |  |  |                return -1; | 
 |  |  |             } | 
 |  |  |             if (orgID=="" || !orgID) | 
 |  |  |             if (orgID==L"" || !orgID) | 
 |  |  |             { | 
 |  |  |                alert("第"+i.toString()+"行关联组织为空"); | 
 |  |  |                alert(L"第"+ xstring(i) +L"行关联组织为空"); | 
 |  |  |                return -1; | 
 |  |  |             } | 
 |  |  |          } | 
 |  |  | 
 |  |  |       rec = OnPreSave(); | 
 |  |  |       if (rec == -1)    | 
 |  |  |          return -1; | 
 |  |  |       xml x= new xml; | 
 |  |  |       x.setNativePointer(xml::CreateInstance()); | 
 |  |  |       dw_list.DwUpdateAllToEx(x.GetXmlDoc());  | 
 |  |  |       xaserverarg arg = new xaserverarg; | 
 |  |  |       arg.setNativePointer(arg.CreateInstance());	 | 
 |  |  |       msxml::IXMLDOMElement e=  x.GetXmlDoc().selectSingleNode("root"); | 
 |  |  |       arg.AddArg("content",e.xml);							 | 
 |  |  |       arg.AddArg("dbmap","ColorCard.dbmap"); | 
 |  |  |       if (url::get("ColorCard/pref/colorcard.save",arg.GetString(),x) != 1) | 
 |  |  |       xml x; | 
 |  |  | 		 | 
 |  |  |       dw_list.DwUpdateAllToEx(x);  | 
 |  |  |       xaserverarg arg; | 
 |  |  | 		 | 
 |  |  |       KXMLDOMElement e=  x.selectSingleNode(L"root"); | 
 |  |  |       arg.AddArg(L"content",e.xml());							 | 
 |  |  |       arg.AddArg(L"dbmap",L"ColorCard.dbmap"); | 
 |  |  |       if (xurl::get(L"ColorCard/pref/colorcard.save",arg.GetString(),x) != 1) | 
 |  |  |       { | 
 |  |  |          trace("error:"+x.GetXml()); | 
 |  |  |          alert("保存失败!"); | 
 |  |  |          trace(L"error:"+(xstring)x.xml()); | 
 |  |  |          alert(L"保存失败!"); | 
 |  |  |          return 0; | 
 |  |  |       }                   | 
 |  |  |       else | 
 |  |  |       {    | 
 |  |  |          alert("保存成功!");		 | 
 |  |  |          alert(L"保存成功!");		 | 
 |  |  |          dw_list.ResetUpdateStatus();                      | 
 |  |  |       } | 
 |  |  |       dw_list.Redraw();    | 
 |  |  | 
 |  |  |       dw_list.AcceptText(); | 
 |  |  |       int nrow=dw_list.InsertRow(0); | 
 |  |  |       dw_list.ShowRowTo(nrow); | 
 |  |  |       string tempguid = publiccode::GetGuid(); | 
 |  |  |       dw_list.SetItemString(nrow,"ColorCardID",tempguid); | 
 |  |  |       xstring tempguid = publiccode::GetGuid(); | 
 |  |  |       dw_list.SetItemString(nrow,L"ColorCardID",tempguid); | 
 |  |  |       OnRetrieveDetail(tempguid); | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |     | 
 |  |  |    //插入 | 
 |  |  | 
 |  |  |       int row = dw_list.GetRow(); | 
 |  |  |       if(row<1) return 0; | 
 |  |  |       int nrow=dw_list.InsertRow(row); | 
 |  |  |       string tempguid = publiccode::GetGuid(); | 
 |  |  |       dw_list.SetItemString(nrow,"ColorCardID",tempguid); | 
 |  |  |       xstring tempguid = publiccode::GetGuid(); | 
 |  |  |       dw_list.SetItemString(nrow,L"ColorCardID",tempguid); | 
 |  |  |       OnRetrieveDetail(tempguid); | 
 |  |  |    } | 
 |  |  |     | 
 |  |  | 
 |  |  |       dw_list.AcceptText();                | 
 |  |  |       int row = dw_list.GetRow(); | 
 |  |  |       if(row<1) return 0; | 
 |  |  |       string id=dw_list.GetItemString(row,"ColorCardID"); | 
 |  |  |       if(DeleteProcessAction(id,"DeleteColorCard")<0) | 
 |  |  |       xstring id=dw_list.GetItemString(row,L"ColorCardID"); | 
 |  |  |       if(DeleteProcessAction(id,L"DeleteColorCard")<0) | 
 |  |  |       { | 
 |  |  |          alert("您没有权限删除该数据"); | 
 |  |  |          alert(L"您没有权限删除该数据"); | 
 |  |  |          return -1; | 
 |  |  |       } | 
 |  |  |       if(id !="") | 
 |  |  |       if(id !=L"") | 
 |  |  |       { | 
 |  |  |          xml x=new xml; | 
 |  |  |          x.setNativePointer(xml::CreateInstance()); | 
 |  |  |          xaserverarg arg = new xaserverarg; | 
 |  |  |          arg.setNativePointer(arg.CreateInstance()); | 
 |  |  |          arg.AddArg("ColorCardID", id); | 
 |  |  |          if(url::get("ColorCard/pref/beforedelete",arg.GetString(),x)!=1) | 
 |  |  |          xml x; | 
 |  |  | 			 | 
 |  |  |          xaserverarg arg; | 
 |  |  | 			 | 
 |  |  |          arg.AddArg(L"ColorCardID", id); | 
 |  |  |          if(xurl::get(L"ColorCard/pref/beforedelete",arg.GetString(),x)!=1) | 
 |  |  |          { | 
 |  |  |             trace("error:"+x.GetXml()); | 
 |  |  |             alert("删除出错!"); | 
 |  |  |             trace(L"error:"+(xstring)x.xml()); | 
 |  |  |             alert(L"删除出错!"); | 
 |  |  |             return 0; | 
 |  |  |          } | 
 |  |  |          msxml::IXMLDOMElement e= x.GetXmlDoc().documentElement; | 
 |  |  |          if(e.selectSingleNode("error"))  | 
 |  |  |          KXMLDOMElement e= x.documentElement(); | 
 |  |  |          if(e.selectSingleNode(L"error"))  | 
 |  |  |          { | 
 |  |  |             alert(e.selectSingleNode("error").text); | 
 |  |  |             alert(e.selectSingleNode(L"error").text()); | 
 |  |  |             return 0; | 
 |  |  |          }                | 
 |  |  |       }                | 
 |  |  | 
 |  |  |    { | 
 |  |  |       dw_detail.AcceptText(); | 
 |  |  |       int nrow=dw_detail.InsertRow(0); | 
 |  |  |       string tempguid = publiccode::GetGuid(); | 
 |  |  |       dw_detail.SetItemString(dw_detail.GetRow(),"ColorCardID",dw_list.GetItemString(dw_list.GetRow(),"ColorCardID")); | 
 |  |  |       dw_detail.SetItemString(dw_detail.GetRow(),"ColorID",tempguid); | 
 |  |  |       xstring tempguid = publiccode::GetGuid(); | 
 |  |  |       dw_detail.SetItemString(dw_detail.GetRow(),L"ColorCardID",dw_list.GetItemString(dw_list.GetRow(),L"ColorCardID")); | 
 |  |  |       dw_detail.SetItemString(dw_detail.GetRow(),L"ColorID",tempguid); | 
 |  |  |       //OnRetrieveDetail(tempguid); | 
 |  |  |       dw_detail.ShowRowTo(nrow); | 
 |  |  |        | 
 |  |  | 
 |  |  |       int row = dw_detail.GetRow(); | 
 |  |  |       if(row<1) return 0; | 
 |  |  |       int nrow=dw_detail.InsertRow(row); | 
 |  |  |       string tempguid = publiccode::GetGuid(); | 
 |  |  |       dw_detail.SetItemString(dw_detail.GetRow(),"ColorCardID",dw_list.GetItemString(dw_list.GetRow(),"ColorCardID")); | 
 |  |  |       dw_detail.SetItemString(dw_detail.GetRow(),"ColorID",tempguid); | 
 |  |  |       xstring tempguid = publiccode::GetGuid(); | 
 |  |  |       dw_detail.SetItemString(dw_detail.GetRow(),L"ColorCardID",dw_list.GetItemString(dw_list.GetRow(),L"ColorCardID")); | 
 |  |  |       dw_detail.SetItemString(dw_detail.GetRow(),L"ColorID",tempguid); | 
 |  |  |        | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  | 
 |  |  |       int rowz = dw_list.GetRow(); | 
 |  |  |       if(row<1)return 0; | 
 |  |  |       dw_detail.DeleteRow(row); | 
 |  |  |       msxml::IXMLDOMElement ez= this.dw_list.GetRowElement(rowz); | 
 |  |  |       xml xz=new xml; | 
 |  |  |       xz.setNativePointer(xml::CreateInstance());				 | 
 |  |  |       dw_detail.DwUpdateAllToEx(xz.GetXmlDoc());	 | 
 |  |  |       if (ez.selectSingleNode("root"))		 | 
 |  |  |          ez.removeChild(ez.selectSingleNode("root")); | 
 |  |  |       ez.appendChild(xz.GetXmlDoc().documentElement); | 
 |  |  |       KXMLDOMElement ez= dw_list.GetRowElement(rowz); | 
 |  |  |       xml xz;			 | 
 |  |  |       dw_detail.DwUpdateAllToEx(xz);	 | 
 |  |  |       if (ez.selectSingleNode(L"root"))		 | 
 |  |  |          ez.removeChild(ez.selectSingleNode(L"root")); | 
 |  |  |       ez.appendChild(xz.documentElement()); | 
 |  |  |        | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |     | 
 |  |  |    //命令发布函数 | 
 |  |  |    int OnCmdDispatch(string comdid) | 
 |  |  |    int OnCmdDispatch(xstring comdid) | 
 |  |  |    { | 
 |  |  |       if(comdid=="save") OnSave(); | 
 |  |  |       else if(comdid=="add") OnAdd(); | 
 |  |  |       else if(comdid=="insert") OnInsert(); | 
 |  |  |       else if(comdid=="del") OnDelete(); | 
 |  |  |       else if(comdid=="addrowDetail") OnAddRowDetail(); | 
 |  |  |       else if(comdid=="insertrowDetail") OnInsertRowDetail(); | 
 |  |  |       else if(comdid=="deleterowDetail") OnDelRowDetail(); | 
 |  |  |       if(comdid==L"save") OnSave(); | 
 |  |  |       else if(comdid==L"add") OnAdd(); | 
 |  |  |       else if(comdid==L"insert") OnInsert(); | 
 |  |  |       else if(comdid==L"del") OnDelete(); | 
 |  |  |       else if(comdid==L"addrowDetail") OnAddRowDetail(); | 
 |  |  |       else if(comdid==L"insertrowDetail") OnInsertRowDetail(); | 
 |  |  |       else if(comdid==L"deleterowDetail") OnDelRowDetail(); | 
 |  |  |        | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |     | 
 |  |  |    //命令处理事件 | 
 |  |  |    int OnXCommand(ref TXCommandEvent evt,int param) | 
 |  |  |    int OnXCommand(TEvent* evt, LPARAM param) | 
 |  |  |    { | 
 |  |  |       return OnCmdDispatch(evt.pStrID); | 
 |  |  |       return OnCmdDispatch(evt->xcommand.pStrID); | 
 |  |  |    } | 
 |  |  |     | 
 |  |  |    //行改变事件 | 
 |  |  |    int OnListRowChanged(ref TNotifyEvent evt,int p) | 
 |  |  |    int OnListRowChanged(TEvent* evt, int p) | 
 |  |  |    { | 
 |  |  |       dw_detail.AcceptText();					 | 
 |  |  |       ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR); | 
 |  |  |       dw_detail.AcceptText(); | 
 |  |  |  | 
 |  |  |       DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; | 
 |  |  |       int row = hdr.row; | 
 |  |  |       dw_list.Redraw();                | 
 |  |  |       msxml::IXMLDOMElement e = dw_list.GetRowElement(row); | 
 |  |  |       string ColorCardID = e.selectSingleNode("ColorCardID").text;  | 
 |  |  |       KXMLDOMElement e = dw_list.GetRowElement(row); | 
 |  |  |       xstring ColorCardID = e.selectSingleNode(L"ColorCardID").text();  | 
 |  |  |       OnRetrieveDetail(ColorCardID); | 
 |  |  |        | 
 |  |  |       return 1;    | 
 |  |  |    } | 
 |  |  |     | 
 |  |  |    int OnDetailChanged(ref TNotifyEvent evt,int p) | 
 |  |  |    int OnDetailChanged(TEvent* evt, int p) | 
 |  |  |    { | 
 |  |  |       int row = dw_list.GetRow(); | 
 |  |  |       msxml::IXMLDOMElement e= this.dw_list.GetRowElement(row); | 
 |  |  |       xml x=new xml; | 
 |  |  |       x.setNativePointer(xml::CreateInstance());				 | 
 |  |  |       dw_detail.DwUpdateAllToEx(x.GetXmlDoc());			 | 
 |  |  |       if (e.selectSingleNode("root"))		 | 
 |  |  |          e.removeChild(e.selectSingleNode("root")); | 
 |  |  |       e.appendChild(x.GetXmlDoc().documentElement); | 
 |  |  |       KXMLDOMElement e= dw_list.GetRowElement(row); | 
 |  |  |       xml x; | 
 |  |  | 						 | 
 |  |  |       dw_detail.DwUpdateAllToEx(x);			 | 
 |  |  |       if (e.selectSingleNode(L"root"))		 | 
 |  |  |          e.removeChild(e.selectSingleNode(L"root")); | 
 |  |  |       e.appendChild(x.documentElement()); | 
 |  |  |        | 
 |  |  |       return 0; | 
 |  |  |    } | 
 |  |  |     | 
 |  |  |    int OnDwListClick(ref TNotifyEvent evt,int p) | 
 |  |  |    int OnDwListClick(TEvent* evt, int p) | 
 |  |  |    {             | 
 |  |  |       ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR); | 
 |  |  |       DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh; | 
 |  |  |       int row = hdr.row; | 
 |  |  |       dw_list.Redraw();                | 
 |  |  |       msxml::IXMLDOMElement e = dw_list.GetRowElement(row); | 
 |  |  |       string ColorCardID = e.selectSingleNode("ColorCardID").text; | 
 |  |  |       ModifyProcessAction(ColorCardID,"ModifyColorCard"); | 
 |  |  |       KXMLDOMElement e = dw_list.GetRowElement(row); | 
 |  |  |       xstring ColorCardID = e.selectSingleNode(L"ColorCardID").text(); | 
 |  |  |       ModifyProcessAction(ColorCardID,L"ModifyColorCard"); | 
 |  |  |        | 
 |  |  |       return 1;    | 
 |  |  |    } | 
 |  |  | 
 |  |  |    int OnAttachEvent() | 
 |  |  |    { | 
 |  |  |       //绑定工具条点击事件 | 
 |  |  |       AttachEvent("WM_XCOMMAND",OnXCommand); | 
 |  |  |       AttachEvent(L"WM_XCOMMAND", (FEvent)&ColorCardNew::OnXCommand); | 
 |  |  |       //获取焦点事件,用于重置工具条 | 
 |  |  |       AttachEvent("WM_SETFOCUS",OnSetFocus); | 
 |  |  |       AttachEvent(L"WM_SETFOCUS", (FEvent)&ColorCardNew::OnSetFocus); | 
 |  |  |       //行改变事件 | 
 |  |  |       AttachEvent("dw_list","DWV_ROWFOCUSCHANGED",OnListRowChanged); | 
 |  |  |       AttachEvent("dw_detail","DWV_ITEMCHANGED",OnDetailChanged);	 | 
 |  |  |       //AttachEvent("dw_list","DWV_ITEMCHANGED",OnDetailChanged);	 | 
 |  |  |       AttachEvent("dw_list","DWV_CLICKED",OnDwListClick); | 
 |  |  |       AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED", (FEvent)&ColorCardNew::OnListRowChanged); | 
 |  |  |       AttachEvent(L"dw_detail",L"DWV_ITEMCHANGED", (FEvent)&ColorCardNew::OnDetailChanged); | 
 |  |  |       //AttachEvent(L"dw_list",L"DWV_ITEMCHANGED",OnDetailChanged);	 | 
 |  |  |       AttachEvent(L"dw_list",L"DWV_CLICKED", (FEvent)&ColorCardNew::OnDwListClick); | 
 |  |  |        | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  |     | 
 |  |  |    int  OnRetrieve(string str) | 
 |  |  |    int  OnRetrieve(xstring str) | 
 |  |  |    { | 
 |  |  |       xml x=new xml; | 
 |  |  |       x.setNativePointer(xml::CreateInstance()); | 
 |  |  |       xaserverarg arg=new xaserverarg; | 
 |  |  |       arg.setNativePointer(arg.CreateInstance());	 | 
 |  |  |       arg.AddArg("id",str);	 | 
 |  |  |       if (url::get("ColorCard/entity/list",arg.GetString(),x) != 1) | 
 |  |  |       xml x; | 
 |  |  | 		 | 
 |  |  |       xaserverarg arg; | 
 |  |  | 		 | 
 |  |  |       arg.AddArg(L"id",str);	 | 
 |  |  |       if (xurl::get(L"ColorCard/entity/list",arg.GetString(),x) != 1) | 
 |  |  |       { | 
 |  |  |          trace(x.GetXmlDoc().text); | 
 |  |  |          trace(x.text()); | 
 |  |  |          return -1; | 
 |  |  |       }             | 
 |  |  |       //doc=x; | 
 |  |  | 
 |  |  |    int onload() | 
 |  |  |    { | 
 |  |  |  | 
 |  |  |       dw_list = GetControl("dw_list"); | 
 |  |  |       dw_list.openUrl("产品设置.vface/template/ColorCard/list");	 | 
 |  |  |       dw_list = GetControl(L"dw_list"); | 
 |  |  |       dw_list.openUrl(L"产品设置.vface/template/ColorCard/list");	 | 
 |  |  |        | 
 |  |  |       dw_detail = GetControl("dw_detail"); | 
 |  |  |       dw_detail.openUrl("产品设置.vface/template/ColorCard/listex");	 | 
 |  |  |       dw_detail = GetControl(L"dw_detail"); | 
 |  |  |       dw_detail.openUrl(L"产品设置.vface/template/ColorCard/listex");	 | 
 |  |  |       OnInitial(); | 
 |  |  |  | 
 |  |  |       OnRetrieve("FND_ColorCard"); | 
 |  |  |       OnRetrieve(L"FND_ColorCard"); | 
 |  |  |        | 
 |  |  |       return 1; | 
 |  |  |    } | 
 |  |  | }; | 
 |  |  | ] | 
 |  |  | }; |