xj qian
2024-07-23 eb39d3d2ca26581f9f0254acd0b1f5d56c9869a8
Merge branch 'master' of http://116.62.18.175:6699/r/mis-prj
已修改4个文件
293 ■■■■ 文件已修改
jrj/ext-jrj/ext-jrj.vcxproj 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/ProductSample/ViewPicturesEx.cpp 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/Public/GroupManagerList.cpp 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/total3/ViewEx1.total.cpp 280 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/ext-jrj/ext-jrj.vcxproj
@@ -767,10 +767,10 @@
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\ProductSample\ViewPicturesEx.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Public\GroupManagerList.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\Public\memo.edit.new.cpp">
@@ -1050,6 +1050,7 @@
    <ClCompile Include="..\project\total3\viewex.total.cpp" />
    <ClCompile Include="..\project\total3\viewex.total1.cpp" />
    <ClCompile Include="..\project\total3\viewex.total2.cpp" />
    <ClCompile Include="..\project\total3\ViewEx1.total.cpp" />
    <ClCompile Include="..\project\total3\ViewTotalArgWin.cpp" />
    <ClCompile Include="..\project\total3\ViewTotalWin.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
jrj/project/business/ProductSample/ViewPicturesEx.cpp
Binary files differ
jrj/project/business/Public/GroupManagerList.cpp
@@ -72,7 +72,7 @@
        int OnCreateTree()
        {
            //int wid = tv_folder.GetId();
            while (tv_folder.GetRootItem() > 0)
            while (!tv_folder.GetRootItem())
                tv_folder.DeleteItem(tv_folder.GetRootItem());
            xml x;
@@ -95,8 +95,8 @@
                {
                    KXMLDOMElement e = nlist.item(i);
                    xstring name = e.selectSingleNode(L"@name").text();
                    HTREEITEM h = tv_folder.InsertChildItem(0, name, name, e, 15);
                    createSubTree(h, e);
                    HTREEITEM h = tv_folder.InsertChildItem(0,  name, e, 15);
                    createSubTree(0,h, e);
                    tv_folder.ExpandItem(h);
                }
                tv_folder.ExpandItem( 0);
@@ -133,7 +133,7 @@
            if (comdid == L"xmMemberAdd")
            {
                HTREEITEM hItem = tv_folder.GetSelectedItem();
                if (hItem < 0) return 1;
                if (!hItem) return 1;
                KXMLDOMElement e = tv_folder.GetItemData(hItem);
                xaserverarg arg;
jrj/project/total3/ViewEx1.total.cpp
@@ -1,41 +1,59 @@
use "xcontrol.vframe.vbusiness.vd"
use "xbase.vframe.vbusiness.vd"
#include <wobject/xwin.hpp>
#include <xcontrol/xdwgrid.hpp>
#include <xcontrol/xoffice.hpp>
#include <xcontrol/xcell.hpp>
#include <xcontrol/xflowchart.hpp>
#include <xcontrol/ximageview.hpp>
#include <xcontrol/xcombobox.hpp>
unit trade
[
    class ViewEx1TotalWin :  public xwin
#include <vbusiness/vutil/publiccode.vutil.vbusiness.hpp>
#include "viewobject/view.base.hpp"
using xml = KXMLDOMDocument;
    class __declspec(dllexport)  ViewEx1TotalWin :  public xwin
    {
    public:
        ViewEx1TotalWin(void* implPtr, HWND hWnd) :xwin(implPtr, hWnd) {}
    public:
        static ViewEx1TotalWin* CreateInstance(void* implPtr, void* hWnd)
        {
            ViewEx1TotalWin* pWin = new ViewEx1TotalWin(implPtr, (HWND)hWnd);
            return pWin;
        }
    public:
        xdwgrid    dw_list;
        xoffice     dw_office;
        xcell        dw_cell;
        xnode    m_agentNode;    //Agent Condition
        msxml::IXMLDOMElement rptEle;
        string m_category;
        string argStr;
        KXMLDOMElement rptEle;
        xstring m_category;
        xstring argStr;
    
        int SetAgent()
        {
            string xfNodeAgentArea  = "agentarea";
            xstring xfNodeAgentArea  = L"agentarea";
            xnode anode = GetAgentNode(xfNodeAgentArea);
            if(m_agentNode)
            {
                SetAgentNodeContent (anode,m_agentNode);
                SetAgentNode (anode,m_agentNode);
            }
            else
            {
                msxml::IXMLDOMElement xframeElement =  GetElement();
                msxml::IXMLDOMElement agent = xframeElement.selectSingleNode("agent/"+xfNodeAgentArea+"[1]/*");
                KXMLDOMElement xframeElement =  GetElement();
                KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
                if(agent)
                {
                    string s = agent.xml;
                    m_agentNode =  SetAgentNodeContent (anode,s);
                    xstring s = agent.xml();
                    m_agentNode =  SetAgentNode (anode,s);
                }
            }
            return 1;
        }
        //焦点激活处理函数
        int OnSetFocus(ref TEvent evt,int param)
        int OnSetFocus(TEvent* evt, int param)
        {
            //重置工具条
            SetAgent();
@@ -43,90 +61,89 @@
        }
        //命令发布函数
        int OnCmdDispatch(string comdid)
        int OnCmdDispatch(xstring comdid)
        {
            int hCursor =  0;
             if(comdid=="xmAnalysis")
            HCURSOR hCursor =  0;
             if(comdid==L"xmAnalysis")
            {
                hCursor = xutil::SetCursorWait();
                string str = dw_list.DataAnalysis("");
                xaserverarg arg=new xaserverarg;
                arg.setNativePointer(arg.CreateInstance());
                arg.AddArg("html", str);
                int obj = cast(dw_list as int);
                arg.AddArg("obj",obj.toString());
                OpenWindow("dev:xpage[data.vanalysis.vx]", cast(arg as int));
                xstring str = dw_list.DataAnalysis(L"");
                xaserverarg arg;
                arg.AddArg(L"html", str);
                OpenWindow(L"dev:xpage[data.vanalysis.vx]", arg);
                xutil::RestoreCursor(hCursor);
                return 1;
             }
             if(comdid=="xmTrans")
             if(comdid==L"xmTrans")
                 return OnTransData();
             if(comdid=="xmQuery")
             if(comdid==L"xmQuery")
            {
                if(rptEle)
                {
                    string argUrl = rptEle.getAttribute("arg");
                    if(argUrl !="")
                    xstring argUrl = rptEle.getAttribute(L"arg");
                    if(argUrl !=L"")
                    {
                        xaserverarg ar = new xaserverarg;
                        ar.setNativePointer(ar.CreateInstance());
                        ar.AddArg("argurl",argUrl);
                        if(argStr !="")
                            ar.AddArg("arg",argStr);
                        OpenWindow("dev:xpage[view.total.arg.vx]",cast(ar as int));
                        string arstr = ar.GetArgString("arg");
                        if(arstr != "" && ar.GetArgString("action")=="ok")
                        xaserverarg ar ;
                        ar.AddArg(L"argurl",argUrl);
                        if(argStr !=L"")
                            ar.AddArg(L"arg",argStr);
                        OpenWindow(L"dev:xpage[view.total.arg.vx]",ar);
                        xstring arstr = ar.GetArgString(L"arg");
                        if(arstr != L"" && ar.GetArgString(L"action")==L"ok")
                        {
                            argStr = arstr;
                            hCursor = xutil::SetCursorWait();
                            OnRetrieve(rptEle.getAttribute("data"),argStr);
                            OnRetrieve(rptEle.getAttribute(L"data"),argStr);
                            xutil::RestoreCursor(hCursor);
                        }
                    }
                    else
                    {
                        argStr="";
                        OnRetrieve(rptEle.getAttribute("data"),argStr);
                        argStr=L"";
                        OnRetrieve(rptEle.getAttribute(L"data"),argStr);
                    }
                }
                return 1;
             }
            if(comdid=="xmSaveAs")
            if(comdid==L"xmSaveAs")
            {
                dw_list.SaveAs("");
                dw_list.SaveAs(L"");
                return 1;
            }
            return 0;
        }
        
        int SwitchReport(msxml::IXMLDOMElement e)
        int SwitchReport(KXMLDOMElement e)
        {
            string dwname = e.getAttribute("template");
            string dataurl = e.getAttribute("data");
            string sheettype = e.getAttribute("reporttype");
            xstring dwname = e.getAttribute(L"template");
            xstring dataurl = e.getAttribute(L"data");
            xstring sheettype = e.getAttribute(L"reporttype");
            if(rptEle != e)
            {
                argStr = "";
                argStr = L"";
                rptEle = e;
            }
            if(sheettype=="") sheettype="report";
            SwitchLayer("dw_"+sheettype,"report");
            if(sheettype=="report")dw_list.openUrl(dwname);
            if(sheettype==L"") sheettype=L"report";
            SwitchLayer(L"dw_"+sheettype,L"report");
            if(sheettype==L"report")dw_list.openUrl(dwname);
            
            SetAgent();
            return 1;
        }
        
        int OnCombboChanged(ref TCommandEvent evt,int lParam)
        int OnCombboChanged(TEvent* evt, int lParam)
        {
            int h = xcombobox::GetCurSel(evt.hCtrl);
            int h = xcombobox::GetCurSel(evt->command.hCtrl);
            if(h > -1) 
            {
                int hCursor = xutil::SetCursorWait();
                msxml::IXMLDOMElement e = xcombobox::GetItemData(evt.hCtrl, h);
                HCURSOR hCursor = xutil::SetCursorWait();
                KXMLDOMElement e = xcombobox::GetItemData(evt->command.hCtrl, h);
                SwitchReport(e);
                win32::PostMessage(GetHWND(),0x401,"xmQuery",0);
                //OnCmdDispatch("xmQuery");
                PostMessage(GetHWND(),0x401,(LPARAM)L"xmQuery",0);
                //OnCmdDispatch(L"xmQuery");
                xutil::RestoreCursor(hCursor);
            }
            return 1;
@@ -134,20 +151,20 @@
        int OnTransData()
        {
            int ret =   win32::MessageBox(GetHWND(),"是否更新数据?\n更新过程预计需要四十分钟,如果中间弹出等待时间过长的提示,请点击中间重试按钮,或等待到一定时间再点击","提示",0x4 /*yesno*/);
            int ret =  MessageBox(GetHWND(),L"是否更新数据?\n更新过程预计需要四十分钟,如果中间弹出等待时间过长的提示,请点击中间重试按钮,或等待到一定时间再点击",L"提示",0x4 /*yesno*/);
            if(ret != 6 /*IDYES */ ) return 1;
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            int hCursor = xutil::SetCursorWait();
            if (url::get("/sale/data/Total3/total/transdata","",x)!=1)
            xml x ;
            HCURSOR hCursor = xutil::SetCursorWait();
            if (xurl::get(L"/sale/data/Total3/total/transdata",L"",x)!=1)
            {
                xutil::RestoreCursor(hCursor);
                return 1;
            }else    
            {
                xutil::RestoreCursor(hCursor);
                alert("数据传输完成!");
                alert(L"数据传输完成!");
                return 1;
            }
            
@@ -155,49 +172,49 @@
        }
            
        //命令处理事件
        int OnXCommand(ref TXCommandEvent evt,int param)
        int OnXCommand(TEvent* evt, int param)
        {
            return OnCmdDispatch(evt.pStrID);
            return OnCmdDispatch(evt->xcommand.pStrID);
        }
        
        int OnDWClick(ref TNotifyEvent evt,int p)
        int OnDWClick(TEvent* evt, int p)
        {
            ref DWNMHDR  hdr = trust(evt.pnmh as ref DWNMHDR);
            string value = hdr.data;
            string colname = hdr.colname;
            DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
            xstring value = hdr.data;
            xstring colname = hdr.colname;
            int row = hdr.row;
            
            if(row < 1) return 1;
            
            xaserverarg arg;
            /*
            if(colname=="SONo")
            if(colname==L"SONo")
            {
                string SONo = dw_list.GetItemString(row,colname);
                xstring SONo = dw_list.GetItemString(row,colname);
                arg=new xaserverarg;
                arg.setNativePointer(arg.CreateInstance());                        
                arg.AddArg("EntityNo",SONo);
                arg.AddArg("ReadOnly","true");
                OpenWindow("dev:xpage[base.maint.so.vx]",arg.getNativePointer());
                arg.AddArg(L"EntityNo",SONo);
                arg.AddArg(L"ReadOnly",L"true");
                OpenWindow(L"dev:xpage[base.maint.so.vx]",arg.getNativePointer());
            }
            if(colname=="InvoiceNo")
            if(colname==L"InvoiceNo")
            {
                string InvoiceNo= dw_list.GetItemString(row,colname);
                xstring InvoiceNo= dw_list.GetItemString(row,colname);
                arg=new xaserverarg;
                arg.setNativePointer(arg.CreateInstance());                        
                arg.AddArg("EntityNo",InvoiceNo);
                arg.AddArg("ReadOnly","true");
                OpenWindow("dev:xpage[maint.GDN3.vx]",arg.getNativePointer());
                arg.AddArg(L"EntityNo",InvoiceNo);
                arg.AddArg(L"ReadOnly",L"true");
                OpenWindow(L"dev:xpage[maint.GDN3.vx]",arg.getNativePointer());
            }
            if(colname=="InvoiceNoEx")
            if(colname==L"InvoiceNoEx")
            {
                string InvoiceNoEx= dw_list.GetItemString(row,colname);
                xstring InvoiceNoEx= dw_list.GetItemString(row,colname);
                arg=new xaserverarg;
                arg.setNativePointer(arg.CreateInstance());                        
                arg.AddArg("EntityNo",InvoiceNoEx);
                arg.AddArg("invoiceno",InvoiceNoEx);
                arg.AddArg("ReadOnly","true");
                OpenWindow("dev:xpage[maint.vatnotify.vx]",arg.getNativePointer());
                arg.AddArg(L"EntityNo",InvoiceNoEx);
                arg.AddArg(L"invoiceno",InvoiceNoEx);
                arg.AddArg(L"ReadOnly",L"true");
                OpenWindow(L"dev:xpage[maint.vatnotify.vx]",arg.getNativePointer());
            }
            */
            return 1;
@@ -206,47 +223,48 @@
        int OnAttachEvent()
        {
            //绑定工具条点击事件
            AttachEvent("WM_XCOMMAND",OnXCommand);
            AttachEvent(L"WM_XCOMMAND", (FEvent)&ViewEx1TotalWin::OnXCommand);
            //获取焦点事件,用于重置工具条
            AttachEvent("WM_SETFOCUS",OnSetFocus);
            AttachEvent("cb_report","CBN_SELCHANGE",OnCombboChanged);
            AttachEvent("dw_report","DWV_CLICKED",OnDWClick);
            AttachEvent(L"WM_SETFOCUS", (FEvent)&ViewEx1TotalWin::OnSetFocus);
            AttachEvent(L"cb_report",L"CBN_SELCHANGE", (FEvent)&ViewEx1TotalWin::OnCombboChanged);
            AttachEvent(L"dw_report",L"DWV_CLICKED", (FEvent)&ViewEx1TotalWin::OnDWClick);
            return 1;
        }
        
        int  OnRetrieve(string dataurl, string argstr)
        int  OnRetrieve(xstring dataurl, xstring argstr)
        {
            if(!rptEle) return 0;
            
            dw_list.Reset();
            
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg("arg",argstr);
            xml x ;
            
            string sheettype = rptEle.getAttribute("reporttype");
            if(sheettype=="") sheettype="report";
            if (url::get(dataurl,arg.GetString(),x)!=1)
            xaserverarg arg ;
            arg.AddArg(L"arg",argstr);
            xstring sheettype = rptEle.getAttribute(L"reporttype");
            if(sheettype==L"") sheettype=L"report";
            if (xurl::get(dataurl,arg.GetString(),x)!=1)
            {
                trace("\r\n--------"+x.GetXmlDoc().text);
                trace(L"\r\n--------"+(xstring)x.text());
                dw_list.Redraw();
                return -1;
            }else    
            {
                //xutil::SaveToFile("C:\\Temp\\Total3.xml",x.GetXml(),"","","");
                if(sheettype=="report")
                //xutil::SaveToFile(L"C:\\Temp\\Total3.xml()",x.GetXml(),L"",L"",L"");
                if(sheettype==L"report")
                {
                    dw_list.Retrieve(x);
                    dw_list.Redraw();
                    dw_list.SetReadOnly(true);
                 }
                else if(sheettype=="cell")
                else if(sheettype==L"cell")
                {
                }
                else if(sheettype=="office")
                else if(sheettype==L"office")
                {
                    dw_office.LoadTemplate(x);
                    dw_office.LoadTemplate(x,0);
                    for(int i=0; i<dw_office.GetSheetCount();i++)
                    {
                        xcell sheet = dw_office.GetSheet(i);
@@ -257,14 +275,14 @@
            return 1;
        }
        xml getReportSet(string category)
        xml getReportSet(xstring category)
        {
            xml x = new xml;
            x.setNativePointer(xml::CreateInstance());
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(arg.CreateInstance());
            arg.AddArg("category",category);
            if (url::get("/sale/data/Total3/reportset",arg.GetString(),x)!=1)
            xml x ;
            xaserverarg arg ;
            arg.AddArg(L"category",category);
            if (xurl::get(L"/sale/data/Total3/reportset",arg.GetString(),x)!=1)
            {
                return 0;
            }
@@ -273,32 +291,33 @@
        
        int onload()
        {
            dw_list = GetControl("dw_report");
            dw_office  = GetControl("dw_office");
            dw_cell = GetControl("dw_cell");
            dw_list.openUrl("/sale/view/Total3/template/sodetail");
            SetArg();
            dw_list = GetControl(L"dw_report");
            dw_office  = GetControl(L"dw_office");
            dw_cell = GetControl(L"dw_cell");
            dw_list.openUrl(L"/sale/view/Total3/template/sodetail");
            
            argStr ="";
            rptEle = 0;
            xcombobox xc = GetControl("cb_report");
            argStr =L"";
            //rptEle = 0;
            xcombobox xc = GetControl(L"cb_report");
            
            //m_category = "total/business";
            m_category = "total/sample";
            if(GetParam()) {
                xaserverarg arg = new xaserverarg;
                arg.setNativePointer(GetParam());
                m_category = arg.GetArgString("category");
            //m_category = L"total/business";
            m_category = L"total/sample";
            if(GetWinParam()) {
                xaserverarg arg =GetArg();
                m_category = arg.GetArgString(L"category");
            }
            xml x = getReportSet(m_category);
            if(x)
            {
                msxml::IXMLDOMNodeList nlist =x.GetXmlDoc().selectNodes("//reports/report");
                int len = nlist.length;
                KXMLDOMNodeList nlist =x.selectNodes(L"//reports/report");
                int len = nlist.length();
                for(int i=0; i<len; i++)
                {
                    msxml::IXMLDOMElement rpt = nlist.item(i);
                    string name = rpt.getAttribute("name");
                    xcombobox::AddItem(xc.GetId(),name,trust(rpt as int));
                    KXMLDOMElement rpt = nlist.item(i);
                    xstring name = rpt.getAttribute(L"name");
                    xc.AddItem(name, rpt);
                    if(i==0) xc.SetText(name);
                    if(i==0) rptEle = rpt;
                }
@@ -314,10 +333,9 @@
            if(rptEle)
            {
                SwitchReport(rptEle);
                //OnCmdDispatch("xmQuery");
                //OnCmdDispatch(L"xmQuery");
            }
            
            return 1;
        }        
    };
]
    };