| 
#pragma once 
 | 
  
 | 
#include "xcontrol/xdwtable.hpp" 
 | 
#include "xcontrol/xdwgrid.hpp" 
 | 
#include "wobject/xwin.hpp" 
 | 
#include "wobject/xstring.hpp" 
 | 
#include "wobject/xaserverarg.hpp" 
 | 
#include "wobject/xaserver.hpp" 
 | 
#include "xcontrol/xcombobox.hpp" 
 | 
#include "xcontrol/xlayersheet.hpp" 
 | 
  
 | 
class __declspec(dllexport) vindexformex: public xwin 
 | 
{ 
 | 
public: 
 | 
    string m_Assignment; 
 | 
    HWND m_hMenu; 
 | 
    xlayersheet mainsheet; 
 | 
    xcombobox cbx_menu; 
 | 
    xcombobox cbx_panelName; 
 | 
    xcombobox cbx_panelNo; 
 | 
    xcombobox cbx_tab; 
 | 
  
 | 
public: 
 | 
    vindexformex(void* implPtr,HWND hWnd):xwin(implPtr,hWnd){} 
 | 
public: 
 | 
    static vindexformex * CreateInstance(void* implPtr,void* hWnd) 
 | 
    { 
 | 
        return  new vindexformex(implPtr,(HWND)hWnd); 
 | 
    } 
 | 
public: 
 | 
    int OnDWClick(TEvent* evt, int p) 
 | 
    { 
 | 
        alert(L"clicked"); 
 | 
        return 1; 
 | 
    } 
 | 
    int OnMenu(HWND hMenu) 
 | 
    { 
 | 
        if (!hMenu) 
 | 
        { 
 | 
            HWND hw = m_hMenu; 
 | 
            bool f = IsWindow(hw); 
 | 
  
 | 
            if (hw == 0 && f <= 0) 
 | 
            { 
 | 
                xaserverarg* arg = new xaserverarg(); 
 | 
                HWND hWnd = GetHWND(); 
 | 
                arg->SetParam(L"hwnd", (LPARAM)hWnd); 
 | 
                arg->SetParam(L"memuId", (LPARAM)cbx_menu.getNativePointer()); 
 | 
                arg->SetParam(L"tabNo", (LPARAM)cbx_tab.getNativePointer()); 
 | 
                arg->SetParam(L"panelNo", (LPARAM)cbx_panelNo.getNativePointer()); 
 | 
                arg->SetParam(L"panelName", (LPARAM)cbx_panelName.getNativePointer()); 
 | 
                xwin* pwin=OpenWindow(L"dev:xpage[vindexmenu.vx]", (LPARAM)arg); 
 | 
                m_hMenu = pwin->GetHWND(); 
 | 
                hw = m_hMenu; 
 | 
                //return 1; 
 | 
            } 
 | 
            HWND HWND_TOPMOST = (HWND) - 1; 
 | 
            HWND HWND_NOTOPMOST =(HWND)-2; 
 | 
            int SWP_NOSIZE = 0x0001; 
 | 
            int SWP_NOMOVE = 0x0002; 
 | 
            int SWP_SHOWWINDOW = 0x0040; 
 | 
            SetWindowPos(hw, HWND_TOPMOST, -1000, -1000, 0, 0, SWP_NOSIZE | SWP_SHOWWINDOW); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            m_hMenu = hMenu; 
 | 
        } 
 | 
  
 | 
        xrect xr; 
 | 
        xcontrol xc = GetControl(L"xmMenu"); 
 | 
        GetWindowRect(xc.GetHWND(), xr); 
 | 
        int l = xr.left; 
 | 
        int b = xr.bottom; 
 | 
  
 | 
        xrect r; 
 | 
        xc = GetControl(L"split"); 
 | 
        GetWindowRect(xc.GetHWND(), r); 
 | 
        int t2 = r.top; 
 | 
        int b2 = r.bottom; 
 | 
  
 | 
        MoveWindow(m_hMenu, l - 7, b, 220, b2 - t2, true); 
 | 
         
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    int OnCmdDispatch(xstring comdid) 
 | 
    { 
 | 
        if (comdid == L"xmMenu") OnMenu(0); 
 | 
        //else if (comdid.find(L"menuid:", 0) >= 0) 
 | 
        //    return OnMenu((HWND)comdid.mid(comdid.find(L":", 0) + 1, comdid.length()).toInt()); 
 | 
#if 0 
 | 
        if (comdid ==L "xmAssignment") OnChangeLogin(); 
 | 
        else if (comdid == L"xmAllCaption") OnAllCaption(); 
 | 
        else if (comdid == L"xmMenu") OnMenu(L""); 
 | 
        else if (comdid == L"xmHelp") return OnHelp(); 
 | 
        else if (comdid.find("menuid:", 0) >= 0) OnMenu(comdid.mid(comdid.find(":", 0) + 1, comdid.length())); 
 | 
        else if (comdid.find("menuAgent:", 0) >= 0) OnMenuAgent(comdid.mid(comdid.find(":", 0) + 1, comdid.length())); 
 | 
        else if (comdid.find("changesheet:", 0) >= 0) OnChangeSheet(comdid.mid(comdid.find(":", 0) + 1, comdid.length())); 
 | 
        else if (comdid.find("openforoldid:", 0) >= 0) OnOpenForOld(comdid.mid(comdid.find(":", 0) + 1, comdid.length())); 
 | 
        else if (comdid.find("open:", 0) >= 0) OnOpen(comdid.mid(comdid.find(":", 0) + 1, comdid.length())); 
 | 
        else if (comdid == "xmRefreshTask") 
 | 
        { 
 | 
            SendMessage(m_startwin, 0x401, comdid, 0); 
 | 
            return 1; 
 | 
        } 
 | 
#endif 
 | 
        return 0; 
 | 
    } 
 | 
     
 | 
    int OnXCommand(TEvent* evt,int p) 
 | 
    { 
 | 
        return OnCmdDispatch(evt->xcommand.pStrID); 
 | 
    }     
 | 
  
 | 
    int OnAttachListon() 
 | 
    { 
 | 
        AttachEvent(L"WM_XCOMMAND",(FEvent)&vindexformex::OnXCommand,this); 
 | 
        //AttachEvent("mdilayer", "LYSN_SELECTEDSHEET",OnSheetChanged);     
 | 
        ////AttachEvent("mdilayer", "LYSN_CLOSESHEET",OnCloseSheet);     
 | 
        return 1; 
 | 
    } 
 | 
     
 | 
    int SetUserID() 
 | 
    { 
 | 
        Hxsoft::XFrame::KXMLDOMDocument x; 
 | 
        xaserverarg arg; 
 | 
        arg.AddArg(L"Assignment", m_Assignment); 
 | 
        if(xaserver::ExecXQuery(GetServerUrl(),L"[GetSysInfo.xq]",arg.GetString(),x)!=1) 
 | 
        { 
 | 
            trace(x.xml()); 
 | 
            return -1;     
 | 
        } 
 | 
        if((xstring)x.xml() == L"") return -1;  
 | 
  
 | 
        Hxsoft::XFrame::KXMLDOMElement e = x.documentElement(); 
 | 
        if((xstring)m_Assignment == L"" && e.selectSingleNode(L"AssignmentID")) 
 | 
        { 
 | 
            string sInfoEx = e.selectSingleNode(L"AssignmentID").text(); 
 | 
            m_Assignment = sInfoEx; 
 | 
        } 
 | 
         
 | 
        if((xstring)m_Assignment == L"") 
 | 
            alert(L"获取用户数据失败,请重新登录!"); 
 | 
        else 
 | 
            xaserver::SetUID((LPWSTR)m_Assignment); 
 | 
        return 1; 
 | 
    } 
 | 
  
 | 
    int Initial() 
 | 
    { 
 | 
        SetUserID(); 
 | 
        return 1; 
 | 
    } 
 | 
    int onload() 
 | 
    { 
 | 
        m_hMenu = 0; 
 | 
        m_Assignment = L""; 
 | 
  
 | 
        mainsheet = GetControl(L"mdilayer"); 
 | 
        cbx_menu = GetControl(L"memuId"); 
 | 
        cbx_tab = GetControl(L"tabNo"); 
 | 
        cbx_panelNo = GetControl(L"panelNo"); 
 | 
        cbx_panelName = GetControl(L"panelName"); 
 | 
  
 | 
        Initial(); 
 | 
  
 | 
        OnAttachListon(); 
 | 
        OpenWindow(L"dev:xpage[start.vframe.vbusiness.vx]"); 
 | 
     
 | 
        return 1; 
 | 
    } 
 | 
     
 | 
  
 | 
  
 | 
}; 
 |