use"lang.vl" use "win.vl" use "dev:vm[xml.vm]" use "treeview.vm" use "dev:vm[xaserverarg.vm]" use "dev:vm[xaserver.vm]" use "dev:vm[xdwgrid.vm]" use "dev:vm[xutil.vm]" use "file.vl" use "list.vl" unit vbusiness.vpage [ QuickCode is extend list; about QuickCode [ field: method: [ xdwgrid__ dw_list; string m_config; string m_agent; string m_id; string m_dbmap; string m_name; string strconfig; msxml::IXMLDOMDocument m_configDoc; int alert(string str) { //win__::MessageBox(this.GetHWND(),str,"Ìáʾ:",0); TApp::alert(this,str); return 0; } int SetAgent() { string xfNodeAgentArea = "agentarea"; xnode__ anode = new xnode__; anode.setNativePointer(GetAgentNode(xfNodeAgentArea)); string magent = m_agent; if (magent == ""){ xml__ x = new xml__; x.setNativePointer(xml__::CreateInstance()); TFile::get(m_config, x); var agent = x.GetXmlDoc().selectSingleNode("config/agentarea/*[1]"); if(agent){ magent = agent.xml; trace(magent); m_agent = magent;//agent.xml; SetAgentNodeContent (anode,magent); } } else SetAgentNodeContent (anode,m_agent); return 1; } int OnCmdDispatch(string comdid) { int hCursor = xutil__::SetCursorWait(); if(comdid == "save"){ //type xaserverarg__ args=new xaserverarg__; args.setNativePointer(args.CreateInstance()); args.AddArg("id",m_id); args.AddArg("name", m_name); xml__ y=new xml__; y.setNativePointer(xml__::CreateInstance()); //TDataSet::exec(m_config,"savetype",args,y); //url::post("QuickCode/pref/quickcode_type.save",args.GetString(),y); //save xml__ x=new xml__; x.setNativePointer(xml__::CreateInstance()); xaserverarg__ arg=new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); dw_list.AcceptText(); dw_list.DwUpdateAllToEx(x.GetXmlDoc()); msxml::IXMLDOMElement e= x.GetXmlDoc().documentElement; e.SetAttribute("id", m_id); //arg.AddArg("id",m_id); arg.AddArg("content",e.xml); arg.AddArg("dbmap", m_dbmap); //trace("-->",m_id); //trace("-->",m_dbmap); //trace(e.xml); /*if(TDataSet::exec(m_config,"save",arg,x)!=1) { trace("error:"+x.GetXml()); alert("±£´æ³ö´í!"); return 0; }*/ //trace(m_dbmap); trace(x.GetXml()); if (url::get("QuickCode/pref/quickcode.save",arg.GetString(),x) != 1) { string error = x.GetXmlDoc().text; trace(error); } trace(x.GetXml()); if(x.GetXmlDoc().selectSingleNode("error")) { alert("±£´æ³ö´í2!"); return 0; } dw_list.ResetUpdateStatus(); alert("±£´æ³É¹¦!"); } else if(comdid=="add"){ dw_list.InsertRow(0); int rows = dw_list.GetRowCount(); dw_list.SetRow(rows); dw_list.SetItemString(rows,"ToCurrencyCode","RMB"); dw_list.SetItemDisplayString(rows,"ToCurrencyCode","ÈËÃñ±Ò"); } else if(comdid=="insert"){ int row = dw_list.GetRow(); if(row<1 || row>dw_list.GetRowCount()) return 0; dw_list.InsertRow(row); dw_list.SetItemString(row,"ToCurrencyCode","RMB"); dw_list.SetItemDisplayString(row,"ToCurrencyCode","ÈËÃñ±Ò"); } else if(comdid == "delet"){ /*int rows = dw_list.GetRowCount(); int row2 = dw_list.GetPrevSelectRow(rows); while(row2 > 0){ dw_list.DeleteRow(row2); row2 = dw_list.GetPrevSelectRow(row2 - 1); } dw_list.SelectRow(0, false);*/ int row2 = dw_list.GetRow(); if(row2<1 || row2>dw_list.GetRowCount()) return 0; dw_list.DeleteRow(row2); } else if(comdid == "import"){ if(m_id=="FND_ExchangeRate") { int ll_delq = win__::MessageBox(this.GetHWND(), "È·¶¨Òª´ÓÀÏϵͳµ¼Èë»ãÂÊÊý¾ÝÂð?","Ìáʾ",1); if (ll_delq != 1) return 0; xml__ xi=new xml__; xi.setNativePointer(xml__::CreateInstance()); xaserverarg__ argi=new xaserverarg__; argi.setNativePointer(argi.CreateInstance()); if (url::get("QuickCode/ExchangeRate/import",argi.GetString(),xi) != 1) { trace(xi.GetXmlDoc().text); return -1; } alert("µ¼Èë³É¹¦!"); dw_list.Redraw(); } } xutil__::RestoreCursor(hCursor); return 0; } int OnXCommand(ref TXCommandEvent evt,int p) { return OnCmdDispatch(""+evt.pStrID); } int OnSetFocus(ref TNotifyEvent evt,int p){ SetAgent(); return 1; } int OnClicked(ref TNotifyEvent evt,int p) { ref DWNMHDR hdr = evt.pnmh; int row = hdr.row; int col=hdr.col + 1; string colname=dw_list.GetColumnName(col); trace(colname); xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); string comdid; if(colname=="CategoryID") { openUrl("²úÆ·×ÊÁÏ.vface/xpage/product/category/dialog", arg); comdid = arg.GetArgString("comdid"); if(comdid=="ok") { string CategoryID = arg.GetArgString("CategoryID"); string CName = arg.GetArgString("CName"); dw_list.SetItemDisplayString(row,colname,CName); dw_list.SetItemString(row,colname,CategoryID); dw_list.Redraw(); } } else if(colname=="MkOrgId") { openUrl("×éÖ¯¼Ü¹¹.vface/xpage/HrOrg/Chart", arg); comdid = arg.GetArgString("comdid"); if(comdid=="xmOk") { string OrgName = arg.GetArgString("OrgName"); string OrgId = arg.GetArgString("OrgId"); dw_list.SetItemDisplayString(row,colname,OrgName); dw_list.SetItemString(row,colname,OrgId); dw_list.Redraw(); } } else if(colname=="Cid") { openUrl("×éÖ¯¼Ü¹¹.vface/xpage/hremployee/select", arg); comdid = arg.GetArgString("comdid"); if(comdid=="xmOk") { string sPersonID = arg.GetArgString("sPersonID"); trace(sPersonID); string sPersonName = arg.GetArgString("sPersonName"); dw_list.SetItemDisplayString(row,colname,sPersonName); dw_list.SetItemString(row,colname,sPersonID); dw_list.Redraw(); } } return 1; } int OnDoubleClicked(ref TNotifyEvent evt,int p) { ref DWNMHDR hdr = evt.pnmh; int row = hdr.row; if(row<1 || row > dw_list.GetRowCount() ) return 0; xaserverarg__ arg = new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); //string str = hdr.data; string colname=hdr.colname; string str = dw_list.GetItemString(row, colname); arg.AddArg("value",str); openUrl("/sale/view/view.dlg/xpage/memo/edit", arg); string comdid = arg.GetArgString("comdid"); if(comdid=="xmOK") { string value = arg.GetArgString("value"); dw_list.SetItemString(row,colname,value); dw_list.Redraw(); } return 1; } int ItemOutput() { string d = xaserver__::GetCurrentDate(); d = d.left(10) +""; dw_list.SaveAs(d); return 1; } int OnSelectAllRow() { int rows = this.dw_list.GetRowCount(); if(rows < 1) return -1; this.dw_list.SelectRow(1, rows, true); this.dw_list.Redraw(); return 1; } int OnRowCopy() { int rows = this.dw_list.GetRowCount(); if(rows < 1) return -1; int cols = this.dw_list.GetColumnCount(); string str = ""; int row = this.dw_list.GetNextSelectRow(1); int i; while(row > 0) { string tmp1 = ""; for(i=1; i 0) { string tmp; if(this.dw_list.GetItemDisplayString(row, col)) tmp = this.dw_list.GetItemDisplayString(row,col); else tmp = this.dw_list.GetItemString(row, col); str += tmp + "\r\n"; row = this.dw_list.GetNextSelectRow(row + 1); } this.dw_list.SetDataToClip(str); return 1; } int OnRClick(ref TNotifyEvent evt,int p) { ref DWNMHDR hdr = evt.pnmh; int row = hdr.row; int m = win__::CreatePopupMenu(); int MF_STRING = 0x00000000; int MF_DISABLED = 0x00000002; int TPM_RIGHTBUTTON = 0x0002; int TPM_RETURNCMD = 0x0100; int MF_CHECKED = 0x8; int MF_SEPARATOR = 0x0800; win__::AppendMenu(m,MF_STRING, 1, "¸´ÖÆÐÐ"); win__::AppendMenu(m,MF_STRING, 101, "¸´ÖÆÁÐ"); win__::AppendMenu(m,MF_SEPARATOR, -1, ""); win__::AppendMenu(m,MF_STRING, 2, "ȫѡ"); win__::AppendMenu(m,MF_SEPARATOR, -1, ""); win__::AppendMenu(m,MF_STRING, 4, "µ¼³öµ½Excel"); win__::AppendMenu(m,MF_SEPARATOR, -1, ""); win__::AppendMenu(m,MF_STRING, 6, "ÏÔʾÁÐÉèÖÃ"); xrect xr; xpoint pt; win__::GetCursorPos(pt); int ret=win__::TrackPopupMenu(m, TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, this.GetHWND(), xr); //trace(ret); int hCursor = xutil__::SetCursorWait(); if(ret == 1) {OnRowCopy();} else if(ret == 101) { string colname=hdr.colname; if(colname != "") OnColCopy(colname); } else if(ret == 2) {OnSelectAllRow();} else if(ret == 4) {ItemOutput();} else if(ret == 6) {} xutil__::RestoreCursor(hCursor); return 1; } int OnAttachEvent() { //»ñÈ¡½¹µãʼþ£¬ÓÃÓÚÖØÖù¤¾ßÌõ AttachEvent("WM_SETFOCUS",OnSetFocus); //°ó¶¨¹¤¾ßÌõµã»÷ʼþ AttachEvent("WM_XCOMMAND",OnXCommand); AttachEvent("dw_list","DWV_DOUBLECLICKED",OnDoubleClicked);//ÐÐË«»÷ AttachEvent("dw_list","DWV_ITEMBEINGEDIT",OnClicked); AttachEvent("dw_list","DWV_RCLICKED",OnRClick);//Êó±êÓÒ¼ü } int OnRetrieve() { xml__ x=new xml__; x.setNativePointer(xml__::CreateInstance()); xaserverarg__ arg=new xaserverarg__; arg.setNativePointer(arg.CreateInstance()); trace("asdasd"); if(m_id.find("__",0) >0) { m_id = m_id.mid(0, m_id.find("__",0)); arg.AddArg("id",m_id); //trace(m_id); /*if (TDataSet::exec(m_config, "query_remark", arg.GetString(),x) != 1) { trace(x.GetXmlDoc().text); return -1; }*/ if (url::get("QuickCode/entity/list_remark",arg.GetString(),x) != 1) { trace(x.GetXmlDoc().text); return -1; } } else { trace("asdasd"); arg.AddArg("id",m_id); arg.AddArg("querytxt",""); /*if (TDataSet::exec(m_config, "query", arg.GetString(),x) != 1) { trace(x.GetXmlDoc().text); return -1; }*/ if (url::get("QuickCode/entity/list",arg.GetString(),x) != 1) { trace(x.GetXmlDoc().text); return -1; } } dw_list.Retrieve(x); dw_list.Redraw(); return 1; } string jxParam(string p, string n) { if(p != "") { p +="&"; int i = 1; while (p.find("=",0)>0) { string name = p.mid(0, p.find("=",0)); string value = p.mid(p.find("=",0) + 1, p.find("&",0) - p.find("=",0) - 1); if(name==n) return ""+value; i += 1; p = p.mid(p.find("&",0) + 1, p.length()); } } return ""; } int getURLParam() { if(GetParam()) { xpage__ xp=new xpage__; xp.setNativePointer(this.GetXPage()); string aurl = xp.GetWkUrl(); xaserverarg__ arg; if(aurl && aurl.find("native=true",0)>0) { int p = this.GetParam(); arg = new xaserverarg__; arg.setNativePointer(p); } else { arg = GetParam(); } string config = arg.GetArgString("config"); xml__ x = new xml__; x.setNativePointer(xml__::CreateInstance()); if(config == "") { string configXml = arg.GetArgString("configxml"); x.LoadXml(configXml); } else { getUrl(config, "", x); } m_configDoc = x.GetXmlDoc(); } return 1; } int loaded() { getURLParam(); msxml::IXMLDOMDocument ee=m_configDoc; string id=m_id; var n = ee.selectSingleNode("//list/dwview[@type='dwgrid'][@id='"+id+"']"); string vface = m_configDoc.selectSingleNode("//vface[1]").text; string dwname = "";//e.selectsingleNode("@name").text; string tpl = "";//e.selectsingleNode("@url").text; string dbmap = ""; if(n) { msxml::IXMLDOMElement e = n; //trace(e.xml); if(e.selectSingleNode("@name")) dwname = e.selectSingleNode("@name").text; if(e.selectSingleNode("@url")) tpl = e.selectSingleNode("@url").text; if(e.selectSingleNode("@dbmap")) dbmap = e.selectSingleNode("@dbmap").text; //trace(vface +"/"+ tpl); //trace(selectmode); } else { var m = ee.selectSingleNode("//list"); msxml::IXMLDOMElement e1 = m; //trace(e.xml); if(e1.selectSingleNode("@name")) dwname = e1.selectSingleNode("@name").text; if(e1.selectSingleNode("@url")) tpl = e1.selectSingleNode("@url").text; if(e1.selectSingleNode("@dbmap")) dbmap = e1.selectSingleNode("@dbmap").text; } m_dbmap = dbmap; dw_list = new xdwgrid__; dw_list.setNativePointer(GetControl(dwname)); dw_list.openUrl(vface +"/"+ tpl); //dw_list.SetSelectionMode(4); } int Onital() { //µØÇø xml__ x1=new xml__; x1.setNativePointer(xml__::CreateInstance()); xaserverarg__ arg1=new xaserverarg__; arg1.setNativePointer(arg1.CreateInstance()); arg1.AddArg("id","µØÇø"); if (url::get("/sale/data/QuickCode/entity/list",arg1.GetString(),x1) != 1) { trace(x1.GetXmlDoc().text); return -1; } var list = x1.GetXmlDoc().selectNodes("root/item"); int i; int s = list.length; if(s>0) { string str = ""; dw_list.SetColumnProps("AreaCode",str); } //±Ò±ð xml__ x2=new xml__; x2.setNativePointer(xml__::CreateInstance()); xaserverarg__ arg2=new xaserverarg__; arg2.setNativePointer(arg2.CreateInstance()); arg2.AddArg("id","FND_Currency"); if (url::get("/sale/data/QuickCode/entity/list",arg2.GetString(),x2) != 1) { trace(x2.GetXmlDoc().text); return -1; } var list1 = x2.GetXmlDoc().selectNodes("root/item"); int j; int s1 = list1.length; if(s1>0) { string str1 = ""; dw_list.SetColumnProps("FromCurrencyCode",str1); } //¹ú¼Ò xml__ x3=new xml__; x3.setNativePointer(xml__::CreateInstance()); xaserverarg__ arg3=new xaserverarg__; arg3.setNativePointer(arg3.CreateInstance()); arg3.AddArg("id","FND_Country"); if (url::get("/sale/data/QuickCode/entity/list",arg3.GetString(),x3) != 1) { trace(x3.GetXmlDoc().text); return -1; } var list2 = x3.GetXmlDoc().selectNodes("root/item"); int k; int s2 = list2.length; if(s2>0) { string str2 = ""; dw_list.SetColumnProps("MkCountryId",str2); } dw_list.SetReadOnlyColumn("ToCurrencyCode"); } int onload() { m_config = "QuickCode.config"; m_agent = ""; //dw_list = new xdwgrid__; //dw_list.setNativePointer(GetControl("dw_list")); //dw_list.SetSelectionMode(4); //dw_list.AllowSort(false); if(this.GetParam()) { xaserverarg__ arg = this.GetParam(); string id = arg.GetArgString("id"); if(id == "") return 0; m_id = id; loaded(); /*string tpl = arg.GetArgString("tpl"); if(tpl == "" && (m_id.find("__",0) >0)) tpl = "QuickCode.tpl/QuickCode_Remark"; else if(tpl == "" ) tpl = "QuickCode.tpl/QuickCode"; dw_list.SetDataObject(GetServerUrl(),"dev:sheet["+tpl+"]"); string dbmap = arg.GetArgString("dbmap"); if(dbmap == "" && (m_id.find("__",0) >0) ) dbmap = "QuickCode_Remark.dbmap"; else if(dbmap == "") dbmap ="QuickCode.dbmap"; m_dbmap = dbmap; string name = arg.GetArgString("name"); if(name == "") name = id; m_name = name; string title = arg.GetArgString("title"); if(title != "") win__::SetWindowText(this.GetHWND(),title);*/ /* param p = this.GetParam(); string pa = ""+p; //string pa = "id=HrOrgType&title=¿Í»§ÀàÐÍ"; string id = jxParam(pa,"id"); if(id == "") return 0; m_id = id; string tpl = jxParam(pa,"tpl"); if(tpl == "" && (m_id.find("__",0) >0)) tpl = "QuickCode.tpl/QuickCode_Remark"; else if(tpl == "" ) tpl = "QuickCode.tpl/QuickCode"; dw_list.SetDataObject(GetServerUrl(),"dev:sheet["+tpl+"]"); string dbmap = jxParam(pa,"dbmap"); if(dbmap == "" && (m_id.find("__",0) >0) ) dbmap = "QuickCode_Remark.dbmap"; else if(dbmap == "") dbmap ="QuickCode.dbmap"; m_dbmap = dbmap; //trace(m_dbmap); string name = jxParam(pa,"name"); if(name == "") name = id; m_name = name; string title = jxParam(pa,"title"); if(title != "") win__::SetWindowText(this.GetHWND(),title);*/ OnRetrieve(); } OnAttachEvent(); SetAgent(); Onital(); return 1; } ] ] ]