/*
使用方法:
1:在LandaV8 数据库上执行创建SP(存储过程脚本)
2:运行存储过程,传入参数(以下是参数翻译)
--====================================================
--====================================================
@GGUID uniqueidentifier, --属性组GUID
@DID varchar(128), --Database Column Name
@DTYPE int , --数据类型(0可变字符串 1整数 2浮点数 4日期时间 5日期 6时间 12 GUID)
@CTRL int, --控件类型(0文本框 7文本框多行 15日期控件 16日期时间控件)
@DESC0 varchar(256), --字段描述英文
@DESC1 varchar(256), --字段描述中文
@DESC2 varchar(256), --字段描述繁体
@LENGTH int, --字段长度
@PREC int, --精度
@PNULL int --是否允许为空
--====================================================
exec sp_addTextCtr
'67c87c8f-bd55-4437-901a-782ef897309d',
'Comments',
0,
0,
'Comments',
'Comments',
'Comments',
2000,
0,
0
--====================================================
步骤3:更新配置
执行存储过程: spmtos 'landaDomainUser'
注:landaDomainUser为模板 HID
步骤4:登陆landaV8--》模板管理*--》清空所有缓存--》刷新模板组
ok,一切大功告成,可以到目标模板里查询增加后的效果. ☺
*/
/*********************************************************************************************
Function:使用脚本增加字段
--数据类型(0可变字符串 1整数 2浮点数 4日期时间 5日期 6时间 12 GUID)
--控件类型(0文本框 7文本框多行 15日期控件 16日期时间控件)
@CTRL int,
Author:Bean
Date:2012-09-24
*********************************************************************************************/
if OBJECT_ID('sp_addTextCtr','P') is not null drop proc sp_addTextCtr
go
create proc sp_addTextCtr
@GGUID uniqueidentifier, --属性组GUID
@DID varchar(128), --Database Column Name
@DTYPE int , --数据类型(0可变字符串 1整数 2浮点数 4日期时间 5日期 6时间 12 GUID)
@CTRL int, --控件类型(0文本框 7文本框多行 15日期控件 16日期时间控件)
@DESC0 varchar(256), --字段描述英文
@DESC1 varchar(256), --字段描述中文
@DESC2 varchar(256), --字段描述繁体
@LENGTH int, --字段长度
@PREC int, --精度
@PNULL int --是否允许为空
as
begin
set nocount on
----------------------------------------------------------------------------------------------
declare @DGUID uniqueidentifier, --字段GUID
@SDGUID uniqueidentifier, --场景属性明细GUID
@SGUID uniqueidentifier, --场景组GUID
@SGGUID uniqueidentifier, --场景属性组GUID
@HGUID uniqueidentifier, --模板ID
@TGUID uniqueidentifier, --模板组ID
@ZORDER int, --顺序
@tbname varchar(64) --表名
----------------------------------------------------------------------------------------------
/*根据GGUID获取TGUID,HGUID,DGUID*/
select @TGUID=TGUID,@HGUID=HGUID,@DGUID=NEWID()
from SMTMPG
where GGUID=@GGUID
----------------------------------------------------------------------------------------------
/*单据信息核对 查看该字段是否已经存在*/
--select @tbname=HID+'_1' from SMTMPH where HGUID=@HGUID
select @tbname=ltrim(h.hid)+'_'+Ltrim(g.GORDER) from SMTMPG g
left join SMTMPH h on g.HGUID=h.HGUID
where GGUID=@GGUID
if exists (select 1 from syscolumns where id=OBJECT_ID(@tbname,'U') and name=@DID)
Begin
RaisError('there have been existed this column',16,1)
return
End Else
if @DTYPE not in(0,1,2,4,5,6,12)
Begin
RaisError('Datatime Tyte should belong varchar/numeric/datetime/GUID',16,1)
return
End else
if @CTRL not in (0,7,15,16)
Begin
RaisError('Controller Tyte should belong text controller/time controller',16,1)
return
End else
Begin
if @DTYPE=0 --数值字符类型
Begin
exec('alter table '+@tbname+' add '+@DID+' varchar('+@LENGTH+')')
set @PREC=0
End else
if @DTYPE=1 --数值整数类型
Begin
exec('alter table '+@tbname+' add '+@DID+' int')
set @PREC=0
set @LENGTH=null
End else
if @DTYPE=2 --数值小数类型
Begin
exec('alter table '+@tbname+' add '+@DID+' numeric(38,'+@PREC+')')
set @LENGTH=null
End else
if @DTYPE in (4,5,6) --日期格式
Begin
exec('alter table '+@tbname+' add '+@DID+' datetime')
set @LENGTH=null
End else
if @DTYPE =12
Begin
exec('alter table '+@tbname+' add '+@DID+' varchar(36)')
set @LENGTH=null
End
End
--exec SPMTOS @tbname
----------------------------------------------------------------------------------------------
/*把信息插入到场景表*/
declare searchGUID CURSOR for
select DISTINCT SGUID from SMTMPS where HGUID=@HGUID
Open searchGUID
FETCH NEXT from searchGUID into @SGUID
while @@FETCH_STATUS=0
Begin
/*得到[场景属性组GUID],[场景组GUID],[顺序(增加10)]*/
select @SGGUID=SGGUID,@SGUID=SGUID,@SDGUID=newID()
from SMTMPSG
where SGUID=@SGUID
and GTYPE='0'
--得到ZORDER排序值
select @ZORDER=MAX(ZORDER)+10 from SMTMPD
where HGUID=@HGUID and ZORDER not between '1001' and '1008'
--insert begin
INSERT INTO [SMTMPSD]
([SDGUID]
,[DID]
,[OLDDID]
,[DESC0]
,[DESC1]
,[DESC2]
,[DESC3]
,[DESC4]
,[DESC5]
,[DESC6]
,[DESC7]
,[DESC8]
,[DESC9]
,[DTYPE]
,[LENGTH]
,[PREC]
,[PNULL]
,[PDEFAULT]
,[ISKEY]
,[CTRL]
,[CTRLID]
,[CTRLD]
,[ZRIGHT]
,[PSYS]
,[DLIST]
,[WIDTH]
,[FONTL]
,[FONTC]
,[AGGR]
,[AGDEST]
,[MAST]
,[DSAVE]
,[ZORDER]
,[CRTDATE]
,[CRTUSER]
,[MDFDATE]
,[MDFUSER]
,[SYSLEVEL]
,[GGUID]
,[HGUID]
,[TGUID]
,[SGUID]
,[SGGUID]
,[DGUID]
,[CTop]
,[CLeft]
,[RowSpan]
,[ColumnSpan]
,[LabelColor])
VALUES
(@SDGUID
,@DID
,@DID
,@DESC0
,@DESC1
,@desc2
,'新属性'
,'新属性'
,'新属性'
,'新属性'
,'新属性'
,'新属性'
,'新属性'
,@DTYPE
,ISNULL(@LENGTH,50)
,@PREC
,case @PNULL when 0 then 0 else 1 end
,null
,0
,@CTRL
,null
,null
,0
,0
,0
,125
,'[Font: Name=宋体, Size=9, Units=3, GdiCharSet=1, GdiVerticalFont=False]'
,'[Font: Name=宋体, Size=9, Units=3, GdiCharSet=1, GdiVerticalFont=False]'
,0
,null
,null
,0
,@ZORDER
,'2012-06-19 15:26:11.493'
,'SYSADMIN'
,'2012-06-19 15:26:11.493'
,'SYSADMIN'
,'1'
,@GGUID
,@HGUID
,@TGUID
,@SGUID
,@SGGUID
,@DGUID
,1
,1
,1
,1
,null)
FETCH NEXT from searchGUID into @SGUID
end
close searchGUID
deallocate searchGUID
------------------------------------------------------------------------------
/*将字段信息插入到SMTMPD(主信息)表*/
INSERT INTO [SMTMPD]
(
[DGUID] --模板属性明细的ID
,[DID] --属性编码
,[OLDDID] --
,[DESC0] --英文
,[DESC1] --简体中文
,[DESC2] --繁体中文
,[DESC3] --其他语种1
,[DESC4] --其他语种
,[DESC5] --其他语种
,[DESC6] --其他语种
,[DESC7] --其他语种
,[DESC8] --其他语种
,[DESC9] --其他语种
,[DTYPE] --明细类型
,[LENGTH] --长度
,[PREC] --精度
,[PNULL] --允许为空
,[PDEFAULT] --默认值
,[ISKEY] --为主键
,[CTRL] --控件类型
,[CTRLID] --控件编码
,[CTRLD] --控件明细
,[ZRIGHT] --权限
,[PSYS] --系统
,[DLIST] --主显示
,[WIDTH] --控件宽度
,[FONTL] --标签字体
,[FONTC] --内容字体
,[AGGR] --统计类型
,[AGDEST] --统计到
,[MAST] --主控字段
,[DSAVE] --值保留
,[ZORDER] --次序
,[CRTDATE] --创建时间
,[CRTUSER] --创建者
,[MDFDATE] --删除时间
,[MDFUSER] --删除者
,[SYSLEVEL] --操作等级
,[GGUID] --属性组ID
,[HGUID] --模板ID
,[TGUID] --模板组ID
,[CTop]
,[CLeft]
,[RowSpan]
,[ColumnSpan]
,[LabelColor]
)
VALUES
(@DGUID,
@DID,
@DID,
@DESC0,
@DESC1,
@DESC2
,'新属性'
,'新属性'
,'新属性'
,'新属性'
,'新属性'
,'新属性'
,'新属性'
,@DTYPE /* DTYPE(明细类型详细)
0:可变字符串 1:整数 2:浮点数 3:数值 4:日期时间 5:日期
6:时间 7:自动增加(客户端) 8:自动增加(服务器端) 9:类眉
10:分类符 11:明细 12:GUID
*/
,ISNULL(@LENGTH,50)
,@PREC
,case @PNULL when 0 then 0 else 1 end /* 0:是 1:否 */
,null
,0
,@CTRL
,null
,null
,0
,0
,0
,125
,'[Font: Name=宋体, Size=9, Units=3, GdiCharSet=1, GdiVerticalFont=False]'
,'[Font: Name=宋体, Size=9, Units=3, GdiCharSet=1, GdiVerticalFont=False]'
,0
,''
,''
,0
,@ZORDER
,'2012-06-19 15:26:11.493'
,'SYSADMIN'
,'2012-06-19 15:34:41.043'
,'SYSADMIN'
,'1'
,@GGUID
,@HGUID
,@TGUID
,1
,1
,case @CTRL when 7 then 2 else 1 end
,2
,'')
End
(2期)通过使用脚本,实现在LandaV8里面新增字段
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.