第一步:首先我用的sql server ,先写脚本(由于第一次用U8,对字段不熟,加上重要字段解释)
sql脚本:
UA_Menu(b表)
DELETE FROM [UFSystem].[dbo].[UA_Menu] WHERE [cMenu_Id]='唯一ID'
INSERT INTO [UFSystem].[dbo].[UA_Menu]
--新增菜单id | |新增菜单英文名| 模块标识 |级次 |上级菜单编号 |是否末级 |关联功能 |显示顺序号 ...
([cMenu_Id], [cMenu_Name], [cMenu_Eng], [cSub_Id], [IGrade], [cSupMenu_Id], [bEndGrade], [cAuth_Id], [iOrder], [iImgIndex], [Paramters], [Depends], [Flag])
VALUES('唯一ID', '新增菜单名', null, null, 1, '父级ID', 1, NULL, 0, 0,NULL,NULL,NULL)
ua_idt(表)
DELETE FROM [UFSystem].[dbo].[ua_idt] where id='AAC'
INSERT INTO [UFSystem].[dbo].[ua_idt]
--唯一编号 | |
([id], [assembly], [catalogtype], [type], [class], [entrypoint], [parameter], [reserved])
VALUES('唯一编号','.dll名字位置',0,2,'类.MyLoginable',null,null,null)
第二步:使用VisualStudio创建项目cheshi.dll
1.添加引用:(可根据我给的路径添加)
U8安装路径\ Interop\Interop.U8Login
U8安装路径\Portal\UFIDA.U8.Portal.Framework.dll
U8安装路径\ Portal \UFIDA.U8.Portal.Proxy.dll
U8安装路径\ Portal \UFIDA.U8.Portal.Common.dll
2.继承 NetLoginable,重载SubSysLogin,SubSysLogOff和CallFunction方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UFIDA.U8.Portal.Proxy.editors;
using UFIDA.U8.Portal.Proxy.supports;
namespace ceshi
{
public class MyLoginable : UFIDA.U8.Portal.Proxy.supports.NetLoginable
{
public override object CallFunction(string cMenuId, string cMenuName, string cAuthId, string cCmdLine)
{
MyNetUserControl MenuEnt = new MyNetUserControl();
Class1.id = cMenuId; //Class1.id 是我为了传参数创建了一个类,静态字段ID
MenuEnt.Title = cMenuName;
base.ShowEmbedControl(MenuEnt, cMenuId, true);
return null;
}
public override bool SubSysLogin()
{
return base.SubSysLogin();
}
public override bool SubSysLogOff()
{
return base.SubSysLogin();
}
}
}
3.实现INetUserControl,重载SubSysLogin,SubSysLogOff和CallFunction方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UFIDA.U8.Portal.Framework.Actions;
using UFIDA.U8.Portal.Framework.MainFrames;
using UFIDA.U8.Portal.Proxy.Actions;
using U8Login;
using UFIDA.U8.Portal.Proxy.editors;
using System.Windows.Forms;
using UFSoft.U8.Framework.Login.UI;
namespace ceshi
{
class MyNetUserControl : INetUserControl
{
public IEditorInput EditorInput { get; set; }
public IEditorPart EditorPart { get; set; }
public string Title { get; set; }
public Boolean CloseEvent()
{
return true;
}
public NetAction[] CreateToolbar(UFSoft.U8.Framework.Login.UI.clsLogin login)
{
return null;
}
public Control CreateControl(UFSoft.U8.Framework.Login.UI.clsLogin login, string MenuID, string Paramters)
{
U8Login.clsLogin comLogin = new U8Login.clsLoginClass();
if (login != null)
{
comLogin.ConstructLogin(login.userToken);
}
if (Class1.id.Equals("AAB"))
{
//判断点击的是不是id是不是数据库中添加的菜单ID
UserControl1 AAB = new UserControl1();
return AAB;
}
return null;
}
}
}
第三步:部署
将程序集cheshi.dll拷贝到U8安装目录Portal目录下