-- 作者:prcak47
-- 发布时间:2012/12/25 18:26:08
-- 如何自动删除自定义表单数据表格控件的空行?
如何自动删除自定义表单数据表格控件的空行?
答:
在自定义表单的保存后执行脚本中写入自动删除语句,
此主题相关图片如下:自定义表单保存后执行脚本.jpg
语句如下,需要根据自定义表单表格控件的名称自己调整xml节点名称
declare @xmlDoc xml declare @xmlDoc1 xml ---获取要计算的xml select @xmlDoc=c_data from tbc_eform_data where c_guid=\'@单号\' ---获取xml数据表格的数据行数,此处需要根据实际情况修改xml节点名称 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 ----一行数据中要判断是否为空的数据写进入,需要根据实际数据修改xml节点名称 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 ----如果所有数据加起来还是空,执行删除操作,需要修改节点名称 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 ---将转换后的数据写进表单 update tbc_eform_data set c_data = @xmlDoc where c_guid=\'@单号\'
具体单据效果如图
此主题相关图片如下:自定义表单保存前.jpg
此主题相关图片如下:自定义表单保存后.jpg
[此贴子已经被作者于2012-12-26 10:26:33编辑过]
|