Foxtable(狐表)用户栏目专家坐堂 → 写代码实现时实显示近30天的库存数量,测试总有错误,求高手帮忙看看


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

主题:写代码实现时实显示近30天的库存数量,测试总有错误,求高手帮忙看看

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


加好友 发短信
等级:婴狐 帖子:72 积分:625 威望:0 精华:0 注册:2013/2/15 16:30:00
写代码实现时实显示近30天的库存数量,测试总有错误,求高手帮忙看看  发帖心情 Post By:2013/4/17 14:11:00 [只看该作者]

项目有两个表,"库存运维"和"出入库记录",两表都有同一名称列“配件名称”,两表之间没有设关联。

 

现在通过在库存运维表中的DataColChanged事件中写代码实现 滚动显示最近30天的出库数量。

我每次修改日期测试的时候就会提示错误“Exception has been thrown by the target of an invocation.”

求高手帮我看看为什么会这样?

 

以下是库存运维表DataColChanged中的代码:

If e.DataCol.Name = "配件名称" Then

    e.DataRow("出库总量") = DataTables("出入库记录").Compute("Sum(出库)","[配件名称] = '" & e.NewValue & "'")

    e.DataRow("最近30天出库数量") = DataTables("出入库记录").Compute("Sum(出库)","[配件名称] = '" & e.NewValue & "' And [日期]<=#" & Date.Today & "# And [日期]>#" & Date.Today.AddDays(-31) & "#")

End If

 

为了使每次出入库记录表中数据有变化都触发库存运维表的DataColChanged事件,我又在出入库记录表的

DataColChanged事件下了代码入下:

If e.DataCol.Name = "出库" Then

   Dim pr As DataRow

   pr = DataTables("库存运维").Find(" 配件名称= '" & e.DataRow("配件名称") & "'")

   If pr IsNot Nothing Then

      pr("出库总量")= pr("出库总量") + e.NewValue - e.OldValue

   End If

ElseIf e.DataCol.Name="配件名称" Or "日期"

   If e.NewValue<>e.OldValue

      DataTables("库存运维").DataCols("配件名称").RaiseDataColChanged()

   End If

End If

我其实也试着在MaintableChanged事件里面写RaiseDataColChanged(),测试下来没问题,想知道为什么以上的代码就有问题

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:库存和出库表.table


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/17 14:14:00 [只看该作者]

没见有报错啊.

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


加好友 发短信
等级:婴狐 帖子:72 积分:625 威望:0 精华:0 注册:2013/2/15 16:30:00
  发帖心情 Post By:2013/4/17 14:44:00 [只看该作者]

以下是引用Bin在2013-4-17 14:14:00的发言:
没见有报错啊.

你试着改一下出入库记录表里面配件703的日期,


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:婴狐 帖子:72 积分:625 威望:0 精华:0 注册:2013/2/15 16:30:00
  发帖心情 Post By:2013/4/17 15:10:00 [只看该作者]


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


加好友 发短信
等级:童狐 帖子:268 积分:2227 威望:0 精华:0 注册:2013/2/4 11:02:00
  发帖心情 Post By:2013/4/17 15:27:00 [只看该作者]

日期列问题,你改成这样,我测试过了
If e.DataCol.Name = "出库" Then
    Dim pr As DataRow
    pr = DataTables("库存运维").Find("配件名称 = '" & e.DataRow("配件名称") & "'")
    If pr IsNot Nothing Then
        pr("出库总量")= pr("出库总量") + e.NewValue - e.OldValue
    End If
ElseIf e.DataCol.Name="配件名称" 
    If e.NewValue<>e.OldValue
        DataTables("库存运维").DataCols("配件名称").RaiseDataColChanged()
    End If
ElseIf e.DataCol.Name= "日期"
    Dim y,m,d As Integer
    DateYMD(e.NewValue,e.OldValue,y,m,d)
    If d = 0 And y = 0 And m = 0 Then
    Else
        DataTables("库存运维").DataCols("配件名称").RaiseDataColChanged()
    End If   
End If
[此贴子已经被作者于2013-4-17 15:30:11编辑过]

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


加好友 发短信
等级:婴狐 帖子:72 积分:625 威望:0 精华:0 注册:2013/2/15 16:30:00
  发帖心情 Post By:2013/4/17 15:33:00 [只看该作者]

非常感谢!

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


加好友 发短信
等级:婴狐 帖子:72 积分:625 威望:0 精华:0 注册:2013/2/15 16:30:00
  发帖心情 Post By:2013/4/17 15:42:00 [只看该作者]

不好意思, If d = 0 And y = 0 And m = 0 Then 的后面一句是什么啊?


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


加好友 发短信
等级:婴狐 帖子:72 积分:625 威望:0 精华:0 注册:2013/2/15 16:30:00
  发帖心情 Post By:2013/4/17 15:44:00 [只看该作者]

还有DateYMD(e.NewValue,e.OldValue,y,m,d)是什么意思?偶不大理解

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


加好友 发短信
等级:童狐 帖子:268 积分:2227 威望:0 精华:0 注册:2013/2/4 11:02:00
  发帖心情 Post By:2013/4/17 15:46:00 [只看该作者]

后面没有,你可以改成
If d <> 0 or y <> 0 or m <> 0 Then
 DataTables("库存运维").DataCols("配件名称").RaiseDataColChanged()
  End If   

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/17 15:46:00 [只看该作者]

http://www.foxtable.com/help/topics/2648.htm
以下是引用jljacky在2013-4-17 15:44:00的发言:
还有DateYMD(e.NewValue,e.OldValue,y,m,d)是什么意思?偶不大理解

请查看帮助

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