þÿ#include <wobject/xstring.hpp> #include <xcontrol/xtreeview.hpp> #include <xcontrol/xdwgrid.hpp> #include <xcontrol/xlayersheet.hpp> #include "vbusiness/vframe/maint.vframe.vbusiness.hpp" #include "viewobject/view.base.hpp" using xml = KXMLDOMDocument; class __declspec(dllexport) maintSupplierv3 : public maint { public: xdwtable dw_base; xdwtable dw_kpinfo; xdwtable dw_visitp; xdwtable dw_basegy; xdwgrid dw_supgoods; xlayersheet m_layer; xlayersheet xsheet; //xstring xpage; xstring m_diffstr; public: maintSupplierv3(void* implPtr, HWND hWnd) :maint(implPtr, hWnd) {} public: static maintSupplierv3* CreateInstance(void* implPtr, void* hWnd) { maintSupplierv3* pWin = new maintSupplierv3(implPtr, (HWND)hWnd); return pWin; } xstring str_replace(xstring s, xstring a, xstring b, int k) { int i = s.find(a,k); if (i > -1) { xstring tmp; if(i==0) tmp = b + s.mid(i + a.length(), s.length()); else if (i + a.length() == s.length()) tmp = s.mid(0, i) + b; else tmp = s.mid(0, i) + b + s.mid(i + a.length(), s.length()); str_replace(tmp, a, b, i + b.length() + 1); } else return L""+s; } xstring str_replace(xstring s, xstring a, xstring b) { return str_replace( s, a, b, 0); } int SetAttributeByxml(xml x,xstring nodename,xstring action,xstring status) { KXMLDOMElement e; KXMLDOMNodeList nlist = x.selectNodes(L"//"+nodename+L""); if(nlist) { int nlen = nlist.length(); int i; for(i=0; i<nlen; i++) { e = nlist.item(i); //alert(e.xml); e.setAttribute(action,status.c_str()); //alert(e.xml); } } return 1; } int SetAttributeByaddress(xml x,xstring nodename,xstring action,xstring status) { KXMLDOMElement e; KXMLDOMNodeList nlist = x.selectNodes(L"//"+nodename+L""); if(nlist) { int nlen = nlist.length(); int i; for(i=0; i<nlen; i++) { e = nlist.item(i); //alert(e.xml); e.setAttribute(action,status.c_str()); //alert(e.xml); } } return 1; } int OnPreSave() { dw_base.AcceptText(); dw_kpinfo.AcceptText(); dw_visitp.AcceptText(); //xdwtable__ dw_base = new xdwtable__; //dw_base.setNativePointer(this.GetControl(L"dw_base")); xdwtable dw = dw_base.FindDwTable(L"Supplier",0); xstring sStatus = dw.GetItemString(1,L"Status"); int slen = sStatus.length(); //if (slen >1) xstring AdvantageProduct = dw_base.GetItemString(1,L"AdvantageProduct"); if(AdvantageProduct.rtrim()==L"" ) { alert(L"OR¿N§TÁN:zzÿ"); return -1; } xstring FactoryForPaperCard = dw_base.GetItemString(1,L"FactoryForPaperCard"); xstring FactoryForPart = dw_base.GetItemString(1,L"FactoryForPart"); xstring FactoryForPacking = dw_base.GetItemString(1,L"FactoryForPacking"); xstring FactoryForItem = dw_base.GetItemString(1,L"FactoryForItem"); xstring FactoryForMake = dw_base.GetItemString(1,L"FactoryForMake"); if(FactoryForPaperCard !=L"Y" && FactoryForPart !=L"Y" && FactoryForPacking !=L"Y" && FactoryForItem !=L"Y" && FactoryForMake !=L"Y") { alert(L"O›^”UFR~ÄN:zzÿ"); return -1; } if(sStatus==L"") { alert(L"O›^”UFr¶`“Qeg ‹ïÿ"); return -1; } xstring sPartyNo = dw.GetItemString(1,L"PartyNo"); if (sPartyNo==L"" ) { //sPartyNo = publiccode::GetIdentityNo(L"Party2"); sPartyNo = publiccode::GetIdentityNo(L"Party2"); dw.SetItemString(1,L"PartyNo",sPartyNo); //alert(L"O›^”UFS÷N:zzÿ"); //return -1; } xstring ShortName = dw.GetItemString(1,L"ShortName"); if(ShortName.rtrim()==L"" ) { alert(L"O›^”UF{€yðN:zzÿ"); return -1; } xstring YearEstablished = dw_base.GetItemString(1,L"YearEstablished"); if(YearEstablished.rtrim()==L"" ) { alert(L"bzËeö•ôN:zzÿ"); return -1; } xstring LegalPerson = dw_base.GetItemString(1,L"LegalPerson"); if(LegalPerson.rtrim()==L"" ) { alert(L"lÕNºNãˆhN:zzÿ"); return -1; } xstring ThirdPartyReport = dw_base.GetItemString(1,L"ThirdPartyReport"); if(ThirdPartyReport.rtrim()==L"" ) { alert(L"šŒS‚b¥TJN:zzÿ"); return -1; } xstring SupplierSource = dw_base.GetItemString(1,L"SupplierSource"); if(SupplierSource.rtrim()==L"" ) { alert(L"O›^”UFgenN:zzÿ"); return -1; } xstring Address = dw_base.GetItemString(1,L"Address"); if(Address.rtrim()==L"" ) { alert(L"O›^”UFW0W@N:zzÿ"); return -1; } xstring bAddress = dw_base.GetItemString(1,L"bAddress"); if(bAddress.rtrim()==L"" ) { alert(L"[ÄNöW0W@N:zzÿ"); return -1; } xstring sName = dw.GetItemString(1,L"Name")+L""; sName.rtrim(); //sName = str_replace(sName,L" ",L""); if (sName==L"") { alert(L"O›^”UFT yðN:zzÿ"); return -1; } else { xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"stype", L"Party2"); arg.AddArg(L"svalue", sName); xml x ; KXMLDOMDocument xdoc = x; dw_base.DwUpdateAllTo(xdoc); //KXMLDOMElement e= x.GetXmlDoc().documentElement; //var n = x.GetXmlDoc().selectSingleNode(L"Supplier[@update.new='1']"); //if (n) if (!maint::m_EntityID) { arg.AddArg(L"operate", L"update.new"); } else { arg.AddArg(L"operate", L"update.modify"); } xstring sguid=x.selectSingleNode(L"Supplier/@guid").text(); arg.AddArg(L"sguid", sguid); //alert(sguid,L"->",maint::m_EntityID); bool lbRepeated = publiccode::IsRepeated(arg); if (lbRepeated) { alert(L"O›^”UFT yðg ‘ÍY ÿ"); return -1; } } /*dw = dw_basegy.FindDwTable(L"Supplier",0); xstring suserid = xaserver::GetUserId();//publiccode::GetUserInfo().id; xstring susername = publiccode::GetUser(suserid).name; xstring sdate = publiccode::GetCurrentDate(); dw.SetItemString(1,L"ModifierID",suserid);//Party dw.SetItemDisplayString(1,L"ModifierID",susername);//Party dw.SetItemString(1,L"ModifyDate",sdate);*/ int i; dw = dw_base.FindDwTable(L"item",0); for(i=1;i<=dw.GetRowCount();i++) { xstring aTemp; xstring aName = dw.GetItemString(i,L"Name"); if (aName==L"" ) { aTemp=dw.GetItemString(i,L"JobTitle")+dw.GetItemString(i,L"Gender")+dw.GetItemString(i,L"Mobile")+dw.GetItemString(i,L"TEL")+dw.GetItemString(i,L"Email")+dw.GetItemString(i,L"IM")+dw.GetItemString(i,L"Remark"); if(aTemp !=L"") { alert(L"€T|ûNºT yð_ÅXkÿ"); return -1; } } else { xstring aStatus; aStatus = dw.GetItemString(i,L"Status"); if (aStatus==L"") { dw.SetItemString(i,L"Status",L"1"); } } } /*dw.setNativePointer(dw_base.FindDwTable(L"item2",0)); for(i=1;i<=dw.GetRowCount();i++) { xstring bTemp; bTemp=dw.GetItemString(i,L"AddressName",0)+dw.GetItemString(i,L"Address",0); if(bTemp !=L"" && bTemp != nil) { if (dw.GetItemString(i,L"Status",0)==L"" || dw.GetItemString(i,L"Status",0)==nil) dw.SetItemString(i,L"Status",L"1"); if (dw.GetItemString(i,L"IdentifyAddressFlag",0)==L"" || dw.GetItemString(i,L"IdentifyAddressFlag",0)==nil) dw.SetItemString(i,L"IdentifyAddressFlag",L"N"); if (dw.GetItemString(i,L"PrimaryFlag",0)==L"" || dw.GetItemString(i,L"PrimaryFlag",0)==nil) dw.SetItemString(i,L"PrimaryFlag",L"N"); } }*/ dw = dw_kpinfo.FindDwTable(L"item3",0); for(i=1;i<=dw.GetRowCount();i++) { xstring cTemp; xstring cName = dw.GetItemString(i,L"BankName"); if (cName==L"" ) { cTemp=dw.GetItemString(i,L"BankAccountNo")+dw.GetItemString(i,L"City"); if(cTemp !=L"") { alert(L"”öˆLT yð_ÅXkÿ"); return -1; } } cName = dw.GetItemString(i,L"BankAccountNo"); if (cName==L"" ) { cTemp=dw.GetItemString(i,L"BankName")+dw.GetItemString(i,L"City"); if(cTemp !=L"" ) { alert(L"”öˆL&S÷_ÅXkÿ"); return -1; } } else { if (dw.GetItemString(i,L"Status")==L"" ) dw.SetItemString(i,L"Status",L"1"); } } dw = dw_kpinfo.FindDwTable(L"Party",0); if (dw) { xdwtable dw_b = dw_kpinfo.FindDwTable(L"item3",0); for(i=1;i<=dw.GetRowCount();i++) { xstring skName = dw.GetItemString(i,L"Name"); if (skName==L"" ) { int j; for(j=1;j<=dw_b.GetRowCount();j++) { xstring kTemp = dw_b.GetItemString(j,L"BankName")+dw_b.GetItemString(j,L"BankAccountNo")+L""; if(kTemp !=L"" ) { alert(L"_yhSUOMT yðN:zzÿ"); return -1; } } } } } xdwtable dw_pc = dw_base.FindDwTable(L"item"); for(int h =1; h <= dw_pc.GetRowCount();h++) { if(dw_pc.GetItemString(h,L"Name")==L"") { alert(L"‹÷“Qe€T|ûNºYÓT !"); return -1; } if(dw_pc.GetItemString(h,L"Mobile")==L"") { alert(L"‹÷“Qe€T|ûNºbKg:S÷!"); return -1; } if(dw_pc.GetItemString(h,L"IM")==L"") { alert(L"‹÷“Qe€T|ûNºQQS÷!"); return -1; } } return 1; } int OnChangeRowNo(xdwtable dw,int row) { dw.SetItemString(1, L"SeqNo", L"1"); int i; for (i=row; i<=dw.GetRowCount(); i++) dw.SetItemString(i, L"SeqNo", xstring(i)); return 1; } int OnAddRow() { if (!m_layer) return 0; int h=m_layer.GetSheetIndex(); int nindex = h+1; KXMLDOMElement n = maint::m_configDoc.selectSingleNode(L"//maint/group[@for='dwviev']/dwview["+xstring(nindex)+L"]"); xstring sname= n.selectSingleNode(L"@name").text(); xstring stype=n.selectSingleNode(L"@type").text(); if (stype == L"dwtable") { int row; int crow; xdwtable dw_obj = GetControl(sname); xdwtable dw = dw_obj.GetCurTable(); xstring dw_n=dw.GetDwName(); if(dw_n==L"item" || dw_n==L"item2" || dw_n==L"item3" || dw_n==L"item4") { row = dw.InsertRow(-1); if(dw_n==L"item2" || dw_n==L"item3" || dw_n==L"item4") { OnChangeRowNo(dw,dw.GetRowCount()); } //alert(row.toString()); //dw.SetItemString(row,L"Status",L"Y"); } if (dw_n==L"item3ooo") { dw = dw_obj.FindDwTable(L"Party",0); crow = dw.GetRow(); xstring scName; if (crow >0) scName = dw.GetItemString(crow,L"Name"); row = dw.InsertRow(-1); if (scName !=L"" ) dw.SetItemString(dw.GetRowCount(),L"Name",scName); } if (dw_n==L"Party") { row = dw.InsertRow(-1); crow = dw.GetRow(); //alert(crow.toString()); dw.SetItemString(crow,L"loadpic",L"N O VþrG"); dw.SetItemString(crow,L"dispic",L"gåw "); } } else if (stype==L"dwgrid") { xdwgrid dw_objx = new xdwgrid; dw_objx = GetControl(sname); int xrow = dw_objx.InsertRow(-1); //dw_objx.SetItemString(xrow,L"Status",L"Y"); } return 1; } int OnInsertRow() { if (!m_layer) return 0; int h=m_layer.GetSheetIndex(); int nindex = h+1; KXMLDOMElement n = maint::m_configDoc.selectSingleNode(L"//maint/group[@for='dwviev']/dwview["+ xstring(nindex) +L"]"); xstring sname= n.selectSingleNode(L"@name").text(); xstring stype=n.selectSingleNode(L"@type").text(); if (stype==L"dwtable") { int row; int crow; xdwtable dw_obj = GetControl(sname); xdwtable dw = dw_obj.GetCurTable(); xstring dw_n=dw.GetDwName(); if(dw_n==L"item" || dw_n==L"item2" || dw_n==L"item3" || dw_n==L"item4") { row=dw.GetRow(); if (row == 1) row = 0; crow = dw.InsertRow(row); //dw.SetItemString(crow,L"Status",L"Y"); } if (dw_n==L"Party") { row=dw.GetRow(); if (row == 1) row = 0; crow = dw.InsertRow(row); crow = dw.GetRow(); dw.SetItemString(crow,L"loadpic",L"N O VþrG"); dw.SetItemString(crow,L"dispic",L"gåw "); } } return 1; } int OnDeleteRow() { if (!m_layer) return 0; int h=m_layer.GetSheetIndex(); int nindex = h+1; KXMLDOMElement n = maint::m_configDoc.selectSingleNode(L"//maint/group[@for='dwviev']/dwview["+ xstring(nindex) +L"]"); xstring sname= n.selectSingleNode(L"@name").text(); xstring stype=n.selectSingleNode(L"@type").text(); if (stype==L"dwtable") { int row; xdwtable dw_obj = GetControl(sname); xdwtable dw = dw_obj.GetCurTable(); xstring dw_n=dw.GetDwName(); if(dw_n==L"item" || dw_n==L"item2" || dw_n==L"item3" || dw_n==L"item4"|| dw_n==L"Party") { row=dw.GetRow(); //if(row != 1) //{ dw.DeleteRow(row); //} } if (dw_n==L"Party0") { row=dw.GetRow(); //if(row != 1) //{ dw.DeleteRow(row); //} } } return 1; } xstring onpartyadjust(xstring val) { xml x; xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"content",val); //alert(val); //xstring sguid = xdoc.selectSingleNode(L"@guid").text(); xstring suserid = xaserver::GetUserId(); xstring sdate = publiccode::GetCurrentDate(); //arg.AddArg(L"sguid",sguid); arg.AddArg(L"suserid",suserid); arg.AddArg(L"sdate",sdate); if (xurl::post(L"/sale/data/"+GetEntityName(1)+L"/pref/partyadjust",arg.GetString(),x) != 1) { alert(x.text()); return val; }else { xstring s = x.xml(); //alert(s); return s; } } xstring GetEntityData(LPARAM pr) { xstring val; xml x ; KXMLDOMDocument xdoc = x; KXMLDOMNodeList nlist = maint::m_configDoc.selectNodes(L"//maint/group[@for='dwviev']/dwview[@name !='dw_check' and @name !='dw_supgoods']"); int index; int nlen = nlist.length(); if(nlen>0) { for(index=0;index<nlen;index++) { KXMLDOMElement e = nlist.item(index); xstring sname= e.selectSingleNode(L"@name").text(); xstring stype=e.selectSingleNode(L"@type").text(); if (stype==L"dwtable") { xdwtable dw_obj = GetControl(sname); dw_obj.AcceptText(); if (index==0) { //Address xml xdd ; xstring bAddressID = L""+dw_base.GetItemString(1,L"bAddressID"); if (bAddressID==L" ") { dw_base.SetItemString(1,L"bAddressID",publiccode::GetGuid()); dw_base.SetItemString(1,L"bAddressName",L"®[ÄW0W@"); dw_base.SetItemString(1,L"bStatus",L"1"); dw_base.SetItemString(1,L"bPrimaryFlag",L"N"); dw_base.SetItemString(1,L"bIdentifyAddressFlag",L"N"); dw_base.DwUpdateAllTo(xdd); xstring bAddress = L""+dw_base.GetItemString(1,L"bAddress"); if ( bAddress !=L"") SetAttributeByaddress(xdd,L"bAddress",L"update.new",L"1"); KXMLDOMDocument xdoc = xdd; } else {dw_obj.DwUpdateAllTo(xdoc); } } /*else if (index==1) { xml__ xchk = new xml__; xchk.setNativePointer(xchk.CreateInstance()); dw_obj.DwUpdateAllTo(xchk.GetXmlDoc()); SetAttributeByaddress(xchk,L"item3",L"update.modify",L"1"); SetAttributeByaddress(xchk,L"isdeleted",L"update.modify",L"1"); xdoc = xchk.GetXmlDoc(); }*/ else dw_obj.DwUpdateAllTo(xdoc); } else { xdwgrid dw_objx = GetControl(sname); dw_objx.AcceptText(); dw_objx.DwUpdateAllTo(xdoc); } } } /*var root = xdoc.documentElement; var currNode = root.childNodes.item(1); var MyNewNode = currNode.cloneNode(true); root.appendChild(MyNewNode); alert(xdoc.xml); return ""; /*xml__ x1 = new xml__; x1.setNativePointer(x1.CreateInstance()); x1.LoadXml(L"<a/>"); KXMLDOMElement ele = x1.GetXmlDoc(); var root = xdoc.getElementsByTagName(L"Name").item(0); root.appendChild(ele);*/ val = xdoc.xml() ; //alert(val); val = onpartyadjust(xdoc.xml()); //alert(val); return val; } int SetEntityData(xaserverarg arg) { return 0; } int ProcessFlowAction0(xstring comdid, int pr) { xstring action = comdid.mid(comdid.find(L"action:",0)+7,9999); xaserverarg& arg = *new xaserverarg; xml x ; xstring aurl = L"/workflow/query/actioninfo/"+action; if(xurl::get(aurl, L"", x) != 1) return -1; int nlen ; int i = 0; xstring name; xstring worknode; xstring how; xstring state; KXMLDOMElement e; //SÂep‰lB KXMLDOMNodeList nlist = x.selectNodes(L"//params/param"); nlen = nlist.length(); for(i=0; i<nlen; i++) { e = nlist.item(i); name = e.selectSingleNode(L"@name").text(); how = e.selectSingleNode(L"@how").text(); if(how==L"EntityID") arg.AddArg(name, GetEntityID(pr)); else if(how==L"Entity" || how == L"EntityData") arg.AddArg(name, GetEntityData(pr)); //"CHeckAskMsg" //"CHeckMsg" } arg.AddArg(L"action.entity",GetEntityName(pr)); //R¨O\ if (x.selectSingleNode(L"//view.action[1]")) { KXMLDOMElement n = x.selectSingleNode(L"//view.action[1]"); if(n) { name = n.selectSingleNode(L"@name").text(); //worknode = n.selectSingleNode(L"@worknode").text(); worknode = GetEntityWorkNode(pr,name); arg.AddArg(L"do",name); if(worknode !=L"") { openUrl(worknode,&arg); } else { alert(L"Warn: Please configure worknode for action "+ name +L"."); return 1; } } } else { //url::post(L"/workflow/action/Supplier/bill.update",arg.GetString(),x); xml x1 ; //if (url::post(L"/workflow/action/"+GetEntityName(pr)+L"/"+action,arg.GetString(),x1) != 1) if(xurl::post(L"/sale/data/SupplierV3/entity/owner/save", arg.GetString(),x)!=1) { if (x1.xml()) { xstring error = x1.text(); //alert(error); } } else { //alert(x1.GetXml()); if(x1.selectSingleNode(L"error")) { alert(L"OÝ[XQú•2!"); return 0; } } MessageBoxW(GetHWND(),L"OÝ[XbRŸÿ",L"cÐy:",0); dw_base.ResetUpdateStatus(); dw_kpinfo.ResetUpdateStatus(); dw_visitp.ResetUpdateStatus(); OnRetrieve(); } return 1; } int r1() { KXMLDOMNodeList nlist = maint::m_configDoc.selectNodes(L"//maint/group[@for='dwviev']/dwview"); int index; int nlen = nlist.length(); if(nlen>0) { for(index=0;index<nlen;index++) { KXMLDOMElement e = nlist.item(index); xstring sname= e.selectSingleNode(L"@name").text(); xstring stype=e.selectSingleNode(L"@type").text(); if (stype==L"dwtable") { xdwtable dw_obj = GetControl(sname); xaserverarg& arg = *new xaserverarg; arg.AddArg(L"EntityID", GetEntityID(1)); xml x1 ; xstring dataUrl = L"/sale/data/"+GetEntityName(1)+L"/entity/maint" ; getUrl(dataUrl,arg.GetString(),x1); dw_obj.Retrieve(x1); break; } } return 1; } return 1; } int r2() { xml x; KXMLDOMDocument xdoc = x; //dw_base.DwUpdateAllTo(xdoc); KXMLDOMNodeList nlist = maint::m_configDoc.selectNodes(L"//maint/group[@for='dwviev']/dwview"); int index; int nlen = nlist.length(); if(nlen>0) { for(index=0;index<nlen;index++) { KXMLDOMElement e = nlist.item(index); xstring sname= e.selectSingleNode(L"@name").text(); xstring stype=e.selectSingleNode(L"@type").text(); if (stype==L"dwtable") { xdwtable dw_obj = GetControl(sname); dw_obj.DwUpdateAllToDiff(xdoc); m_diffstr = xdoc.xml(); //alert(m_diffstr); break; } } return 1; } return 1; } int r3() { if(m_diffstr==L"") return 1; xml x ; x.loadXML(m_diffstr); KXMLDOMDocument xdoc = x; //dw_base.DwUpdateAllTo(xdoc); KXMLDOMNodeList nlist = maint::m_configDoc.selectNodes(L"//maint/group[@for='dwviev']/dwview"); int index; int nlen = nlist.length(); if(nlen>0) { for(index=0;index<nlen;index++) { KXMLDOMElement e = nlist.item(index); xstring sname= e.selectSingleNode(L"@name").text(); xstring stype=e.selectSingleNode(L"@type").text(); if (stype==L"dwtable") { xdwtable dw_obj = GetControl(sname); dw_obj.RetrieveDiff(xdoc); dw_obj.Redraw(); break; } } return 1; } return 1; } int test() { xml x ; dw_kpinfo.DwUpdateAllTo(x); //dw_visitp.dwUpdateAllTo(x.GetXmlDoc()); //dw_kpinfo.ClearAdvanceString(1,1); //dw_kpinfo.ClearNoteString(1,1); //dw_kpinfo.ClearOriginString(1,1); //dw_kpinfo.DeleteRows(1,1,1); //dw_kpinfo.ExpandCellRow(1,2); //dw_kpinfo.ExpandMarginRow(2,1); //dw_kpinfo.ExpandRow(2,3); //dw_kpinfo.GetDwType(); ??? //xstring s = dw_kpinfo.GetDwXPath(); //Supplier //KXMLDOMElement e = dw_kpinfo.GetElement(); //alert(e.xml); <xcell state=L"run" name=L"dw_kpinfo"/> //xstring s = dw_kpinfo.GetGuid(1); //xstring s = dw_kpinfo.GetHtml(); ??? //int i = dw_kpinfo.GetId(); //int i = dw_kpinfo.GetXNode(); //dw_kpinfo.SetGuid(1,L"5CF56D30-C02C-4CC0-971B-57894236816A"); return 1; } int OnMoveup() { test(); return 1; if (!m_layer) return 0; int h=m_layer.GetSheetIndex(); int nindex = h+1; KXMLDOMElement n = maint::m_configDoc.selectSingleNode(L"//maint/group[@for='dwviev']/dwview["+xstring(nindex)+L"]"); xstring sname= n.selectSingleNode(L"@name").text(); xstring stype=n.selectSingleNode(L"@type").text(); if (stype==L"dwtable") { xdwtable dw_obj = GetControl(sname); xdwtable dw = dw_obj.GetCurTable(); xstring dw_n=dw.GetDwName(); if(dw_n==L"item3") { int row=dw.GetRow(); if (row == 1) row = 0; int crow = dw.InsertRow(row); //dw. //dw.SetItemString(crow,L"Status",L"Y"); } } return 1; } int OnMovedown() { return 1; } int xxx() { //KXMLDOMElement xframeElement = GetElement(); //KXMLDOMNode xpage = xframeElement.selectSingleNode(L"//xpage"); //alert(xframeElement.xml); /*xstring xfNodeAgentArea = L"layers"; xnode__ anode = GetAgentNode(xfNodeAgentArea); KXMLDOMElement xframeElement = GetElement(); alert(anode.GetXml()); KXMLDOMNode layers = xframeElement.selectSingleNode(L"//layers"); KXMLDOMNodeList nlist; int index; int nlen; KXMLDOMElement ele; if(layers) { nlist = layers.SelectNodes(L".//layer"); nlen = nlist.length(); alert(L"nlen=L",nlen.toString()); } //xstring tools; //SetAgentNodeContent(anode, tools);*/ return 1; } int DoUpdate(bool showSuccess = true) { int rec =OnPreSave(); if (rec== -1) return 0; ProcessFlowAction0(L"action:bill.update",1); return 1; } int PreOnCmdDispatch(xstring comdid) { if(comdid==L"action:xxx") return xxx(); if(comdid==L"retrieve") return r1(); if(comdid==L"retrievediff") return r3(); if(comdid==L"updatediff") return r2(); if(comdid==L"test") return test(); //<action id=L"bill.update" caption=L"OÝ[X" scene=L"maint"/> if(comdid.find(L"action:bill.update",0)>=0) { xstring suserid = xaserver::GetUserId(); PUser pp = publiccode::GetUser(suserid); xstring userno = pp.no; if(userno !=L"admin") { int rec =OnPreSave(); if (rec== -1) return 0;//ÔVÞ0  N W(bgˆLNåN NãxÿÔVÞQvNÖ  bgˆLNåN Nãx0 } ProcessFlowAction0(comdid,1); return 1; } if(comdid.find(L"action:bill.addrow",0)>=0) OnAddRow(); if(comdid.find(L"action:bill.insertrow",0)>=0) OnInsertRow(); if(comdid.find(L"action:bill.deleterow",0)>=0) OnDeleteRow(); if(comdid.find(L"action:bill.moveup",0)>=0) OnMoveup(); if(comdid.find(L"action:bill.movedown",0)>=0) OnMovedown(); return 1; } int OnDoubleClicked(TEvent* evt,int p) { DWNMHDR* hdr = (DWNMHDR*)evt->notify.pnmh; int row = hdr->row; /*if(row < 1 || row > list::dw_list.GetRowCount()) return 1; int hwnd = evt.lParam; int s = combobox::GetCount(cb_config.GetId()); int i; for (i=0; i < s; i++){ combobox cb = new combobox; cb.setNativePointer(this.GetControl(L"value"+i.ToString())); if(hwnd == cb.GetId()) break; }*/ return 1; } int OnItemChangedkp(TEvent* evt,int p) { DWNMHDR* hdr = (DWNMHDR*)evt->notify.pnmh; xstring colname = hdr->colname; xstring value = hdr->data; int row = hdr->row; xdwtable dw = dw_kpinfo.FindDwTable(L"item3",0); if (dw) { row=dw.GetRow(); xstring sdate = publiccode::GetCurrentDate(); dw.SetItemString(row,L"ModifyDate",sdate); } return 1; } int OnItemChanged3(TEvent* evt,int p) { DWNMHDR* hdr = (DWNMHDR*)evt->notify.pnmh; xstring colname = hdr->colname; xstring coldata = hdr->data; xstring value = hdr->data; int row = hdr->row; if(colname==L"DeveloperID") { xml x = new xml; xaserverarg arg ; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"guid",coldata); if (xurl::get(L"/sale/data/"+GetEntityName(1)+L"/pref/getAssignment",arg.GetString(),x) == 1) { KXMLDOMElement e=x.documentElement(); xstring sOrgID = e.selectSingleNode(L"OrgID").text(); xstring sOrgName = e.selectSingleNode(L"OrgName").text(); dw_basegy.SetItemString(1,L"devOrgID",sOrgID); dw_basegy.SetItemDisplayString(1,L"devOrgID",sOrgName); } } if(colname==L"CreatorID") { xml x2 ; xaserverarg arg2 ; arg2.setNativePointer(arg2.CreateInstance()); arg2.AddArg(L"guid",coldata); if (xurl::get(L"/sale/data/"+GetEntityName(1)+L"/pref/getAssignment",arg2.GetString(),x2) == 1) { KXMLDOMElement e2=x2.documentElement(); xstring sOrgID2 = e2.selectSingleNode(L"OrgID").text(); xstring sOrgName2 = e2.selectSingleNode(L"OrgName").text(); dw_basegy.SetItemString(1,L"OrgID",sOrgID2); dw_basegy.SetItemDisplayString(1,L"OrgID",sOrgName2); } } return 1; } int OnItemChanged(TEvent* evt, int p) { DWNMHDR* hdr = (DWNMHDR*)evt->notify.pnmh; xstring colname = hdr->colname; xstring coldata = hdr->data; xstring value = hdr->data; int row = hdr->row; if(colname==L"DeveloperID") { xml x ; xaserverarg arg; arg.setNativePointer(arg.CreateInstance()); arg.AddArg(L"guid",coldata); if (xurl::get(L"/sale/data/"+GetEntityName(1)+L"/pref/getAssignment",arg.GetString(),x) == 1) { KXMLDOMElement e=x.documentElement(); xstring sOrgID = e.selectSingleNode(L"OrgID").text(); xstring sOrgName = e.selectSingleNode(L"OrgName").text(); dw_base.SetItemString(1,L"devOrgID",sOrgID); dw_base.SetItemDisplayString(1,L"devOrgID",sOrgName); } } if(colname==L"CreatorID") { xml x2; xaserverarg arg2 ; arg2.setNativePointer(arg2.CreateInstance()); arg2.AddArg(L"guid",coldata); if (xurl::get(L"/sale/data/"+GetEntityName(1)+L"/pref/getAssignment",arg2.GetString(),x2) == 1) { KXMLDOMElement e2=x2.documentElement(); xstring sOrgID2 = e2.selectSingleNode(L"OrgID").text(); xstring sOrgName2 = e2.selectSingleNode(L"OrgName").text(); dw_base.SetItemString(1,L"OrgID",sOrgID2); dw_base.SetItemDisplayString(1,L"OrgID",sOrgName2); } } if(colname==L"isdeleted") { //xml xchk = new xml; //xchk.setNativePointer(xchk.CreateInstance()); //var xdoc = xchk.GetXmlDoc(); // dw_kpinfo.DwUpdateAllTo(xdoc); //SetAttributeByxml(xchk,L"isdeleted",L"update.modify",L"1"); //dw_kpinfo.SetColumnProp(L"isdeleted",L"update.modify",L"1"); //xdwtable dw = new xdwtable; //dw.setNativePointer(dw_kpinfo.FindDwTable(L"item3",0)); //dw.SetItemString(row,L"isdeleted",coldata); } if(colname == L"ProvinceCode" || colname == L"City" || colname == L"District") { if(colname == L"ProvinceCode") { dw_base.SetItemString(row,L"City",L""); dw_base.SetItemString(row,L"District",L""); dw_base.SetItemDisplayString(row,L"City",L""); dw_base.SetItemDisplayString(row,L"District",L""); } if(colname == L"City") { dw_base.SetItemString(row,L"District",L""); dw_base.SetItemDisplayString(row,L"District",L""); } xstring provinceCode = dw_base.GetItemDisplayString(row,L"ProvinceCode"); xstring city = dw_base.GetItemDisplayString(row,L"City"); xstring district = dw_base.GetItemDisplayString(row,L"District"); dw_base.SetItemString(row,L"Address",provinceCode+city+district); dw_base.SetItemString(row,L"bAddress",provinceCode+city+district); } if(colname == L"Address") { dw_base.SetItemString(row,L"bAddress",dw_base.GetItemString(1,L"Address")); } xdwtable dw = dw_base.FindDwTable(L"Supplier",0); if (dw) { xstring suserid = xaserver::GetUserId();//publiccode::GetUserInfo().id; xstring susername = publiccode::GetUser(suserid).name; xstring sdate = publiccode::GetCurrentDate(); dw.SetItemString(1,L"ModifierID",suserid);//Party dw.SetItemDisplayString(1,L"ModifierID",susername);//Party dw.SetItemString(1,L"ModifyDate",sdate); } return 1; } //--------- int UpLoad(xstring name) { xstring str = name.mid(0,2); str = str.toUpper(); //alert(str); int ret1 = xaserver::Upload(GetServerUrl(), L"supplier" + str, name + L".jpg", GetHWND(), L"", false); //alert(ret1); return ret1; } int OnkpItemClick(TEvent* evt, int p) { xdwtable dw = dw_kpinfo.FindDwTable(L"Party",0); /*xdwtable__ dw1 = new xdwtable__; dw1.setNativePointer(dw_base.FindDwTable(L"item3",0)); */ DWNMHDR* hdr = (DWNMHDR*)evt->notify.pnmh; xstring value = hdr->data; int row = dw.GetRow();// hdr.row; xstring xrow = xstring(row); xaserverarg& arg=*new xaserverarg; if(value == L"N O VþrG") { xstring strguid = publiccode::GetGuid(); //alert(strguid); int ret1 =UpLoad(strguid); if(ret1 == -1) return -1; if(ret1 == 0) { alert(L"N O VþrGY1%"); return -1; } else { alert(L"N O VþrGbRŸ"); xstring strimage=dw.GetItemString(row,L"ImageList1"); //alert(strimage); if(strimage==L"") strimage=L"<ImageList></ImageList>"; xml y; y.loadXML(strimage); KXMLDOMElement ele= y.documentElement(); xml x; xstring xx = L"<ImageList><image>"+strguid+L".jpg</image></ImageList>"; x.loadXML(xx); KXMLDOMElement e= x.selectSingleNode(L"//image"); ele.appendChild(e); dw.SetItemString(row,L"ImageList1",ele.xml()); //dw.Redraw(); } } if(value == L"gåw ") { arg.AddArg(L"src",dw.GetItemString(row,L"ImageList1")); openUrl(L"/sale/view/" + GetEntityName(1) + L"/xpage/supplierattachment/picture", &arg); //alert(arg.GetArgString(L"src")); dw.SetItemString(row,L"ImageList1",arg.GetArgString(L"src")); } return 1; } int OnItemClick(TEvent* evt, int p) { DWNMHDR* hdr1 = (DWNMHDR*)evt->notify.pnmh; xstring colname1= hdr1->colname; DWNMHDR* hdr = (DWNMHDR*)evt->notify.pnmh; xstring value = hdr->data; //alert(value); //xdwtable dw = dw_base.FindDwTable(L"item2",0); //xdwtable dw1 = dw_base.FindDwTable(L"item3",0); xaserverarg& arg=*new xaserverarg; /*if(value == L"N O –DNö") { xstring strguid = publiccode::GetGuid(); //alert(strguid); int ret1 = UpLoad(strguid); if(ret1 == -1) return -1; if(ret1 == 0) { alert(L"N O –DNöY1%"); return -1; } else { alert(L"N O –DNöbRŸ"); xstring strimage=dw_base.GetItemString(1,L"ImageList1"); //alert(strimage); if(strimage==L"") strimage=L"<ImageList></ImageList>"; xml y=new xml; y.setNativePointer(xml::CreateInstance()); y.LoadXml(strimage); KXMLDOMElement ele= y.GetXmlDoc().documentElement; xml x=new xml; x.setNativePointer(xml::CreateInstance()); xstring xx = L"<ImageList><image>"+strguid+L".jpg</image></ImageList>"; x.LoadXml(xx); KXMLDOMElement e= x.GetXmlDoc().selectSingleNode(L"//image"); ele.appendChild(e); dw_base.SetItemString(1,L"ImageList1",ele.xml); dw_base.Redraw(); //alert(ele.xml); } } if(value == L"gåw ") { arg.AddArg(L"src",dw_base.GetItemString(1,L"ImageList1")); //alert(dw_base.GetItemString(1,L"ImageList1")); int pa = arg.getNativePointer(); //alert(GetEntityName(1)); openUrl(L"/sale/view/"+GetEntityName(1)+L"/xpage/supplierattachment/picture", pa); //alert(arg.GetArgString(L"src")); arg.setNativePointer(pa); dw_base.SetItemString(1,L"ImageList1",arg.GetArgString(L"src")); }*/ /*else if(value == L"N§TÁOá`o") { int start=dw_base.GetCellRowFromRowColumn(1,dw_base.GetColumnIndex(L"MainProducts")); dw_base.ExpandCellRow(start,start + dw.GetRowCount() +1); } else if(value == L"‹¾YN§€ý") { int start1=dw_base.GetCellRowFromRowColumn(1,dw_base.GetColumnIndex(L"MainProducts")); int begin=dw_base.GetCellRowFromRowColumn(1,dw_base.GetColumnIndex(L"DeveloperID")); dw_base.ExpandCellRow(start1 + dw.GetRowCount() +3,begin -2); //dw_base.ExpandMarginRow(-22,-20); }*/ if(value == L"O›^”UFDe™–DNö") { arg.AddArg(L"entityid",dw_base.GetGuid(1)); arg.AddArg(L"ApplyStatus",dw_base.GetItemString(1,L"ApplyStatus")); OpenWindow(L"dev:xpage[maint.Document.Supplier.v3.vx]", (LPARAM)&arg); } if(value == L"šŒS‚b¥TJ–DNö") { arg.AddArg(L"entityid",dw_base.GetGuid(1)); arg.AddArg(L"ApplyStatus",dw_base.GetItemString(1,L"ApplyStatus")); OpenWindow(L"dev:xpage[maint.Document.SupplierEx.v3.vx]", (LPARAM)&arg); } else if(value == L"TO\Oá`o") { int start2=dw_base.GetCellRowFromRowColumn(1,dw_base.GetColumnIndex(L"Status")); dw_base.ExpandCellRow(start2,start2 +1); //dw_base.ExpandMarginRow(-22,-20); } if (colname1 == L"ThirdPartyReport") { xaserverarg& arg1 = *new xaserverarg; arg1.setNativePointer(arg.CreateInstance()); dw_base.SetItemString(1,L"ThirdPartyReport",L""); OpenWindow(L"dev:xpage[Inspection.Supplie.vx]", (LPARAM)&arg1); xstring str1 = arg1.GetArgString(L"ThirdPartyReport"); if(str1 != L""){ dw_base.SetItemString(1,L"ThirdPartyReport",str1); dw_base.Redraw(); } } if (colname1 == L"PayType") { xaserverarg& arg2 =* new xaserverarg; arg2.setNativePointer(arg.CreateInstance()); OpenWindow(L"dev:xpage[paymen.Supplier.vx]", (LPARAM)&arg2); xstring str = arg2.GetArgString(L"PayType"); if(str != L""){ dw_base.SetItemString(1,L"PayType",str); dw_base.Redraw(); } } return 1; } int OnSheetChanged(TEvent* evt, int p) { xstring suserid = xaserver::GetUserId(); PUser pp = publiccode::GetUser(suserid); xstring userno = pp.no; if (userno == L"admin" ) { dw_base.SetReadOnly(false); dw_kpinfo.SetReadOnly(false); dw_visitp.SetReadOnly(false); }else { dw_base.SetReadOnly(true); dw_kpinfo.SetReadOnly(true); //dw_visitp.SetReadOnly(true); } return 1; } int OnItemClickExS(TEvent* evt, int p) { xdwtable dw = dw_visitp.FindDwTable(L"item4",0); DWNMHDR* hdr = (DWNMHDR*)evt->notify.pnmh; xstring value = hdr->data; int row = hdr->row; //alert(value); xaserverarg& arg=*new xaserverarg; arg.setNativePointer(arg.CreateInstance()); if(value == L"–DNöN O ") { if(dw.GetGuid(dw.GetRow())==L"") { alert(L"OÝ[XTW(N O ÿ"); return 1; } arg.AddArg(L"entityid",dw.GetGuid(dw.GetRow())); //arg.AddArg(L"ApplyStatus",dw_base.GetItemString(1,L"ApplyStatus")); OpenWindow(L"dev:xpage[maint.Document.Customer.v3.vx]", (LPARAM)&arg); return 1; } if(value == L"NºTX") { xaserverarg& arg2 = *new xaserverarg; arg2.setNativePointer(arg2.CreateInstance()); OpenWindow(L"dev:xpage[SupplierUserGroupPersonSelect.vx]", (LPARAM)&arg2); if(arg2.GetArgString(L"comdid")==L"xmOk") { xstring data = arg2.GetArgString(L"data"); xml x2; x2.loadXML(data); KXMLDOMNodeList nodes = x2.selectNodes(L"/root/item"); trace(x2.xml()); int len = nodes.length(); xstring Names = L""; for(int i=0;i<len; i++) { KXMLDOMElement t= nodes.item(i); if(t.getAttribute(L"Name")) { xstring Name = t.getAttribute(L"Name"); if(Names==L"") Names = Name; else if(Names.find(Name) < 0) Names+=L",L"+Name; } } dw.SetItemString(dw.GetRow(),L"ItemType",Names); } return 1; } return 1; } int PostOnAttachEvent() { AttachEvent(L"dw_base",L"DWV_CLICKED", (FEvent)&maintSupplierv3::OnItemClick); //AttachEvent(L"tab_1", L"LYSN_SELECTEDSHEET",(FEvent)&maintSupplierv3::OnSheetChanged); AttachEvent(L"dw_kpinfo",L"DWV_CLICKED", (FEvent)&maintSupplierv3::OnkpItemClick); AttachEvent(L"dw_kpinfo",L"DWV_ITEMCHANGED", (FEvent)&maintSupplierv3::OnItemChangedkp); AttachEvent(L"dw_base",L"DWV_ITEMCHANGED", (FEvent)&maintSupplierv3::OnItemChanged); AttachEvent(L"dw_basegy",L"DWV_ITEMCHANGED", (FEvent)&maintSupplierv3::OnItemChanged3); AttachEvent(L"dw_visitp",L"DWV_CLICKED", (FEvent)&maintSupplierv3::OnItemClickExS); return 1; } int OnInit() { dw_base = GetControl(L"dw_base"); dw_base.SetColHeaderHeight(16); dw_kpinfo = GetControl(L"dw_kpinfo"); dw_kpinfo.SetColHeaderHeight(16); dw_visitp = GetControl(L"dw_visitp"); dw_visitp.SetColHeaderHeight(16); //xdwtable dw_check = this.GetControl(L"dw_check"); //dw_check.SetColHeaderHeight(16); //dw_check.SetReadOnly(true); dw_basegy = GetControl(L"dw_basegy"); dw_supgoods = GetControl(L"dw_supgoods"); m_layer = GetControl(L"tab_1"); xsheet = GetControl(L"tab_1"); //xstring userno = xaserver::GetUserNo(); xstring ApplyStatus=dw_base.GetItemString(1,L"ApplyStatus"); //if(userno !=L"00601" && userno !=L"admin" && userno !=L"00701") //{ //alert(ApplyStatus); if(ApplyStatus ==L"]òbyQÆ") { dw_visitp.SetReadOnly(false); } //} if (!maint::m_EntityID) { xstring suserid = xaserver::GetUserId(); xstring susername = publiccode::GetUser(suserid).name; xstring sdate = publiccode::GetCurrentDate(); xstring sAddressID = publiccode::GetGuid(); dw_base.SetItemString(1,L"CreatorID",suserid);//Party dw_base.SetItemDisplayString(1,L"CreatorID",susername); dw_base.SetItemString(1,L"CreateDate",sdate); //xstring sCountryCode = dw.GetItemString(1,L"CountryCode",0); //if (sCountryCode==L"" || sCountryCode== nil) dw_base.SetItemString(1,L"CountryCode",L"142"); dw_base.SetItemDisplayString(1,L"CountryCode",L"N-Vý"); dw_base.SetItemString(1,L"Status",L"1"); dw_base.SetItemString(1,L"Type",L"2");//PartyAccount O›^”UF dw_base.SetItemString(1,L"aIdentifyAddressFlag",L"Y");//PartyAddress N;W0W@ dw_base.SetItemString(1,L"aPrimaryFlag",L"Y"); dw_base.SetItemString(1,L"aStatus",L"1"); dw_base.SetItemString(1,L"bAddressID",sAddressID);//PartyAddress [ÄNöW0W@ dw_base.SetItemString(1,L"bAddressName",L"[ÄNöW0W@"); dw_base.SetItemString(1,L"bIdentifyAddressFlag",L"N"); dw_base.SetItemString(1,L"bPrimaryFlag",L"N"); dw_base.SetItemString(1,L"bStatus",L"1"); //dw_base.ResetUpdateStatus(); //dw_check.SetItemDisplayString(1,L"BusinessLicenceFlag",L"„%Nbgqg"); //dw_check.SetItemDisplayString(1,L"TaxRegistrationFlag",L"zR¡v{‹°‹ÁY SpNö"); //dw_check.SetItemDisplayString(1,L"OrganizationCodeFlag",L"~Ä~Çg:g„Nãx"); } //dw_base.SetColHeaderHeight(0); //dw_base.SetRowSelectorWidth(0); //dw_base.SetScrollState(false); return 1; } int onload() { maint::onload(); return 1; } int onloaded() { //PostOnAttachEvent(); maint::onloaded(); OnInit(); xstring suserid = xaserver::GetUserId(); PUser p = publiccode::GetUser(suserid); xstring deptname = p.deptname; xstring userno = p.no; xstring jobname=p.jobname; xstring ApplyStatusEx=dw_base.GetItemString(1,L"ApplyStatus"); //alert(ApplyStatusEx); if (userno == L"admin" ||userno == L"00601" || userno == L"00701" || ApplyStatusEx==L"Oîe9") { dw_base.SetReadOnly(false); dw_kpinfo.SetReadOnly(false); dw_visitp.SetReadOnly(false); }else { dw_base.SetReadOnly(true); dw_kpinfo.SetReadOnly(true); //dw_visitp.SetReadOnly(true); } /*if(deptname != L"N§TÁO›^”è" && userno != L"admin") { xdwtable dw = dw_base.FindDwTable(L"item2",0); int start=dw_base.GetCellRowFromRowColumn(1,dw_base.GetColumnIndex(L"MainProducts")); alert(start.toString()); //dw_base.ExpandCellRow(start,dw.GetRowCount()); alert(L"2"); int start1=dw_base.GetCellRowFromRowColumn(1,dw_base.GetColumnIndex(L"MainProducts")); int begin=dw_base.GetCellRowFromRowColumn(1,dw_base.GetColumnIndex(L"DeveloperID")); alert(L"2"); //dw_base.ExpandCellRow(start1 + dw.GetRowCount() +3,begin -2); int start2=dw_base.GetCellRowFromRowColumn(1,dw_base.GetColumnIndex(L"Status")); alert(L"2"); //dw_base.ExpandCellRow(start2,start2 +1); //dw_kpinfo.openUrl(L"/sale/view/Supplier/template/supplier/kpinfo2"); //maint::OnRetrieve(); }*/ /*if (userno == L"admin" ) { dw_base.SetReadOnly(false); dw_kpinfo.SetReadOnly(false); }else { dw_base.SetReadOnly(true); dw_kpinfo.SetReadOnly(true); } dw_supgoods.SetReadOnly(true); if(jobname==L"NR¡è~Ït" || jobname == L"NR¡~Ït" || jobname == L"NR¡N;{¡" || jobname == L"NR¡~ĕ" || userno == L"admin") { xsheet.SetSheetState(4,1);//f>y:N§TÁ^“ } else { xsheet.SetSheetState(4,0); //–…ÏN§TÁ^“ }*/ return 1; } };