1.业务需求:实现对目录和文件管理的一个维护模块,该模块涉及到三个表:文件目录表、文件表和员工表(T_Employee),文件目录表、文件表的逻辑结构和物理结构如下:
创建表的SQL:
CREATE TABLE F_Catalog
(
CatalogID varchar(10) NOT NULL ,
CatalogName varchar(100) NULL ,
CreateID int NULL ,
CreateDate datetime NULL ,
ParentCatalogID varchar(4) NULL ,
DelFlag tinyint NULL ,
UpdateDateTime datetime NULL
)
go
ALTER TABLE F_Catalog
ADD CONSTRAINT XPKF_Catalog PRIMARY KEY NONCLUSTERED (CatalogID ASC)
go
CREATE TABLE F_File
(
CatalogID varchar(10) NULL ,
FileID varchar(10) NOT NULL ,
FileLogicName varchar(200) NULL ,
FilePhysicsName varchar(100) NULL ,
DraftID int NULL ,
AuditID int NULL ,
Status tinyint NULL ,
AuditDate datetime NULL ,
DraftDate datetime NULL ,
DelFlag tinyint NULL ,
UpdateDateTime datetime NULL ,
IsModify bit NULL ,
IsPrint bit NULL ,
SendID int NULL
)
go
ALTER TABLE F_File
ADD CONSTRAINT XPKF_File PRIMARY KEY NONCLUSTERED (FileID ASC)
go
ALTER TABLE F_File
ADD CONSTRAINT R_1 FOREIGN KEY (CatalogID) REFERENCES F_Catalog(CatalogID)
ON DELETE NO ACTION
ON UPDATE NO ACTION
go
2.打开模块构件,新增一个模块,模块构件的属性设置界面如下:
3.打开界面元素构件,选中文件目录三级管理模块,新增“创建人信息”界面元素,界面元素的属性设置如下:
该界面元素为表格,其中查询SQL为:
select ceiling(count(*)/5.0) from T_Employee;
select TOP 5 * from (select ROW_NUMBER() OVER(ORDER BY EmpID) as RowNumber_,EmpName,Sex,IsMarried,Degree,EmpID
from v_Employee
) as a_ where a_.RowNumber_>@pageNo_
查询SQL中共有两个SQL查询语句,之间用分号分开,第一个SQL用于计算页数;第二个SQL用于查询出某页的数据,参数@pageNo_必需要有,表示某页的开始行号,由系统自动把下页开始行号值传入SQL,从而实现翻页的功能,函数ROW_NUMBER() OVER(ORDER BY ClassID)表示以EmpID字段进行排序来生成行号,该函数也必须有,因为用SQL进行翻页性能最好。
选中文件目录三级管理模块的“创建人信息”界面元素,新增“文件目录”界面元素,界面元素的属性设置如下:
该界面元素为树--表单,有两个SQL,树节点表单数据的查询SQL为:
@CatalogID_;
select CatalogID,CatalogName,CreateDate,y.EmpName from FileData.dbo.F_Catalog x,T_Employee y
where x.CreateID=y.EmpID and CatalogID=@CatalogID_ and (x.DelFlag is null or x.DelFlag=0)
第一个SQL为树节点键值的参数,新增时用于返回键值的参数,第二个SQL用于查询某节点的数据。
构造树SQL为:
if(@CatalogID_='0') select CatalogID,CatalogName,isnull(ParentCatalogID,'') ParentCatalogID from FileData.dbo.F_Catalog where ParentCatalogID is null and (DelFlag is null or DelFlag=0) and CreateID=@CreateID_
else select CatalogID,CatalogName,isnull(ParentCatalogID,'') ParentCatalogID from FileData.dbo.F_Catalog whereParentCatalogID='@ParentCatalogID_' and (DelFlag is null or DelFlag=0) andCreateID=@CreateID_
选中文件目录三级管理模块的“创建人信息”界面元素,新增“文件列表”界面元素,界面元素的属性设置如下:
该界面元素为表格,查询SQL为:
select ceiling(count(*)/20.0) from FileData.dbo.F_File x,T_Employee y
where x.DraftID=y.EmpID and CatalogID=@CatalogID_;
select TOP 20 * from (select ROW_NUMBER() OVER(ORDER BY x.FileID) as RowNumber_,
case when x.SendID is null then x.FileLogicName else '(转发)'+x.FileLogicName end FileLogicName,x.FilePhysicsName,x.FileID,
x.DraftDate, x.DraftID,y.EmpName DraftName,x.Status,case when x.Status=0 then '起草' when x.Status=1
then '送审' when x.Status=2 then '否决' when x.Status=3 then '通过' end StatusName,
z.EmpName SendName
from FileData.dbo.F_File x left join T_Employee z on x.SendID=z.EmpID,T_Employee y
where x.DraftID=y.EmpID and CatalogID=@CatalogID_
) as a_ where a_.RowNumber_>@pageNo_
4.打开操作构件,选中文件目录三级管理模块中的文件目录界面元素,新增“新增、修改、删除、保存、取消”操作,这些操作的属性设置如下:
新增属性设置如下图:
修改属性设置如下图:
删除属性设置如下图:
其中点击前执行脚本为:
confirm('你确认要删除该文档目录吗?')
保存属性设置如下图:
取消属性设置如下图:
选中文件目录三级管理模块中的文件列表界面元素,新增“修改、保存、取消”操作,这些操作的属性设置如下:
修改属性设置如下图:
保存属性设置如下图:
取消属性设置如下图:
5.打开界面元素查询参数构件,选择文件目录三级管理模块的文件目录界面元素,新增两个查询参数@CatalogID_和@CreateID_,属性设置如下:
选择文件目录三级管理模块的文件列表界面元素,新增查询参数@CatalogID_,属性设置如下:
6.打开字段构件,选中文件目录三级管理模块中的创建人信息界面元素,新增如下字段:
EmpID字段属性设置:
EmpName字段属性设置如下:
Sex字段属性设置如下:
insert into FileData.dbo.F_Catalog(CatalogID,CatalogName,CreateID,CreateDate,ParentCatalogID,UpdateDateTime)
values(@CatalogID_,@CatalogName_,@CreateID_,getdate(),null,getdate())
else
insert into FileData.dbo.F_Catalog(CatalogID,CatalogName,CreateID,CreateDate,ParentCatalogID,UpdateDateTime)
values(@CatalogID_,@CatalogName_,@CreateID_,getdate(),@ParentCatalogID_,getdate())
set CatalogName=@CatalogName_,
UpdateDateTime=getdate()
where CatalogID=@CatalogID_