/*
使用方法:
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裏面新增字段
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.