(2期)通過使用腳本,實現在LandaV8裏面新增字段

/*
使用方法:
	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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章