From a4d2315ee4ca3f6177b4fb2526bed2feff3d89be Mon Sep 17 00:00:00 2001
From: lifan <2308045698@qq.com>
Date: 星期三, 22 十月 2025 16:52:58 +0800
Subject: [PATCH] update
---
jrj/xframe/devloper/sqlwatch.cpp | 158 ++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 115 insertions(+), 43 deletions(-)
diff --git a/jrj/xframe/devloper/sqlwatch.cpp b/jrj/xframe/devloper/sqlwatch.cpp
index b7b61e1..1011e23 100644
--- a/jrj/xframe/devloper/sqlwatch.cpp
+++ b/jrj/xframe/devloper/sqlwatch.cpp
@@ -6,6 +6,7 @@
#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
{
@@ -238,10 +239,13 @@
{
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);
}
}
}
@@ -252,13 +256,36 @@
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;
@@ -287,7 +314,7 @@
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"")
@@ -311,6 +338,7 @@
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"")
{
@@ -350,7 +378,7 @@
values = L"";
if (xutil::HasCacheData(L"object-types"))values = xutil::GetUrlData(L"object-types");
- if (values.find(L",L" + typ + L",L") < 0) values += L",L" + typ + L",L";
+ if (values.find(L",L" + typ + L",") < 0) values += L"," + typ + L",";
xutil::CacheUrlData(L"object-types", values);
values = L"";
@@ -424,7 +452,7 @@
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);
@@ -447,7 +475,7 @@
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"")
@@ -461,6 +489,11 @@
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);
@@ -468,17 +501,24 @@
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;
}
@@ -491,28 +531,65 @@
{
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")
@@ -528,12 +605,12 @@
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]");
}
}
}
@@ -541,18 +618,18 @@
{
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]");
}
}
}
@@ -561,7 +638,7 @@
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);
@@ -575,18 +652,20 @@
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;
@@ -596,14 +675,14 @@
{
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"");
@@ -615,14 +694,7 @@
}
int Initenv_xml()
{
- if (!toXml)
- {
- toXml = xml();
- }
- else
- {
- if (toEle)toEle.Release();
- }
+ toXml.Reset();
toXml.loadXML(L"<root/>");
toEle = toXml.documentElement();
return 1;
@@ -678,16 +750,16 @@
xstring values = L"";
xstring tvalue = 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",");
trace(values);
if (values != L"")
{
int len = values.length();
- 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);
tvalue = L"";
@@ -937,7 +1009,7 @@
{
KXMLDOMElement ele = nodes.item(i);
xstring tmp = ele.getAttribute(L"name");
- if (i < s - 1) tmp = tmp + L",L";
+ if (i < s - 1) tmp = tmp + L",";
str += L"\t" + tmp + L"\r\n";
}
//str += L"FROM " + caption;
--
Gitblit v1.9.3