以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 统计所有列内容完善程度 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138075) |
-- 作者:yifan3429 -- 发布时间:2019/7/22 15:13:00 -- 统计所有列内容完善程度 |
-- 作者:有点蓝 -- 发布时间:2019/7/22 15:32:00 -- 根据什么规则统计? |
-- 作者:yifan3429 -- 发布时间:2019/7/22 15:42:00 -- 不为空 即可算完善 10列 有5列有内容 就是50%
[此贴子已经被作者于2019/7/22 15:42:18编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/7/22 15:48:00 -- (iif(第一列 is null,0,1) + iif(第二列 is null,0,1) +...+iif(第十列 is null,0,1) ) / 10 |
-- 作者:yifan3429 -- 发布时间:2019/7/22 16:07:00 -- 有更加简单的吗 90多列会晕死了 |
-- 作者:有点蓝 -- 发布时间:2019/7/22 16:12:00 -- 如果是表达式,只能这样。如果是代码,遍历所有列,写个循环就行了 |
-- 作者:yifan3429 -- 发布时间:2019/7/22 17:36:00 -- 就是代码不知道怎么写 |
-- 作者:有点蓝 -- 发布时间:2019/7/22 20:09:00 -- dim cnt as integer for each dc as datacol in e.datatable.datacols cnt += IIF(e.datarow.isnull(dc.name),0,1) next e.datarow("完善度") = cnt / 10
|
-- 作者:yifan3429 -- 发布时间:2019/7/22 21:34:00 -- 谢谢老师 已经达到了效果 还需要完善下 Dim cnt As Integer \'统计表列的完善度: For Each dc As DataCol In e.DataTable.datacols cnt += IIF(e.DataRow.isnull(dc.name),0,1) Next e.DataRow("资料完善度") = cnt 当前我是35列 cnt 的 结果是 35 需要先把他转换成 100 我想实现 如果全部填完就显示 100/% 35列填完了10列就显示28.5/% [此贴子已经被作者于2019/7/22 21:36:36编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/7/22 22:13:00 -- 参考:http://www.foxtable.com/webhelp/topics/0050.htm |