Foxtable(狐表)用户栏目专家坐堂 → 请教关于库存状况表设计的问题


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

主题:请教关于库存状况表设计的问题

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


加好友 发短信
等级:狐精 帖子:3358 积分:24758 威望:0 精华:0 注册:2012/3/26 21:47:00
请教关于库存状况表设计的问题  发帖心情 Post By:2012/5/7 23:01:00 [只看该作者]

按照帮助通过关联表设计了一个库存表

现在有个问题请教一下

我有4个表 产品信息 出库单 入库单 库存表

 

现在做出来的效果是 必须在库存表里输入某个产品后才能得到它的出入库情况 否则库存表就是空白的

 

如何实现我在产品信息里添加了新的产品以后 他能自动填充到库存表里去 只是库存量为0


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/5/7 23:07:00 [只看该作者]

在产品信息表的DataColchanging事件设置代码,大概如此,请自行调试修改:
 
If e.DataCol.Name = "产品名称" Then
    if e.NewValue > "" then
           Dim dr as DataRow
           if e.OldValue > "" then
               dr = DataTables("库存").Find("产品名称 = '" & e.OldValue & “‘”)
           end if
           if dr is nothing then
              dr = DataTables("库存").AddNew()
           end if
          dr("产品名称") = e.NewValue
    End if
End if
 
               

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


加好友 发短信
等级:狐精 帖子:3358 积分:24758 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2012/5/7 23:31:00 [只看该作者]

感谢狐爸及时回复 通过测试确实可以达到要求

但是现在有新的问题  如果我删除掉了这个产品(我已经写了代码判断该产品是否产生过交易记录) 库存状况表里的记录还是保留在

另外  如果我同时填充多个列过去要怎么改代码呢 


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/5/8 8:48:00 [只看该作者]

1、参考:

http://www.foxtable.com/help/topics/0633.htm

在这个事件中找出另一个表对应的行,然后删除之即可。

 

2、多列填充:

 

Select Case  e.DataCol.Name
    Case "产品名称"
        If e.NewValue > "" Then
            Dim dr As DataRow
            If e.OldValue > "" Then
                dr = DataTables("库存").Find("产品名称 = '" & e.OldValue & "'")
            End If
            If dr Is Nothing Then
                dr = DataTables("库存").AddNew()
            End If
            dr("产品名称") = e.NewValue
        End If
    Case "其他列1","其他列2","其他列3"
        Dim dr As DataRow
        dr = DataTables("库存").Find("产品名称 = '" & e.DataRow("产品名称") & "'")
        If dr IsNot Nothing Then
            dr(e.DataCol.name) = e.newValue
        End If
End Select

 

 


 回到顶部