xj qian
2024-07-19 7e70f74c002a311f27e81712e738fec07fb2cdff
update
已添加2个文件
已修改1个文件
602 ■■■■■ 文件已修改
jrj/ext-jrj/ext-jrj.vcxproj 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/AP/list.RefundGDNLine.Entity.xarch.cpp 302 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/project/business/AP/list.RefundSourcingLine.Entity.xarch.cpp 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrj/ext-jrj/ext-jrj.vcxproj
@@ -258,6 +258,8 @@
    <ClCompile Include="..\project\business\AP\list.ap.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
    <ClCompile Include="..\project\business\AP\list.RefundGDNLine.Entity.xarch.cpp" />
    <ClCompile Include="..\project\business\AP\list.RefundSourcingLine.Entity.xarch.cpp" />
    <ClCompile Include="..\project\business\AP\maint.ap.cpp">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
    </ClCompile>
jrj/project/business/AP/list.RefundGDNLine.Entity.xarch.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,302 @@
#include <wobject/xstring.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xdwgrid.hpp>
#include <wobject/xdouble.hpp>
#include <xcontrol/xlayersheet.hpp>
#include <xcontrol/xdatetimepick.hpp>
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
using xml = KXMLDOMDocument;
    class __declspec(dllexport)  RefundGDNLineMaintListView :  public xframe
    {
    public:
        xdwgrid    dw_list;
        xdwtable    dw_arg;
        xnode        m_agentNode;    //Agent Condition
        xstring         str_url ;
        xstring            m_entityid;
    public:
        RefundGDNLineMaintListView(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
    public:
        static RefundGDNLineMaintListView* CreateInstance(void* implPtr, void* hWnd)
        {
            RefundGDNLineMaintListView* pWin = new RefundGDNLineMaintListView(implPtr, (HWND)hWnd);
            return pWin;
        }
        int SetAgent()
        {
            xstring xfNodeAgentArea  = L"agentarea";
            xnode anode = GetAgentNode(xfNodeAgentArea);
            if(m_agentNode)
            {
                SetAgentNode (anode,m_agentNode);
            }
            else
            {
                KXMLDOMElement xframeElement =  GetElement();
                KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
                if(agent)
                {
                    xstring s = agent.xml();
                    m_agentNode =  SetAgentNode (anode,s);
                }
            }
            return 1;
        }
        xstring GetEntityName(int pr)
        {
            return L"RefundGDNLine";
        }
        xstring GetEntityID(int pr)
        {
            int row = dw_list.GetRow();
            xstring id = dw_list.GetItemString(row,m_entityid);
            return id;
        }
        int ProcessUsedArg(xaserverarg arg)
        {
            xstring EntityIDList = L"";
            int ll_row = dw_list.GetNextSelectRow(1);
            while(ll_row > 0 && ll_row <= dw_list.GetRowCount())
            {
                xstring id=dw_list.GetItemString(ll_row,m_entityid);
                if(EntityIDList == L"") EntityIDList = id; else EntityIDList  += L",L" + id;
                ll_row =  dw_list.GetNextSelectRow(ll_row + 1);
            }
            if(EntityIDList != L"") arg.AddArg(L"EntityID",EntityIDList);
            return 1;
        }
        //焦点激活处理函数
        int OnSetFocus(TEvent* evt, LPARAM param)
        {
            //重置工具条
            //SetAgent(L"list",GetEntityID(1));
            SetAgent();
            return 1;
        }
        int OnItemChanged(TEvent* evt, LPARAM p)
        {
            DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
            xstring colname=hdr.colname;
            xstring value = hdr.data;
            xstring dwname = L"dw_list";
            if(value != L"")
            {
                KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='"+dwname+L"']/trans[@for='"+colname+L"']");
                ViewObject::TransData(nlist, dw_list, hdr.row, colname, value);
            }
            return 1;
        }
        int OnAdd()
        {
            dw_list.InsertRow(0);
            return 1;
        }
        int OnDelete()
        {
            int row = dw_list.GetRow();
            if(row < 1) return 1;
            if (MessageBox(GetHWND(),L"是否删除此数据!",L"提示",1) == 2)
                return 1;
            dw_list.DeleteRow(0);
            return 1;
        }
        int OnSave()
        {
            dw_list.AcceptText();
            if(dw_list.GetRowCount()>0)
            {
                if(dw_list.GetItemString(dw_list.GetRowCount(),L"序号")==L"") dw_list.DeleteRow(dw_list.GetRowCount());
            }
            xml x ;
            KXMLDOMDocument xdoc = x;
            dw_list.DwUpdateAllToEx(xdoc);
            xaserverarg arg ;
            arg.AddArg(L"content",x.xml());
            //trace(x.xml());
            if(xurl::get(L"/sale/data/Gdn/update/RefundGDNLine", arg.GetString(),x)!=1)
            {
                xstring error = x.text();
                alert(L"err:"+error);
                alert(L"保存失败!");
                return -1;
            }
            xstring str = x.documentElement().getAttribute(L"text");
            if(str == L"false")
            {
                alert(L"数据保存失败!");
                return -1;
            }
            dw_list.ResetUpdateStatus();
            alert(L"数据保存完成!");
            return 1;
        }
        int OnSearch()
        {
            xml x ;
            xaserverarg arg ;
            arg.AddArg(L"query",GetQueryArg());
            if (getUrl(str_url,arg.GetString(),x)!=1)
            {
                trace(x.text());
                return -1;
            }else
            {
                dw_list.Retrieve(x);
                dw_list.Redraw();
            }
            return 1;
        }
        int OnRowChanged(TEvent* evt, LPARAM p)
        {
            DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
            int row = hdr.row;
            //SetAgent(L"list",dw_list.GetItemString(row,m_entityid));
            return 1;
        }
        //命令发布函数
        int OnCmdDispatch(xstring comdid)
        {
            if(comdid == L"action:bill.new")
                return OnAdd();
            else if(comdid == L"action:bill.delete")
                return OnDelete();
            else if(comdid == L"action:bill.update")
                return OnSave();
            else if(comdid == L"xmSearch")
                return OnSearch();
            else if(comdid.find(L"action:",0)>=0)
            {
                int ret = ProcessFlowAction(comdid, 1);
            }
            return 0;
        }
        int ViewUpdate(int pr,xstring updateItem,xaserverarg  arg)
        {
            if(    updateItem==L"setstate")
            {
                //OnRetrieve(query);
            }
            return 1;
        }
        //命令处理事件
        int OnXCommand(TEvent* evt, LPARAM param)
        {
            return OnCmdDispatch(evt->xcommand.pStrID);
        }
        int OnRowChanged(TEvent* evt, LPARAM p)
        {
            DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
            int row = hdr.row;
            //SetAgent(L"list",dw_list.GetItemString(row,GetEntityID(1)));
            return 1;
        }
        int OnAttachEvent()
        {
            //绑定工具条点击事件
            AttachEvent(L"WM_XCOMMAND", (FEvent)&RefundGDNLineMaintListView::OnXCommand);
            //获取焦点事件,用于重置工具条
            AttachEvent(L"WM_SETFOCUS", (FEvent)&RefundGDNLineMaintListView::OnSetFocus);
            AttachEvent(L"dw_list",L"DWV_ITEMCHANGED", (FEvent)&RefundGDNLineMaintListView::OnItemChanged);
            //AttachEvent(L"dw_list",L"DWV_DOUBLECLICKED",OnUpdate);//行双击
            AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED", (FEvent)&RefundGDNLineMaintListView::OnRowChanged);//绑定行更改触发事件OnRowChanged
            return 1;
        }
        xstring GetQueryArg()
        {
            dw_arg.AcceptText();
            xml x ;
            dw_arg.DwUpdateAllTo(x);
            return x.xml();
        }
        int  OnRetrieve(xstring query)
        {
            xml x ;
            xaserverarg arg ;
            arg.AddArg(L"query",query);
            arg.AddArg(L"QueryArg",L"");
            if (getUrl(str_url,arg.GetString(),x)!=1)
            {
                trace(L"错误信息=L"+(xstring)x.text());
                return -1;
            }else
            {
                dw_list.Retrieve(x);
                dw_list.Redraw();
            }
            //dw_list.SetSelectionMode(3);
            return 1;
        }
        int onload()
        {
            str_url = L"/sale/data/GDN/fetch/RefundGDNLine";
            dw_list = GetControl(L"dw_list");
            //dw_list.openUrl(L"/sale/view/Expense3/commodity/list");
            dw_list.SetDataObject(GetServerUrl(),L"dev:sheet[list.RefundGDNLine.Entity.xarch.tpl/退税出口明细]");
            //dw_list.SetSelectionMode(1);
            dw_arg = GetControl(L"dw_arg");
            dw_arg.SetDataObject(GetServerUrl(),L"dev:sheet[list.RefundGDNLine.Entity.xarch.tpl/退税出口明细参数]");
            dw_arg.SetColHeaderHeight(0);
            dw_arg.SetRowSelectorWidth(0);
            dw_arg.SetHScrollState(false);
            dw_arg.SetVScrollState(false);
            dw_list.SetColumnState(L"CIEID", false);
            dw_list.SetColumnState(L"CommDate", false);
            //dw_list.SetReadOnly(true);
            OnAttachEvent();
            return 1;
        }
        int onloaded()
        {
            SetAgent();
            //SetAgent(L"list",GetEntityID(1));
            OnRetrieve(L"");
            return 1;
        }
    };
jrj/project/business/AP/list.RefundSourcingLine.Entity.xarch.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,298 @@
#include <wobject/xstring.hpp>
#include <xcontrol/xtreeview.hpp>
#include <xcontrol/xdwgrid.hpp>
#include <wobject/xdouble.hpp>
#include <xcontrol/xlayersheet.hpp>
#include <xcontrol/xdatetimepick.hpp>
#include "vbusiness/vframe/listwin.vframe.vbusiness.hpp"
#include "viewobject/view.base.hpp"
using xml = KXMLDOMDocument;
    class __declspec(dllexport)  RefundSourcingLineMaintListView :  public xframe
    {
    public:
        xdwgrid    dw_list;
        xdwtable    dw_arg;
        xnode        m_agentNode;    //Agent Condition
        xstring         str_url ;
        xstring            m_entityid;
    public:
        RefundSourcingLineMaintListView(void* implPtr, HWND hWnd) :xframe(implPtr, hWnd) {}
    public:
        static RefundSourcingLineMaintListView* CreateInstance(void* implPtr, void* hWnd)
        {
            RefundSourcingLineMaintListView* pWin = new RefundSourcingLineMaintListView(implPtr, (HWND)hWnd);
            return pWin;
        }
        int SetAgent()
        {
            xstring xfNodeAgentArea  = L"agentarea";
            xnode anode = GetAgentNode(xfNodeAgentArea);
            if(m_agentNode)
            {
                SetAgentNode (anode,m_agentNode);
            }
            else
            {
                KXMLDOMElement xframeElement =  GetElement();
                KXMLDOMElement agent = xframeElement.selectSingleNode(L"agent/"+xfNodeAgentArea+L"[1]/*");
                if(agent)
                {
                    xstring s = agent.xml();
                    m_agentNode =  SetAgentNode (anode,s);
                }
            }
            return 1;
        }
        int OnSave()
        {
            dw_list.AcceptText();
            if(dw_list.GetRowCount()>0)
            {
                if(dw_list.GetItemString(dw_list.GetRowCount(),L"序号")==L"") dw_list.DeleteRow(dw_list.GetRowCount());
            }
            xml x ;
            KXMLDOMDocument xdoc = x;
            dw_list.DwUpdateAllToEx(xdoc);
            xaserverarg arg ;
            arg.AddArg(L"content",x.xml());
            if(xurl::get(L"/sale/data/Gdn/update/RefundSourcingLine", arg.GetString(),x)!=1)
            {
                xstring error = x.text();
                alert(L"err:"+error);
                alert(L"保存失败!");
                return -1;
            }
            xstring str = x.documentElement().getAttribute(L"text");
            if(str == L"false")
            {
                alert(L"数据保存失败!");
                return -1;
            }
            dw_list.ResetUpdateStatus();
            alert(L"数据保存完成!");
            return 1;
        }
        xstring GetEntityName(int pr)
        {
            return L"RefundSourcingLine";
        }
        xstring GetEntityID(int pr)
        {
            int row = dw_list.GetRow();
            xstring id = dw_list.GetItemString(row,m_entityid);
            return id;
        }
        int ProcessUsedArg(xaserverarg arg)
        {
            xstring EntityIDList = L"";
            int ll_row = dw_list.GetNextSelectRow(1);
            while(ll_row > 0 && ll_row <= dw_list.GetRowCount())
            {
                xstring id=dw_list.GetItemString(ll_row,m_entityid);
                if(EntityIDList == L"") EntityIDList = id; else EntityIDList  += L",L" + id;
                ll_row =  dw_list.GetNextSelectRow(ll_row + 1);
            }
            if(EntityIDList != L"") arg.AddArg(L"EntityID",EntityIDList);
            return 1;
        }
        //焦点激活处理函数
        int OnSetFocus(TEvent* evt, LPARAM param)
        {
            //重置工具条
            //SetAgent(L"list",GetEntityID(1));
            SetAgent();
            return 1;
        }
        int OnItemChanged(TEvent* evt, LPARAM p)
        {
            DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
            xstring colname=hdr.colname;
            xstring value = hdr.data;
            xstring dwname = L"dw_list";
            if(value != L"")
            {
                KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='"+dwname+L"']/trans[@for='"+colname+L"']");
                ViewObject::TransData(nlist, dw_list, hdr.row, colname, value);
            }
            return 1;
        }
        int OnAdd()
        {
            dw_list.InsertRow(0);
            return 1;
        }
        int OnDelete()
        {
            int row = dw_list.GetRow();
            if(row < 1) return 1;
            if (MessageBox(GetHWND(),L"是否删除此数据!",L"提示",1) == 2)
                return 1;
            dw_list.DeleteRow(0);
            return 1;
        }
        int OnSearch()
        {
            xml x ;
            xaserverarg arg ;
            arg.AddArg(L"query",GetQueryArg());
            if (getUrl(str_url,arg.GetString(),x)!=1)
            {
                trace(x.text());
                return -1;
            }else
            {
                dw_list.Retrieve(x);
                dw_list.Redraw();
            }
            return 1;
        }
        int OnRowChanged(TEvent* evt, LPARAM p)
        {
            DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
            int row = hdr.row;
            //SetAgent(L"list",dw_list.GetItemString(row,m_entityid));
            return 1;
        }
        //命令发布函数
        int OnCmdDispatch(xstring comdid)
        {
            if(comdid == L"action:bill.new")
                return OnAdd();
            else if(comdid == L"action:bill.delete")
                return OnDelete();
            else if(comdid == L"action:bill.update")
                return OnSave();
            else if(comdid == L"xmSearch")
                return OnSearch();
            else if(comdid.find(L"action:",0)>=0)
            {
                int ret = ProcessFlowAction(comdid, 1);
            }
            return 0;
        }
        int ViewUpdate(int pr,xstring updateItem,xaserverarg  arg)
        {
            if(    updateItem==L"setstate")
            {
                //OnRetrieve(query);
            }
            return 1;
        }
        //命令处理事件
        int OnXCommand(TEvent* evt, LPARAM param)
        {
            return OnCmdDispatch(evt->xcommand.pStrID);
        }
        int OnRowChanged(TEvent* evt, LPARAM p)
        {
            DWNMHDR& hdr = *(DWNMHDR*)evt->notify.pnmh;
            int row = hdr.row;
            //SetAgent(L"list",dw_list.GetItemString(row,GetEntityID(1)));
            return 1;
        }
        int OnAttachEvent()
        {
            //绑定工具条点击事件
            AttachEvent(L"WM_XCOMMAND", (FEvent)&RefundSourcingLineMaintListView::OnXCommand);
            //获取焦点事件,用于重置工具条
            AttachEvent(L"WM_SETFOCUS", (FEvent)&RefundSourcingLineMaintListView::OnSetFocus);
            AttachEvent(L"dw_list",L"DWV_ITEMCHANGED", (FEvent)&RefundSourcingLineMaintListView::OnItemChanged);
            //AttachEvent(L"dw_list",L"DWV_DOUBLECLICKED",OnUpdate);//行双击
            AttachEvent(L"dw_list",L"DWV_ROWFOCUSCHANGED", (FEvent)&RefundSourcingLineMaintListView::OnRowChanged);//绑定行更改触发事件OnRowChanged
            return 1;
        }
        xstring GetQueryArg()
        {
            dw_arg.AcceptText();
            xml x ;
            dw_arg.DwUpdateAllTo(x);
            return x.xml();
        }
        int  OnRetrieve(xstring query)
        {
            xml x ;
            xaserverarg arg ;
            arg.AddArg(L"query",query);
            arg.AddArg(L"QueryArg",L"");
            if (getUrl(str_url,arg.GetString(),x)!=1)
            {
                trace(L"错误信息=L"+(xstring)x.text());
                return -1;
            }else
            {
                dw_list.Retrieve(x);
                dw_list.Redraw();
            }
            //dw_list.SetSelectionMode(3);
            return 1;
        }
        int onload()
        {
            str_url = L"/sale/data/GDN/fetch/RefundSourcingLine";
            dw_list = GetControl(L"dw_list");
            dw_list.SetDataObject(GetServerUrl(),L"dev:sheet[list.RefundSourcingLine.Entity.xarch.tpl/退税进货明细]");
            //dw_list.SetSelectionMode(1);
            dw_arg = GetControl(L"dw_arg");
            dw_arg.SetDataObject(GetServerUrl(),L"dev:sheet[list.RefundSourcingLine.Entity.xarch.tpl/退税进货明细参数]");
            dw_arg.SetColHeaderHeight(0);
            dw_arg.SetRowSelectorWidth(0);
            dw_arg.SetHScrollState(false);
            dw_arg.SetVScrollState(false);
            dw_list.SetColumnState(L"CIEID", false);
            dw_list.SetColumnState(L"CommDate", false);
            //dw_list.SetReadOnly(true);
            OnAttachEvent();
            return 1;
        }
        int onloaded()
        {
            SetAgent();
            OnRetrieve(L"");
            return 1;
        }
    };