Foxtable(狐表)用户栏目专家坐堂 → [求助]一段代码,谢谢!


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

主题:[求助]一段代码,谢谢!

帅哥哟,离线,有人找我吗?
liuxianjie1980
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/10/28 16:16:00 [只看该作者]

数据库中几乎没有数据,实际工作中,肯定是不断的统计比较的“数量”的

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/28 16:43:00 [只看该作者]


If e.DataCol.Name = "数量" Then
    Dim Sum1 As Double = 0
    Dim Sum2 As Double = 0
    Dim Sum3 As Double = 0
    Dim sum4 As Double = 0
    For Each ht_dr As DataRow In DataTables("合同一览表").Select("客户名称='" & e.DataRow("客户名称") & "'", "合同日期 DESC")
       
        Sum1 = DataTables("发货明细表").Compute("Sum(数量)", "客户名称='" & e.DataRow("客户名称") & "'and 产品名称= '" & e.DataRow("产品名称") & "'And 规格或牌号='" & e.DataRow("规格或牌号") & "'")
        Sum2 = DataTables("合同明细表").Compute("Sum(数量)", "合同编号='" & ht_dr("合同编号") & "'and 产品名称= '" & e.DataRow("产品名称") & "'And 规格牌号='" & e.DataRow("规格或牌号") & "'")
        sum4 += sum2
        Sum3 = Sum1 -Sum4
        If Sum3>0 Then
            ht_dr("发货完毕") = True
        Else
            ht_dr("发货完毕") = False
        End If
    Next
End If

 回到顶部
帅哥哟,离线,有人找我吗?
liuxianjie1980
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/10/28 22:32:00 [只看该作者]

红袍兄:

 

sum4 += sum2

这句是什么意思?


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/28 22:33:00 [只看该作者]

sum4 = sum4 + sum2

 回到顶部
帅哥哟,离线,有人找我吗?
liuxianjie1980
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/10/28 22:39:00 [只看该作者]

为何要这样写呢?

 

直接用S1-S2不行吗?

 

另外我好像少了一个数据,即:“历史明细表”中该客户的该型号产品的结余数量,应该也要在加在S2中,即:累加完合同中的数量后再加上历史结余的数量(S5),减去已经发货的数量,那么差值大于0的话,执行剩余代码。

 

 

上述代码,减数和被减数是不是搞反了啊?


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/28 22:43:00 [只看该作者]

 搞不清楚你要的逻辑,反正你根据自己的需要查询即可。

 回到顶部
帅哥哟,离线,有人找我吗?
liuxianjie1980
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/10/28 22:48:00 [只看该作者]

 Sum1 = DataTables("发货明细表").Compute("Sum(数量)", "客户名称='" & e.DataRow("客户名称") & "'and 产品名称= '" & e.DataRow("产品名称") & "'And 规格或牌号='" & e.DataRow("规格或牌号") & "'")
        Sum2 = DataTables("合同明细表").Compute("Sum(数量)", "合同编号='" & ht_dr("合同编号") & "'and 产品名称= '" & e.DataRow("产品名称") & "'And 规格牌号='" & e.DataRow("规格或牌号") & "'")
        sum4 += sum2
        Sum3 = Sum1 -Sum4

 

红袍兄:您能解释一下这段的逻辑吗?

我似乎有点看不明白


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/28 23:15:00 [只看该作者]

查发货的总量

 

查某合同编号的数量

 

如果发货 > 合同的数量,自然就是完成发货了;

 

sum4用于累加每个合同的数量,已经完成发货的,累加进来。


 回到顶部
帅哥哟,离线,有人找我吗?
liuxianjie1980
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/10/28 23:24:00 [只看该作者]

懂了,另外这种情况下,早前的合同应该率先被累加,想要得到的是最近的合同有没有完成发货,因此,是不是应该把那个降序排列去掉啊?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/29 9:21:00 [只看该作者]

以下是引用liuxianjie1980在2015/10/28 23:24:00的发言:
懂了,另外这种情况下,早前的合同应该率先被累加,想要得到的是最近的合同有没有完成发货,因此,是不是应该把那个降序排列去掉啊?

 

是的,你根据日期,升序排序就行。


 回到顶部
总数 20 上一页 1 2