From c34f5ae522756455f43b749684387c98ec1b03e5 Mon Sep 17 00:00:00 2001
From: xj qian <qianxj15@sina.com>
Date: 星期二, 02 七月 2024 10:03:15 +0800
Subject: [PATCH] update face

---
 jrj/ext-jrj/ext-jrj.vcxproj  |    1 
 jrj/project/vindexformex.cpp |  229 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 230 insertions(+), 0 deletions(-)

diff --git a/jrj/ext-jrj/ext-jrj.vcxproj b/jrj/ext-jrj/ext-jrj.vcxproj
index c8d3637..ded3983 100644
--- a/jrj/ext-jrj/ext-jrj.vcxproj
+++ b/jrj/ext-jrj/ext-jrj.vcxproj
@@ -397,6 +397,7 @@
     <ClCompile Include="..\project\start.vframe.vbusiness.cpp" />
     <ClCompile Include="..\project\viewobject\view.base.hpp" />
     <ClCompile Include="..\project\vindexform.cpp" />
+    <ClCompile Include="..\project\vindexformex.cpp" />
     <ClCompile Include="..\project\vindexmenu.cpp" />
     <ClCompile Include="..\project\workflow\workflow.actionlog.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
diff --git a/jrj/project/vindexformex.cpp b/jrj/project/vindexformex.cpp
new file mode 100644
index 0000000..54b3cf1
--- /dev/null
+++ b/jrj/project/vindexformex.cpp
@@ -0,0 +1,229 @@
+锘�
+#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);
+	}
+
+	string getHomeConfig(string att)
+	{
+		xml x = new xml;
+		x.setNativePointer(xml::CreateInstance());
+		x.Load("cache\\config.xml");
+		//alert(x.GetXml());
+		if (x.GetXml() == "") return "";
+		msxml::IXMLDOMElement e = x.GetXmlDoc().documentElement;
+		if (e.selectSingleNode("home"))
+		{
+			msxml::IXMLDOMElement e1 = e.selectSingleNode("home");
+			if (e1.selectSingleNode("@" + att))
+				return e1.selectSingleNode("@" + att).text;
+		}
+		return "";
+	}
+
+	int setHomeConfig(string att, string value)
+	{
+		xml x = new xml;
+		x.setNativePointer(xml::CreateInstance());
+		x.Load("cache\\config.xml");
+		if (x.GetXml() == "")
+		{
+			//alert("<config><home "+att+"="+value+"/></config>");
+			x.LoadXml("<config><home " + att + "='" + value + "'/></config>");
+		}
+		else
+		{
+			msxml::IXMLDOMElement e = x.GetXmlDoc().documentElement;
+			if (e.selectSingleNode("home"))
+			{
+				msxml::IXMLDOMElement e1 = e.selectSingleNode("home");
+				e1.setAttribute(att, value);
+			}
+			else
+			{
+				msxml::IXMLDOMElement e2 = x.GetXmlDoc().createElement("home");
+				e2.setAttribute(att, value);
+				e.appendChild(e2);
+			}
+			//alert(e.xml);
+		}
+		//alert(x.GetXml());
+		xutil::SaveToFile("cache\\config.xml", x.GetXml(), "", "", "");
+		return 1;
+	}
+
+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;
+	}
+	
+
+
+};
+
+
+
+

--
Gitblit v1.9.3