xj qian
2024-12-26 9ec063cf34b6cd13f21c3438330992f03c8665ac
update
已修改3个文件
147 ■■■■■ 文件已修改
jrj/xframe/devloper/XDevEditPage.hpp 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/xframe/devloper/XDevEditXPage.cpp 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/xframe/devloper/devloper.cpp 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/xframe/devloper/XDevEditPage.hpp
@@ -6,6 +6,7 @@
#include <xcontrol/xlayersheet.hpp>
#include <xcontrol/xcombobox.hpp>
#include <vbusiness/vutil/publiccode.vutil.vbusiness.hpp>
#include <win32/xfile.hpp>
using xml = KXMLDOMDocument;
class export XDevEditPage : public xwin
@@ -176,4 +177,142 @@
    {
        return publiccode::GetGuid();
    }
    int ImportItem(HTREEITEM hItem, KXMLDOMElement ele, xstring prjguid, xstring domainguid, xstring rootguid)
    {
        xwin w = GetFrameWindow();
        xtreeview tv_folder = w.GetControl(L"DevExplorer");
        xstring caption = ele.getAttribute(L"src");
        xstring guid = ((KXMLDOMElement)tv_folder.GetItemData(hItem)).getAttribute(L"guid");
        xstring typ = ele.tagName();
        KXMLDOMElement e = tv_folder.GetItemData(hItem);
        xaserverarg arg;
        KXMLDOMNode node = e.selectSingleNode(typ + L"[@caption='" + caption + L"']");
        if (!node)
        {
            //add file folder
            arg.AddArg(L"image", ele.getAttribute(L"image"));
            //arg.AddArg(L"guid", ele.getAttribute(L"guid"));
            arg.AddArg(L"folder", ele.tagName());
            arg.AddArg(L"type", ele.getAttribute(L"type"));
            arg.AddArg(L"desc", ele.getAttribute(L"desc"));
            arg.AddArg(L"uri", ele.getAttribute(L"uri"));
            arg.AddArg(L"src", ele.getAttribute(L"src"));
            arg.AddArg(L"name", ele.getAttribute(L"caption"));
            arg.AddArg(L"parent.guid", guid);
            arg.AddArg(L"project.guid", prjguid);
            arg.AddArg(L"domain.guid", domainguid);
            arg.AddArg(L"root.guid", rootguid);
            xstring str = ProcessDevCmd(L"addfolder", arg.GetString());
            if (str != L"")
            {
                xml x;
                x.loadXML(str);
                auto e1 = x.documentElement();
                e.appendChild(e1);
                int himage = xstring(e1.getAttribute(L"image")).toInt();
                HTREEITEM hNewItem = tv_folder.InsertChildItem(hItem, arg.GetArgString(L"name"), e1, himage);
                int GENERIC_READ = 0x80000000;
                int GENERIC_WRITE = 0x40000000;
                int FILE_SHARE_READ = 0x00000001;
                int FILE_SHARE_WRITE = 0x00000002;
                int OPEN_EXISTING = 3;
                int FILE_ATTRIBUTE_ARCHIVE = 0x00000020;
                HANDLE hFile = xfile::CreateFile(L"D:\\jrjhome\\developer-yh\\projects\\mherp.com.cn\\前端策略\works\\供应链\\" + sTemplName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);
                if (hFile > 0)
                {
                    //int GMEM_MOVEABLE=0x0002;
                    //int GMEM_ZEROINIT=0x0040;
                    //int MEMSIZE;
                    //int hMemory = GlobalAlloc(GMEM_MOVEABLE|GMEM_ZEROINIT,MEMSIZE);
                    //int pMemory = GlobalLock(hMemory);
                    //int SizeReadWrite;
                    //xwin::ReadFile(hFile,pMemory,MEMSIZE - 1,SizeReadWrite,0);
                    DWORD FileSizeHigh = 0;
                    int filesize = xfile::GetFileSize(hFile,FileSizeHigh);
                    char * buffer = new char[filesize+2];
                    DWORD readsize;
                    xfile:ReadFile(hFile, buffer, filesize, &readsize, 0);
                    xfile::CloseHandle(hFile);
                }
                int lens;
                KXMLDOMNodeList nodes = ele.selectNodes(L"node()");
                lens = nodes.length();
                for (int i = 0; i < lens; i++)
                {
                    KXMLDOMElement child = nodes.item(i);
                    ImportItem(hNewItem, child, prjguid, domainguid, rootguid);
                }
            }
            return 1;
        }
        return 1;
    }
    int ImportItems(xstring srcfile, xstring id)
    {
        xwin w = GetFrameWindow();
        xtreeview tv_folder = w.GetControl(L"DevExplorer");
        HTREEITEM hItem = tv_folder.GetSelectedItem();
        if (!hItem) return 1;
        xml src;
        src.load(srcfile);
        xstring path = L"//*[(name()='file' or name()='folder') and @src='" + id + L"']";
        const wchar_t* str = src.xml();
        KXMLDOMElement srcele = src.selectSingleNode(path);
        if (!srcele) return 1;
        //find project folder
        xstring prjguid = L"";
        xstring domainguid = L"";
        xstring rootguid = L"";
        HTREEITEM pitem = GetProjectItem(tv_folder,hItem);
        if (pitem && pitem != hItem)
            prjguid = ((KXMLDOMElement)tv_folder.GetItemData(pitem)).getAttribute(L"guid");
        HTREEITEM hP2Item = 0;
        HTREEITEM hDomainItem = 0;
        KXMLDOMElement e = tv_folder.GetItemData(hItem);
        if (!tv_folder.GetParentItem(hItem))
        {
            hDomainItem = hItem;
        }
        else
        {
            hP2Item = GetP2Item(tv_folder,hItem);
            hDomainItem = tv_folder.GetParentItem(hP2Item);
        }
        if (hP2Item)
        {
            KXMLDOMElement p = tv_folder.GetItemData(hP2Item);
            rootguid = p.getAttribute(L"guid");
        }
        if (hDomainItem)
        {
            KXMLDOMElement d = tv_folder.GetItemData(hDomainItem);
            domainguid = d.getAttribute(L"guid");
        }
        int lens;
        KXMLDOMNodeList nodes = srcele.selectNodes(L"node()");
        lens = nodes.length();
        for (int i = 0; i < lens; i++)
        {
            KXMLDOMElement child = nodes.item(i);
            ImportItem(hItem, child, prjguid, domainguid, rootguid);
        }
        return 1;
    }
};
jrj/xframe/devloper/XDevEditXPage.cpp
@@ -53,6 +53,12 @@
        if (comdid == L"xmPreview")
        {
        }
        else if (comdid == L"xmImport")
        {
            ImportItems(L"file://D:/jrjhome/developer-yh/projects/mherp.com.cn/前端策略/works/供应链.xml",
                L"Profit3.vface");// L"{94124797-1F4A-4BAC-8839-B5A119895C92}");
            return 1;
        }
        else if (comdid == L"xmFileSaveEx")
        {
            xsedit xs = GetControl(L"xpagecontent");
jrj/xframe/devloper/devloper.cpp
@@ -524,6 +524,8 @@
        sheet_Count = s;
        return 1;
    }
    int OnAttachEvent()
    {
        //绑定工具条点击事件