以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]逻辑列的查询修改  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127997)

--  作者:林胤
--  发布时间:2018/11/26 20:43:00
--  [求助]逻辑列的查询修改
Dim nms As List(of String) = DataTables("统计").GetValues("批次")

For Each nm As String In nms
    Dim dr As DataRow = DataTables("结算").AddNew()
    dr("批次") = nm
    dr("金额") = DataTables("统计").Compute("Sum(金额)", "批次 = \'" & nm & "\'")
    dr("份数") = DataTables("统计").Compute("Sum(份数)", "批次 = \'" & nm & "\'")
    dr("人数") = DataTables("统计").Compute("Count(姓名)", "批次 = \'" & nm & "\'")
    dr("每份") = (dr("金额")) / (dr("份数"))
    
Next

以上是我根据逻辑列的查询修改代码,我想加上一个判断, 结算 表里面批次列的值跟 统计 表里批次列的值相同,就不会再新增一行统计批次列的数据。

大大帮我看下有必要那么修改么?? 还是我在 结算 表里面 批次 列在保存或者关闭的时候判断 批次列 的值是否重复会比较合理点?

--  作者:有点蓝
--  发布时间:2018/11/26 20:48:00
--  
一般事前判断比事后去重更合理。

第一句GetValues的时候就应该排除已经存在的值

--  作者:林胤
--  发布时间:2018/11/26 22:09:00
--  
第一句是 在 结算 表操作,在 统计 表里面去重复值。

例子是在 统计 表里面取数据,然后重复查找添加 批次 不重复的数据。

我有这个判断的想法是因为 执行 过一次后,可能存在误点,从而增加重复的数据。

假设误点了,就需要在 结算 表里面判断,我试过 表事件加判断代码,但是会出错。

--  作者:有点蓝
--  发布时间:2018/11/26 22:12:00
--  
贴出具体代码,或者上传实例说明
--  作者:林胤
--  发布时间:2018/11/26 22:36:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:逻辑列查询.rar

按钮 我已经执行过一次了,在 结算 表根据 统计 表生成了数据。

再点击一次就会再次生成一次,数据重复了。。

我现在的要求是避免点击后,生成重复的数据。
[此贴子已经被作者于2018/11/26 22:36:33编辑过]

--  作者:有点蓝
--  发布时间:2018/11/26 22:44:00
--  
Dim nms As List(of String) = DataTables("统计").GetValues("批次","批次 not  in(\'" & DataTables("结算").GetComboListString("批次").Replace("|","\',\'") & "\')")


--  作者:林胤
--  发布时间:2018/11/26 23:01:00
--  
谢谢大大了,我再研究下原理。。
--  作者:林胤
--  发布时间:2018/11/26 23:24:00
--  
哎,果然还是基础太弱了。。条件表达式 没有记熟,还要再多看看