以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]计算非重复值的行数 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=184845) |
-- 作者:沪上游客 -- 发布时间:2023/1/9 15:25:00 -- [求助]计算非重复值的行数 老师您好! 如下图: 如果Tables(不是DataTables)中列“主合同编号”中多行只有一个主合同编号(重复或单个),那么加载指定关联表,否则不加载。 相当于排除重复值后行数等于1就加载,否则不加载关联表。 请问代码怎么写?写在那个表事件? 我的AfterLoad 表事件代码如下: Tables("支出合同基础数据").Sort = "财务编号" e.DataTable.LoadChildren("支出合同收支表") e.DataTable.LoadChildren("支出合同印花税统计表") e.DataTable.LoadChildren("支出合同补充或决算") e.DataTable.LoadChildren("支出合同研发成本") DataTables("支出合同基础数据").DataCols("乙方单位名称").RaiseDataColChanged() DataTables("支出合同基础数据").Save() With Tables("支出合同基础数据") .MergeMode = MergeModeEnum.Standard .MergeCols.Clear() .MergeCols.Add("主合同编号") .MergeCols.Add("财务编号") .MergeCols.Add("工程名称") .MergeSort = "主合同编号,财务编号,工程名称" .AllowMerge = True End With [此贴子已经被作者于2023/1/9 15:36:36编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/1/9 15:55:00 -- 没理解上面的意思。 比如上面表格20行数据,都是同一个主合同编号的就加载子表数据? |
-- 作者:沪上游客 -- 发布时间:2023/1/11 11:57:00 -- 对的,是这个意思,谢谢老师,代码怎么写? |
-- 作者:有点蓝 -- 发布时间:2023/1/11 12:06:00 -- 参考:http://www.foxtable.com/webhelp/topics/2712.htm Tables("支出合同基础数据").RepeatFilter("主合同编号", 3) if Tables("支出合同基础数据").rows.count > 1 then msgbox("有多个主合同编号") else 加载子表数据的代码 end if
|
-- 作者:沪上游客 -- 发布时间:2023/1/14 12:01:00 -- 老师你好! 这样的话,每次加载,“支出合同基础表”表只显示唯一值,有没有直接计算唯一值的数值(也就是上面代码执行后的行数)>1的代码? 以前我做过是在窗口的,设置两个表,一表是隐藏计算,另一个表是显示。 谢谢老师!
[此贴子已经被作者于2023/1/14 12:04:46编辑过]
|
-- 作者:沪上游客 -- 发布时间:2023/1/14 12:12:00 -- 如果没有的话,那只能在共有窗口加一个隐藏表,就设置一列“主合同编号”,同步加载后计算,这样能行吗? [此贴子已经被作者于2023/1/14 12:21:27编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/1/14 13:10:00 -- if DataTables("支出合同基础数据").getvalues("主合同编号").count > 1 then |
-- 作者:沪上游客 -- 发布时间:2023/1/14 19:30:00 -- 谢谢蓝老师! ![]() |