5.以表格型主细表为模板定制模块:会计科目管理
来源:互联网 发布:centos snmp 是否开启 编辑:程序博客网 时间:2024/06/06 10:53
1.业务需求:实现对会计科目的一个维护模块,该模块涉及到两个表,科目类别表和科目信息表的逻辑结构和物理结构如下:
创建表的SQL分别为:
create table JC_SubjectType (
SubjectTypeID varchar(50) not null,
SubjectTypeCode varchar(50) null,
SubjectTypeName varchar(50) null,
SubjectTypeShortName varchar(50) null,
OrderID int null,
UsedStatus int null,
Creator varchar(50) null,
CreateTime datetime null,
LastModifyTime datetime null,
Remark varchar(1000) null,
constraint PK_JC_SUBJECTTYPE primary key (SubjectTypeID)
)
go
create table JC_Subject (
SubjectID varchar(50) not null,
SubjectTypeID varchar(50) not null,
SubjectCode varchar(50) null,
SubjectName varchar(50) null,
SubjectShortName varchar(50) null,
UnitID int null,
InOutProperty int null,
RecordStatus int null,
OrderID int null,
UsedStatus int null,
Creator varchar(50) null,
CreateTime datetime null,
LastModifyTime datetime null,
Remark varchar(1000) null,
constraint PK_JC_SUBJECT primary key (SubjectID)
)
go
2.打开模块构件,新增一个模块,模块构件的属性设置界面如下:
3.打开界面元素构件,选中会计科目管理模块,新增一个界面元素,界面元素名为科目类别,界面元素的属性设置如下:
其中查询SQL为:
select ceiling(count(*)/10.0) from
SMSDB.dbo.JC_SubjectType
;
select TOP 10 * from (select ROW_NUMBER() OVER(ORDER BY x.OrderID) as RowNumber_,
x.*,
case when x.UsedStatus=1 then '已启用' when x.UsedStatus=0 then '未启用'
when x.UsedStatus=2 then '已禁用' end XUsedStatus
from SMSDB.dbo.JC_SubjectType x
) as a_
where a_.RowNumber_>@pageNo_ ;
select TOP 1 RowNumber_ from (
select ROW_NUMBER() OVER(ORDER BY x.OrderID) as RowNumber_,
x.SubjectTypeID
from SMSDB.dbo.JC_SubjectType x)a_
where a_.SubjectTypeID=@SubjectTypeID_
查询SQL中共有三个SQL查询语句,之间用分号分开,第一个SQL用于计算页数;第二个SQL用于查询出某页的数据,参数@pageNo_必需要有,表示某页的开始行号,由系统自动把下页开始行号值传入SQL,从而实现翻页的功能,函数ROW_NUMBER() OVER(ORDER BY x.OrderID)表示以x.OrderID字段进行排序来生成行号,该函数也必须有,因为用SQL进行翻页性能最好。第三个SQL用于计算主键SubjectTypeID为@SubjectTypeID_值时的行号,用于新增或修改时进行行定位,刷新数据后选中行定位到当前新增行或当前修改行。
在第一个界面元素之下新增第二个界面元素,界面元素名为科目信息,为第一个界面元素(科目类别)的明细,界面元素的属性设置如下:
其中查询SQL为:
select ceiling(count(*)/10.0) from
SMSDB.dbo.JC_Subject x
where x.SubjectTypeID=@SubjectTypeID_
;
select TOP 10 * from (
select ROW_NUMBER() OVER(ORDER BY x.CreateTime) as RowNumber_,
x.*,
case when x.UnitID=1 then '元' when x.UnitID=2 then '万元' end XUnitID,
case when x.InOutProperty=1 then '借' when x.InOutProperty=2 then '贷' end XInOutProperty,
case when x.UsedStatus=0 then '未启用' when x.UsedStatus=1 then '已启用' when x.UsedStatus=2 then '已禁用' end XUsedStatus
from SMSDB.dbo.JC_Subject x
where x.SubjectTypeID=@SubjectTypeID_
) as a_
where a_.RowNumber_>@pageNo_ ;
select TOP 1 RowNumber_ from (
select ROW_NUMBER() OVER(ORDER BY x.CreateTime) as RowNumber_,
x.SubjectID
from SMSDB.dbo.JC_Subject x
where x.SubjectTypeID=@SubjectTypeID_)a_
where a_.SubjectID=@SubjectID_
查询SQL中共有三个SQL查询语句,之间用分号分开,第一个SQL用于计算页数;第二个SQL用于查询出某页的数据,参数@pageNo_必需要有,表示某页的开始行号,由系统自动把下页开始行号值传入SQL,从而实现翻页的功能,函数ROW_NUMBER() OVER(ORDER BY x.CreateTime)表示以x.CreateTime字段进行排序来生成行号,该函数也必须有,因为用SQL进行翻页性能最好。第三个SQL用于计算主键SubjectID为@SubjectID_值时的行号,用于新增或修改时进行行定位,刷新数据后选中行定位到当前新增行或当前修改行。
4.打开操作构件,选中会计科目管理模块中的科目类别界面元素,新增“新增、修改、删除、保存、取消、启用、禁用”操作,这些操作的属性设置如下:
if(id=="已启用")
{
confirm("修改该数据可能会对其他数据产生影响,确定要修改吗?");
}
if(id=="已启用")
{
alert('该数据已经启用,不能删除!');
false;
}
else if(id=='已禁用')
{
confirm("该信息已禁用,删除可能会对其他数据产生影响,确认要删除该条信息吗?");
}
else
{
confirm("确认要删除该条信息吗?");
}
if(id=="已启用")
{
alert('该数据已启用,不要重复操作!');
false;
}
else
{
confirm("启用后将不能删除,确认要启用该记录信息吗?");
}
if(id=="未启用")
{
alert('该数据未启用,不能执行禁用操作!');
false;
}else if(id=="已禁用")
{
alert('该数据已禁用,不要重复操作!');
false;
}
else if(id=="已启用")
{
confirm("禁用后,会导致数据不可用,确定要禁用记录吗?");
}
if(id=='已启用')
{
alert("已启用,不能进行修改操作!");
false;
}
if(id=="已启用")
{
alert('该数据已经启用,不能删除!');
false;
}
else if(id=='已禁用')
{
confirm("该信息已禁用,删除可能会对其他数据产生影响,确认要删除该条信息吗?");
}
else
{
confirm("确认要删除该条信息吗?");
}
if(id=="已启用")
{
alert('该数据已启用,不要重复操作!');
false;
}
else
{
confirm("启用后将不能删除,确认要启用该记录信息吗?");
}
if(id=="未启用")
{
alert('该数据未启用,不能执行禁用操作!');
false;
}else if(id=="已禁用")
{
alert('该数据已禁用,不要重复操作!');
false;
}
else if(id=="已启用")
{
confirm("禁用后,会导致数据不可用,确定要禁用记录吗?");
}
begin
set @Out_='明细表有数据,不能删除!'
return
end
delete from SMSDB.dbo.JC_SubjectType where SubjectTypeID=@SubjectTypeID_
select 1 from SMSDB.dbo.JC_SubjectType where SubjectTypeCode=@SubjectTypeCode_ or SubjectTypeName=@SubjectTypeName_)
begin
set @Out_='会计科目类别名称/会计科目类别编码已存在,不能重复录入!'
return
end
( CreateTime,Creator,LastModifyTime,OrderID,Remark,SubjectTypeCode,SubjectTypeID,SubjectTypeName,UsedStatus,SubjectTypeShortName )
values
( getdate(),@Creator_,getdate(),@OrderID_,@Remark_,@SubjectTypeCode_,@SubjectTypeID_,@SubjectTypeName_,0,@SubjectTypeShortName_)
--当用户不输入序号时,默认序号为最大值;当用户想要插入到中间时,用户输入的数字后的序号会自动排序;
--作为解决系统在排序数字相同时默认排序问题,这里用到了LastModifyTime字段,所以要确保每次修改都要
--更新LastModifyTime字段
--排序
update SMSDB.dbo.JC_SubjectType
set OrderID=(
select case when max(OrderID)+1 is null then 1
else max(OrderID)+1 end
from SMSDB.dbo.JC_SubjectType)
where OrderID is null
declare @j int
declare @SubjectTypeID varchar(50)
set @ii=1
select @j=count(*)from SMSDB.dbo.JC_SubjectType
while(@ii<=@j)
begin
select @SubjectTypeID=SubjectTypeID from(
select row_number()over(order by orderID,LastModifyTime desc)as r,SubjectTypeID from SMSDB.dbo.JC_SubjectType
)a_ where a_.r=@ii
-- update SMSDB.dbo.JC_SubjectType
-- set OrderID=@ii+1
-- where OrderID=@ii
set OrderID=@ii
where SubjectTypeID=@SubjectTypeID
end
select 1 from SMSDB.dbo.JC_SubjectType
where (SubjectTypeCode=@SubjectTypeCode_ orSubjectTypeName=@SubjectTypeName_) and SubjectTypeID<>@SubjectTypeID_)
begin
set @Out_='会计科目类别名称/会计科目类别编码已存在,不能重复录入!'
return
end
Update SMSDB.dbo.JC_SubjectType
set
LastModifyTime=getdate(),
OrderID=@OrderID_,
Remark=@Remark_,
SubjectTypeCode=@SubjectTypeCode_,
SubjectTypeName=@SubjectTypeName_,
SubjectTypeShortName=@SubjectTypeShortName_
where
SubjectTypeID=@SubjectTypeID_
--当用户不输入序号时,默认序号为最大值;当用户想要插入到中间时,用户输入的数字后的序号会自动排序;
--作为解决系统在排序数字相同时默认排序问题,这里用到了LastModifyTime字段,所以要确保每次修改都要
--更新LastModifyTime字段
--排序
update SMSDB.dbo.JC_SubjectType
set OrderID=(
select case when max(OrderID)+1 is null then 1
else max(OrderID)+1 end
from SMSDB.dbo.JC_SubjectType)
where OrderID is null
declare @j int
declare @SubjectTypeID varchar(50)
set @ii=1
select @j=count(*)from SMSDB.dbo.JC_SubjectType
while(@ii<=@j)
begin
select @SubjectTypeID=SubjectTypeID from(
select row_number()over(order by orderID,LastModifyTime desc)as r,SubjectTypeID from SMSDB.dbo.JC_SubjectType
)a_ where a_.r=@ii
-- update SMSDB.dbo.JC_SubjectType
-- set OrderID=@ii+1
-- where OrderID=@ii
set OrderID=@ii
where SubjectTypeID=@SubjectTypeID
end
select 1 from SMSDB.dbo.JC_Subject
where (SubjectCode=@SubjectCode_ orSubjectName=@SubjectName_) andSubjectTypeID=@SubjectTypeID_)
begin
set @Out_='会计科目名称/会计科目编码已存在,不能重复录入!'
return
end
( CreateTime,Creator,LastModifyTime,OrderID,Remark,SubjectCode,SubjectTypeID,SubjectName,
UsedStatus,SubjectShortName,RecordStatus,SubjectID,UnitID,InOutProperty)
values
( getdate(),@Creator_,getdate(),1,@Remark_,@SubjectCode_,@SubjectTypeID_,@SubjectName_,
0,@SubjectShortName_,1,@SubjectID_,@UnitID_,@InOutProperty_)
select 1 from SMSDB.dbo.JC_Subject
where (SubjectCode=@SubjectCode_ orSubjectName=@SubjectName_)
and SubjectTypeID=@SubjectTypeID_ and SubjectID<>@SubjectID_)
begin
set @Out_='会计科目名称/会计科目编码已存在,不能重复录入!'
return
end
Update SMSDB.dbo.JC_Subject
set
LastModifyTime=getdate(),
Remark=@Remark_,
SubjectCode=@SubjectCode_,
SubjectName=@SubjectName_,
SubjectShortName=@SubjectShortName_,
UnitID=@UnitID_,
InOutProperty=@InOutProperty_
where
SubjectID=@SubjectID_
- 5.以表格型主细表为模板定制模块:会计科目管理
- 2.以普通表格型单表为模板定制模块:库存管理
- 9.以表格-树-表格表单三级主细为模板定制模块:文件目录三级管理
- 1.以普通表格型单表为模板定制模块:短信分类维护
- 3.以普通表格型单表为模板定制模块:短信库维护
- 6.以表格单据式单表为模板定制模块:订单信息维护
- 7.以新版表格型单表为模板定制模块:人员信息查询
- 8.以新版树表格型单表为模板定制模块:员工上网统计
- 4.以构造树和导航单表为模板定制模块:文件目录管理
- Latex 之BibTeX 管理文献(以 IEEE模板为例)
- ext模块管理模板
- 导入模块,以模块math为例
- 用swig为python定制自定义模块
- 免费和高级定制后台管理模板
- 免费和高级定制后台管理模板
- 以项目管理为核心
- 会计科目
- python安装easy_install以安装管理模块
- 【翻译自mos文章】在11gR2 rac中启用Dead Connection Connection(DCD)功能
- 【JAVA】6、数据类型的转换
- hadoop中map和reduce的数量设置问题
- Light OJ 1105 Fi Binary Number(二分+数位DP)
- 网站ico图片api
- 5.以表格型主细表为模板定制模块:会计科目管理
- hadoop任务的执行过程
- 2016新年随笔
- 1021. Deepest Root (25)
- Windows7基于Python3.5安装Ipython notebook(现称jupyter)
- hdu2564(暴力)
- 深度学习入门(二)Fast R-CNN
- 访问者模式——数据操作与数据结构分离
- 蓝桥杯-基础练习-数列特征