xj qian
2024-10-23 7f6a81baf9f4f4560cdde66520c2f41c9af03490
update
已修改2个文件
150 ■■■■ 文件已修改
jrj/project/vindexmenu.cpp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/xframe/devloper/sqlwatch.cpp 148 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/vindexmenu.cpp
@@ -77,7 +77,7 @@
        arg.AddArg(L"Assignment", m_Assignment);
        if(xaserver::ExecXQuery(GetServerUrl(),L"[Menu.index.xq]",arg.GetString(),x)!=1)
        {
            //trace(x.xml());
            alert(x.xml());
            return -1;    
        }
        Hxsoft::XFrame::KXMLDOMNodeList li=x.selectNodes(L"items/item");
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"")
            {
@@ -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;