有如下两个数据表:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[jhsj_sys_功能组]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[HR_sys_功能组]
GOCREATE TABLE [dbo].[HR_sys_功能组] (
[模块号] [tinyint] NOT NULL ,
[功能组号] [tinyint] NOT NULL ,
[功能组名] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[上边] [smallint] NOT NULL ,
[左边] [smallint] NOT NULL ,
[宽] [smallint] NOT NULL ,
[高] [smallint] NOT NULL ,
[图号] [int] NOT NULL ,
[删除] [tinyint] NOT NULL ) ON [PRIMARY]
GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[HR_sys_功能项]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[HR_sys_功能项]
GOCREATE TABLE [dbo].[HR_sys_功能项] (
[功能组号] [tinyint] NOT NULL ,
[功能项号] [tinyint] NOT NULL ,
[功能项名] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[上边] [smallint] NOT NULL ,
[左边] [smallint] NOT NULL ,
[宽] [smallint] NOT NULL ,
[高] [smallint] NOT NULL ,
[字位] [tinyint] NOT NULL ,
[dlltag] [tinyint] NOT NULL ,
[dllname] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[dllparam] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL ,
[dllhint] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[删除] [tinyint] NOT NULL 
) ON [PRIMARY]
GO界面有两个PANEL,一个放模块组,一个放模块项,一个组对应N个项(如上表字段);
其中PANEL2(模块项)放有N个LABEL,LABEL可移动,有单击事件,可调用DLL或是EXE文件。