1.业务需求:实现对短信库信息的一个维护模块。短信库表的逻辑结构和物理结构如下:
创建表的SQL为:
CREATE TABLE K_SMSLibrary
(
SMSClass varchar(30) NULL ,
SMSID varchar(10) NOT NULL ,
SMSContent varchar(1000) NULL
)
go
ALTER TABLE K_SMSLibrary
ADD CONSTRAINT XPKK_SMSLibrary PRIMARY KEY NONCLUSTERED (SMSID ASC)
go
2.打开模块构件,新增一个模块,模块构件的属性设置界面如下:
3.打开界面元素构件,选中短信库维护模块,新增一个界面元素,界面元素的属性设置如下:
其中查询SQL为:
select ceiling(count(*)/20.0) from CRMData.dbo.K_SMSLibrary
where SMSClass like '%'+@SMSClass_+'%' and SMSContent like'%'+@SMSContent_+'%';
select TOP 20 * from (select ROW_NUMBER() OVER(ORDER BY SMSID) as RowNumber_,
SMSID,SMSClass,SMSContent
from CRMData.dbo.K_SMSLibrary
where SMSClass like '%'+@SMSClass_+'%' and SMSContent like'%'+@SMSContent_+'%') as a_ where a_.RowNumber_>@pageNo_;
select RowNumber_ from (select ROW_NUMBER() OVER(ORDER BY SMSID) as RowNumber_,SMSID
from CRMData.dbo.K_SMSLibrary
where SMSClass like '%'+@SMSClass_+'%' and SMSContent like'%'+@SMSContent_+'%') as a_ wherea_.SMSID=@SMSID_
查询SQL中共有三个SQL查询语句,之间用分号分开,第一个SQL用于计算页数;第二个SQL用于查询出某页的数据,参数@pageNo_必需要有,表示某页的开始行号,由系统自动把下页开始行号值传入SQL,从而实现翻页的功能,函数ROW_NUMBER() OVER(ORDER BY ClassID)表示以ClassID字段进行排序来生成行号,该函数也必须有,因为用SQL进行翻页性能最好。第三个SQL用于计算主键SMSID为@SMSID_值时的行号,用于新增或修改时进行行定位,刷新数据后选中行定位到当前新增行或当前修改行。
6.打开操作构件,选中短信库维护模块中的短信信息界面元素,新增“新增、修改、删除、保存、取消、查询”操作,这些操作的属性设置如下:
新增属性设置如下图:
修改属性设置如下图:
删除属性设置如下图:
删除前要进行提示,点击前执行脚本为:
confirm('你确认要删除该短信信息吗?');
保存属性设置如下图:
取消属性设置如下图:
查询属性设置如下图:
7.打开字段构件,选中短信库维护模块中的短信信息界面元素,新增“SMSID (短信ID)、RowNumber_ (序号)、SMSClass(短信类别)、SMSContent(短信内容) ”4个字段,这些字段的属性设置如下:
SMSID(短信ID)字段的属性设置如下图:
RowNumber_(序号)字段的属性设置如下图:
对于SMSClass (短信类别)字段,要先打开数据集构件定制“短信类别选择”数据集,新增一个数据集构件,数据集构件属性设置如下:
数据集构件的查询SQL为:SELECT ClassName CodeTextValue,ClassName CodeKeyValue FROM CRMData.dbo.K_SMSClass order by ClassID
以上定义的数据集构件作为SMSClass (短信类别)字段的下拉选择数据集进行选择。
( SMSClass,SMSContent,SMSID )
values
( @SMSClass_,@SMSContent_,@SMSID_ )
set @RetStr_=@SMSID_
set
SMSClass=@SMSClass_,
SMSContent=@SMSContent_
where SMSID=@SMSID_