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


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

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

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
[求助]一段代码,谢谢!  发帖心情 Post By:2015/10/28 15:26:00 [显示全部帖子]

思路如下:

 

表“发货明细表”的DataColChanged事件:

If e.DataCol.Name = "数量" Then

 

找出该行记录中的客户的"合同细节表"中的该产品名称的所有记录

 

 

统计其发货明细表中的发货总量 S1

统计其合同细节表中的合同总量 S2

定义S3=S2-S1

 

如S3>0

 

按时间降序累加合同细节表中的该产品数量 S4

 

当S4>=S3时

 

则找出合同细节表中的这几条合同编号,并根据合同编号找出合同一览表中的相关记录,并将相关记录的“发货完毕”赋值为“否”

 

 

 

[此贴子已经被作者于2015/10/28 15:27:28编辑过]

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4016 威望:0 精华:0 注册:2015/1/27 9:34:00
  发帖心情 Post By:2015/10/28 15:59:00 [显示全部帖子]

If e.DataCol.Name = "数量" Then
    Dim Sum1 As Double
    Dim Sum2 As Double
    Dim Sum3 As Double
    Sum1 = DataTables("发货明细表").Compute("Sum(数量)", "客户名称='" & e.DataRow("客户名称") & "'and 产品名称= '" & e.DataRow("产品名称") & "'And 规格或牌号='" & e.DataRow("规格或牌号") & "'")
    Sum2 = DataTables("合同明细表").Compute("Sum(数量)", "客户名称='" & e.DataRow("客户名称") & "'and 产品名称= '" & e.DataRow("产品名称") & "'And 规格牌号='" & e.DataRow("规格或牌号") & "'")
    Sum3 = Sum2 -Sum1
    If Sum3>0 Then
    Dim vrs As List(Of DataRow)
    vrs = DataTables("合同明细表").Select("[客户名称]='" & e.DataRow("客户名称") & "'","合同日期 DESC")'目的:找出该客户的该规格产品的所有行(合同明细表与合同一览表有"合同编号"关联,)
    Dim filter As String
    Dim trs As List(Of DataRow)
    filter =" 合同编号= '" & vr("合同编号") & "'"

    trs = DataTables("合同一览表").Select(filter)  '找到vrs 对应的合同一览表中的合同记录
    For Each tr As DataRow In trs
         tr("发货完成")="否"

End If

[此贴子已经被作者于2015/10/28 16:04:18编辑过]

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


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

红色部分有点乱:

 

目的:从表“发货明细表”中的客户名称及产品名称及规格牌号来找到合同一览表中该客户改产品该规格的记录

 

因为合同明细表中没有客户名称,合同明细表是合同一览表的字表

[此贴子已经被作者于2015/10/28 16:05:43编辑过]

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


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

红袍兄不要按照我前面的代码写,因为有些语句肯定是有问题的

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


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

表“发货明细表”的DataColChanged事件

 

被注释的代码部分 就是想要的部分

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目五_副本.foxdb


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


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:contract database.rar

 

 

最终目的:通过发货登记时,实时判断合同一览表中的合同是否发货完成


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


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

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

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


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

红袍兄:

 

sum4 += sum2

这句是什么意思?


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


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

为何要这样写呢?

 

直接用S1-S2不行吗?

 

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

 

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
liuxianjie1980
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 

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

我似乎有点看不明白


 回到顶部
总数 12 1 2 下一页