| | |
| | | #include <xcontrol/xlayersheet.hpp> |
| | | #include <xcontrol/xsedit.hpp> |
| | | #include <xcontrol/xdwgrid.hpp> |
| | | #include <win32/xfile.hpp> |
| | | using xml = KXMLDOMDocument; |
| | | class __declspec(dllexport) SqlWatchWin : public xwin |
| | | { |
| | |
| | | { |
| | | KXMLDOMNode node = items.item(i); |
| | | xstring src = node.selectSingleNode(L"@src").text(); |
| | | if (src.find(L"mh.com") < 0) |
| | | xstring hDomainGuid = node.selectSingleNode(L"../@guid").text(); |
| | | xstring hP2Guid = node.selectSingleNode(L"@guid").text(); |
| | | //if (src.find(L"mh.com") < 0) |
| | | //if (src.find(L"hxsoft.com") >= 0) |
| | | { |
| | | src = src.replace(L"\\", L"/"); |
| | | processhxd(base + L"/developer", src); |
| | | processhxd(base + L"/developer", src,hDomainGuid,hP2Guid); |
| | | } |
| | | } |
| | | } |
| | |
| | | return 1; |
| | | } |
| | | |
| | | int DownLoadFile2(xstring src, xstring dest) |
| | | int DownLoadObject(xstring ext,xstring dest) |
| | | { |
| | | int ret = xaserver::DownLoadFile(GetServerUrl(), src, L"", dest); |
| | | BYTE* pData = NULL; |
| | | int nLength = 0; |
| | | int ret = xaserver::ProcessCmd(GetServerUrl(), L"uri.hxsoft.com/xaserver/developer getobject", ext.c_str(), pData, nLength); |
| | | if (ret > 0) |
| | | { |
| | | HANDLE fp1; |
| | | DWORD nWrite; |
| | | #define GENERIC_READ (0x80000000L) |
| | | #define GENERIC_WRITE (0x40000000L) |
| | | #define FILE_SHARE_READ 0x00000001 |
| | | #define FILE_SHARE_WRITE 0x00000002 |
| | | #define CREATE_ALWAYS 2 |
| | | #define FILE_ATTRIBUTE_NORMAL 0x00000080 |
| | | fp1 = CreateFileW(dest.c_str(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); |
| | | ::WriteFile(fp1, pData, nLength, &nWrite, NULL); |
| | | ::CloseHandle(fp1); |
| | | if (pData)delete pData; |
| | | } |
| | | return ret; |
| | | } |
| | | |
| | | int DownLoadFile2(xstring src, xstring dest,xstring ext=L"") |
| | | { |
| | | int ret = xaserver::DownLoadFile(GetServerUrl(), src, ext, dest); |
| | | if (ret < 0) |
| | | { |
| | | reconnect(); |
| | | ret = xaserver::DownLoadFile(GetServerUrl(), src, L"", dest); |
| | | ret = xaserver::DownLoadFile(GetServerUrl(), src, ext, dest); |
| | | } |
| | | if (ret < 0)reconnect(); |
| | | return ret; |
| | |
| | | return 1; |
| | | } |
| | | |
| | | KXMLDOMNodeList items = x.selectNodes(L"//file[count(@deleted)=0]"); |
| | | KXMLDOMNodeList items = x.selectNodes(L"//file[count(ancestor-or-self::*/@deleted)=0 ]"); |
| | | xstring caption = x.documentElement().getAttribute(L"caption");; |
| | | xstring srcpath = GetFolder(src); |
| | | if (caption == L"") |
| | |
| | | if (node.selectSingleNode(L"@src")) srcItem = node.selectSingleNode(L"@src").text(); |
| | | xstring typ = L""; |
| | | if (node.selectSingleNode(L"@type")) typ = node.selectSingleNode(L"@type").text(); |
| | | if (typ == L"tpp")typ = L"code"; |
| | | xstring values = L""; |
| | | if (srcItem != L"" && typ != L"") |
| | | { |
| | |
| | | return 1; |
| | | } |
| | | |
| | | int processprj_xml(xstring base, xstring path, xstring src, bool processItem) |
| | | int processprj_xml(xstring base, xstring path, xstring src, bool processItem, xstring hDomainGuid, xstring hP2Guid, xstring hProjectGuid) |
| | | { |
| | | //xcontrol xc = GetControl(L"frame:output"); |
| | | //xc.SetText(L"\r\n process: "+path+L"/"+src); |
| | |
| | | return 1; |
| | | } |
| | | |
| | | KXMLDOMNodeList items = x.selectNodes(L"//file[count(@deleted)=0]"); |
| | | KXMLDOMNodeList items = x.selectNodes(L"//file[count(ancestor-or-self::*/@deleted)=0]"); |
| | | xstring caption = x.documentElement().getAttribute(L"caption");; |
| | | xstring srcpath = GetFolder(src); |
| | | if (caption == L"") |
| | |
| | | |
| | | surePath(dpath, L""); |
| | | int len = items.length(); |
| | | xaserverarg arg; |
| | | arg.AddArg(L"root.guid", hP2Guid); |
| | | arg.AddArg(L"domain.guid", hDomainGuid); |
| | | arg.AddArg(L"project.guid", hProjectGuid); |
| | | |
| | | for (int i = 0; i < len; i++) |
| | | { |
| | | KXMLDOMNode node = items.item(i); |
| | |
| | | |
| | | xstring srcItem = L""; |
| | | xstring id = L""; |
| | | xstring uriItem = L""; |
| | | if (node.selectSingleNode(L"@guid")) id = node.selectSingleNode(L"@guid").text(); |
| | | if (node.selectSingleNode(L"@src")) srcItem = node.selectSingleNode(L"@src").text(); |
| | | if (node.selectSingleNode(L"@uri")) uriItem = node.selectSingleNode(L"@uri").text(); |
| | | xstring typ = L""; |
| | | if (node.selectSingleNode(L"@type")) typ = node.selectSingleNode(L"@type").text(); |
| | | if (typ == L"tpp")typ = L"code"; |
| | | xstring values = L""; |
| | | if (srcItem != L"" && typ != L"") |
| | | { |
| | | ret = DownLoadFile2(L"dev:" + typ + L"[" + srcItem + L"]", dpath + L"/" + srcItem); |
| | | arg.AddArg(L"guid", id); |
| | | ret = DownLoadObject(arg.GetString(), dpath + L"/" + srcItem); |
| | | if(ret < 0) |
| | | ret = DownLoadFile2(L"dev:" + typ + L"[" + uriItem + L"]", dpath + L"/" + srcItem); |
| | | //ret = DownLoadFile2(L"dev:" + typ + L"[" + srcItem + L"]", dpath + L"/" + srcItem); |
| | | if (ret < 0) |
| | | { |
| | | trace(L"\r\nerror load dev:" + typ + L"[" + srcItem + L"]" + L" " + dpath + L"/" + srcItem); |
| | | trace(L"\r\nerror load dev:" + typ + L"[" + uriItem + L"]" + L" " + dpath + L"/" + srcItem); |
| | | continue; |
| | | //return 1; |
| | | } |
| | |
| | | { |
| | | CreateDirectory(base + L"/working/" + typ + L"s", nullptr); |
| | | //DownLoadFile2(L"dev:"+typ+L"["+srcItem+L"]",base+L"/working"+L"/"+typ+L"s/"+id+L".xrl"); |
| | | DownLoadFile2(L"dev:" + typ + id, base + L"/working" + L"/" + typ + L"s/" + id + L".xrl"); |
| | | ret = DownLoadFile2(L"dev:" + typ + id, base + L"/working" + L"/" + typ + L"s/" + id + L".xrl"); |
| | | if (ret < 0) |
| | | { |
| | | trace(L"\r\nerror load dev:" + typ + L"[" + uriItem + L"]" + L" " + L"/working" + L"/" + typ + L"s/" + id + L".xrl"); |
| | | continue; |
| | | //return 1; |
| | | } |
| | | |
| | | } |
| | | else if (typ == L"serialize") |
| | | { |
| | | CreateDirectory(base + L"/working/" + typ, nullptr); |
| | | //DownLoadFile2(L"dev:"+typ+L"["+srcItem+L"]",base+L"/working"+L"/"+typ+L"/"+id+L".xml"); |
| | | DownLoadFile2(L"dev:" + typ + id, base + L"/working" + L"/" + typ + L"/" + id + L".xml"); |
| | | ret = DownLoadFile2(L"dev:" + typ + id, base + L"/working" + L"/" + typ + L"/" + id + L".xml"); |
| | | if (ret < 0) |
| | | { |
| | | trace(L"\r\nerror load dev:" + typ + L"[" + uriItem + L"]" + L" " + L"/working" + L"/" + typ + L"/" + id + L".xml"); |
| | | continue; |
| | | //return 1; |
| | | } |
| | | } |
| | | else if (typ == L"workflow" || typ == L"worknode" || typ == L"xaction" || typ == L"template" || typ == L"xfile" |
| | | || typ == L"xquery" || typ == L"entity" || typ == L"xpage") |
| | | { |
| | | CreateDirectory(base + L"/working/" + typ + L"s", nullptr); |
| | | //DownLoadFile2(L"dev:"+typ+L"["+srcItem+L"]",base+L"/working"+L"/"+typ+L"s/"+id+L".xml"); |
| | | DownLoadFile2(L"dev:" + typ + id, base + L"/working" + L"/" + typ + L"s/" + id + L".xml"); |
| | | ret = DownLoadFile2(L"dev:"+typ+L"["+uriItem+L"]",base+L"/working"+L"/"+typ+L"s/"+id+L".xml"); |
| | | //DownLoadFile2(L"dev:" + typ + id, base + L"/working" + L"/" + typ + L"s/" + id + L".xml"); |
| | | if (ret < 0) |
| | | { |
| | | trace(L"\r\nerror load dev:" + typ + L"[" + uriItem + L"]" + L" " + base + L"/working" + L"/" + typ + L"s/" + id + L".xml"); |
| | | continue; |
| | | //return 1; |
| | | } |
| | | } |
| | | else if (typ == L"code") |
| | | { |
| | | CreateDirectory(base + L"/working/" + typ, nullptr); |
| | | ret = DownLoadFile2(L"dev:" + typ + L"[" + uriItem + L"]", base + L"/working" + L"/" + typ + L"/" + id + L".xss"); |
| | | //DownLoadFile2(L"dev:" + typ + id, base + L"/working" + L"/" + typ + L"/" + id); |
| | | if (ret < 0) |
| | | { |
| | | trace(L"\r\nerror load dev:" + typ + L"[" + uriItem + L"]" + L" " + base + L"/working" + L"/" + typ + L"s/" + id+L".xss"); |
| | | continue; |
| | | //return 1; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | CreateDirectory(base + L"/working/" + typ, nullptr); |
| | | //DownLoadFile2(L"dev:"+typ+L"["+srcItem+L"]",base+L"/working"+L"/"+typ+L"/"+id); |
| | | DownLoadFile2(L"dev:" + typ + id, base + L"/working" + L"/" + typ + L"/" + id); |
| | | ret = DownLoadFile2(L"dev:"+typ+L"["+uriItem+L"]",base+L"/working"+L"/"+typ+L"/"+id); |
| | | //DownLoadFile2(L"dev:" + typ + id, base + L"/working" + L"/" + typ + L"/" + id); |
| | | if (ret < 0) |
| | | { |
| | | trace(L"\r\nerror load dev:" + typ + L"[" + uriItem + L"]" + L" " + base + L"/working" + L"/" + typ + L"s/" + id); |
| | | continue; |
| | | //return 1; |
| | | } |
| | | appendto(typ, L"T(\"" + srcItem + L"\",\"" + id + L"\",\"" + spath + L"/" + srcItem + L"\")[ln]"); |
| | | } |
| | | appendto(typ, L"T(\"" + uriItem + L"\",\"" + id + L"\",\"" + spath + L"/" + srcItem + L"\")[ln]"); |
| | | } |
| | | |
| | | if (typ == L"template") |
| | |
| | | xstring content = tnode.xml(); |
| | | xstring sheetid = L""; |
| | | xstring sheetcaption = L""; |
| | | if (node.selectSingleNode(L"@guid")) sheetid = tnode.selectSingleNode(L"@guid").text(); |
| | | if (node.selectSingleNode(L"@caption")) sheetcaption = tnode.selectSingleNode(L"@caption").text(); |
| | | if (tnode.selectSingleNode(L"@guid")) sheetid = tnode.selectSingleNode(L"@guid").text(); |
| | | if (tnode.selectSingleNode(L"@caption")) sheetcaption = tnode.selectSingleNode(L"@caption").text(); |
| | | xutil::SaveToFile(base + L"/working/sheets/" + sheetid + L".xml", content, L"", L"", (LPTSTR)L""); |
| | | |
| | | appendto(L"sheet", L"T(\"" + srcItem + L"/" + sheetid + L"\",\"" + sheetid + L"\")[ln]"); |
| | | appendto(L"sheet", L"T(\"" + srcItem + L"/" + sheetcaption + L"\",\"" + sheetid + L"\")[ln]"); |
| | | appendto(L"sheet", L"T(\"" + uriItem + L"/" + sheetid + L"\",\"" + sheetid + L"\")[ln]"); |
| | | appendto(L"sheet", L"T(\"" + uriItem + L"/" + sheetcaption + L"\",\"" + sheetid + L"\")[ln]"); |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | xstring srccode = srcItem.replace(L".xpage", L".xss"); |
| | | srccode = srccode.replace(L".vx", L".xss"); |
| | | ret = DownLoadFile2(L"dev:code[" + srcItem + L"]", dpath + L"/" + srccode); |
| | | ret = DownLoadFile2(L"dev:code[" + uriItem + L"]", dpath + L"/" + srccode); |
| | | if (ret < 0) |
| | | { |
| | | trace(L"\r\nerror load dev:code[" + srcItem + L"]" + L" " + dpath + L"/" + srccode); |
| | | trace(L"\r\nerror load dev:code[" + uriItem + L"]" + L" " + dpath + L"/" + srccode); |
| | | continue; |
| | | //return 1; |
| | | } |
| | | if (id != L"") |
| | | { |
| | | DownLoadFile2(L"dev:code[" + srcItem + L"]", base + L"/working" + L"/code/" + id + L".xss"); |
| | | DownLoadFile2(L"dev:code[" + uriItem + L"]", base + L"/working" + L"/code/" + id + L".xss"); |
| | | //DownLoadFile2(L"dev:code"+id,base+L"/working"+L"/code/"+id+L".xss"); |
| | | appendto(L"code", L"T(\"" + srcItem + L"\",\"" + id + L"\",\"" + spath + L"\"" + srcItem + L"\")[ln]"); |
| | | appendto(L"code", L"T(\"" + uriItem + L"\",\"" + id + L"\",\"" + spath + L"\"" + srcItem + L"\")[ln]"); |
| | | } |
| | | } |
| | | } |
| | |
| | | return 1; |
| | | } |
| | | |
| | | int processhxd(xstring base, xstring sfile) |
| | | int processhxd(xstring base, xstring sfile,xstring hDomainGuid,xstring hP2Guid) |
| | | { |
| | | surePath(base, sfile); |
| | | trace(L"\r\n" + base + L"/" + sfile); |
| | |
| | | xml xhd ; |
| | | xhd.load(base + L"/" + sfile); |
| | | |
| | | |
| | | KXMLDOMNodeList items = xhd.selectNodes(L"//project[count(@deleted)=0]"); |
| | | int len = items.length(); |
| | | for (int i = 0; i < len; i++) |
| | | { |
| | | KXMLDOMNode node = items.item(i); |
| | | xstring hProjectGuid = node.selectSingleNode(L"@guid").text(); |
| | | xstring src = L""; |
| | | if (node.selectSingleNode(L"@src")) src = node.selectSingleNode(L"@src").text(); |
| | | if (src != L"") |
| | | { |
| | | xstring path = GetFolder(sfile); |
| | | src = src.replace(L"\\", L"/"); |
| | | processprj_xml(base, path, src, true); |
| | | processprj_xml(base, path, src, true,hDomainGuid,hP2Guid,hProjectGuid); |
| | | } |
| | | } |
| | | return 1; |
| | |
| | | { |
| | | xstring values = L""; |
| | | if (xutil::HasCacheData(L"object-types"))values = xutil::GetUrlData(L"object-types"); |
| | | values = values.replace(L",,L", L",L"); |
| | | values = values.replace(L",,", L","); |
| | | if (values != L"") |
| | | { |
| | | int pos = values.find(L",L", 0); |
| | | int pos = values.find(L",", 0); |
| | | xstring typ = L""; |
| | | while (pos >= 0) |
| | | { |
| | | int pos1 = values.find(L",L", pos + 1); |
| | | int pos1 = values.find(L",", pos + 1); |
| | | if (pos1 < 0) break; |
| | | typ = values.mid(pos + 1, pos1 - pos - 1); |
| | | xutil::CacheUrlData(typ, L""); |
| | |
| | | } |
| | | int Initenv_xml() |
| | | { |
| | | if (!toXml) |
| | | { |
| | | toXml = xml(); |
| | | } |
| | | else |
| | | { |
| | | if (toEle)toEle.Release(); |
| | | } |
| | | toXml.Reset(); |
| | | toXml.loadXML(L"<root/>"); |
| | | toEle = toXml.documentElement(); |
| | | return 1; |