Foxtable(狐表)用户栏目专家坐堂 → 请教一下,多条件求和比较后填入信息的事件代码


  共有1600人关注过本帖树形打印复制链接

主题:请教一下,多条件求和比较后填入信息的事件代码

美女呀,离线,留言给我吧!
ganlan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:189 积分:1233 威望:0 精华:0 注册:2021/4/17 10:35:00
请教一下,多条件求和比较后填入信息的事件代码  发帖心情 Post By:2023/12/25 19:24:00 [显示全部帖子]

     表A中,想实现,明细中根据客户名称和账单月份,求和明细金额和明细已收金额,如果明细金额总和-明细已收金额总和>0,则月收款状态="未收完","已收完"。
请教一下,怎么写表的事件代码。


例子如下:
客户名   账单月份     金额       已收金额      月收款状态
A         23-11月      1000       900           未收完(说明:A客户23-11月总金额:1300-总已收1200=100)
B         23-11月      500       500           已收完 (说明:B客户23-11月总金额:500-总已收500=0) 
A         23-10月      1000       1000          已收完 (说明:A客户23-10月总金额:1000-总已收1000=0)   
A         23-11月      300       300            未收完(说明:A客户23-11月总金额:1300-总已收1200=100)
B         23-10月      1000       1000         已收完 (说明:B客户23-10月总金额:1600-总已收1600=0)     
B         23-10月      600       600           已收完 (说明:B客户23-10月总金额:1600-总已收1600=0)   
[此贴子已经被作者于2023/12/25 19:24:49编辑过]

 回到顶部
美女呀,离线,留言给我吧!
ganlan
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:189 积分:1233 威望:0 精华:0 注册:2021/4/17 10:35:00
  发帖心情 Post By:2023/12/25 19:25:00 [显示全部帖子]

例子如下:
客户名   账单月份     金额      已收金额      月收款状态
A         23-11月      1000       900           未收完(说明:A客户23-11月总金额:1300-总已收1200=100)
B         23-11月      500       500           已收完 (说明:B客户23-11月总金额:500-总已收500=0) 
A         23-10月      1000       1000          已收完 (说明:A客户23-10月总金额:1000-总已收1000=0)   
A         23-11月      300       300            未收完(说明:A客户23-11月总金额:1300-总已收1200=100)
B         23-10月      1000       1000         已收完 (说明:B客户23-10月总金额:1600-总已收1600=0)     
B         23-10月      600       600           已收完 (说明:B客户23-10月总金额:1600-总已收1600=0)   

 回到顶部
美女呀,离线,留言给我吧!
ganlan
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:189 积分:1233 威望:0 精华:0 注册:2021/4/17 10:35:00
  发帖心情 Post By:2023/12/25 19:33:00 [显示全部帖子]

If e.DataCol.Name = "bs0130" Then '统计销售订单月收款状态
    If e.NewValue Is Nothing Then '
       e.DataRow("bs0133") = Nothing '
 
    Else
        Dim ddys As DataRow '订单账单已收
        Dim ddje As DataRow '订单账单金额

        
        ddje = DataTables("sdbs01").Compute("sum(bs0117)", "[bs01730] = '" & e.NewValue & "' and  bs0104 = '" & e.DataRow("bs0104") & "'")
        ddys = DataTables("sdbs01").Compute("sum(bs0141)", "[bs01730] = '" & e.NewValue & "' and  bs0104 = '" & e.DataRow("bs0104") & "'")

          
            If ddje > ddys Then
                
            e.DataRow("bs0133") = "未收完"
            Else
            e.DataRow("bs0133") = "已收完"
            End If 
            
            
    End If
End If



这样弄不成功
[此贴子已经被作者于2023/12/25 19:34:55编辑过]

 回到顶部
美女呀,离线,留言给我吧!
ganlan
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:189 积分:1233 威望:0 精华:0 注册:2021/4/17 10:35:00
  发帖心情 Post By:2023/12/26 11:12:00 [显示全部帖子]

学习了,谢谢

 回到顶部
美女呀,离线,留言给我吧!
ganlan
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:189 积分:1233 威望:0 精华:0 注册:2021/4/17 10:35:00
  发帖心情 Post By:2023/12/26 11:53:00 [显示全部帖子]

你好,我想写在DataColChanged,改了一下,好像不起作用
If e.DataCol.Name = "订单编号" Then
        If e.NewValue Is Nothing Then
            e.DataRow("月收款状态") = Nothing
        Else
            Dim filter As String = "[客户] = '" & e.DataRow("客户") & "' and  账单月 = '" & e.DataRow("账单月") & "'"
            Dim ddje As Integer = e.DataTable.Compute("sum(金额)", filter)
            Dim ddys As Integer = e.DataTable.Compute("sum(已收金额)", filter)
            If ddje > ddys Then
                e.DataTable.replacefor("月收款状态", "未收完", filter)
            Else
                e.DataTable.replacefor("月收款状态", "已收完", filter)
            End If 
        End If
End If
[此贴子已经被作者于2023/12/26 11:54:14编辑过]

 回到顶部
美女呀,离线,留言给我吧!
ganlan
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:189 积分:1233 威望:0 精华:0 注册:2021/4/17 10:35:00
  发帖心情 Post By:2023/12/26 12:13:00 [显示全部帖子]

好的,搞好了,谢谢

 回到顶部