-- 作者:prcak47
-- 發(fā)布時間:2012/12/25 18:26:08
-- 如何自動刪除自定義表單數(shù)據(jù)表格控件的空行?
如何自動刪除自定義表單數(shù)據(jù)表格控件的空行?
答:
在自定義表單的保存后執(zhí)行腳本中寫入自動刪除語句,
此主題相關圖片如下:自定義表單保存后執(zhí)行腳本.jpg

語句如下,需要根據(jù)自定義表單表格控件的名稱自己調整xml節(jié)點名稱
declare @xmlDoc xml declare @xmlDoc1 xml ---獲取要計算的xml select @xmlDoc=c_data from tbc_eform_data where c_guid=\'@單號\' ---獲取xml數(shù)據(jù)表格的數(shù)據(jù)行數(shù),此處需要根據(jù)實際情況修改xml節(jié)點名稱 declare @i varchar(5) SELECT @i = cast(@xmlDoc.query(\'count(/rows/row/te123/drows/drow)\') as varchar(5))
declare @tsql nvarchar(1000) declare @xmldata varchar(1000) while @i >0 begin ----一行數(shù)據(jù)中要判斷是否為空的數(shù)據(jù)寫進入,需要根據(jù)實際數(shù)據(jù)修改xml節(jié)點名稱 select @tsql = \'select @xmldata = @xmlDoc.value(\'\'(/rows/row/te123/drows/drow/c_col1)[\'+@i+\']\'\',\'\'varchar(1000)\'\') + @xmlDoc.value(\'\'(/rows/row/te123/drows/drow/c_col2)[\'+@i+\']\'\',\'\'varchar(1000)\'\') + @xmlDoc.value(\'\'(/rows/row/te123/drows/drow/c_col3)[\'+@i+\']\'\',\'\'varchar(1000)\'\') + @xmlDoc.value(\'\'(/rows/row/te123/drows/drow/c_col4)[\'+@i+\']\'\',\'\'varchar(1000)\'\') + @xmlDoc.value(\'\'(/rows/row/te123/drows/drow/c_col5)[\'+@i+\']\'\',\'\'varchar(1000)\'\')\' EXECUTE sp_executesql @tsql,N\'@xmlDoc xml,@xmldata varchar(1000) out\',@xmlDoc,@xmldata out if @xmldata = \'\' begin ----如果所有數(shù)據(jù)加起來還是空,執(zhí)行刪除操作,需要修改節(jié)點名稱 select @tsql = \' set @xmlDoc.modify(\'\'delete /rows/row/te123/drows/drow[\'+@i+\']\'\') set @xmlDoc1 = @xmlDoc\' select @xmlDoc EXECUTE sp_executesql @tsql,N\'@xmlDoc xml,@xmlDoc1 xml out\',@xmlDoc,@xmlDoc1 out set @xmlDoc = @xmlDoc1 end set @i = @i -1 end ---將轉換后的數(shù)據(jù)寫進表單 update tbc_eform_data set c_data = @xmlDoc where c_guid=\'@單號\'
具體單據(jù)效果如圖
此主題相關圖片如下:自定義表單保存前.jpg

此主題相關圖片如下:自定義表單保存后.jpg

[此貼子已經(jīng)被作者于2012-12-26 10:26:33編輯過]
|