昂捷论坛≡FAQ≡□-通用类 → 如何自动删除自定义表单数据表格控件的空行?


  共有19833人关注过本帖树形打印

主题:如何自动删除自定义表单数据表格控件的空行?

帅哥哟,离线,有人找我吗?
prcak47
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级管理员 帖子:145 积分:2648 威望:0 精华:0 注册:2005/12/10 16:23:42
如何自动删除自定义表单数据表格控件的空行?  发帖心情 Post By: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编辑过]

使用IE9无法添加附件的解决方法 支持(0中立(0反对(0回到顶部