|
#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) vindexform: public xwin
|
{
|
public:
|
string m_Assignment;
|
HWND m_hMenu;
|
xlayersheet mainsheet;
|
xcombobox cbx_menu;
|
xcombobox cbx_panelName;
|
xcombobox cbx_panelNo;
|
xcombobox cbx_tab;
|
|
public:
|
vindexform(void* implPtr,HWND hWnd):xwin(implPtr,hWnd){}
|
public:
|
static vindexform * CreateInstance(void* implPtr,void* hWnd)
|
{
|
vindexform* pWin = new vindexform(implPtr,(HWND)hWnd);
|
return pWin;
|
}
|
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)&vindexform::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;
|
}
|
|
|
|
};
|